<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>234330</bug_id>
          
          <creation_ts>2021-12-14 19:06:01 -0800</creation_ts>
          <short_desc>[libpas] update to 40a5d3cee590eb07f2736b69f93005c97b40edd1: add bmalloc-style line allocator for small segregated exclusive pages</short_desc>
          <delta_ts>2021-12-16 12:44:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ggaren</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824213</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-14 19:06:01 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824214</commentid>
    <comment_count>1</comment_count>
      <attachid>447190</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-14 19:09:24 -0800</bug_when>
    <thetext>Created attachment 447190
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824851</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-16 12:44:50 -0800</bug_when>
    <thetext>This isn&apos;t a perf win.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447190</attachid>
            <date>2021-12-14 19:09:24 -0800</date>
            <delta_ts>2021-12-14 19:09:24 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>391724</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzA2MCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4MyBAQAorMjAyMS0xMi0xNCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIHVwZGF0ZSB0byA0
MGE1ZDNjZWU1OTBlYjA3ZjI3MzZiNjlmOTMwMDVjOTdiNDBlZGQxOiBhZGQgYm1hbGxvYy1zdHls
ZSBsaW5lIGFsbG9jYXRvciBmb3Igc21hbGwgc2VncmVnYXRlZCBleGNsdXNpdmUgcGFnZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMzMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYnJpbmdz
IG92ZXIgdHdvIG1ham9yIGNoYW5nZXMgZnJvbSBteSBsaWJwYXMgZ2l0IHJlcG8sIG1ha2luZyBX
ZWJLaXQgdXAtdG8tZGF0ZSB3aXRoIGl0LgorCisgICAgICAgIGIzYWNkMTkwYmE3NTM4MzIxNjY0
NzcwZWQwM2I4NmVhNzg2MWI1YjE6IEltcGxlbWVudCBsaW5lIGFsbG9jYXRpb24gYXMgYW4gYWx0
ZXJuYXRpdmUgdG8gYml0IGFsbG9jYXRpb24KKyAgICAgICAgZm9yIHRoZSBzZWdyZWdhdGVkIGhl
YXAuIExpbmUgYWxsb2NhdGlvbiBpcyBhbGwgYWJvdXQgdXNpbmcgYnl0ZXMgdG8gY291bnQgdGhl
IG51bWJlciBvZiBsaXZlIG9iamVjdHMKKyAgICAgICAgd2hvc2UgYmVnaW4gYWRkcmVzcyBpcyB3
aXRoaW4gYSAyNTYtYnl0ZSBsaW5lLiBUaGlzIGlzIHRoZSBvbmx5IG1lY2hhbmlzbSBieSB3aGlj
aCB0aGUgbWFsbG9jIGV2ZXIga25vd3MKKyAgICAgICAgdGhhdCBtZW1vcnkgaXMgbGl2ZSBvciBk
ZWFkLiBJbiB0aGlzIGNoYW5nZSwgd2UgYWxsb3cgc2VncmVnYXRlZCBleGNsdXNpdmVzIHRvIG9w
dGlvbmFsbHkgdXNlIHRoaXMgbW9kZS4KKyAgICAgICAgRm9yIG5vdywgb25seSBzbWFsbCBzZWdy
ZWdhdGVkIGV4Y2x1c2l2ZXMgY2FuIHVzZSBpdCwganVzdCBiZWNhdXNlIHRoaXMgbW9kZSBkb2Vz
bid0IGN1cnJlbnRseSBzdXBwb3J0CisgICAgICAgIHBhcnRpYWwgZGVjb21taXQgb3IgcGFnZXMg
YmlnZ2VyIHRoYW4gNjU1MzYgYnl0ZXMuIEl0J3MgaGFyZCB0byBpbWFnaW5lIHRoaXMgbW9kZSBi
ZWluZyBiZW5lZmljaWFsIGZvcgorICAgICAgICBtZWRpdW0gb2JqZWN0cywgc28gdGhhdCdzIHBy
b2JhYmx5IHRoZSByaWdodCBjaG9pY2UuIFRoaXMgaXMgYSBwcmV0dHkgYmlnIGNoYW5nZSwgYnV0
IGl0J3Mgbm90IGFzIHNjYXJ5CisgICAgICAgIGFzIGl0IG1pZ2h0IHNlZW0gLSB0aGUgc2VncmVn
YXRlZCBhbGxvY2F0b3IgbW9zdGx5IGRvZXNuJ3QgY2FyZSBhYm91dCBob3cgd2UgcmVwcmVzZW50
IGxpdmUgb2JqZWN0cworICAgICAgICB3aXRoaW4gYSBwYWdlLCB0aGVyZSBhcmUgb25seSBhIGZp
bml0ZSBudW1iZXIgb2YgcGxhY2VzIHRoYXQgZG8gY2FyZSwgYW5kIHRob3NlIHBsYWNlcyBjYW4g
YmUgZm91bmQgd2l0aAorICAgICAgICB0aGUgY29tcGlsZXIncyBoZWxwICh0aGlzIHBhdGNoIHJl
bmFtZXMgZXZlcnkgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBoYWQgdG8gZG8gd2l0aCBiaXRzLCBhbmQg
YWxsIG9mIHRoZW0KKyAgICAgICAgYXJlIG5vdyBhY2Nlc3NlZCBieSBnZXR0ZXJzIHRoYXQgYXNz
ZXJ0IHRoYXQgeW91J3JlIGluIHRoZSByaWdodCBtb2RlKS4gVGhpcyBhbHNvIGFkZHMgYSBsYXJn
ZSBuZXcgdGVzdAorICAgICAgICBjYWxsZWQgTGluZUFsbG9jYXRpb25UZXN0cyBhbmQgcmVwdXJw
b3NlcyBzb21lIG9sZCB0ZXN0cyBmb3IgYWxzbyB0ZXN0aW5nIHRoaXMgbmV3IG1vZGUuIEJlY2F1
c2UgdGhpcworICAgICAgICBuZXcgbW9kZSBiZW5lZml0cyBmcm9tIHdoaXRlLWJveCB0ZXN0cyB0
aGF0IGFzc2VydCB0aGluZ3MgbGlrZSBvYmplY3Qgb2Zmc2V0LCBJIGFkZGVkIGEgbGluZXJlZiBo
ZWFwCisgICAgICAgIGNvbmZpZyB0aGF0IGlzIG1lYW50IHRvIGhhdmUgaXRzIG1pbmFsaWduIGFu
ZCBvdGhlciBvcHRpb25zIGZpeGVkIGluIHN0b25lIHNvIGFzIHRvIGZvcmV2ZXIgZW5zdXJlIHRo
YXQKKyAgICAgICAgdGhlIExpbmVBbGxvY2F0aW9uVGVzdHMgdGVzdHMga2VlcCBwYXNzaW5nLgor
CisgICAgICAgIGE2OTE0ZjBmMGRmODc2NDA2MGM2MWNmOGY5ZDM5YTExZmNhZmY5ODY6IFRoZSBi
ZWdpbm5pbmdzIG9mIGEgUEdNIGltcGxlbWVudGF0aW9uIGJ5IEJyYW5kb24gU3Rld2FydC4KKwor
ICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBs
aWJwYXMvLmdpdGlnbm9yZToKKyAgICAgICAgKiBsaWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2Nv
bmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmM6CisgICAgICAgIChqaXRfc21hbGxf
Yml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcik6CisgICAgICAgIChqaXRfbWVkaXVtX2JpdGZpdF9j
cmVhdGVfcGFnZV9oZWFkZXIpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFw
X2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcC5jOiBB
ZGRlZC4KKyAgICAgICAgKGxpbmVyZWZfYWxsb2NhdGUpOgorICAgICAgICAobGluZXJlZl90cnlf
YWxsb2NhdGUpOgorICAgICAgICAobGluZXJlZl90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQp
OgorICAgICAgICAobGluZXJlZl90cnlfcmVhbGxvY2F0ZSk6CisgICAgICAgIChsaW5lcmVmX2Rl
YWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9saW5lcmVmX2hlYXBfY29uZmlnLmM6
IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcF9jb25maWcu
aDogQWRkZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwX2lubGlu
ZXMuaDogQWRkZWQuCisgICAgICAgIChsaW5lcmVmX2FsbG9jYXRlX2lubGluZSk6CisgICAgICAg
IChsaW5lcmVmX3RyeV9hbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAobGluZXJlZl90cnlfYWxs
b2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAgKGxpbmVyZWZfdHJ5X3JlYWxs
b2NhdGVfaW5saW5lKToKKyAgICAgICAgKGxpbmVyZWZfZGVhbGxvY2F0ZV9pbmxpbmUpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcF9pbm5hcmRzLmg6IEFkZGVkLgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaDoKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfaGVhcF9jb25maWdzLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwcy5jOgorICAgICAgICAocGFzX2FsbF9o
ZWFwc19mb3JfZWFjaF9zdGF0aWNfaGVhcCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfYWxsb2NhdG9yLmM6CisgICAgICAgIChwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21t
aXRfdmlldyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmM6
CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19iaXRm
aXRfcGFnZV92ZXJpZnkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
cGFnZS5oOgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX29mZnNldF90b19maXJzdF9vYmplY3Qp
OgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX29mZnNldF90b19lbmRfb2ZfbGFzdF9vYmplY3Qp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaDoK
KyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29mZnNl
dF9mcm9tX2JvdW5kYXJ5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmQuZGVmOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19j
b21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1l
cmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmM6CisgICAgICAgIChyZWNvcmRfcGFnZV9vYmplY3RzKToK
KyAgICAgICAgKGVudW1lcmF0ZV9leGNsdXNpdmVfdmlldyk6CisgICAgICAgIChlbnVtZXJhdGVf
c2hhcmVkX3ZpZXcpOgorICAgICAgICAoZW51bWVyYXRlX3BhcnRpYWxfdmlldyk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmg6CisgICAg
ICAgIChwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfZXhjbHVzaXZlKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jOgorICAgICAgICAoZm9yX2VhY2hfbGl2ZV9v
YmplY3Rfc21hbGxfb2JqZWN0X2NhbGxiYWNrKToKKyAgICAgICAgKGZvcl9lYWNoX2xpdmVfb2Jq
ZWN0X2xhcmdlX29iamVjdF9jYWxsYmFjayk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdf
a2luZC5kZWY6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0
aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19saW5lX21ldGFkYXRhLmg6IEFkZGVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYzoKKyAg
ICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRv
cl9nZXRfYWxsb2NfYml0cyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9idW1w
cyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9iaXRmaXQpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfYnVtcC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaDoK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXRfaW1wbCk6CisgICAgICAgIChwYXNf
bG9jYWxfYWxsb2NhdG9yX3NldF91cF9idW1wKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2Nhbl9iaXRzX3RvX3NldF91cF9mcmVlX2JpdHMpOgorICAgICAgICAocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zZXRfdXBfZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2V0X3VwX2J1bXBzX2Zyb21fbGluZXNfc21hbGwpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvcl9zZXRfdXBfYnVtcHNfZnJvbV9saW5lc19ub3Rfc21hbGwpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcHNfZnJvbV9saW5lcyk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUpOgorICAgICAgICAocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zZXRfdXBfcHJpbW9yZGlhbF9idW1wKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldyk6CisgICAg
ICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3X2Jl
Zm9yZV9zdG9wcGluZyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1v
cnlfdG9fcGFnZV9iaXRzX3NvdXJjZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
dHVybl9tZW1vcnlfdG9fcGFnZV9mb3Jfcm9sZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyZWVfYml0cyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxs
b2NhdG9yX3JlZmlsbF9idW1wX3dpdGhfbnVtX2J1bXBzKToKKyAgICAgICAgKHBhc19sb2NhbF9h
bGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV9jYXNlcyk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX21ha2VfYnVtcCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX29iamVjdF9saXZlbmVzc19raW5kLmg6IEFkZGVkLgorICAgICAgICAocGFzX29iamVj
dF9saXZlbmVzc19raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19wYWdlX2Jhc2UuYzoKKyAgICAgICAgKHBhc19wYWdlX2Jhc2VfaGVhZGVyX3NpemUpOgor
ICAgICAgICAocGFzX3BhZ2VfYmFzZV9pc19lbXB0eSk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3BhZ2VfYmFzZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX2Jhc2VfY29uZmlnLmg6CisgICAgICAgIChwYXNfcGFnZV9iYXNlX2NvbmZpZ19pc19iaXRm
aXQpOgorICAgICAgICAocGFzX3BhZ2VfYmFzZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29m
ZnNldF9mcm9tX2JvdW5kYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmM6
IEFkZGVkLgorICAgICAgICAocGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRl
KToKKyAgICAgICAgKHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKToK
KyAgICAgICAgKHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY190cmlnZ2VyKToKKyAgICAg
ICAgKHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19jYW5fdXNlKToKKyAgICAgICAgKHBh
c19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19zaG91bGRfdXNlKToKKyAgICAgICAgKHBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV92aXJ0dWFsX21lbW9yeSk6CisgICAg
ICAgIChwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2ZyZWVfd2FzdGVkX21lbW9y
eSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRf
bWFsbG9jX2FsbG9jYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXRfdXNlX2Vwb2NoKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldy5jOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5X2ltcGwp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGFsbF9mdWxsX3Vz
ZV9jb3VudHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2hlYXAuYzoKKyAgICAgICAgKGNvbXB1dGVfaWRlYWxfb2JqZWN0X3Np
emUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX3NpemUpOgorICAgICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNr
KToKKyAgICAgICAgKGZvcl9lYWNoX2xpdmVfb2JqZWN0X2JpdGZpdF9jYWxsYmFjayk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYzoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
dGFrZV9waHlzaWNhbGx5KToKKyAgICAgICAgKHZlcmlmeV9ncmFudWxlc19saXZlX29iamVjdF9j
YWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3ZlcmlmeV9ncmFudWxlcyk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfZGVhbGxvY2F0aW9uX2RpZF9mYWls
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfYml0X2RlYWxsb2NhdGlvbl9kaWRfZmFp
bCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGlvbl9kaWRfZmFpbCk6
IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3ZlcmlmeV9udW1fbm9uX2Vt
cHR5X3dvcmRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9wYWdlLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9zaXpl
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9pbmRleF9vZl9vYmplY3RfYXRf
b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdl
X2xpbmVfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV9hdF9saW5lX2luZGV4KToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9v
YmplY3RfZm9yX2h1Z2dpbmdfbW9kZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX29m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0X2Zvcl9odWdnaW5n
X21vZGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV91c2VmdWxfb2JqZWN0X3BheWxv
YWRfc2l6ZV9mb3JfaHVnZ2luZ19tb2RlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
YmVzdF9odWdnaW5nX21vZGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRf
ZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdF9leGNsdXNpdmUpOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9s
YXN0X29iamVjdF9leGNsdXNpdmUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV91c2Vm
dWxfb2JqZWN0X3BheWxvYWRfc2l6ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX251
bWJlcl9vZl9vYmplY3RzKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfYnl0ZXNfZGly
dGllZF9wZXJfb2JqZWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfYWxsb2NfYml0
cyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVzKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9pc19hbGxvY2F0ZWRfd2l0aF9wYWdlKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3BhZ2VfaXNfYWxsb2NhdGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfdmFsaWRhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19w
YXlsb2FkX29mZnNldF9mb3Jfcm9sZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19wYXlsb2FkX3NpemVfZm9yX3JvbGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zvcl9yb2xlKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3VzZXNfbGluZXNfZm9yX3JvbGUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfbGluZV9zaXplKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX29iamVjdF9wYXlsb2FkX2VuZF9vZmZzZXRfZnJvbV9ib3VuZGFyeSk6IERl
bGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZC5kZWY6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmg6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9wYWdlX2luaXRpYWxpemVfZnVsbF91c2VfY291bnRzKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3BhZ2VfZGVjcmVtZW50X251bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2xvZ19vcl9kZWFsbG9jYXRlKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9v
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldy5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X3Nob3VsZF90YWJsZSk6CisgICAgICAgIChjb21wdXRlX3N1bW1hcnkpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jOgor
ICAgICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmM6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlld19jb21taXRfcGFnZSk6CisgICAgICAgIChjb21wdXRlX3N1
bW1hcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2spOgorICAgICAgICAoY29tcHV0ZV9z
dW1tYXJ5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlldy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY2FuX2J1bXAp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tcHV0ZV9uZXdfYnVtcCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRh
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2VuYWJsZV9leGNsdXNp
dmVfdmlld3MpOgorICAgICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcpOgorICAg
ICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFi
bGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZyk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jOgorICAg
ICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3QpOgorICAgICAgICAoc2hvdWxkX2JlX2VsaWdpYmxl
KToKKyAgICAgICAgKGlzX3BheWxvYWRfZW1wdHlfY2FsbGJhY2spOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuaDoKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3BhZ2Vfcm9sZV9mb3Jfb3duZXIpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfcGFnZV9yb2xlX2Zvcl9hbGxvY2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9zdGFydF9hbGxvY2F0aW5nKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZyk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kLmg6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X3BhZ2Vfcm9sZV9mb3Jfb3duZXIpOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9wYWdlX3JvbGVfZm9yX2FsbG9jYXRvcik6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X3JvbGVfZm9yX293bmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfcm9sZV9mb3JfYWxs
b2NhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaDoKKyAgICAgICAgKHBhc193cmFwX3No
YXJlZF9oYW5kbGUpOgorICAgICAgICAocGFzX3Vud3JhcF9zaGFyZWRfaGFuZGxlKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmM6CisgICAgICAgIChy
ZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29udGVudHMpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc190cmlfc3RhdGUuaDoKKyAgICAgICAgKHBhc190cmlfc3RhdGVfZnJvbV9i
b29sZWFuKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmM6
CisgICAgICAgIChmb3JfZWFjaF9saXZlX29iamVjdF9zbWFsbF9vYmplY3RfY2FsbGJhY2spOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmg6Cisg
ICAgICAgIChwYXNfdXRpbGl0eV9oZWFwX2NyZWF0ZV9wYWdlX2hlYWRlcik6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0Lmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFz
L3NyYy90ZXN0L0V4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RQ
YXlsb2FkSW1wbCk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3Rz
LmNwcDoKKyAgICAgICAgKHN0ZDo6dmVyaWZ5T2JqZWN0U2V0KToKKyAgICAgICAgKHN0ZDo6dGVz
dEFsbG9jYXRpb25DaGFvcyk6CisgICAgICAgIChzdGQ6OmFkZFRoZVRlc3RzKToKKyAgICAgICAg
KHN0ZDo6YWRkU3BvdFRlc3RzKToKKyAgICAgICAgKHN0ZDo6YWRkSXNvVGVzdHMpOgorICAgICAg
ICAoc3RkOjphZGRBbGxUZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0xpbmVBbGxv
Y2F0aW9uVGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKHN0ZDo6T2JqOjpPYmopOgorICAgICAg
ICAoc3RkOjpPYmo6Om9wZXJhdG9yPCBjb25zdCk6CisgICAgICAgIChzdGQ6Ok9iajo6b3BlcmF0
b3I9PSBjb25zdCk6CisgICAgICAgIChzdGQ6Om9wZXJhdG9yPDwpOgorICAgICAgICAoc3RkOjpB
Y3Q6OkFjdCk6CisgICAgICAgIChzdGQ6OmZvckFsbE9iamVjdHNDYWxsYmFjayk6CisgICAgICAg
IChzdGQ6OmZvckFsbE9iamVjdHNEaXJlY3RvcnlDYWxsYmFjayk6CisgICAgICAgIChzdGQ6OmRv
VGVzdCk6CisgICAgICAgIChzdGQ6OmRvTGluZXJlZlRlc3QpOgorICAgICAgICAoc3RkOjp0ZXN0
RGVjb21taXQpOgorICAgICAgICAoYWRkTGluZUFsbG9jYXRpb25UZXN0cyk6CisgICAgICAgICog
bGlicGFzL3NyYy90ZXN0L1BHTVRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChzdGQ6OnRlc3RQ
R01TaW5nbGVBbGxvYyk6CisgICAgICAgIChzdGQ6OnRlc3RQR01NdWx0aXBsZUFsbG9jKToKKyAg
ICAgICAgKHN0ZDo6dGVzdFBHTUVycm9ycyk6CisgICAgICAgIChhZGRQR01UZXN0cyk6CisgICAg
ICAgICogbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcDoKKyAgICAgICAgKGR1bXBPYmpl
Y3RzSW5IZWFwKToKKyAgICAgICAgKGZvckVhY2hMaXZlT2JqZWN0KToKKyAgICAgICAgKG1haW4p
OgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oOgorICAgICAgICAob3Bl
cmF0b3I8PCk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFw
QWxsb2NhdGlvblRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dmVyaWZ5T2JqZWN0U2V0KToKKyAg
ICAgICAgKHN0ZDo6dmVyaWZ5SGVhcEVtcHR5KToKKyAgICAgICAgKHN0ZDo6dGVzdEZyZWVMaXN0
UmVmaWxsU3BhbnMpOgorICAgICAgICAoc3RkOjp0ZXN0U3B1cmlvdXNFbGlnaWJpbGl0eSk6CisK
IDIwMjEtMTItMTQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBmaXggWGNvZGUgYnVpbGQgb2YgbGlicGFzCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
ODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTYyMyw2ICs2MjMsMTggQEAKIAkJMkNFMkFFMzEyNzU5NkRF
QjAwRDAyQkJDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDRTJBRTJBMjc1
OTZERUEwMEQwMkJCQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xl
LmMgKi87IH07CiAJCTJDRTJBRTMyMjc1OTZERUIwMEQwMkJCQyAvKiBwYXNfZ2V0X3BhZ2VfYmFz
ZV9hbmRfa2luZF9mb3Jfc21hbGxfb3RoZXJfaW5fZmFzdF9tZWdhcGFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFMkIyNzU5NkRFQjAwRDAy
QkJDIC8qIHBhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0
X21lZ2FwYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMkNFMkFFMzMyNzU5NkRFQjAwRDAyQkJDIC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2Nh
dGlvbl9sb2dnaW5nX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJDRTJBRTJDMjc1OTZERUIwMEQwMkJCQyAvKiBwYXNfc2VncmVnYXRlZF9kZWFs
bG9jYXRpb25fbG9nZ2luZ19tb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMkNFMkFFNUEyNzY5OTI4MzAwRDAyQkJDIC8qIGxpbmVyZWZfaGVh
cC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFF
NEUyNzY5OTI4MjAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcC5jICovOyB9OworCQkyQ0UyQUU1QjI3
Njk5MjgzMDBEMDJCQkMgLyogbGluZXJlZl9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUU0RjI3Njk5MjgyMDBEMDJCQkMgLyogbGluZXJl
Zl9oZWFwLmggKi87IH07CisJCTJDRTJBRTVDMjc2OTkyODMwMEQwMkJCQyAvKiBsaW5lcmVmX2hl
YXBfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQ0UyQUU1MDI3Njk5MjgyMDBEMDJCQkMgLyogbGluZXJlZl9oZWFwX2NvbmZpZy5jICovOyB9
OworCQkyQ0UyQUU1RDI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRf
cHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0Uy
QUU1MTI3Njk5MjgyMDBEMDJCQkMgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkNFMkFFNUUy
NzY5OTI4MzAwRDAyQkJDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfYnVtcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFNTIyNzY5OTI4MzAwRDAy
QkJDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfYnVtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJDRTJBRTVGMjc2OTkyODMwMEQwMkJCQyAvKiBs
aW5lcmVmX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkNFMkFFNTMyNzY5OTI4MzAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9pbmxp
bmVzLmggKi87IH07CisJCTJDRTJBRTYwMjc2OTkyODMwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBf
aW5uYXJkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkNFMkFFNTQyNzY5OTI4MzAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9pbm5hcmRzLmggKi87IH07
CisJCTJDRTJBRTYxMjc2OTkyODMwMEQwMkJCQyAvKiBwYXNfbGluZV9tZXRhZGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFNTUyNzY5OTI4
MzAwRDAyQkJDIC8qIHBhc19saW5lX21ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkNFMkFFNjIyNzY5OTI4MzAwRDAyQkJDIC8qIHBh
c19vYmplY3RfbGl2ZW5lc3Nfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkNFMkFFNTYyNzY5OTI4MzAwRDAyQkJDIC8qIHBhc19vYmplY3RfbGl2
ZW5lc3Nfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTJDRTJBRTYzMjc2OTkyODMwMEQwMkJCQyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFy
ZF9tYWxsb2NfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQ0UyQUU1NzI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX3Byb2JhYmlsaXN0aWNf
Z3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICovOyB9OworCQkyQ0UyQUU2NDI3Njk5MjgzMDBEMDJC
QkMgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFNTgyNzY5OTI4MzAw
RDAyQkJDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCAqLzsg
fTsKKwkJMkNFMkFFNjUyNzY5OTI4MzAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9jb25maWcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDRTJBRTU5Mjc2
OTkyODMwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfY29uZmlnLmggKi87IH07CiAJCTQ0MjZFMjgw
MUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5n
LmNwcCAqLzsgfTsKIAkJNDQyNkUyODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdGMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTJGNDcyNDkyMTBCQTMwMjAwQjczMEJCIC8qIE1lbW9yeVN0YXR1
c1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJG
NDcyNDgyMTBCQTJGNTAwQjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjc5LDYgKzEyOTEsMTggQEAK
IAkJMkNFMkFFMkEyNzU5NkRFQTAwRDAyQkJDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfYW5kX3JvbGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5jOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0UyQUUyQjI3NTk2REVCMDBEMDJCQkMgLyogcGFzX2dl
dF9wYWdlX2Jhc2VfYW5kX2tpbmRfZm9yX3NtYWxsX290aGVyX2luX2Zhc3RfbWVnYXBhZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2dldF9wYWdlX2Jhc2VfYW5kX2tp
bmRfZm9yX3NtYWxsX290aGVyX2luX2Zhc3RfbWVnYXBhZ2UuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0
X21lZ2FwYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDRTJBRTJDMjc1OTZE
RUIwMEQwMkJCQyAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbG9nZ2luZ19tb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2Nh
dGlvbl9sb2dnaW5nX21vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9sb2dnaW5nX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkNFMkFFNEUyNzY5OTI4MjAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcC5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBsaW5lcmVmX2hlYXAuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL2xpbmVyZWZfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Q0UyQUU0RjI3Njk5MjgyMDBEMDJCQkMgLyogbGluZXJlZl9oZWFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IGxpbmVyZWZfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvbGluZXJlZl9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDRTJBRTUw
Mjc2OTkyODIwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IGxpbmVyZWZfaGVhcF9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL2xpbmVyZWZfaGVhcF9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkNFMkFFNTEyNzY5OTI4MjAwRDAyQkJDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF92b2lk
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF90YWdn
ZWRfdm9pZF9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RhZ2dl
ZF92b2lkX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0UyQUU1MjI3Njk5
MjgzMDBEMDJCQkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sb2NhbF9hbGxvY2F0b3JfYnVtcC5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJDRTJBRTUzMjc2OTkyODMwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBf
aW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBsaW5lcmVmX2hlYXBf
aW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwX2lubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNFMkFFNTQyNzY5OTI4MzAwRDAyQkJD
IC8qIGxpbmVyZWZfaGVhcF9pbm5hcmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IGxpbmVyZWZfaGVhcF9pbm5hcmRzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9saW5l
cmVmX2hlYXBfaW5uYXJkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0UyQUU1
NTI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX2xpbmVfbWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xpbmVfbWV0YWRhdGEuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19saW5lX21ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJDRTJBRTU2Mjc2OTkyODMwMEQwMkJCQyAvKiBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX29iamVjdF9saXZlbmVzc19raW5k
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNFMkFFNTcyNzY5OTI4MzAwRDAyQkJDIC8q
IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9j
YXRvci5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRf
bWFsbG9jX2FsbG9jYXRvci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0UyQUU1
ODI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9j
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfcHJvYmFiaWxpc3Rp
Y19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
cHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJDRTJBRTU5Mjc2OTkyODMwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfY29u
ZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGxpbmVyZWZfaGVhcF9jb25m
aWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcF9jb25maWcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExv
Z2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9nZ2luZy5j
cHA7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBMb2dnaW5nLmg7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJGNDcyNDgyMTBCQTJGNTAwQjczMEJCIC8q
IE1lbW9yeVN0YXR1c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZW1v
cnlTdGF0dXNTUEkuaDsgcGF0aCA9IGJtYWxsb2MvZGFyd2luL01lbW9yeVN0YXR1c1NQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzMiw2ICsxNDU2LDEyIEBACiAJCQkJMEY1
MTkzRTgyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGNTE5
M0VDMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5jICovLAogCQkJCTBGNTE5M0U5MjY2QzQy
QUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5oICovLAorCQkJCTJDRTJBRTUwMjc2OTkyODIwMEQwMkJC
QyAvKiBsaW5lcmVmX2hlYXBfY29uZmlnLmMgKi8sCisJCQkJMkNFMkFFNTkyNzY5OTI4MzAwRDAy
QkJDIC8qIGxpbmVyZWZfaGVhcF9jb25maWcuaCAqLywKKwkJCQkyQ0UyQUU1MzI3Njk5MjgzMDBE
MDJCQkMgLyogbGluZXJlZl9oZWFwX2lubGluZXMuaCAqLywKKwkJCQkyQ0UyQUU1NDI3Njk5Mjgz
MDBEMDJCQkMgLyogbGluZXJlZl9oZWFwX2lubmFyZHMuaCAqLywKKwkJCQkyQ0UyQUU0RTI3Njk5
MjgyMDBEMDJCQkMgLyogbGluZXJlZl9oZWFwLmMgKi8sCisJCQkJMkNFMkFFNEYyNzY5OTI4MjAw
RDAyQkJDIC8qIGxpbmVyZWZfaGVhcC5oICovLAogCQkJCTBGMThGODQ0MjVDMzQ2NzcwMDcyMUMy
QSAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEYxOEY4NDIyNUMzNDY3NzAw
NzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjE4RjgzRDI1QzM0
Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmMgKi8sCkBAIC0xNTUyLDYgKzE1ODIsNyBA
QAogCQkJCTBGNUZFN0Q5MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLywKIAkJCQkwRkM0MDk3MTI0NTE0OTVFMDA4NzZE
QTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oICovLAogCQkJCTBGQzQwOTlGMjQ1MTQ5NjEw
MDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmggKi8sCisJCQkJMkNF
MkFFNTEyNzY5OTI4MjAwRDAyQkJDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oICov
LAogCQkJCTBGQzQwOTlBMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9w
dHIuaCAqLywKIAkJCQkwRkM0MDk3OTI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2NvbXB1dGVfc3Vt
bWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEZDNDA5QjMyNDUxNDk2MjAwODc2REEw
IC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oICovLApAQCAtMTY5NCw4
ICsxNzI1LDEwIEBACiAJCQkJMEZDNDBBMUQyNDUxNDk4NDAwODc2REEwIC8qIHBhc19sYXJnZV9z
aGFyaW5nX3Bvb2wuaCAqLywKIAkJCQkwRkM0MEFBMzI0NTE0OThFMDA4NzZEQTAgLyogcGFzX2xh
cmdlX3V0aWxpdHlfZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEZDNDBBRjEyNDUxNDk5MzAwODc2REEw
IC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oICovLAorCQkJCTJDRTJBRTU1Mjc2OTky
ODMwMEQwMkJCQyAvKiBwYXNfbGluZV9tZXRhZGF0YS5oICovLAogCQkJCTBGOEE4MTI0MjVGODNF
MjQwMDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQTdEMjQ1
MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCAqLywKKwkJCQkyQ0UyQUU1MjI3
Njk5MjgzMDBEMDJCQkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wLmggKi8sCiAJCQkJMEZD
NDBBNEMyNDUxNDk4ODAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQu
aCAqLywKIAkJCQkwRkM0MEE5ODI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9pbmxpbmVzLmggKi8sCiAJCQkJMEY3QzkyRTAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZC5oICovLApAQCAtMTcyNCw2ICsxNzU3LDcgQEAKIAkJCQkwRkM0MEE3
MTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX21vbm90b25pY190aW1lLmggKi8sCiAJCQkJMEZDNDBB
RDIyNDUxNDk5MTAwODc2REEwIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLAogCQkJCTBGODcw
MDRFMjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfb2JqZWN0X2tpbmQuaCAqLywKKwkJCQkyQ0UyQUU1
NjI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX29iamVjdF9saXZlbmVzc19raW5kLmggKi8sCiAJCQkJ
MkNFMkFFMjcyNzU5NkRFQTAwRDAyQkJDIC8qIHBhc19wYWdlX2Jhc2VfYW5kX2tpbmQuaCAqLywK
IAkJCQkwRjg3MDA1RTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfaW5s
aW5lcy5oICovLAogCQkJCTBGODcwMDU2MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNl
X2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8sCkBAIC0xNzU3LDYgKzE3OTEsOCBAQAogCQkJCUUz
OEE5RTNCMjc0MjY1MTQwMDBCQkQ0OSAvKiBwYXNfcGxhdGZvcm0uaCAqLywKIAkJCQkwRkM0MEE0
MzI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5jICovLAogCQkJCTBG
QzQwQUY4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmggKi8sCisJ
CQkJMkNFMkFFNTcyNzY5OTI4MzAwRDAyQkJDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21h
bGxvY19hbGxvY2F0b3IuYyAqLywKKwkJCQkyQ0UyQUU1ODI3Njk5MjgzMDBEMDJCQkMgLyogcGFz
X3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5oICovLAogCQkJCTBGODcwMDU3
MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcHJvbW90ZV9pbnRyaW5zaWNfaGVhcC5oICovLAogCQkJ
CTBGODcwMDQ2MjVBRjhBMTgwMDBFMUFCRiAvKiBwYXNfcHRyX2hhc2hfbWFwLmggKi8sCiAJCQkJ
MEZDNDBBQzMyNDUxNDk5MDAwODc2REEwIC8qIHBhc19wdHJfaGFzaF9zZXQuaCAqLywKQEAgLTIx
MTIsNiArMjE0OCw3IEBACiAJCQkJMEY3NEI5M0UxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1Jh
bmRvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OUExOEY0OEQ0QTAwOTUwNzAyIC8qIERl
YWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDJCNDQzNzFFMjgzOUU3MDAxREE2RTkg
LyogRGVidWdIZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0UyQUU2MjI3Njk5MjgzMDBEMDJC
QkMgLyogcGFzX29iamVjdF9saXZlbmVzc19raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdF
QjgzRDFGOTU0MUIwMDBGMUFCQ0IgLyogRGVmZXJyZWREZWNvbW1pdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY3RUI4NUExRjk1NUExMTAwRjFBQkNCIC8qIERlZmVycmVkRGVjb21taXRJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjgzOTFGOTU0MUIwMDBGMUFCQ0IgLyogRGVmZXJy
ZWRUcmlnZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTIyMDAsNiArMjIzNyw3IEBACiAJCQkJMEZD
NDA5RDcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDA5Q0QyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2tp
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE0MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDRTJBRTY0Mjc2OTkyODMw
MEQwMkJCQyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEEwMDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRv
cl9jb3VudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzU0OTgyMjQ4Njk3NDAwMDJBNEM3RCAv
KiBwYXNfYWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlFMzI0NTE0
OTY0MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjIxMCw2ICsyMjQ4LDcgQEAKIAkJCQkwRjg3RkZFMjI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDA5RkMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlENDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2lj
X2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDRTJBRTVEMjc2OTky
ODMwMEQwMkJCQyAvKiBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGODcwMDAyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
a2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkNFMkFFMzIyNzU5NkRFQjAwRDAyQkJDIC8qIHBh
c19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEEwQjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jp
dGZpZWxkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjIzLDYgKzIyNjIsNyBAQAogCQkJ
CTBGODdGRkZCMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGODdGRkVCMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDAwOTI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0UyQUU2
MTI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX2xpbmVfbWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNUZFN0JFMjVCNjIwNTkwMDE4NTlGQyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQuZGVmIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRjcyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRUQy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjI0NCw2ICsyMjg0LDcgQEAKIAkJCQkwRjc1NDk4MzI0ODY5NzQyMDAyQTRD
N0QgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGODdGRkRGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdFMDI1QjYy
MTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDRTJBRTVFMjc2OTkyODMwMEQwMkJCQyAvKiBw
YXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0U3MjVC
NjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2Ns
YXNzX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RTgyNUI2MjEwRDAwMTg1OUZDIC8q
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNUZFN0RGMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3Np
emVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLywKQEAgLTIyODEsNiArMjMyMiw3IEBACiAJCQkJ
MEZDNDBBMTcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdFRTI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2Nv
bXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MDlDNzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkNFMkFFNUIyNzY5OTI4MzAwRDAyQkJDIC8qIGxpbmVyZWZf
aGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjUyNDUxNDk2NDAwODc2REEwIC8qIHBh
c19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQw
OUYwMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwQTA5MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9zdW1t
YXJ5X29iamVjdF9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjMzMCw2ICsyMzcyLDcg
QEAKIAkJCQkwRkM0MEIxMzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ZyZWVfcmFuZ2Vfa2luZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQTYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mdWxs
X2FsbG9jX2JpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjI0MjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJD
RTJBRTVGMjc2OTkyODMwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCMTkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19nZW5lcmljX2xhcmdl
X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNzEyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJC
QzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2dldF9oZWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTIz
NDcsNiArMjM5MCw3IEBACiAJCQkJMEZDNDBCNzUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFw
X2Zvcl9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkI0MjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI4MDI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNFMkFF
NjAyNzY5OTI4MzAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEI1NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfbG9jay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBCOTUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwX3BhZ2Vf
cHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjQzMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLApAQCAtMjM5Niw2ICsyNDQwLDcgQEAKIAkJ
CQkwRkM0MEI1QTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21pbl9oZWFwLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEI0RTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21vbm90b25pY190aW1lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJBRDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX211dGF0
aW9uX2NvdW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0UyQUU2NTI3Njk5MjgzMDBEMDJCQkMg
LyogbGluZXJlZl9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNkIyNUFG
OEExQjAwMEUxQUJGIC8qIHBhc19vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
NzAwN0EyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGODcwMDdEMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNjMyLDYgKzI2NzcsNyBAQAogCQkJCTY1OTlDNUNDMUVDM0YxNTkw
MEEyRjdCQiAvKiBBdmFpbGFibGVNZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1MTY3
NzQxRkFENjg1QzAwODIzNkE4IC8qIGJtYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4
QTgxMzYyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMkNFMkFFNjMyNzY5OTI4MzAwRDAyQkJDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21h
bGxvY19hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGOEE4MTJDMjVGODNFMjUwMDc5
MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkyQzExRTg5
NjI3MjhERTI3MDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmMgaW4gU291cmNlcyAqLywKIAkJCQkx
NEYyNzFDNDE4RUEzOTdCMDA4QzE1MkYgLyogQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
NjU5LDYgKzI3MDUsNyBAQAogCQkJCUUzRjI0NDA0MjI1RDJDNzYwMEEwRTBDMyAvKiBJc29TaGFy
ZWRQYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGN0VCODM2MUY5NTQxQjAwMEYxQUJDQiAv
KiBJc29UTFMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3RUI4MzIxRjk1NDFCMDAwRjFBQkNC
IC8qIElzb1RMU0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDRTJBRTVBMjc2OTkyODMw
MEQwMkJCQyAvKiBsaW5lcmVmX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGN0VCODNGMUY5
NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1
MTkzRjIyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RjUxOTNGMTI2NkM0MkFEMDA0ODNBMkMgLyogaml0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAq
LywKQEAgLTI2ODcsNiArMjczNCw3IEBACiAJCQkJMEY4N0ZGRkUyNUFGODk3QzAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfdmlldy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBBMTEyNDUxNDk2NDAw
ODc2REEwIC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkM0MDlDRTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlk
ZXIuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDRTJBRTVDMjc2OTkyODMwMEQwMkJCQyAvKiBsaW5l
cmVmX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEEwODI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2NvYWxpZ24uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDAwMjVBRjg5
N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQw
OUZBMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmMg
aW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy8uZ2l0aWdub3JlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy8uZ2l0aWdub3JlCShyZXZpc2lvbiAy
ODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvLmdpdGlnbm9yZQkod29ya2luZyBjb3B5
KQpAQCAtNCwzICs0LDQgQEAKIGJ1aWxkCiBidWlsZC0qCiAqfgorLnZzY29kZQpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBh
cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NDgsNiArNTQ4
LDkgQEAKIAkJMEZGOEQ2MjcyMkMwNEE3NzAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmQuZGVmIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZGOEQ2MjYyMkMwNEE2RDAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmQuZGVmICovOyB9OwogCQkwRkY4RDYyOTIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkY4RDYyODIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9pbmxpbmVzLmggKi87IH07CiAJCTBGRkZENTE1MjU2QjBGQkQwMDFFQjk0QyAvKiBwYXNf
ZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRkZENTE0MjU2QjBGQkMwMDFFQjk0QyAvKiBwYXNfZGVhbGxvY2F0aW9uX21v
ZGUuaCAqLzsgfTsKKwkJMkIyQTU4OTkyNzQyRDgwMzAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJCMkE1ODk3Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFi
aWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggKi87IH07CisJCTJCMkE1ODlBMjc0MkQ4
MDMwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQjJBNTg5ODI3
NDJEODAyMDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRv
ci5jICovOyB9OworCQkyQjJBNTg5QzI3NDJEODE1MDA1RUUwN0MgLyogUEdNVGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkIyQTU4OUIyNzQy
RDgxNTAwNUVFMDdDIC8qIFBHTVRlc3RzLmNwcCAqLzsgfTsKIAkJMkMxMUU4OEUyNzI4QTc4MzAw
MjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkMxMUU4OEMyNzI4QTc4MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5o
ICovOyB9OwogCQkyQzExRTg4RjI3MjhBNzgzMDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg4RDI3
MjhBNzgzMDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgKi87IH07CiAJCTJDMTFFODkxMjcy
OEE4OTMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMTFFODkwMjcyOEE4OTMwMDIxNjJEMCAvKiBibWFsbG9j
X3R5cGUuYyAqLzsgfTsKQEAgLTU2OSw2ICs1NzIsMTggQEAKIAkJMkM4NURDNDEyNzEyOEYwRjAw
MzY3OTA1IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzg1REM0MDI3MTI4RjBGMDAzNjc5MDUgLyog
cGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCAqLzsgfTsKIAkJMkM5MUU1NTAyNzE4REE5QTAw
RDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzkxRTU0RjI3MThEQTlBMDBENjdGRjkgLyogcGFzX3Np
emVfbG9va3VwX21vZGUuaCAqLzsgfTsKIAkJMkNFMkFFMzUyNzVBOTUzRTAwRDAyQkJDIC8qIEJp
dGZpdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDRTJBRTM0Mjc1QTk1M0UwMEQwMkJCQyAvKiBCaXRmaXRUZXN0cy5jcHAgKi87IH07CisJ
CTJDRTJBRTQxMjc2N0MwNTgwMEQwMkJCQyAvKiBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDRTJBRTM2Mjc2
N0MwNTgwMEQwMkJCQyAvKiBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaCAqLzsgfTsKKwkJMkNF
MkFFNDIyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDRTJBRTM3Mjc2N0MwNTgwMEQw
MkJCQyAvKiBsaW5lcmVmX2hlYXBfY29uZmlnLmggKi87IH07CisJCTJDRTJBRTQzMjc2N0MwNTgw
MEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFMzgyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVy
ZWZfaGVhcF9pbm5hcmRzLmggKi87IH07CisJCTJDRTJBRTQ0Mjc2N0MwNTgwMEQwMkJCQyAvKiBs
aW5lcmVmX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQ0UyQUUzOTI3NjdDMDU4MDBEMDJCQkMgLyogbGluZXJlZl9oZWFwX2NvbmZp
Zy5jICovOyB9OworCQkyQ0UyQUU0NTI3NjdDMDU4MDBEMDJCQkMgLyogbGluZXJlZl9oZWFwX2lu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
RTJBRTNBMjc2N0MwNTgwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfaW5saW5lcy5oICovOyB9Owor
CQkyQ0UyQUU0NjI3NjdDMDU4MDBEMDJCQkMgLyogbGluZXJlZl9oZWFwLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUzQjI3NjdDMDU4MDBEMDJC
QkMgLyogbGluZXJlZl9oZWFwLmMgKi87IH07CisJCTJDRTJBRTQ3Mjc2N0MwNTgwMEQwMkJCQyAv
KiBsaW5lcmVmX2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJDRTJBRTNDMjc2N0MwNTgwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXAuaCAqLzsgfTsK
KwkJMkNFMkFFNDgyNzY3QzA1ODAwRDAyQkJDIC8qIHBhc19saW5lX21ldGFkYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUzRDI3NjdDMDU4
MDBEMDJCQkMgLyogcGFzX2xpbmVfbWV0YWRhdGEuaCAqLzsgfTsKKwkJMkNFMkFFNDkyNzY3QzA1
ODAwRDAyQkJDIC8qIHBhc19wbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFM0UyNzY3QzA1ODAwRDAyQkJDIC8qIHBhc19wbGF0Zm9y
bS5oICovOyB9OworCQkyQ0UyQUU0QTI3NjdDMDU4MDBEMDJCQkMgLyogcGFzX2NvbXBhY3RfdGFn
Z2VkX3ZvaWRfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQ0UyQUUzRjI3NjdDMDU4MDBEMDJCQkMgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRf
cHRyLmggKi87IH07CisJCTJDRTJBRTRCMjc2N0MwNTgwMEQwMkJCQyAvKiBwYXNfbG9jYWxfYWxs
b2NhdG9yX2J1bXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDRTJBRTQwMjc2N0MwNTgwMEQwMkJCQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAu
aCAqLzsgfTsKKwkJMkNFMkFFNEQyNzY3QzA3MjAwRDAyQkJDIC8qIExpbmVBbGxvY2F0aW9uVGVz
dHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNF
MkFFNEMyNzY3QzA3MjAwRDAyQkJDIC8qIExpbmVBbGxvY2F0aW9uVGVzdHMuY3BwICovOyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMjMzLDYgKzEyNDgsOSBAQAogCQkwRkY4RDYyNjIyQzA0
QTZEMDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZC5kZWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjhENjI4MjJDMTY2RjUwMEVD
NzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRkZENTE0MjU2QjBGQkMwMDFFQjk0QyAvKiBwYXNfZGVhbGxv
Y2F0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2RlYWxs
b2NhdGlvbl9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJCMkE1ODk3Mjc0
MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wcm9iYWJpbGlzdGljX2d1
YXJkX21hbGxvY19hbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkIy
QTU4OTgyNzQyRDgwMjAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19h
bGxvY2F0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3Byb2JhYmls
aXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyQjJBNTg5QjI3NDJEODE1MDA1RUUwN0MgLyogUEdNVGVzdHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUEdNVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyQzExRTg4QzI3MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGJtYWxsb2NfdHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyQzExRTg4RDI3MjhBNzgzMDAyMTYyRDAgLyogcGFzX3Np
bXBsZV90eXBlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zaW1wbGVf
dHlwZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzExRTg5MDI3MjhBODkzMDAy
MTYyRDAgLyogYm1hbGxvY190eXBlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9
IGJtYWxsb2NfdHlwZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1NCw2ICsx
MjcyLDE4IEBACiAJCTJDODVEQzQwMjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRl
X2ludHJpbnNpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzkxRTU0
RjI3MThEQTlBMDBENjdGRjkgLyogcGFzX3NpemVfbG9va3VwX21vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NpemVfbG9va3VwX21vZGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkNFMkFFMzQyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3Rz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJpdGZpdFRlc3RzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNFMkFFMzYyNzY3QzA1ODAwRDAyQkJD
IC8qIHBhc19vYmplY3RfbGl2ZW5lc3Nfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkNFMkFFMzcyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9jb25maWcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gbGluZXJlZl9oZWFwX2NvbmZpZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0UyQUUzODI3NjdDMDU4MDBEMDJCQkMg
LyogbGluZXJlZl9oZWFwX2lubmFyZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gbGluZXJlZl9oZWFwX2lubmFyZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkNFMkFFMzkyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9jb25maWcuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gbGluZXJlZl9oZWFwX2NvbmZpZy5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyQ0UyQUUzQTI3NjdDMDU4MDBEMDJCQkMgLyogbGluZXJl
Zl9oZWFwX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gbGluZXJl
Zl9oZWFwX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNFMkFFM0Iy
NzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBsaW5lcmVmX2hlYXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkNFMkFFM0MyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBsaW5lcmVmX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkNFMkFFM0QyNzY3QzA1ODAwRDAyQkJDIC8qIHBhc19saW5lX21ldGFkYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19saW5lX21ldGFkYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDRTJBRTNFMjc2N0MwNTgwMEQwMkJCQyAvKiBw
YXNfcGxhdGZvcm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BsYXRm
b3JtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDRTJBRTNGMjc2N0MwNTgwMEQw
MkJCQyAvKiBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJDRTJBRTQwMjc2N0MwNTgwMEQwMkJCQyAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX2J1bXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9idW1wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDRTJB
RTRDMjc2N0MwNzIwMEQwMkJCQyAvKiBMaW5lQWxsb2NhdGlvblRlc3RzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmVBbGxvY2F0aW9uVGVzdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAq
LwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMzQ4
LDYgKzEzNzgsNyBAQAogCQkJCTBGREVBNDVEMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZl
Y3RvclRlc3RzLmNwcCAqLywKIAkJCQkyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0
VGVzdHMuY3BwICovLAogCQkJCTBGNTMxODEwMjJDOTU0RUQwMDNGN0I2QSAvKiBCaXR2ZWN0b3JU
ZXN0cy5jcHAgKi8sCisJCQkJMkIyQTU4OUIyNzQyRDgxNTAwNUVFMDdDIC8qIFBHTVRlc3RzLmNw
cCAqLywKIAkJCQkwRjMxQTY2NzIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3Rz
LmNwcCAqLywKIAkJCQkwRkM2ODIzNjIxMjlENEVCMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNw
cCAqLywKIAkJCQkyQzQ4MTMyQzI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJsZU1lbW9yeVRl
c3RzLmNwcCAqLywKQEAgLTEzNjEsMTAgKzEzOTIsMTIgQEAKIAkJCQkwRkQ0OEI2NjIzQjU4OTkx
MDAyNkM0NkQgLyogSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCAqLywKIAkJCQkw
RjVCNjA5MzIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5VGVzdHMuY3Bw
ICovLAogCQkJCTBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwICov
LAorCQkJCTJCOEJDQUM2MjczOUE0NzkwMEIxQTQ2RiAvKiBQR01UZXN0cy5jcHAgKi8sCiAJCQkJ
MEZDNjQxOTAyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBUZXN0cy5jcHAgKi8sCiAJ
CQkJMEZFQjY2NjYyMzFDODdCQzAwOUMwMDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xEdW1wLmNwcCAq
LywKIAkJCQkwRkVCNjY2NzIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbER1bXAu
aCAqLywKIAkJCQkwRkVCNjY2OTIzMURBODZGMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbFRl
c3RzLmNwcCAqLywKKwkJCQkyQ0UyQUU0QzI3NjdDMDcyMDBEMDJCQkMgLyogTGluZUFsbG9jYXRp
b25UZXN0cy5jcHAgKi8sCiAJCQkJMEZFQTQ1QkUyMzZDREFFRDAwQjVBMzc1IC8qIExvY2tGcmVl
UmVhZFB0clB0ckhhc2h0YWJsZVRlc3RzLmNwcCAqLywKIAkJCQkwRkQyMkQwNzIyQ0Q4QTc1MDBC
MjE4NDEgLyogTWluSGVhcFRlc3RzLmNwcCAqLywKIAkJCQkwRjVFNDgzOTIzRDY5RjYxMDA0NkRB
NUMgLyogUmFjZVRlc3RzLmNwcCAqLywKQEAgLTE0MDIsNiArMTQzNSw4IEBACiAJCQkJMEY1RkU3
QTMyNUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjUxNkVF
NjI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGNTI5RERF
MjQ1NTQ2MEMwMDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCAqLywKKwkJCQkyQjJBNTg5ODI3NDJE
ODAyMDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5j
ICovLAorCQkJCTJCMkE1ODk3Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19n
dWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZFN0VFNzQyMjlGMDEwRjAwNEY0MTY2
IC8qIGlzb19oZWFwLmMgKi8sCiAJCQkJMEZFN0VFNzUyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19o
ZWFwLmggKi8sCiAJCQkJMEY1RTVDRTgyM0JFRjM1RjAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBf
Y29uZmlnLmMgKi8sCkBAIC0xNDEzLDYgKzE0NDgsMTIgQEAKIAkJCQkwRjU5QTM5MDI2NjdGMDBF
MDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY1OUEzOUQyNjY4NDcwRTAw
QTM4NjU3IC8qIGppdF9oZWFwLmMgKi8sCiAJCQkJMEY1OUEzOEYyNjY3RjAwRTAwQTM4NjU3IC8q
IGppdF9oZWFwLmggKi8sCisJCQkJMkNFMkFFMzkyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZf
aGVhcF9jb25maWcuYyAqLywKKwkJCQkyQ0UyQUUzNzI3NjdDMDU4MDBEMDJCQkMgLyogbGluZXJl
Zl9oZWFwX2NvbmZpZy5oICovLAorCQkJCTJDRTJBRTNBMjc2N0MwNTgwMEQwMkJCQyAvKiBsaW5l
cmVmX2hlYXBfaW5saW5lcy5oICovLAorCQkJCTJDRTJBRTM4Mjc2N0MwNTgwMEQwMkJCQyAvKiBs
aW5lcmVmX2hlYXBfaW5uYXJkcy5oICovLAorCQkJCTJDRTJBRTNCMjc2N0MwNTgwMEQwMkJCQyAv
KiBsaW5lcmVmX2hlYXAuYyAqLywKKwkJCQkyQ0UyQUUzQzI3NjdDMDU4MDBEMDJCQkMgLyogbGlu
ZXJlZl9oZWFwLmggKi8sCiAJCQkJMEZCRDY3RDcyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWdu
MzJfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkJENjdEOTI1QkQzNjNBMDBBNDkwRDIgLyogbWlu
YWxpZ24zMl9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGQkQ2N0Q2MjVCRDM2M0EwMEE0OTBEMiAv
KiBtaW5hbGlnbjMyX2hlYXAuYyAqLywKQEAgLTE1MzMsNiArMTU3NCw3IEBACiAJCQkJMEY5QTFD
RDMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNl
X2NvdW50X3B0ci5oICovLAogCQkJCTBGNkQ1NjQ0MjNDQUExQjkwMEY0MERCQiAvKiBwYXNfY29t
cGFjdF90YWdnZWRfcHRyLmggKi8sCiAJCQkJMEY2RDU2NzgyM0NENzA1OTAwRjQwREJCIC8qIHBh
c19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCAqLywKKwkJCQkyQ0UyQUUzRjI3NjdDMDU4
MDBEMDJCQkMgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyLmggKi8sCiAJCQkJMEY2RDU2
NEYyM0NCRDE5QjAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJ
CTBGQzRFQzM1MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9j
YWxsYmFja3MuYyAqLywKIAkJCQkwRkM0RUMzMDIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX2NvbXB1
dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCkBAIC0xNjc1LDggKzE3MTcsMTAgQEAK
IAkJCQkwRkNGQTQ5ODIzODM1MkVCMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5o
ICovLAogCQkJCTBGNkQ1NDc1MjNDNTczRTAwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9m
cmVlX2hlYXAuYyAqLywKIAkJCQkwRjZENTQ3MjIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2xhcmdl
X3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCisJCQkJMkNFMkFFM0QyNzY3QzA1ODAwRDAyQkJDIC8q
IHBhc19saW5lX21ldGFkYXRhLmggKi8sCiAJCQkJMEY4QTgwMjcyNUVDNTg4ODAwNzkwQjRBIC8q
IHBhc19saW5lX3dvcmRfY29uZmlnLmggKi8sCiAJCQkJMEYzMUE2NDMyM0UzNTA5RTAwMkMwQ0Ez
IC8qIHBhc19saXN0X2RpcmVjdGlvbi5oICovLAorCQkJCTJDRTJBRTQwMjc2N0MwNTgwMEQwMkJC
QyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAuaCAqLywKIAkJCQkwRkQ0OEIwMjIzQTlBQkIw
MDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oICovLAogCQkJCTBG
REJCMDc2MjJCODc3RkEwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCAq
LywKIAkJCQkwRjQ1RDVBNjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9r
aW5kLmggKi8sCkBAIC0xNzA1LDYgKzE3NDksNyBAQAogCQkJCTBGRDQ4QUZEMjNBOUFCQjAwMDI2
QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2OTIyQjA3QzIxMDA3
RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY5QTFENEEyNTVGMkNENzAw
QzhEMTFCIC8qIHBhc19vYmplY3Rfa2luZC5oICovLAorCQkJCTJDRTJBRTM2Mjc2N0MwNTgwMEQw
MkJCQyAvKiBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaCAqLywKIAkJCQkyQzM0RkZGNTI3NTcx
RDJGMDA1NTY1Q0IgLyogcGFzX3BhZ2VfYmFzZV9hbmRfa2luZC5oICovLAogCQkJCTBGOUExRDQy
MjU1QUY3MzIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJ
CQkJMEY5QTFDQUIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxz
X2lubGluZXMuaCAqLywKQEAgLTE3MzIsOSArMTc3NywxMiBAQAogCQkJCTBGRDIyQ0ZEMjJDQzAx
RDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAqLywKIAkJCQkwRjRGNjFDOTI1
QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgKi8s
CiAJCQkJMEY0RjYxQzgyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9u
X3BhZ2VfbGlzdC5oICovLAorCQkJCTJCOEJDQUMzMjczOUE0NTkwMEIxQTQ2RiAvKiBwYXNfcHJv
YmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgKi8sCisJCQkJMkI4QkNBQzIyNzM5
QTQ1OTAwQjFBNDZGIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3Iu
aCAqLywKIAkJCQkwRjZENTQ3MzIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX3BoeXNpY2FsX21lbW9y
eV9zeW5jaHJvbml6YXRpb25fc3R5bGUuaCAqLywKIAkJCQkwRkYyNDhGNzIyRkM5RURBMDA3NzIw
MkUgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5jICovLAogCQkJCTBGNzgwODg2
MjJGQTJFNDkwMEYzNzQ1MSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmggKi8s
CisJCQkJMkNFMkFFM0UyNzY3QzA1ODAwRDAyQkJDIC8qIHBhc19wbGF0Zm9ybS5oICovLAogCQkJ
CTBGREVBNTc4MjI4RTIzNDUwMDg1RTM0MCAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmMgKi8s
CiAJCQkJMEZERUE1NzcyMjhFMjM0NDAwODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYu
aCAqLywKIAkJCQkwRjlBMUNBRDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmlu
c2ljX2hlYXAuaCAqLywKQEAgLTIwMTgsNiArMjA2Niw3IEBACiAJCQkJMEZFN0VFMDMyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19iaXRmaWVsZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OUExRDA3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQwODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTJCMkE1ODk5Mjc0MkQ4MDMwMDVFRTA3
QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjlBMUQxRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0
b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMDIyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQxNDI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMDMzLDcgKzIwODIsOSBAQAogCQkJCTBGOUExRDAxMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFE
MjEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY5QTFDRUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMkNFMkFFNDUyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVh
cF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQ0NTI1NURCRTYxMDBDOEQxMUIg
LyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNFMkFF
NEEyNzY3QzA1ODAwRDAyQkJDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY5QTFENDEyNTVBRjI3OTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmll
d19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUwNDIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX2JpdHZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMDUyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTIw
NzQsNiArMjEyNSw3IEBACiAJCQkJMEY5QTFEMjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21w
YWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZE
NTY0NzIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjY2RDU0ODI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDRTJBRTRCMjc2N0Mw
NTgwMEQwMkJCQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMTQ4NzEzMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NzcyM0NDMTQxRTAw
RjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNkQ1NjY3MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLApAQCAtMjExMyw2ICsy
MTY1LDcgQEAKIAkJCQkwRjRGNjE4MTI1OUU3MzRGMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3Jf
aW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MTFDMjU5ODM4QjEwMDhCNEE4MiAv
KiBwYXNfZW51bWVyYXRvcl9yZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTkzMjU0MjJF
RDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guaCBpbiBIZWFkZXJzICovLAorCQkJCTJDRTJBRTQ4
Mjc2N0MwNTgwMEQwMkJCQyAvKiBwYXNfbGluZV9tZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZENDhCNUIyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0
ZV9tZW1vX3RhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQzQ4MTMyQjI3M0YzNDFBMDA2Q0FC
NTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUw
QzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2V4dGVuZGVkX2djZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMTUzLDYgKzIyMDYsNyBAQAogCQkJCTBGRTdFRTE1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
aGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODc5MkIzMjM4QTFEMEMwMEFFRTdGMSAv
KiBwYXNfaGVhcF9yZWZfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMTQyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCBpbiBIZWFkZXJzICovLAorCQkJCTJD
RTJBRTQyMjc2N0MwNTgwMEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjMyOUEyMzIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2hlYXBfcnVudGltZV9j
b25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUI2NjY1MjMxQjJBNTcwMDlDMDAxQiAvKiBw
YXNfaGVhcF9zdW1tYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTQ3RTIzQzU3M0UxMDBG
NDBEQkIgLyogcGFzX2hlYXBfdGFibGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjE4OCw2ICsyMjQy
LDcgQEAKIAkJCQkwRjQ1RDVBQjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNDg3MTIyNjlCNzUxODAw
Njg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE0
ODcxRjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkNFMkFFNDMyNzY3QzA1ODAwRDAyQkJDIC8qIGxpbmVyZWZfaGVhcF9p
bm5hcmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUyMTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2xvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUE0NUJEMjM2Q0Q1QUMwMEI1QTM3NSAv
KiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGOUU5NDU5MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmggaW4gSGVhZGVycyAqLywK
QEAgLTIyMDIsNiArMjI1Nyw3IEBACiAJCQkJMEY5QTFENDMyNTVBRjczMjAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDFG
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY5QTFDRjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29u
ZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDRTJBRTQxMjc2N0MwNTgw
MEQwMkJCQyAvKiBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGOUExQ0Y4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGOUExRDEyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9jb25m
aWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMjUyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyMzMsNiAr
MjI4OSw3IEBACiAJCQkJMEY3ODA4OTAyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19yYW5nZV9taW5f
aGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkMzNEZGRkIyNzU3MUQyRjAwNTU2NUNCIC8qIHBh
c19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU3RjIyQTFBNTgwMDA0RjQxNjYgLyogcGFzX3Jl
YWxsb2NhdGVfZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0UyQUU0NzI3NjdDMDU4
MDBEMDJCQkMgLyogbGluZXJlZl9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU3RDIy
QTFBMzFDMDA0RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkYwOEYzMzIyQTU4RjEyMDAzODY1NzUgLyogcGFzX3JlZF9ibGFj
a190cmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkE1RTQ1NzI0OTJENUJBMDBDRTk2MkEgLyog
cGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
Mjg3LDYgKzIzNDQsNyBAQAogCQkJCTBGRTdFRTJEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2xv
d19wYXRoX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTJDMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfc2xvd19wYXRoX21vZGVfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZE
NTQ4MDIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkNFMkFFNDkyNzY3QzA1ODAwRDAyQkJDIC8qIHBhc19wbGF0Zm9ybS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMzIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zbnBy
aW50Zi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNEVDM0QyMzRBOTFFMzAwQjcxMEEzIC8qIHBh
c19zdGF0dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTMzMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKQEAgLTI1OTEsOCArMjY0OSwx
MCBAQAogCQkJCTBGNTE5M0U3MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDNjQxOTEyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhl
YXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVCNjY2ODIzMUM4N0JDMDA5QzAwMUIg
LyogTGFyZ2VTaGFyaW5nUG9vbER1bXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNFMkFFNEQy
NzY3QzA3MjAwRDAyQkJDIC8qIExpbmVBbGxvY2F0aW9uVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQjY2NkEyMzFEQTg2RjAwOUMwMDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xUZXN0cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBNDVCRjIzNkNEQUVEMDBCNUEzNzUgLyogTG9ja0Zy
ZWVSZWFkUHRyUHRySGFzaHRhYmxlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkIyQTU4
OUMyNzQyRDgxNTAwNUVFMDdDIC8qIFBHTVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RDIyRDA4MjJDRDhBNzUwMEIyMTg0MSAvKiBNaW5IZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY1RTQ4M0EyM0Q2OUY2MTAwNDZEQTVDIC8qIFJhY2VUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkYwOEYzNjIyQTU5REIzMDAzODY1NzUgLyogUmVkQmxhY2tUcmVlVGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjI3LDYgKzI2ODcsNyBAQAogCQkJCTBGRDQ4QjQ2MjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjQ3QzMxRTIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25f
Y2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI2MzIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMkIyQTU4OUEy
NzQyRDgwMzAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0
b3IuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjNGMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5QTM5QzI2
Njg0NEEzMDBBMzg2NTcgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5QTFEMTAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKQEAgLTI2NDAsNiArMjcwMSw3IEBACiAJCQkJ
MEY1QjYwODMyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3Zp
ZGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURCOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X2NvYWxpZ24uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGOUExQ0YwMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfY29tbWl0X3NwYW4uYyBpbiBTb3VyY2VzICovLAorCQkJCTJDRTJBRTQ2Mjc2N0MwNTgw
MEQwMkJCQyAvKiBsaW5lcmVmX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNkQ1NjRBMjND
QUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291
cmNlcyAqLywKIAkJCQkyQzQ4MTMyNzI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhw
ZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNkQ1NjZFMjNDQkQxOUQwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmMgaW4gU291cmNlcyAqLywKQEAg
LTI2NTcsNiArMjcxOSw3IEBACiAJCQkJMkMzNDAwMDAyNzU4MTVEMDAwNTU2NUNCIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNEY2MUI2MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9wYWdlX21hbGxvYy5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RjYxQjQyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVt
ZXJhYmxlX3JhbmdlX2xpc3QuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDRTJBRTQ0Mjc2N0MwNTgw
MEQwMkJCQyAvKiBsaW5lcmVmX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjRG
NjE3NzI1OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGNEY2MUIyMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRl
X2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RjYx
MTAyNTk3RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYyBpbiBTb3Vy
Y2VzICovLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19o
ZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw4IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICNkZWZpbmUgQk1BTExP
Q19NSU5BTElHTl9TSElGVCAoKHNpemVfdCk0KQogI2RlZmluZSBCTUFMTE9DX01JTkFMSUdOX1NJ
WkUgKChzaXplX3QpMSA8PCBCTUFMTE9DX01JTkFMSUdOX1NISUZUKQogCisjZGVmaW5lIEJNQUxM
T0NfTElORV9TSElGVCA4dQorCiBQQVNfQVBJIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZpZ19hY3Rp
dmF0ZSh2b2lkKTsKIAogI2RlZmluZSBCTUFMTE9DX0hFQVBfQ09ORklHIFBBU19CQVNJQ19IRUFQ
X0NPTkZJRyggXApAQCAtNTYsNiArNTgsNyBAQCBQQVNfQVBJIHZvaWQgYm1hbGxvY19oZWFwX2Nv
bmZpZ19hY3RpdmF0CiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0
eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwKICAgICAuc21hbGxfc2hh
cmVkX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9u
ID0gZmFsc2UsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93
b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbGluZV9zaGlmdCA9IEJN
QUxMT0NfTElORV9TSElGVCwgXAogICAgIC5lbmFibGVfdmlld19jYWNoZSA9IHRydWUsIFwKICAg
ICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0X21pbl9hbGln
bl9zaGlmdCA9IEJNQUxMT0NfTUlOQUxJR05fU0hJRlQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5oCShyZXZp
c2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRf
aGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCBQQVNfQVBJIHZv
aWQgaG90Yml0X2hlYXBfY29uZmlnX2FjdGl2YXRlCiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdy
ZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUs
IFwKICAgICAuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2li
aWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9y
ZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRl
ZF9saW5lX3NoaWZ0ID0gMCwgXAogICAgIC5lbmFibGVfdmlld19jYWNoZSA9IHRydWUsIFwKICAg
ICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0X21pbl9hbGln
bl9zaGlmdCA9IEhPVEJJVF9NSU5BTElHTl9TSElGVCwgXApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4
NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZp
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsK
ICAgICAuc21hbGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2li
aWxpdHlfb3B0aW1pemF0aW9uID0gZmFsc2UsIFwKICAgICAuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0
ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gZmFsc2UsIFwK
ICAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FS
TTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbGluZV9zaGlmdCA9IDAsIFwKICAgICAuZW5h
YmxlX3ZpZXdfY2FjaGUgPSBmYWxzZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwg
XAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0ID0gSVNPX01JTkFMSUdOX1NISUZU
LCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFw
X2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2lzb190ZXN0X2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU3LDYgKzU3LDcgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9leGNs
dXNpdmVfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRp
b24gPSBmYWxzZSwgXAogICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlf
d29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAogICAgIC5zbWFsbF9zZWdy
ZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBmYWxzZSwgXAorICAgIC5zbWFsbF9z
ZWdyZWdhdGVkX2xpbmVfc2hpZnQgPSAwLCBcCiAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gZmFs
c2UsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0
X21pbl9hbGlnbl9zaGlmdCA9IElTT19URVNUX01JTkFMSUdOX1NISUZULCBcCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwko
cmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0
X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTE1MiwxMyArMTUyLDE0IEBAIHZvaWQq
IGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKIH0KIAogcGFzX3BhZ2VfYmFzZSogaml0
X3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIoCi0gICAgdm9pZCogYm91bmRhcnksIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQorICAgIHZvaWQqIGJvdW5kYXJ5
LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9t
b2RlKQogewogICAgIHBhc19wYWdlX2Jhc2UqIHJlc3VsdDsKKyAgICBQQVNfQVNTRVJUKGtpbmQg
PT0gcGFzX3NtYWxsX2JpdGZpdF9wYWdlX2tpbmQpOwogICAgIHBhc19oZWFwX2xvY2tfbG9ja19j
b25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgIHJlc3VsdCA9IHBhc19wYWdl
X2hlYWRlcl90YWJsZV9hZGQoJmppdF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKSVRfU01BTExfUEFHRV9TSVpF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX0hFQVBfQ09ORklH
LnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5wYWdlX2hlYWRlcl9zaXplLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJ
VF9IRUFQX0NPTkZJRy5zbWFsbF9iaXRmaXRfY29uZmlnKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5KTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19j
b25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgIHJldHVybiByZXN1bHQ7CkBA
IC0xODQsMTMgKzE4NSwxNCBAQCB2b2lkKiBqaXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdl
KAogfQogCiBwYXNfcGFnZV9iYXNlKiBqaXRfbWVkaXVtX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFk
ZXIoCi0gICAgdm9pZCogYm91bmRhcnksIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9s
ZF9tb2RlKQorICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2Nr
X2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIHBhc19wYWdlX2Jhc2UqIHJl
c3VsdDsKKyAgICBQQVNfQVNTRVJUKGtpbmQgPT0gcGFzX21lZGl1bV9iaXRmaXRfcGFnZV9raW5k
KTsKICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9t
b2RlKTsKICAgICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKCZqaXRfbWVkaXVt
X2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEpJVF9NRURJVU1fUEFHRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSklUX0hFQVBfQ09ORklHLm1lZGl1bV9iaXRmaXRfY29uZmlnLmJhc2Uu
cGFnZV9oZWFkZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19iaXRmaXRfcGFnZV9oZWFkZXJfc2l6ZShKSVRfSEVBUF9DT05GSUcubWVkaXVtX2JpdGZp
dF9jb25maWcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRh
cnkpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODcwNTkp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAko
d29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogaml0X3NtYWxsCiBQQVNfQVBJIHZvaWQqIGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVf
cGFnZSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5
X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9z
bWFsbF9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVhZGVyKAotICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgdm9pZCogYm91bmRhcnks
IHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGUpOwogUEFTX0FQSSB2b2lkIGppdF9zbWFsbF9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcigK
ICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CiAKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19wYWdlX2Jhc2UqIAogUEFTX0FQSSB2b2lkKiBqaXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9w
YWdlKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlf
dHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKTsKIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X21l
ZGl1bV9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVhZGVyKAotICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgdm9pZCogYm91bmRhcnks
IHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGUpOwogUEFTX0FQSSB2b2lkIGppdF9tZWRpdW1fYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIo
CiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpOwogCkBAIC0xMjQsMjIgKzEyNCwxOCBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lB
TElaQVRJT05fREVDTEFSQVRJCiAgICAgICAgICAgICAubWluX2FsaWduX3NoaWZ0ID0gSklUXyAj
IyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfTUlOX0FMSUdOX1NISUZULCBcCiAgICAgICAgICAgICAu
cGFnZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfUEFHRV9TSVpFLCBcCiAg
ICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0gSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBf
R1JBTlVMRV9TSVpFLCBcCi0gICAgICAgICAgICAucGFnZV9oZWFkZXJfc2l6ZSA9IFBBU19CSVRG
SVRfUEFHRV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAgICAgIEpJVF8gIyMgdmFyaWFudF91
cHBlcmNhc2UgIyMgX1BBR0VfU0laRSwgXAotICAgICAgICAgICAgICAgIEpJVF8gIyMgdmFyaWFu
dF91cHBlcmNhc2UgIyMgX0dSQU5VTEVfU0laRSwgXAotICAgICAgICAgICAgICAgIEpJVF8gIyMg
dmFyaWFudF91cHBlcmNhc2UgIyMgX01JTl9BTElHTl9TSElGVCksIFwKICAgICAgICAgICAgIC5t
YXhfb2JqZWN0X3NpemUgPSBcCiAgICAgICAgICAgICAgICAgUEFTX0JJVEZJVF9NQVhfRlJFRV9N
QVhfVkFMSUQgPDwgSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfTUlOX0FMSUdOX1NISUZU
LCBcCiAgICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gaml0XyAjIyB2YXJp
YW50X2xvd2VyY2FzZSAjIyBfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSwgXAogICAg
ICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9IGppdF8gIyMgdmFyaWFudF9sb3dl
cmNhc2UgIyMgX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAg
IC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gaml0X3BhZ2VfaGVhZGVyX2Zvcl9i
b3VuZGFyeV9yZW1vdGUsIFwKLSAgICAgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNl
dCA9IDAsIFwKLSAgICAgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUgPSBKSVRfICMj
IHZhcmlhbnRfdXBwZXJjYXNlICMjIF9QQUdFX1NJWkUsIFwKICAgICAgICAgICAgIC5jcmVhdGVf
cGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlhbnRfbG93ZXJjYXNlICMjIF9iaXRmaXRfY3JlYXRl
X3BhZ2VfaGVhZGVyLCBcCiAgICAgICAgICAgICAuZGVzdHJveV9wYWdlX2hlYWRlciA9IGppdF8g
IyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAg
ICAgICAgfSwgXAogICAgICAgICAudmFyaWFudCA9IHBhc18gIyMgdmFyaWFudF9sb3dlcmNhc2Ug
IyMgX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LCBcCiAgICAgICAgIC5raW5kID0gcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kX2ppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZp
dCwgXAorICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgPSAwLCBcCisgICAgICAg
IC5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUgPSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMj
IF9QQUdFX1NJWkUsIFwKICAgICAgICAgLnBhZ2VfYWxsb2NhdG9yID0gaml0XyAjIyB2YXJpYW50
X2xvd2VyY2FzZSAjIyBfYml0Zml0X2FsbG9jYXRlX3BhZ2UsIFwKICAgICAgICAgUEFTX0JJVEZJ
VF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMoaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAj
IyBfYml0Zml0X3BhZ2VfY29uZmlnKSBcCiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwLmMJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5B
QkxFRAorCisjaW5jbHVkZSAibGluZXJlZl9oZWFwLmgiCisKKyNpZiBQQVNfRU5BQkxFX0xJTkVS
RUYKKworI2luY2x1ZGUgImxpbmVyZWZfaGVhcF9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX2Rl
YWxsb2NhdGUuaCIKKworcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgbGluZXJlZl9jb21tb25f
cHJpbWl0aXZlX2hlYXBfc3VwcG9ydCA9CisgICAgUEFTX0lOVFJJTlNJQ19IRUFQX1NVUFBPUlRf
SU5JVElBTElaRVI7CisKK3Bhc19oZWFwIGxpbmVyZWZfY29tbW9uX3ByaW1pdGl2ZV9oZWFwID0K
KyAgICBQQVNfSU5UUklOU0lDX0hFQVBfSU5JVElBTElaRVIoCisgICAgICAgICZsaW5lcmVmX2Nv
bW1vbl9wcmltaXRpdmVfaGVhcCwKKyAgICAgICAgUEFTX1NJTVBMRV9UWVBFX0NSRUFURSgxLCAx
KSwKKyAgICAgICAgbGluZXJlZl9jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKKyAgICAg
ICAgTElORVJFRl9IRUFQX0NPTkZJRywKKyAgICAgICAgJmxpbmVyZWZfaW50cmluc2ljX3J1bnRp
bWVfY29uZmlnLmJhc2UpOworCitwYXNfYWxsb2NhdG9yX2NvdW50cyBsaW5lcmVmX2FsbG9jYXRv
cl9jb3VudHM7CisKK3ZvaWQqIGxpbmVyZWZfYWxsb2NhdGUoc2l6ZV90IHNpemUpCit7CisgICAg
cmV0dXJuIGxpbmVyZWZfYWxsb2NhdGVfaW5saW5lKHNpemUpOworfQorCit2b2lkKiBsaW5lcmVm
X3RyeV9hbGxvY2F0ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gbGluZXJlZl90cnlfYWxs
b2NhdGVfaW5saW5lKHNpemUpOworfQorCit2b2lkKiBsaW5lcmVmX3RyeV9hbGxvY2F0ZV93aXRo
X2FsaWdubWVudChzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4g
bGluZXJlZl90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHNpemUsIGFsaWdubWVu
dCk7Cit9CisKK3ZvaWQqIGxpbmVyZWZfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xkX3B0ciwgc2l6
ZV90IG5ld19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0
ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBsaW5lcmVmX3RyeV9yZWFsbG9j
YXRlX2lubGluZShvbGRfcHRyLCBuZXdfc2l6ZSwgZnJlZV9tb2RlKTsKK30KKwordm9pZCBsaW5l
cmVmX2RlYWxsb2NhdGUodm9pZCogcHRyKQoreworICAgIGxpbmVyZWZfZGVhbGxvY2F0ZV9pbmxp
bmUocHRyKTsKK30KKworI2VuZGlmIC8qIFBBU19FTkFCTEVfTElORVJFRiAqLworCisjZW5kaWYg
LyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2xpbmVyZWZfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2xpbmVyZWZfaGVhcC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBMSU5FUkVGX0hFQVBfSAorI2RlZmluZSBMSU5FUkVGX0hFQVBfSAorCisjaW5jbHVk
ZSAicGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmgiCisKKyNpZiBQQVNfRU5BQkxFX0xJTkVSRUYK
KworUEFTX0JFR0lOX0VYVEVSTl9DOworCitQQVNfQVBJIHZvaWQqIGxpbmVyZWZfYWxsb2NhdGUo
c2l6ZV90IHNpemUpOworUEFTX0FQSSB2b2lkKiBsaW5lcmVmX3RyeV9hbGxvY2F0ZShzaXplX3Qg
c2l6ZSk7CitQQVNfQVBJIHZvaWQqIGxpbmVyZWZfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50
KHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgYWxpZ25tZW50KTsKKworUEFTX0FQSSB2b2lkKiBsaW5lcmVmX3RyeV9y
ZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2Rl
KTsKKworUEFTX0FQSSB2b2lkKiBsaW5lcmVmX3JlYWxsb2NhdGUodm9pZCogb2xkX3B0ciwgc2l6
ZV90IG5ld19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxs
b2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSk7CisKK1BBU19BUEkgdm9pZCBsaW5lcmVmX2RlYWxs
b2NhdGUodm9pZCopOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0VOQUJM
RV9MSU5FUkVGICovCisKKyNlbmRpZiAvKiBMSU5FUkVGX0hFQVBfSCAqLworCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9saW5lcmVmX2hlYXBfY29uZmlnLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwX2Nv
bmZpZy5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2xpbmVyZWZfaGVhcF9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJw
YXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5jbHVkZSAibGluZXJlZl9o
ZWFwX2NvbmZpZy5oIgorCisjaWYgUEFTX0VOQUJMRV9MSU5FUkVGCisKKyNpbmNsdWRlICJsaW5l
cmVmX2hlYXBfaW5uYXJkcy5oIgorI2luY2x1ZGUgInBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19o
ZWFwLmgiCisjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCIKKworcGFz
X2hlYXBfY29uZmlnIGxpbmVyZWZfaGVhcF9jb25maWcgPSBMSU5FUkVGX0hFQVBfQ09ORklHOwor
CitQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCisgICAgbGluZXJlZiwgTElORVJF
RiwKKyAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlLAorICAgIC5pbnRyaW5z
aWNfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3Np
dmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CisKKyNlbmRpZiAvKiBQQVNfRU5BQkxFX0xJTkVSRUYg
Ki8KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9saW5lcmVmX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwX2NvbmZpZy5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2xpbmVyZWZfaGVh
cF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBMSU5FUkVGX0hF
QVBfQ09ORklHX0gKKyNkZWZpbmUgTElORVJFRl9IRUFQX0NPTkZJR19ICisKKyNpbmNsdWRlICJw
YXNfY29uZmlnLmgiCisKKyNpZiBQQVNfRU5BQkxFX0xJTkVSRUYKKworI2luY2x1ZGUgInBhc19o
ZWFwX2NvbmZpZ191dGlscy5oIgorI2luY2x1ZGUgInBhc19tZWdhcGFnZV9jYWNoZS5oIgorI2lu
Y2x1ZGUgInBhc19zaW1wbGVfdHlwZS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2Uu
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oIgorCitQQVNf
QkVHSU5fRVhURVJOX0M7CisKKyNkZWZpbmUgTElORVJFRl9NSU5BTElHTl9TSElGVCAoKHNpemVf
dCk0KQorI2RlZmluZSBMSU5FUkVGX01JTkFMSUdOX1NJWkUgKChzaXplX3QpMSA8PCBMSU5FUkVG
X01JTkFMSUdOX1NISUZUKQorCisjZGVmaW5lIExJTkVSRUZfTElORV9TSElGVCA4dQorCisjZGVm
aW5lIExJTkVSRUZfSEVBUF9DT05GSUcgUEFTX0JBU0lDX0hFQVBfQ09ORklHKCBcCisgICAgbGlu
ZXJlZiwgXAorICAgIC5hY3RpdmF0ZSA9IHBhc19oZWFwX2NvbmZpZ191dGlsc19udWxsX2FjdGl2
YXRlLCBcCisgICAgLmdldF90eXBlX3NpemUgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBl
X2dldF90eXBlX3NpemUsIFwKKyAgICAuZ2V0X3R5cGVfYWxpZ25tZW50ID0gcGFzX3NpbXBsZV90
eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9hbGlnbm1lbnQsIFwKKyAgICAuZHVtcF90eXBlID0g
cGFzX3NpbXBsZV90eXBlX2FzX2hlYXBfdHlwZV9kdW1wLCBcCisgICAgLmNoZWNrX2RlYWxsb2Nh
dGlvbiA9IGZhbHNlLCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0ID0g
TElORVJFRl9NSU5BTElHTl9TSElGVCwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3NoYXJpbmdf
c2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElGVCwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVk
X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAorICAgIC5zbWFsbF9z
ZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwK
KyAgICAuc21hbGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfbG9nZ2luZ19tb2RlID0gcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX3NpemVfb2JsaXZpb3VzX2xvZ2dpbmdfbW9kZSwgXAorICAgIC5z
bWFsbF9zaGFyZWRfc2VncmVnYXRlZF9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFs
bG9jYXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19tb2RlLCBcCisgICAgLnNtYWxsX2V4Y2x1
c2l2ZV9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlv
biA9IHRydWUsIFwKKyAgICAuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dv
cmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1ZSwgXAorICAgIC5zbWFsbF9zZWdyZWdh
dGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxf
c2VncmVnYXRlZF9saW5lX3NoaWZ0ID0gTElORVJFRl9MSU5FX1NISUZULCBcCisgICAgLmVuYWJs
ZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAorICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAor
ICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0ID0gTElORVJFRl9NSU5BTElHTl9TSElG
VCwgXAorICAgIC5zbWFsbF9iaXRmaXRfcGFnZV9zaXplID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdF
X0RFRkFVTFRfU0laRSwgXAorICAgIC5tZWRpdW1fcGFnZV9zaXplID0gUEFTX01FRElVTV9QQUdF
X0RFRkFVTFRfU0laRSwgXAorICAgIC5ncmFudWxlX3NpemUgPSBQQVNfR1JBTlVMRV9ERUZBVUxU
X1NJWkUsIFwKKyAgICAudXNlX21lZGl1bV9zZWdyZWdhdGVkID0gdHJ1ZSwgXAorICAgIC5tZWRp
dW1fc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQgPSBQQVNfTUlOX01FRElVTV9BTElHTl9TSElG
VCwgXAorICAgIC5tZWRpdW1fc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gUEFTX01FRElVTV9T
SEFSSU5HX1NISUZULCBcCisgICAgLm1lZGl1bV9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2Fw
ID0gUEFTX01FRElVTV9QQUdFX0hBTkRJQ0FQLCBcCisgICAgLm1lZGl1bV9leGNsdXNpdmVfc2Vn
cmVnYXRlZF9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fc2l6ZV9h
d2FyZV9sb2dnaW5nX21vZGUsIFwKKyAgICAubWVkaXVtX3NoYXJlZF9zZWdyZWdhdGVkX2xvZ2dp
bmdfbW9kZSA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9zaXplX2F3YXJlX2xvZ2dpbmdf
bW9kZSwgXAorICAgIC51c2VfbWVkaXVtX2JpdGZpdCA9IHRydWUsIFwKKyAgICAubWVkaXVtX2Jp
dGZpdF9taW5fYWxpZ25fc2hpZnQgPSBQQVNfTUlOX01FRElVTV9BTElHTl9TSElGVCwgXAorICAg
IC51c2VfbWFyZ2VfYml0Zml0ID0gdHJ1ZSwgXAorICAgIC5tYXJnZV9iaXRmaXRfbWluX2FsaWdu
X3NoaWZ0ID0gUEFTX01JTl9NQVJHRV9BTElHTl9TSElGVCwgXAorICAgIC5tYXJnZV9iaXRmaXRf
cGFnZV9zaXplID0gUEFTX01BUkdFX1BBR0VfREVGQVVMVF9TSVpFKQorCitQQVNfQVBJIGV4dGVy
biBwYXNfaGVhcF9jb25maWcgbGluZXJlZl9oZWFwX2NvbmZpZzsKKworUEFTX0JBU0lDX0hFQVBf
Q09ORklHX0RFQ0xBUkFUSU9OUyhsaW5lcmVmLCBMSU5FUkVGKTsKKworUEFTX0VORF9FWFRFUk5f
QzsKKworI2VuZGlmIC8qIFBBU19FTkFCTEVfTElORVJFRiAqLworCisjZW5kaWYgLyogTElORVJF
Rl9IRUFQX0NPTkZJR19IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2xpbmVyZWZfaGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwX2lubGluZXMuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9saW5lcmVmX2hlYXBfaW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgTElORVJFRl9IRUFQX0lOTElORVNfSAor
I2RlZmluZSBMSU5FUkVGX0hFQVBfSU5MSU5FU19ICisKKyNpbmNsdWRlICJsaW5lcmVmX2hlYXAu
aCIKKyNpbmNsdWRlICJsaW5lcmVmX2hlYXBfY29uZmlnLmgiCisjaW5jbHVkZSAibGluZXJlZl9o
ZWFwX2lubmFyZHMuaCIKKyNpbmNsdWRlICJwYXNfZGVhbGxvY2F0ZS5oIgorI2luY2x1ZGUgInBh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgiCisjaW5jbHVkZSAicGFzX3RyeV9yZWFsbG9jYXRl
LmgiCisKKyNpZiBQQVNfRU5BQkxFX0xJTkVSRUYKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitQ
QVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMoCisgICAgbGluZXJlZl9hbGxvY2F0ZV9p
bXBsLAorICAgIExJTkVSRUZfSEVBUF9DT05GSUcsCisgICAgJmxpbmVyZWZfaW50cmluc2ljX3J1
bnRpbWVfY29uZmlnLmJhc2UsCisgICAgJmxpbmVyZWZfYWxsb2NhdG9yX2NvdW50cywKKyAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgJmxpbmVyZWZfY29tbW9u
X3ByaW1pdGl2ZV9oZWFwLAorICAgICZsaW5lcmVmX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBw
b3J0LAorICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CisKK1BBU19D
UkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQygKKyAgICBsaW5lcmVmX3RyeV9hbGxvY2F0ZV9p
bXBsLAorICAgIExJTkVSRUZfSEVBUF9DT05GSUcsCisgICAgJmxpbmVyZWZfaW50cmluc2ljX3J1
bnRpbWVfY29uZmlnLmJhc2UsCisgICAgJmxpbmVyZWZfYWxsb2NhdG9yX2NvdW50cywKKyAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgJmxpbmVyZWZfY29tbW9uX3ByaW1p
dGl2ZV9oZWFwLAorICAgICZsaW5lcmVmX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAor
ICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CisKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBsaW5lcmVmX2FsbG9jYXRlX2lubGluZShzaXplX3Qgc2l6ZSkK
K3sKKyAgICByZXR1cm4gKHZvaWQqKWxpbmVyZWZfYWxsb2NhdGVfaW1wbChzaXplLCAxKS5iZWdp
bjsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGxpbmVyZWZfdHJ5X2FsbG9j
YXRlX2lubGluZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKWxpbmVyZWZfdHJ5
X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkuYmVnaW47Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKgorbGluZXJlZl90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHNp
emVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQoreworICAgIHJldHVybiAodm9pZCopbGluZXJl
Zl90cnlfYWxsb2NhdGVfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOworfQorCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKK2xpbmVyZWZfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZv
aWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit7CisgICAgcmV0dXJuICh2
b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKAorICAgICAgICBvbGRfcHRyLAorICAg
ICAgICAmbGluZXJlZl9jb21tb25fcHJpbWl0aXZlX2hlYXAsCisgICAgICAgIG5ld19zaXplLAor
ICAgICAgICBMSU5FUkVGX0hFQVBfQ09ORklHLAorICAgICAgICBsaW5lcmVmX3RyeV9hbGxvY2F0
ZV9pbXBsX2Zvcl9yZWFsbG9jLAorICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3Rl
bGVwb3J0LAorICAgICAgICBmcmVlX21vZGUpLmJlZ2luOworfQorCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCBsaW5lcmVmX2RlYWxsb2NhdGVfaW5saW5lKHZvaWQqIHB0cikKK3sKKyAg
ICBwYXNfZGVhbGxvY2F0ZShwdHIsIExJTkVSRUZfSEVBUF9DT05GSUcpOworfQorCitQQVNfRU5E
X0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0VOQUJMRV9MSU5FUkVGICovCisKKyNlbmRpZiAv
KiBMSU5FUkVGX0hFQVBfSU5MSU5FU19IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2xpbmVyZWZfaGVhcF9pbm5hcmRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbGluZXJlZl9oZWFwX2lubmFyZHMuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9saW5lcmVmX2hlYXBf
aW5uYXJkcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBMSU5FUkVGX0hFQVBfSU5O
QVJEU19ICisjZGVmaW5lIExJTkVSRUZfSEVBUF9JTk5BUkRTX0gKKworI2luY2x1ZGUgInBhc19j
b25maWcuaCIKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2NvdW50cy5oIgorI2luY2x1ZGUgInBh
c19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5oIgorI2luY2x1ZGUgInBhc19pbnRyaW5zaWNf
aGVhcF9zdXBwb3J0LmgiCisjaW5jbHVkZSAicGFzX2hlYXBfcmVmLmgiCisKKyNpZiBQQVNfRU5B
QkxFX0xJTkVSRUYKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitQQVNfQVBJIGV4dGVybiBwYXNf
aGVhcCBsaW5lcmVmX2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKK1BBU19BUEkgZXh0ZXJuIHBhc19p
bnRyaW5zaWNfaGVhcF9zdXBwb3J0IGxpbmVyZWZfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBv
cnQ7CitQQVNfQVBJIGV4dGVybiBwYXNfYWxsb2NhdG9yX2NvdW50cyBsaW5lcmVmX2FsbG9jYXRv
cl9jb3VudHM7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfRU5BQkxFX0xJ
TkVSRUYgKi8KKworI2VuZGlmIC8qIExJTkVSRUZfSEVBUF9JTk5BUkRTX2ggKi8KKwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWdu
MzJfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw2ICs1OSw3IEBAIFBBU19BUEkgdm9pZCBtaW5hbGlnbjMyX2hlYXBfY29uZmlnX2FjdGkK
ICAgICAuc21hbGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2li
aWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRl
ZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSB0cnVlLCBcCiAg
ICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IHRydWUsIFwK
KyAgICAuc21hbGxfc2VncmVnYXRlZF9saW5lX3NoaWZ0ID0gMCwgXAogICAgIC5lbmFibGVfdmll
d19jYWNoZSA9IHRydWUsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAu
c21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IE1JTkFMSUdOMzJfTUlOQUxJR05fU0hJRlQs
IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hl
YXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAkod29y
a2luZyBjb3B5KQpAQCAtNjIsNiArNjIsNyBAQCBQQVNfQVBJIHZvaWQgcGFnZXNpemU2NGtfaGVh
cF9jb25maWdfYWN0CiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0
eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCiAgICAgLnNtYWxsX3No
YXJlZF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlv
biA9IGZhbHNlLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRf
d29yZCA9ICFQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF9saW5lX3NoaWZ0ID0g
MCwgXAogICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVzZV9zbWFsbF9i
aXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBQQUdF
U0laRTY0S19NSU5BTElHTl9TSElGVCwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2hlYXBfY29uZmlncy5oCShyZXZpc2lvbiAy
ODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2hlYXBf
Y29uZmlncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiaXNv
X2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAiaXNvX3Rlc3RfaGVhcF9jb25maWcuaCIKICNpbmNs
dWRlICJqaXRfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRlICJsaW5lcmVmX2hlYXBfY29uZmlnLmgi
CiAjaW5jbHVkZSAibWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhZ2VzaXpl
NjRrX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaCIK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfaGVhcHMuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2hl
YXBzLmMJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19hbGxfaGVhcHMuYwkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgImlzb19oZWFwX2lubmFyZHMuaCIKICNpbmNsdWRlICJpc29fdGVzdF9oZWFwLmgiCiAj
aW5jbHVkZSAiaml0X2hlYXAuaCIKKyNpbmNsdWRlICJsaW5lcmVmX2hlYXBfaW5uYXJkcy5oIgog
I2luY2x1ZGUgIm1pbmFsaWduMzJfaGVhcC5oIgogI2luY2x1ZGUgInBhZ2VzaXplNjRrX2hlYXAu
aCIKICNpbmNsdWRlICJwYXNfYml0Zml0X2hlYXAuaCIKQEAgLTk4LDYgKzk5LDExIEBAIGJvb2wg
cGFzX2FsbF9oZWFwc19mb3JfZWFjaF9zdGF0aWNfaGVhcCgKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogI2VuZGlmCiAKKyNpZiBQQVNfRU5BQkxFX0xJTkVSRUYKKyAgICBpZiAoIWNhbGxiYWNrKCZs
aW5lcmVmX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwgYXJnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCisKICNpZiBQQVNfRU5BQkxFX0pJVAogICAgIGlmICghY2FsbGJhY2soJmppdF9j
b21tb25fcHJpbWl0aXZlX2hlYXAsIGFyZykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcjsKIHR5cGVkZWYg
c3RydWN0IHBhc19iYXNlbGluZV9hbGxvY2F0b3IgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcjsKIAog
I2RlZmluZSBQQVNfQkFTRUxJTkVfTE9DQUxfQUxMT0NBVE9SX1NJWkUgXAotICAgIFBBU19MT0NB
TF9BTExPQ0FUT1JfU0laRShQQVNfTUFYX09CSkVDVFNfUEVSX1BBR0UpCisgICAgUEFTX0xPQ0FM
X0FMTE9DQVRPUl9TSVpFKFBBU19NQVhfT0JKRUNUU19QRVJfUEFHRSwgUEFTX01BWF9MSU5FU19Q
RVJfUEFHRSkKIAogc3RydWN0IHBhc19iYXNlbGluZV9hbGxvY2F0b3IgewogICAgIHBhc19sb2Nr
IGxvY2s7IC8qIENhbiBob2xkIHRoaXMgYmVmb3JlIGdldHRpbmcgdGhlIGhlYXAgbG9jay4gKi8K
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2Nh
dG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2JpdGZpdF9hbGxvY2F0b3IuYwkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpA
QCAtMTI1LDggKzEyNSwxMiBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3
KHBhCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2coInBhZ2VfYm91bmRhcnkgPSAlcCwgZGlkX3N1Y2NlZWQgPSAlZFxuIiwgdmlldy0+cGFn
ZV9ib3VuZGFyeSwgZGlkX3N1Y2NlZWQpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGlmIChkaWRfc3VjY2VlZCkKLSAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5iYXNlLmNy
ZWF0ZV9wYWdlX2hlYWRlcih2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYXNfbG9ja19pc19oZWxkKTsK
KyAgICAgICAgICAgICAgICBpZiAoZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAg
IHZpZXctPnBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9r
aW5kX2Zvcl9iaXRmaXRfdmFyaWFudChjb25maWctPnZhcmlhbnQpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAgICAgICAg
ICAgICAgICAgaWYgKHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb25fZW5kKCZ0cmFuc2Fj
dGlvbikpCkBAIC0xNzQsNyArMTc4LDEwIEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29t
bWl0X3ZpZXcocGEKIAogICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KAogICAgICAgICAg
ICAgdmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAg
IGNvbmZpZy0+YmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIodmlldy0+cGFnZV9ib3VuZGFyeSwgcGFz
X2xvY2tfaXNfbm90X2hlbGQpOworICAgICAgICBjb25maWctPmJhc2UuY3JlYXRlX3BhZ2VfaGVh
ZGVyKAorICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwKKyAgICAgICAgICAgIHBhc19w
YWdlX2tpbmRfZm9yX2JpdGZpdF92YXJpYW50KGNvbmZpZy0+dmFyaWFudCksCisgICAgICAgICAg
ICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAKICAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+
b3duZXJzaGlwX2xvY2spOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYwkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMyw5ICsxMDMsOCBAQCB2b2lkIHBhc19iaXRmaXRfcGFnZV9jb25zdHJ1Y3QocGFz
X2JpdGZpCiAgICAgICAgIAogICAgICAgICAvKiBJZiB0aGVyZSBhcmUgYW55IGJ5dGVzIGluIHRo
ZSBwYWdlIG5vdCBtYWRlIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbiB0aGVuIG1ha2Ugc3VyZQog
ICAgICAgICAgICB0aGF0IHRoZSB1c2UgY291bnRzIGtub3cgYWJvdXQgaXQuICovCi0gICAgICAg
IHN0YXJ0X29mX3BheWxvYWQgPSBjb25maWcuYmFzZS5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNl
dDsKLSAgICAgICAgZW5kX29mX3BheWxvYWQgPQotICAgICAgICAgICAgY29uZmlnLmJhc2UucGFn
ZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgKyBjb25maWcuYmFzZS5wYWdlX29iamVjdF9wYXlsb2Fk
X3NpemU7CisgICAgICAgIHN0YXJ0X29mX3BheWxvYWQgPSBjb25maWcucGFnZV9vYmplY3RfcGF5
bG9hZF9vZmZzZXQ7CisgICAgICAgIGVuZF9vZl9wYXlsb2FkID0gY29uZmlnLnBhZ2Vfb2JqZWN0
X3BheWxvYWRfb2Zmc2V0ICsgY29uZmlnLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZTsKIAogICAg
ICAgICBwYXNfcGFnZV9ncmFudWxlX2luY3JlbWVudF91c2VzX2Zvcl9yYW5nZSgKICAgICAgICAg
ICAgIHVzZV9jb3VudHMsIDAsIHN0YXJ0X29mX3BheWxvYWQsCkBAIC0yOTksOSArMjk4LDggQEAg
dm9pZCBwYXNfYml0Zml0X3BhZ2VfdmVyaWZ5KHBhc19iaXRmaXRfcAogICAgIGRhdGEuYm91bmRh
cnkgPSAodWludHB0cl90KXBhc19iaXRmaXRfcGFnZV9ib3VuZGFyeShwYWdlLCBjb25maWcpOwog
ICAgIHBhc196ZXJvX21lbW9yeShkYXRhLm15X3VzZV9jb3VudHMsIFBBU19NQVhfR1JBTlVMRVMp
OwogICAgIAotICAgIHN0YXJ0X29mX3BheWxvYWQgPSBjb25maWcuYmFzZS5wYWdlX29iamVjdF9w
YXlsb2FkX29mZnNldDsKLSAgICBlbmRfb2ZfcGF5bG9hZCA9Ci0gICAgICAgIGNvbmZpZy5iYXNl
LnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ICsgY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5
bG9hZF9zaXplOworICAgIHN0YXJ0X29mX3BheWxvYWQgPSBjb25maWcucGFnZV9vYmplY3RfcGF5
bG9hZF9vZmZzZXQ7CisgICAgZW5kX29mX3BheWxvYWQgPSBjb25maWcucGFnZV9vYmplY3RfcGF5
bG9hZF9vZmZzZXQgKyBjb25maWcucGFnZV9vYmplY3RfcGF5bG9hZF9zaXplOwogICAgIAogICAg
IHBhc19wYWdlX2dyYW51bGVfaW5jcmVtZW50X3VzZXNfZm9yX3JhbmdlKAogICAgICAgICBkYXRh
Lm15X3VzZV9jb3VudHMsIDAsIHN0YXJ0X29mX3BheWxvYWQsCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuaAkocmV2aXNpb24g
Mjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgUEFTX0FQSSB2b2lkIHBhc19i
aXRmaXRfcGFnZV9jb25zdHJ1Y3QocAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVpbnRwdHJf
dAogcGFzX2JpdGZpdF9wYWdlX29mZnNldF90b19maXJzdF9vYmplY3QocGFzX2JpdGZpdF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKLSAgICByZXR1cm4gcGFzX3JvdW5kX3VwX3RvX3Bvd2Vy
X29mXzIocGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCwKKyAgICBy
ZXR1cm4gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIocGFnZV9jb25maWcucGFnZV9vYmplY3Rf
cGF5bG9hZF9vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19wYWdlX2Jhc2VfY29uZmlnX21pbl9hbGlnbihwYWdlX2NvbmZpZy5iYXNlKSk7CiB9CiAKQEAg
LTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90CiBwYXNf
Yml0Zml0X3BhZ2Vfb2Zmc2V0X3RvX2VuZF9vZl9sYXN0X29iamVjdChwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnIHBhZ2VfY29uZmlnKQogewogICAgIHJldHVybiBwYXNfcm91bmRfZG93bl90b19wb3dl
cl9vZl8yKAotICAgICAgICBwYXNfcGFnZV9iYXNlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRf
b2Zmc2V0X2Zyb21fYm91bmRhcnkocGFnZV9jb25maWcuYmFzZSksCisgICAgICAgIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KHBh
Z2VfY29uZmlnKSwKICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWdfbWluX2FsaWduKHBhZ2Vf
Y29uZmlnLmJhc2UpKTsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaAkocmV2aXNpb24gMjg3
MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMiBAQCBzdHJ1Y3QgcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZyB7CiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50IHZh
cmlhbnQ7CiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kIGtpbmQ7CiAKKyAgICAvKiBX
aGF0J3MgdGhlIGZpcnN0IGJ5dGUgYXQgd2hpY2ggdGhlIG9iamVjdCBwYXlsb2FkIGNvdWxkIHN0
YXJ0IHJlbGF0aXZlIHRvIHRoZSBib3VuZGFyeT8gKi8KKyAgICB1aW50cHRyX3QgcGFnZV9vYmpl
Y3RfcGF5bG9hZF9vZmZzZXQ7CisKKyAgICAvKiBIb3cgbWFueSBieXRlcyBhcmUgcHJvdmlzaW9u
ZWQgZm9yIG9iamVjdHMgcGFzdCB0aGF0IG9mZnNldD8gKi8KKyAgICBzaXplX3QgcGFnZV9vYmpl
Y3RfcGF5bG9hZF9zaXplOworCiAgICAgLyogVGhpcyBpcyB0aGUgYWxsb2NhdG9yIHVzZWQgdG8g
Y3JlYXRlIHBhZ2VzLiAqLwogICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfcGFnZV9hbGxvY2F0
b3IgcGFnZV9hbGxvY2F0b3I7CiAKQEAgLTE0MSw2ICsxNDcsMTIgQEAgc3RhdGljIGlubGluZSBi
b29sIHBhc19iaXRmaXRfcGFnZV9jb25maQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHVpbnRwdHJfdAorcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19vYmpl
Y3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91bmRhcnkocGFzX2JpdGZpdF9wYWdlX2NvbmZp
ZyBjb25maWcpCit7CisgICAgcmV0dXJuIGNvbmZpZy5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNl
dCArIGNvbmZpZy5wYWdlX29iamVjdF9wYXlsb2FkX3NpemU7Cit9CisKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBzaXplX3QgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19udW1fYWxsb2NfYml0cyhw
YXNfYml0Zml0X3BhZ2VfY29uZmlnIGNvbmZpZykKIHsKICAgICByZXR1cm4gUEFTX0JJVEZJVF9Q
QUdFX0NPTkZJR19OVU1fQUxMT0NfQklUUyhjb25maWcuYmFzZS5wYWdlX3NpemUsCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWYJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5k
ZWYJKHdvcmtpbmcgY29weSkKQEAgLTExNCw2ICsxMTQsMTUgQEAgUEFTX0RFRklORV9CSVRGSVRf
UEFHRV9DT05GSUdfS0lORChob3RiaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIT1RCSVRfSEVBUF9DT05GSUcubWFyZ2VfYml0Zml0X2NvbmZpZykKICNlbmRpZgogCisjaWYg
UEFTX0VOQUJMRV9MSU5FUkVGCitQQVNfREVGSU5FX0JJVEZJVF9QQUdFX0NPTkZJR19LSU5EKGxp
bmVyZWZfc21hbGxfYml0Zml0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
SU5FUkVGX0hFQVBfQ09ORklHLnNtYWxsX2JpdGZpdF9jb25maWcpCitQQVNfREVGSU5FX0JJVEZJ
VF9QQUdFX0NPTkZJR19LSU5EKGxpbmVyZWZfbWVkaXVtX2JpdGZpdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTElORVJFRl9IRUFQX0NPTkZJRy5tZWRpdW1fYml0Zml0X2Nv
bmZpZykKK1BBU19ERUZJTkVfQklURklUX1BBR0VfQ09ORklHX0tJTkQobGluZXJlZl9tYXJnZV9i
aXRmaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJTkVSRUZfSEVBUF9D
T05GSUcubWFyZ2VfYml0Zml0X2NvbmZpZykKKyNlbmRpZgorCiAjaWYgUEFTX0VOQUJMRV9KSVQK
IFBBU19ERUZJTkVfQklURklUX1BBR0VfQ09ORklHX0tJTkQoaml0X3NtYWxsX2JpdGZpdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX0hFQVBfQ09ORklHLnNtYWxsX2Jp
dGZpdF9jb25maWcpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tcGFjdF90YWdnZWRfdm9pZF9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHIuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdn
ZWRfdm9pZF9wdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0NPTVBBQ1Rf
VEFHR0VEX1ZPSURfUFRSX0gKKyNkZWZpbmUgUEFTX0NPTVBBQ1RfVEFHR0VEX1ZPSURfUFRSX0gK
KworI2luY2x1ZGUgInBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCIKKworUEFTX0JFR0lOX0VYVEVS
Tl9DOworCitQQVNfREVGSU5FX0NPTVBBQ1RfVEFHR0VEX1BUUih2b2lkKiwgcGFzX2NvbXBhY3Rf
dGFnZ2VkX3ZvaWRfcHRyKTsKKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19D
T01QQUNUX1RBR0dFRF9WT0lEX1BUUl9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29uZmlnLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb25maWcuaAkod29ya2luZyBjb3B5KQpA
QCAtNjYsNiArNjYsNyBAQAogI2RlZmluZSBQQVNfRU5BQkxFX1BBR0VTSVpFNjRLICAgICAgICAg
ICAwCiAjZGVmaW5lIFBBU19FTkFCTEVfQk1BTExPQyAgICAgICAgICAgICAgIDEKICNkZWZpbmUg
UEFTX0VOQUJMRV9IT1RCSVQgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQVNfRU5BQkxFX0xJ
TkVSRUYgICAgICAgICAgICAgICAwCiAjZGVmaW5lIFBBU19FTkFCTEVfSklUICAgICAgICAgICAg
ICAgICAgIDEKICNlbGlmIGRlZmluZWQoUEFTX0xJQk1BTExPQykKICNkZWZpbmUgUEFTX0VOQUJM
RV9USElOR1kgICAgICAgICAgICAgICAgMApAQCAtNzUsNiArNzYsNyBAQAogI2RlZmluZSBQQVNf
RU5BQkxFX1BBR0VTSVpFNjRLICAgICAgICAgICAwCiAjZGVmaW5lIFBBU19FTkFCTEVfQk1BTExP
QyAgICAgICAgICAgICAgIDAKICNkZWZpbmUgUEFTX0VOQUJMRV9IT1RCSVQgICAgICAgICAgICAg
ICAgMAorI2RlZmluZSBQQVNfRU5BQkxFX0xJTkVSRUYgICAgICAgICAgICAgICAwCiAjZGVmaW5l
IFBBU19FTkFCTEVfSklUICAgICAgICAgICAgICAgICAgIDAKICNlbHNlIC8qIFBBU19MSUJNQUxM
T0MgLT4gc28gIWRlZmluZWQoUEFTX0JNQUxMT0MpICYmICFkZWZpbmVkKFBBU19MSUJNQUxMT0Mp
ICovCiAjZGVmaW5lIFBBU19FTkFCTEVfVEhJTkdZICAgICAgICAgICAgICAgIDEKQEAgLTg0LDYg
Kzg2LDcgQEAKICNkZWZpbmUgUEFTX0VOQUJMRV9QQUdFU0laRTY0SyAgICAgICAgICAgMQogI2Rl
ZmluZSBQQVNfRU5BQkxFX0JNQUxMT0MgICAgICAgICAgICAgICAxCiAjZGVmaW5lIFBBU19FTkFC
TEVfSE9UQklUICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgUEFTX0VOQUJMRV9MSU5FUkVGICAg
ICAgICAgICAgICAgMQogI2RlZmluZSBQQVNfRU5BQkxFX0pJVCAgICAgICAgICAgICAgICAgICAx
CiAjZW5kaWYgLyogUEFTX0xJQk1BTExPQyAtPiBzbyBlbmQgb2YgIWRlZmluZWQoUEFTX0JNQUxM
T0MpICYmICFkZWZpbmVkKFBBU19MSUJNQUxMT0MpICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVf
c2VncmVnYXRlZF9oZWFwcy5jCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgInBhc19lbnVtZXJhdG9yX2ludGVy
bmFsLmgiCiAjaW5jbHVkZSAicGFzX2Z1bGxfYWxsb2NfYml0cy5oIgogI2luY2x1ZGUgInBhc19o
YXNodGFibGUuaCIKKyNpbmNsdWRlICJwYXNfbGluZV9tZXRhZGF0YS5oIgogI2luY2x1ZGUgInBh
c19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcHRyX2hhc2hfc2V0Lmgi
CiAjaW5jbHVkZSAicGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIgpAQCAtMjMx
LDYgKzIzMiw3IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9wYWdlX29iamVjdHMocGFzX2VudW0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwK
QEAgLTI1MCw3ICsyNTIsNyBAQCBzdGF0aWMgdm9pZCByZWNvcmRfcGFnZV9vYmplY3RzKHBhc19l
bnVtCiAgICAgICAgIGlmICghcGFzX2JpdHZlY3Rvcl9nZXQoZnVsbF9hbGxvY19iaXRzLT5iaXRz
LCBpbmRleCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIGlmICgh
cGFzX2JpdHZlY3Rvcl9nZXQocGFnZS0+YWxsb2NfYml0cywgaW5kZXgpKQorICAgICAgICBpZiAo
IXBhc19iaXR2ZWN0b3JfZ2V0KHBhc19zZWdyZWdhdGVkX3BhZ2VfYWxsb2NfYml0cyhwYWdlLCAq
cGFnZV9jb25maWcsIHJvbGUpLCBpbmRleCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBvZmZzZXQgPSBpbmRleCA8PCBwYWdlX2NvbmZpZy0+YmFzZS5taW5fYWxpZ25fc2hpZnQ7
CkBAIC0yODcsNyArMjg5LDkgQEAgc3RhdGljIHZvaWQgcmVjb3JkX3BhZ2Vfb2JqZWN0cyhwYXNf
ZW51bQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKHBhc19iaXR2ZWN0b3JfZ2V0KCh1bnNpZ25lZCopYWxsb2NhdG9yLT5iaXRzLCBpbmRleCkp
IHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhc19iaXR2ZWN0b3JfZ2V0KAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCopcGFzX2xvY2FsX2FsbG9jYXRvcl9n
ZXRfYWxsb2NfYml0cyhhbGxvY2F0b3IsICpwYWdlX2NvbmZpZywgcm9sZSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5kZXgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJUaGUgb2JqZWN0IGhh
cyBhbiBhbGxvY2F0b3IgYml0IHNldCAoY3VycmVudF9vZmZzZXQgPSAldSwgIgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZW5kX29mZnNldCA9ICV1KS5cbiIsCkBAIC0zNDQsNyAr
MzQ4LDggQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KHBhcwogICAgICAg
ICBlbnVtZXJhdG9yLCAodm9pZCopcGFnZV9ib3VuZGFyeSk7CiAgICAgUEFTX0FTU0VSVChwYWdl
KTsKIAotICAgIHBhZ2UgPSBwYXNfZW51bWVyYXRvcl9yZWFkKGVudW1lcmF0b3IsIHBhZ2UsIHBh
c19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2VfY29uZmlnKSk7CisgICAgcGFnZSA9
IHBhc19lbnVtZXJhdG9yX3JlYWQoCisgICAgICAgIGVudW1lcmF0b3IsIHBhZ2UsIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdl
X2V4Y2x1c2l2ZV9yb2xlKSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTM2OSwxMSArMzc0LDk0IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9leGNsdXNpdmVf
dmlldyhwYXMKICAgICAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJz
dF9vYmplY3QsCiAgICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5k
X29mX2xhc3Rfb2JqZWN0KTsKIAotICAgIGFsbG9jX2JpdHMuYml0cyA9IHBhc19jb21wYWN0X3Rh
Z2dlZF91bnNpZ25lZF9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJmRhdGEtPmZ1bGxfYWxs
b2NfYml0cyk7CisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3VzZXNfbGluZXNf
Zm9yX3JvbGUoKnBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xl
KSkgeworICAgICAgICBzaXplX3QgbGluZV9pbmRleDsKKyAgICAgICAgcGFzX2xpbmVfbWV0YWRh
dGEqIGxpbmVfbWV0YWRhdGE7CisgICAgICAgIHVpbnQ4X3QqIGxpbmVzOworICAgICAgICAKKyAg
ICAgICAgaWYgKCFlbnVtZXJhdG9yLT5yZWNvcmRfb2JqZWN0KQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICAgICAgbGluZV9tZXRhZGF0YSA9IChwYXNfbGluZV9tZXRhZGF0YSopcGFz
X2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyX2xvYWRfcmVtb3RlKAorICAgICAgICAgICAgZW51bWVy
YXRvciwgJmRhdGEtPmZ1bGxfYWxsb2NfYml0c19vcl9saW5lX21ldGFkYXRhKTsKKyAgICAgICAg
bGluZXMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVzKHBhZ2UsICpwYWdlX2NvbmZpZywgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7CisgICAgICAgIAorICAgICAgICBmb3Ig
KGxpbmVfaW5kZXggPSAwOyBsaW5lX2luZGV4IDwgcGFnZV9jb25maWctPm51bV9saW5lczsgKyts
aW5lX2luZGV4KSB7CisgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW47CisgICAgICAgICAgICB1
bnNpZ25lZCBvYmplY3RfY291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghbGlu
ZXNbbGluZV9pbmRleF0pCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IGJlZ2luID0gcGFnZV9ib3VuZGFyeSArCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9saW5lX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfYXRfbGluZV9pbmRleChsaW5lX2lu
ZGV4LCAqcGFnZV9jb25maWcpICsKKyAgICAgICAgICAgICAgICBsaW5lX21ldGFkYXRhW2xpbmVf
aW5kZXhdLm9mZnNldF90b19maXJzdF9vYmplY3Q7CisKKyAgICAgICAgICAgIGZvciAob2JqZWN0
X2NvdW50ID0gbGluZV9tZXRhZGF0YVtsaW5lX2luZGV4XS5udW1fb2JqZWN0czsKKyAgICAgICAg
ICAgICAgICAgb2JqZWN0X2NvdW50LS07CisgICAgICAgICAgICAgICAgIGJlZ2luICs9IGRpcmVj
dG9yeS0+b2JqZWN0X3NpemUpIHsKKyAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ1bXBfaW5kZXg7CisgICAgICAgICAgICAgICAg
ICAgIHVpbnRwdHJfdCBwYXlsb2FkX2VuZDsKKyAgICAgICAgICAgICAgICAgICAgdWludHB0cl90
IHJlbWFpbmluZzsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBmb3VuZDsKKyAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wKiBidW1wczsKKworICAgICAgICAgICAg
ICAgICAgICBwYXlsb2FkX2VuZCA9IGFsbG9jYXRvci0+cGF5bG9hZF9lbmQ7CisgICAgICAgICAg
ICAgICAgICAgIHJlbWFpbmluZyA9IGFsbG9jYXRvci0+cmVtYWluaW5nOworCisgICAgICAgICAg
ICAgICAgICAgIGJ1bXBfaW5kZXggPSBhbGxvY2F0b3ItPm51bV9idW1wczsKKyAgICAgICAgICAg
ICAgICAgICAgYnVtcHMgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9idW1wcygKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgKnBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9w
YWdlX2V4Y2x1c2l2ZV9yb2xlKTsKKworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNl
OworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7Oykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luIDwgcGF5bG9hZF9lbmQgJiYgYmVnaW4g
Pj0gcGF5bG9hZF9lbmQgLSByZW1haW5pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9n
KCJUaGUgb2JqZWN0IGlzIHdpdGhpbiBhIGJ1bXAgcmFuZ2UgKHBheWxvYWRfZW5kID0gJXAsICIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVtYWluaW5nID0gJWx1
KS5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXBh
eWxvYWRfZW5kLCByZW1haW5pbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghYnVtcF9pbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAgICAgYnVtcF9pbmRleC0tOworCisg
ICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkX2VuZCA9IGFsbG9jYXRvci0+cGFnZV9pc2gg
KyBidW1wc1tidW1wX2luZGV4XS5wYXlsb2FkX2VuZDsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJlbWFpbmluZyA9IGJ1bXBzW2J1bXBfaW5kZXhdLnJlbWFpbmluZzsKKyAgICAgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAocGFzX3B0cl9oYXNoX3NldF9maW5kKCZjb250ZXh0LT5vYmpl
Y3RzX2luX2RlYWxsb2NhdGlvbl9sb2csICh2b2lkKiliZWdpbikpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJUaGUg
b2JqZWN0IGlzIGluIHRoZSBkZWFsbG9jYXRpb24gbG9nLlxuIik7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHBhc19l
bnVtZXJhdG9yX3JlY29yZChlbnVtZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodm9pZCopYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpcmVjdG9yeS0+b2JqZWN0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19lbnVtZXJhdG9yX29iamVjdF9yZWNvcmQpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGFsbG9jX2Jp
dHMuYml0cyA9IHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0cl9sb2FkX3JlbW90ZSgKKyAgICAg
ICAgZW51bWVyYXRvciwgJmRhdGEtPmZ1bGxfYWxsb2NfYml0c19vcl9saW5lX21ldGFkYXRhKTsK
ICAgICBhbGxvY19iaXRzLndvcmRfaW5kZXhfYmVnaW4gPSAwOwogICAgIGFsbG9jX2JpdHMud29y
ZF9pbmRleF9lbmQgPSAodW5zaWduZWQpcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2Fs
bG9jX3dvcmRzKCpwYWdlX2NvbmZpZyk7CiAgICAgcmVjb3JkX3BhZ2Vfb2JqZWN0cygKLSAgICAg
ICAgZW51bWVyYXRvciwgY29udGV4dCwgZGlyZWN0b3J5LCBwYWdlX2NvbmZpZywgcGFnZV9ib3Vu
ZGFyeSwgcGFnZSwgYWxsb2NhdG9yLCAmYWxsb2NfYml0cyk7CisgICAgICAgIGVudW1lcmF0b3Is
IGNvbnRleHQsIGRpcmVjdG9yeSwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhj
bHVzaXZlX3JvbGUsIHBhZ2VfYm91bmRhcnksIHBhZ2UsCisgICAgICAgIGFsbG9jYXRvciwgJmFs
bG9jX2JpdHMpOwogICAgIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDA0LDcgKzQ5Miw5IEBA
IHN0YXRpYyBib29sIGVudW1lcmF0ZV9zaGFyZWRfdmlldyhwYXNfZW4KICAgICAgICAgICAgICAg
ICBlbnVtZXJhdG9yLCAodm9pZCopcGFnZV9ib3VuZGFyeSk7CiAgICAgICAgICAgICBQQVNfQVNT
RVJUKHBhZ2UpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYWdlID0gcGFzX2VudW1lcmF0
b3JfcmVhZChlbnVtZXJhdG9yLCBwYWdlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9zaXpl
KCpwYWdlX2NvbmZpZykpOworICAgICAgICAgICAgcGFnZSA9IHBhc19lbnVtZXJhdG9yX3JlYWQo
CisgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgcGFnZSwKKyAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2hlYWRlcl9zaXplKCpwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9zaGFyZWRfcm9sZSkpOwogICAgICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtNDMwLDkgKzUyMCwxMCBAQCBzdGF0aWMg
Ym9vbCBlbnVtZXJhdGVfc2hhcmVkX3ZpZXcocGFzX2VuCiAgICAgICAgIAogICAgICAgICBQQVNf
QVNTRVJUKHBhZ2UpOwogICAgICAgICAKLSAgICAgICAgcGF5bG9hZF9iZWdpbiA9IHBhc19yb3Vu
ZF91cF90b19wb3dlcl9vZl8yKHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRf
b2Zmc2V0LAorICAgICAgICBwYXlsb2FkX2JlZ2luID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29m
XzIocGFnZV9jb25maWctPnNoYXJlZF9wYXlsb2FkX29mZnNldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX21pbl9hbGlnbigqcGFnZV9jb25maWcpKTsKLSAgICAgICAgcGF5bG9hZF9lbmQgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91
bmRhcnkoKnBhZ2VfY29uZmlnKTsKKyAgICAgICAgcGF5bG9hZF9lbmQgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUoCisgICAgICAgICAgICAq
cGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpOwogICAgICAgICAK
ICAgICAgICAgcmVjb3JkX3BhZ2VfcGF5bG9hZF9hbmRfbWV0YShlbnVtZXJhdG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLApAQCAtNDgxLDcgKzU3
Miw4IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9wYXJ0aWFsX3ZpZXcocGFzX2UKICAgICAgICAg
ZW51bWVyYXRvciwgKHZvaWQqKXBhZ2VfYm91bmRhcnkpOwogICAgIFBBU19BU1NFUlQocGFnZSk7
CiAgICAgCi0gICAgcGFnZSA9IHBhc19lbnVtZXJhdG9yX3JlYWQoZW51bWVyYXRvciwgcGFnZSwg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfc2l6ZSgqcGFnZV9jb25maWcpKTsKKyAgICBwYWdl
ID0gcGFzX2VudW1lcmF0b3JfcmVhZCgKKyAgICAgICAgZW51bWVyYXRvciwgcGFnZSwgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9oZWFkZXJfc2l6ZSgqcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3Bh
Z2Vfc2hhcmVkX3JvbGUpKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtNTE0LDcgKzYwNiw4IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9wYXJ0aWFsX3ZpZXco
cGFzX2UKICAgICBmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbiA9IHZpZXctPmFsbG9j
X2JpdHNfb2Zmc2V0OwogICAgIGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2VuZCA9IHZpZXct
PmFsbG9jX2JpdHNfb2Zmc2V0ICsgdmlldy0+YWxsb2NfYml0c19zaXplOwogICAgIHJlY29yZF9w
YWdlX29iamVjdHMoCi0gICAgICAgIGVudW1lcmF0b3IsIGNvbnRleHQsIGRpcmVjdG9yeSwgcGFn
ZV9jb25maWcsIHBhZ2VfYm91bmRhcnksIHBhZ2UsIGFsbG9jYXRvciwgJmZ1bGxfYWxsb2NfYml0
cyk7CisgICAgICAgIGVudW1lcmF0b3IsIGNvbnRleHQsIGRpcmVjdG9yeSwgcGFnZV9jb25maWcs
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUsIHBhZ2VfYm91bmRhcnksIHBhZ2UsCisg
ICAgICAgIGFsbG9jYXRvciwgJmZ1bGxfYWxsb2NfYml0cyk7CiAgICAgCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9h
bGxvY19iaXRzX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaAkocmV2aXNpb24gMjg3MDU5
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0
c19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSw5ICs0MSw5IEBAIHBhc19mdWxsX2Fs
bG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVh
dGUoCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVs
bCgKKyAgICAgICAgKHVuc2lnbmVkKilwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHJfbG9hZF9u
b25fbnVsbCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICZkaXJlY3RvcnktPmRhdGEpLT5m
dWxsX2FsbG9jX2JpdHMpLAorICAgICAgICAgICAgICAgICZkaXJlY3RvcnktPmRhdGEpLT5mdWxs
X2FsbG9jX2JpdHNfb3JfbGluZV9tZXRhZGF0YSksCiAgICAgICAgIDAsCiAgICAgICAgICh1bnNp
Z25lZClwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25m
aWcpKTsKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXAuYwkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIHN0
cnVjdCB7CiBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29iamVjdF9zbWFsbF9vYmplY3RfY2Fs
bGJhY2socGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNp
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX29iamVjdF9saXZlbmVzc19raW5kIGxpdmVuZXNzX2tpbmQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQogewog
ICAgIGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGEqIGRhdGE7CkBAIC0xMDUsNyArMTA2LDcgQEAg
c3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfc21hbGxfbwogICAgIAogICAgIFBBU19B
U1NFUlQoJmRhdGEtPmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCA9PSBoZWFwKTsKICAgICAKLSAgICBy
ZXR1cm4gZGF0YS0+Y2FsbGJhY2soZGF0YS0+aGVhcCwgYmVnaW4sIHNpemUsIGRhdGEtPmFyZyk7
CisgICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmhlYXAsIGJlZ2luLCBzaXplLCBsaXZl
bmVzc19raW5kLCBkYXRhLT5hcmcpOwogfQogCiBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29i
amVjdF9sYXJnZV9vYmplY3RfY2FsbGJhY2socGFzX2xhcmdlX2hlYXAqIGhlYXAsCkBAIC0xMTks
NyArMTIwLDcgQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3RfbGFyZ2VfbwogICAg
IAogICAgIFBBU19BU1NFUlQoJmRhdGEtPmhlYXAtPmxhcmdlX2hlYXAgPT0gaGVhcCk7CiAgICAg
Ci0gICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmhlYXAsIGJlZ2luLCBlbmQgLSBiZWdp
biwgZGF0YS0+YXJnKTsKKyAgICByZXR1cm4gZGF0YS0+Y2FsbGJhY2soZGF0YS0+aGVhcCwgYmVn
aW4sIGVuZCAtIGJlZ2luLCBwYXNfZGVmaW5pdGVseV9saXZlX29iamVjdF9raW5kLCBkYXRhLT5h
cmcpOwogfQogCiBib29sIHBhc19oZWFwX2Zvcl9lYWNoX2xpdmVfb2JqZWN0KHBhc19oZWFwKiBo
ZWFwLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5o
CShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw2ICs4MSw3IEBAIFBBU19BUEkgc2l6ZV90
IHBhc19oZWFwX2dldF9udW1fZnJlZV9ieXQKIHR5cGVkZWYgYm9vbCAoKnBhc19oZWFwX2Zvcl9l
YWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKShwYXNfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX29iamVjdF9saXZlbmVzc19raW5kIGxpdmVuZXNzX2tpbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog
YXJnKTsKIAogUEFTX0FQSSBib29sIHBhc19oZWFwX2Zvcl9lYWNoX2xpdmVfb2JqZWN0KHBhc19o
ZWFwKiBoZWFwLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnX2tpbmQuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19raW5kLmRlZgkocmV2aXNpb24gMjg3MDU5KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2tpbmQuZGVm
CSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCwxMCBAQCBQQVNfREVGSU5FX0hFQVBfQ09ORklH
X0tJTkQoYm1hbGxvYywgQk1BCiBQQVNfREVGSU5FX0hFQVBfQ09ORklHX0tJTkQoaG90Yml0LCBI
T1RCSVRfSEVBUF9DT05GSUcpCiAjZW5kaWYKIAorI2lmIFBBU19FTkFCTEVfTElORVJFRgorUEFT
X0RFRklORV9IRUFQX0NPTkZJR19LSU5EKGxpbmVyZWYsIExJTkVSRUZfSEVBUF9DT05GSUcpCisj
ZW5kaWYKKwogI2lmIFBBU19FTkFCTEVfSklUCiBQQVNfREVGSU5FX0hFQVBfQ09ORklHX0tJTkQo
aml0LCBKSVRfSEVBUF9DT05GSUcpCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCShyZXZp
c2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVh
cF9jb25maWdfdXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVm
IHN0cnVjdCB7CiAgICAgYm9vbCBzbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9lbmFibGVfZW1w
dHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb247CiAgICAgYm9vbCBzbWFsbF9zaGFyZWRf
c2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb247CiAg
ICAgYm9vbCBzbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQ7CisgICAg
dWludDhfdCBzbWFsbF9zZWdyZWdhdGVkX2xpbmVfc2hpZnQ7CiAgICAgYm9vbCBlbmFibGVfdmll
d19jYWNoZTsKICAgICBib29sIHVzZV9zbWFsbF9iaXRmaXQ7CiAgICAgdWludDhfdCBzbWFsbF9i
aXRmaXRfbWluX2FsaWduX3NoaWZ0OwpAQCAtMTA3LDI1ICsxMDgsMTQgQEAgdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7
X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAg
LmdyYW51bGVfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZp
Z19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUsIFwK
LSAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9zaXplID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFH
RV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlm
dCwgXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7
X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAotICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFs
bF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSksIFwKLSAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUg
PSBQQVNfTUFYX09CSkVDVF9TSVpFKFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfU0laRSgg
XAorICAgICAgICAgICAgLm1heF9vYmplY3Rfc2l6ZSA9IFBBU19NQVhfT0JKRUNUX1NJWkUoUEFT
X0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9TSVpFX0VYQ0xVU0lWRSggXAogICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFs
bF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCwgXAorICAgICAgICAgICAgICAgICgocGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVk
X2xpbmVfc2hpZnQsIFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUsIFwKICAg
ICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJH
U19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUpKSwgXAogICAgICAgICAgICAgLnBhZ2Vf
aGVhZGVyX2Zvcl9ib3VuZGFyeSA9IG5hbWUgIyMgX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFk
ZXJfZm9yX2JvdW5kYXJ5LCBcCiAgICAgICAgICAgICAuYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
ID0gbmFtZSAjIyBfc21hbGxfc2VncmVnYXRlZF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIsIFwK
ICAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gbmFtZSAjIyBf
c21hbGxfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlLCBcCi0gICAg
ICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgPSBQQVNfQkFTSUNfU0VHUkVHQVRF
RF9QQVlMT0FEX09GRlNFVCggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9z
aGlmdCwgXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50
cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAotICAgICAgICAg
ICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5z
bWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSksIFwKLSAgICAgICAgICAgIC5wYWdlX29iamVjdF9w
YXlsb2FkX3NpemUgPSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQVlMT0FEX1NJWkUoIFwKLSAgICAg
ICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19f
fSkuc21hbGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAo
KHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2Vn
cmVnYXRlZF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUp
LCBcCiAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfc21hbGxfc2Vn
cmVnYXRlZF9jcmVhdGVfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAgIC5kZXN0cm95X3BhZ2Vf
aGVhZGVyID0gbmFtZSAjIyBfc21hbGxfc2VncmVnYXRlZF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwK
ICAgICAgICAgfSwgXApAQCAtMTM4LDYgKzEyOCwzMCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAg
ICAgIC5udW1fYWxsb2NfYml0cyA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9BTExPQ19CSVRT
KCBcCiAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFf
QVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQsIFwKICAgICAgICAgICAg
ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2Vfc2l6ZSksIFwKKyAgICAgICAgLm51bV9saW5lcyA9IFwKKyAgICAgICAg
ICAgIFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9MSU5FUyggXAorICAgICAgICAgICAgICAgICgo
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdy
ZWdhdGVkX2xpbmVfc2hpZnQsIFwKKyAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUp
LCBcCisgICAgICAgIC5saW5lX3NoaWZ0ID0gXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVh
cF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfbGluZV9z
aGlmdCwgXAorICAgICAgICAuc2hhcmVkX3BheWxvYWRfb2Zmc2V0ID0gUEFTX0JBU0lDX1NFR1JF
R0FURURfUEFZTE9BRF9PRkZTRVRfU0hBUkVEKCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9taW5f
YWxpZ25fc2hpZnQsIFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3Vt
ZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAorICAgICAg
ICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplKSwgXAorICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRf
b2Zmc2V0ID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9PRkZTRVRfRVhDTFVTSVZFKCBc
CisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJH
U19ffSkuc21hbGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQsIFwKKyAgICAgICAgICAgICgo
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdy
ZWdhdGVkX2xpbmVfc2hpZnQsIFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAor
ICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1Nf
X30pLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplKSwgXAorICAgICAgICAuc2hhcmVkX3BheWxv
YWRfc2l6ZSA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfU0laRV9TSEFSRUQoIFwKKyAg
ICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199
KS5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCwgXAorICAgICAgICAgICAgKChwYXNf
YmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0
ZWRfcGFnZV9zaXplLCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1
bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUpLCBcCisgICAg
ICAgIC5leGNsdXNpdmVfcGF5bG9hZF9zaXplID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9B
RF9TSVpFX0VYQ0xVU0lWRSggXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdf
YXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0
LCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFf
QVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9saW5lX3NoaWZ0LCBcCisgICAgICAgICAgICAoKHBh
c19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVn
YXRlZF9wYWdlX3NpemUsIFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Fy
Z3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSksIFwKICAg
ICAgICAgLnNoYXJlZF9sb2dnaW5nX21vZGUgPSBcCiAgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0
ZWRfbG9nZ2luZ19tb2RlLCBcCiAgICAgICAgIC5leGNsdXNpdmVfbG9nZ2luZ19tb2RlID0gXApA
QCAtMTY5LDE5ICsxODMsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICgo
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFn
ZV9zaXplLCBcCiAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0gXAogICAgICAgICAgICAgICAg
ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5ncmFudWxl
X3NpemUsIFwKLSAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9zaXplID0gUEFTX0JBU0lDX1NFR1JF
R0FURURfUEFHRV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hl
YXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fc2VncmVnYXRlZF9taW5f
YWxpZ25fc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSwgXAotICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5ncmFu
dWxlX3NpemUpLCBcCiAgICAgICAgICAgICAubWF4X29iamVjdF9zaXplID0gUEFTX01BWF9PQkpF
Q1RfU0laRSggXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3Vt
ZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplKSwgXAogICAgICAgICAgICAgLnBh
Z2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2Vf
aGVhZGVyX2Zvcl9ib3VuZGFyeSwgXAogICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hl
YWRlciA9IG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRl
ciwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUgPSBcCiAg
ICAgICAgICAgICAgICAgbmFtZSAjIyBfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfZm9y
X2JvdW5kYXJ5X3JlbW90ZSwgXAotICAgICAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zm
c2V0ID0gMCwgXAotICAgICAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSA9IFwKLSAg
ICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJH
U19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAgLmNyZWF0ZV9wYWdlX2hlYWRl
ciA9IG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX2NyZWF0ZV9wYWdlX2hlYWRlciwgXAogICAg
ICAgICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9tZWRpdW1fc2VncmVnYXRl
ZF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXApAQCAtMTk0LDYgKzIwMSwxNCBA
QCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgIC5udW1fYWxsb2NfYml0cyA9IFBBU19CQVNJQ19T
RUdSRUdBVEVEX05VTV9BTExPQ19CSVRTKCBcCiAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFw
X2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3NlZ3JlZ2F0ZWRfbWluX2Fs
aWduX3NoaWZ0LCBcCiAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVu
dHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSksIFwKKyAgICAgICAgLm51bV9saW5l
cyA9IDAsIFwKKyAgICAgICAgLmxpbmVfc2hpZnQgPSAwLCBcCisgICAgICAgIC5zaGFyZWRfcGF5
bG9hZF9vZmZzZXQgPSAwLCBcCisgICAgICAgIC5leGNsdXNpdmVfcGF5bG9hZF9vZmZzZXQgPSAw
LCBcCisgICAgICAgIC5zaGFyZWRfcGF5bG9hZF9zaXplID0gXAorICAgICAgICAgICAgKChwYXNf
YmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1bV9wYWdlX3Np
emUsIFwKKyAgICAgICAgLmV4Y2x1c2l2ZV9wYXlsb2FkX3NpemUgPSBcCisgICAgICAgICAgICAo
KHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3Bh
Z2Vfc2l6ZSwgXAogICAgICAgICAuc2hhcmVkX2xvZ2dpbmdfbW9kZSA9IFwKICAgICAgICAgICAg
ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1f
c2hhcmVkX3NlZ3JlZ2F0ZWRfbG9nZ2luZ19tb2RlLCBcCiAgICAgICAgIC5leGNsdXNpdmVfbG9n
Z2luZ19tb2RlID0gXApAQCAtMjIyLDEwICsyMzcsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAg
ICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1Nf
X30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKICAgICAgICAgICAgIC5ncmFudWxlX3NpemUg
PSBcCiAgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgIC5wYWdl
X2hlYWRlcl9zaXplID0gUEFTX0JJVEZJVF9QQUdFX0hFQURFUl9TSVpFKCBcCi0gICAgICAgICAg
ICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNt
YWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFw
X2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwg
XAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19W
QV9BUkdTX199KS5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAogICAgICAgICAgICAg
Lm1heF9vYmplY3Rfc2l6ZSA9IFBBU19NQVhfQklURklUX09CSkVDVF9TSVpFKCBcCiAgICAgICAg
ICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30p
LnNtYWxsX2JpdGZpdF9wYWdlX3NpemUgLSBcCiAgICAgICAgICAgICAgICAgUEFTX0JJVEZJVF9Q
QUdFX0hFQURFUl9TSVpFKCBcCkBAIC0yMzYsMjEgKzI0NywyMSBAQCB0eXBlZGVmIHN0cnVjdCB7
CiAgICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gbmFtZSAjIyBfc21hbGxf
Yml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSwgXAogICAgICAgICAgICAgLmJvdW5kYXJ5
X2Zvcl9wYWdlX2hlYWRlciA9IG5hbWUgIyMgX3NtYWxsX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFn
ZV9oZWFkZXIsIFwKICAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3Rl
ID0gbmFtZSAjIyBfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUs
IFwKLSAgICAgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCA9IFBBU19CSVRGSVRf
UEFHRV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9iaXRmaXRfcGFnZV9zaXplLCBcCi0g
ICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FS
R1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19i
YXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X21p
bl9hbGlnbl9zaGlmdCksIFwKLSAgICAgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUg
PSBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUgLSBcCi0gICAgICAgICAgICAgICAg
UEFTX0JJVEZJVF9QQUdFX0hFQURFUl9TSVpFKCBcCi0gICAgICAgICAgICAgICAgICAgICgocGFz
X2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9iaXRmaXRf
cGFnZV9zaXplLCBcCi0gICAgICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9iaXRmaXRfcGFnZV9zaXplLCBcCi0gICAg
ICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9B
UkdTX199KS5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAogICAgICAgICAgICAgLmNy
ZWF0ZV9wYWdlX2hlYWRlciA9IG5hbWUgIyMgX3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFk
ZXIsIFwKICAgICAgICAgICAgIC5kZXN0cm95X3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfc21hbGxf
Yml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIgXAogICAgICAgICB9LCBcCiAgICAgICAgIC52YXJp
YW50ID0gcGFzX3NtYWxsX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LCBcCiAgICAgICAgIC5r
aW5kID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kXyAjIyBuYW1lICMjIF9zbWFsbF9iaXRm
aXQsIFwKKyAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ID0gUEFTX0JJVEZJVF9Q
QUdFX0hFQURFUl9TSVpFKCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAorICAgICAg
ICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNt
YWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0
KSwgXAorICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9zaXplID0gXAorICAgICAgICAgICAg
KChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2Jp
dGZpdF9wYWdlX3NpemUgLSBcCisgICAgICAgICAgICBQQVNfQklURklUX1BBR0VfSEVBREVSX1NJ
WkUoIFwKKyAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMp
e19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAorICAgICAgICAgICAgICAg
ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9i
aXRmaXRfcGFnZV9zaXplLCBcCisgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25m
aWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQp
LCBcCiAgICAgICAgIC5wYWdlX2FsbG9jYXRvciA9IG5hbWUgIyMgX2hlYXBfY29uZmlnX2FsbG9j
YXRlX3NtYWxsX2JpdGZpdF9wYWdlLCBcCiAgICAgICAgIFBBU19CSVRGSVRfUEFHRV9DT05GSUdf
U1BFQ0lBTElaQVRJT05TKG5hbWUgIyMgX3NtYWxsX2JpdGZpdF9wYWdlX2NvbmZpZykgXAogICAg
IH0sIFwKQEAgLTI2NywyNCArMjc4LDIwIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAg
ICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVk
aXVtX3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAgLmdyYW51bGVfc2l6ZSA9IFwKICAgICAgICAg
ICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSku
Z3JhbnVsZV9zaXplLCBcCi0gICAgICAgICAgICAucGFnZV9oZWFkZXJfc2l6ZSA9IFBBU19CSVRG
SVRfUEFHRV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBf
Y29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBcCi0gICAg
ICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1Nf
X30pLmdyYW51bGVfc2l6ZSwgXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fYml0Zml0X21pbl9hbGlnbl9zaGlm
dCksIFwKICAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUgPSBQQVNfTUFYX0JJVEZJVF9PQkpF
Q1RfU0laRSggXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3Vt
ZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBcCiAgICAgICAgICAgICAgICAg
KChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1bV9i
aXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9i
b3VuZGFyeSA9IG5hbWUgIyMgX21lZGl1bV9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5
LCBcCiAgICAgICAgICAgICAuYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfbWVk
aXVtX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAgIC5wYWdl
X2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gbmFtZSAjIyBfbWVkaXVtX2JpdGZpdF9wYWdl
X2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlLCBcCi0gICAgICAgICAgICAucGFnZV9vYmplY3Rf
cGF5bG9hZF9vZmZzZXQgPSAwLCBcCi0gICAgICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9z
aXplID0gXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50
cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBcCiAgICAgICAgICAgICAuY3JlYXRl
X3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfbWVkaXVtX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIs
IFwKICAgICAgICAgICAgIC5kZXN0cm95X3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfbWVkaXVtX2Jp
dGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXAogICAgICAgICAudmFyaWFu
dCA9IHBhc19tZWRpdW1fYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQsIFwKICAgICAgICAgLmtp
bmQgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfICMjIG5hbWUgIyMgX21lZGl1bV9iaXRm
aXQsIFwKKyAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ID0gMCwgXAorICAgICAg
ICAucGFnZV9vYmplY3RfcGF5bG9hZF9zaXplID0gXAorICAgICAgICAgICAgKChwYXNfYmFzaWNf
aGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1bV9wYWdlX3NpemUsIFwK
ICAgICAgICAgLnBhZ2VfYWxsb2NhdG9yID0gbmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVf
bWVkaXVtX2JpdGZpdF9wYWdlLCBcCiAgICAgICAgIFBBU19CSVRGSVRfUEFHRV9DT05GSUdfU1BF
Q0lBTElaQVRJT05TKG5hbWUgIyMgX21lZGl1bV9iaXRmaXRfcGFnZV9jb25maWcpIFwKICAgICB9
LCBcCkBAIC0zMDEsMjQgKzMwOCwyMCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAg
ICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1hcmdl
X2JpdGZpdF9wYWdlX3NpemUsIFwKICAgICAgICAgICAgIC5ncmFudWxlX3NpemUgPSBcCiAgICAg
ICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1Nf
X30pLmdyYW51bGVfc2l6ZSwgXAotICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX3NpemUgPSBQQVNf
QklURklUX1BBR0VfSEVBREVSX1NJWkUoIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWFyZ2VfYml0Zml0X3BhZ2Vfc2l6
ZSwgXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7
X19WQV9BUkdTX199KS5ncmFudWxlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNp
Y19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWFyZ2VfYml0Zml0X21pbl9h
bGlnbl9zaGlmdCksIFwKICAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUgPSBQQVNfTUFYX0JJ
VEZJVF9PQkpFQ1RfU0laRSggXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tYXJnZV9iaXRmaXRfcGFnZV9zaXplLCBcCiAg
ICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FS
R1NfX30pLm1hcmdlX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQpLCBcCiAgICAgICAgICAgICAucGFn
ZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gbmFtZSAjIyBfbWFyZ2VfYml0Zml0X3BhZ2VfaGVhZGVy
X2Zvcl9ib3VuZGFyeSwgXAogICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9
IG5hbWUgIyMgX21hcmdlX2JpdGZpdF9ib3VuZGFyeV9mb3JfcGFnZV9oZWFkZXIsIFwKICAgICAg
ICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlID0gbmFtZSAjIyBfbWFyZ2Vf
Yml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUsIFwKLSAgICAgICAgICAgIC5w
YWdlX29iamVjdF9wYXlsb2FkX29mZnNldCA9IDAsIFwKLSAgICAgICAgICAgIC5wYWdlX29iamVj
dF9wYXlsb2FkX3NpemUgPSBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25m
aWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1hcmdlX2JpdGZpdF9wYWdlX3NpemUsIFwKICAg
ICAgICAgICAgIC5jcmVhdGVfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9tYXJnZV9iaXRmaXRfY3Jl
YXRlX3BhZ2VfaGVhZGVyLCBcCiAgICAgICAgICAgICAuZGVzdHJveV9wYWdlX2hlYWRlciA9IG5h
bWUgIyMgX21hcmdlX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXAog
ICAgICAgICAudmFyaWFudCA9IHBhc19tYXJnZV9iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCwg
XAogICAgICAgICAua2luZCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF8gIyMgbmFtZSAj
IyBfbWFyZ2VfYml0Zml0LCBcCisgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCA9
IDAsIFwKKyAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSA9IFwKKyAgICAgICAgICAg
ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tYXJnZV9i
aXRmaXRfcGFnZV9zaXplLCBcCiAgICAgICAgIC5wYWdlX2FsbG9jYXRvciA9IG5hbWUgIyMgX2hl
YXBfY29uZmlnX2FsbG9jYXRlX21hcmdlX2JpdGZpdF9wYWdlLCBcCiAgICAgICAgIFBBU19CSVRG
SVRfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKG5hbWUgIyMgX21hcmdlX2JpdGZpdF9wYWdl
X2NvbmZpZykgXAogICAgIH0sIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmgJKHJldmlzaW9uIDI4NzA1OSkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcu
aAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBACiAjZGVmaW5lIFBBU19OVU1fQkFT
RUxJTkVfQUxMT0NBVE9SUyAgICAgIDMydQogCiAjZGVmaW5lIFBBU19NQVhfT0JKRUNUU19QRVJf
UEFHRSAgICAgICAgIDIwNDgKKyNkZWZpbmUgUEFTX01BWF9MSU5FU19QRVJfUEFHRSAgICAgICAg
ICAgNjQKIAogI2RlZmluZSBQQVNfTVBST1RFQ1RfREVDT01NSVRURUQgICAgICAgICBQQVNfRU5B
QkxFX1RFU1RJTkcKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xpbmVfbWV0YWRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGluZV9tZXRhZGF0YS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19saW5lX21ldGFkYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFBBU19MSU5FX01FVEFEQVRBX0gKKyNkZWZpbmUgUEFTX0xJTkVfTUVU
QURBVEFfSAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsK
Kworc3RydWN0IHBhc19saW5lX21ldGFkYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xpbmVfbWV0
YWRhdGEgcGFzX2xpbmVfbWV0YWRhdGE7CisKK3N0cnVjdCBwYXNfbGluZV9tZXRhZGF0YSB7Cisg
ICAgdWludDhfdCBvZmZzZXRfdG9fZmlyc3Rfb2JqZWN0OworICAgIHVpbnQ4X3QgbnVtX29iamVj
dHM7Cit9OworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xJTkVfTUVUQURB
VEFfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNSw4ICsxMzUsMTMgQEAgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUo
cGFzX2xvY2FsXwogICAgICAgIGlzIHRoZSBvbmx5IGNsaWVudCBvZiBwYXJ0aWFsX3ZpZXctPmFs
bG9jX2JpdHMgYmVpbmcgcmlnaHQgZHVyaW5nIHByaW1vcmRpYWwgbW9kZSwgYW5kIGl0CiAgICAg
ICAgaGFwcGVucyB0byBob2xkIHRoZSBvd25lcnNoaXAgbG9jay4gKi8KICAgICBwYXNfbG9ja19s
b2NrKCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgIGlmIChwYXNfY29tcGFjdF90
YWdnZWRfdW5zaWduZWRfcHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+YWxsb2NfYml0cykgPT0gKHVu
c2lnbmVkKilzcmMtPmJpdHMpCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9w
dHJfc3RvcmUoJnBhcnRpYWxfdmlldy0+YWxsb2NfYml0cywgKHVuc2lnbmVkKilkc3QtPmJpdHMp
OworICAgIC8qIFdlIGtub3cgdGhhdCB3ZSBjYW4gYWNjZXNzIHRoZSBhbGxvY2F0b3IncyBiaXRz
IGV2ZW4gdGhvdWdoIHdlIGhhdmVuJ3QgY2hlY2tlZCBpdHMgcGFnZV9jb25maWcgb3IKKyAgICAg
ICByb2xlLCBzaW5jZSB3ZSBhcmUgaW4gdGhlIHBhcnRpYWwgcHJpbW9yZGlhbCBtb2RlLiAqLwor
ICAgIGlmIChwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX2xvYWQoJnBhcnRpYWxfdmll
dy0+YWxsb2NfYml0cykKKyAgICAgICAgPT0gKHVuc2lnbmVkKilzcmMtPnBheWxvYWQuYWxsb2Nf
Yml0c19pbXBsKSB7CisgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3Rv
cmUoCisgICAgICAgICAgICAmcGFydGlhbF92aWV3LT5hbGxvY19iaXRzLCAodW5zaWduZWQqKWRz
dC0+cGF5bG9hZC5hbGxvY19iaXRzX2ltcGwpOworICAgIH0KICAgICBwYXNfbG9ja191bmxvY2so
JnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmgJKHJl
dmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgInBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZp
dF9hbGxvY2F0b3IuaCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2xv
Y2FsX2FsbG9jYXRvcl9idW1wLmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9jb25m
aWdfa2luZC5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEu
aCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgpAQCAtNTUsNiArNTYsNyBAQCBzdHJ1Y3QgcGFzX2xv
Y2FsX2FsbG9jYXRvciB7CiAgICAgdWludDhfdCBhbGlnbm1lbnRfc2hpZnQ7CiAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9jb25maWdfa2luZCBjb25maWdfa2luZCA6IDg7CiAgICAgYm9vbCBjdXJy
ZW50X3dvcmRfaXNfdmFsaWQ7IC8qIFRoaXMgaXMganVzdCB1c2VkIGJ5IGVudW1lcmF0aW9uLiAq
LworICAgIHVpbnQ4X3QgbnVtX2J1bXBzOwogCiAgICAgLyogVGhpcyBoYXMgdG8gaGF2ZSBhIHBv
aW50ZXIgdG8gb3VyIGluZGV4IHdpdGhpbiB0aGUgdmlldy4gV2UgY2FuIGdldCB0byB0aGUgdmll
dyB1c2luZwogICAgICAgIHBhZ2VfaXNoLiBNYXliZSB3b3J0aCByZWNvbnNpZGVyaW5nIHRoYXQs
IGJ1dCB0aGVuIGFnYWluIG1heWJlIGl0J3MgZ29vZCBlbm91Z2guIApAQCAtNzcsNyArNzksMTEg
QEAgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgewogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dmlldzsgLyogcG9pbnRzIHRvIGEgcGFydGlhbCB2aWV3IGlmIHdlJ3JlIGluIHBhcnRpYWwgbW9k
ZSBvciB0aGUgc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5
IG90aGVyd2lzZS4gVGhpcyB3aWxsIHBvaW50IHRvIGEgcGFydGlhbCB2aWV3IGluIGVpdGhlcgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbW9yZGlhbCBwYXJ0aWFsIG1vZGUg
b3IgaW4gbm9ybWFsIHBhcnRpYWwgbW9kZS4gKi8KLSAgICB1aW50NjRfdCBiaXRzWzFdOworICAg
IHVuaW9uIHsKKyAgICAgICAgdWludDY0X3QgYWxsb2NfYml0c19pbXBsWzFdOworICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAgYnVtcHNfaW1wbFsxXTsKKyAgICAgICAgcGFzX2JpdGZp
dF9hbGxvY2F0b3IgYml0Zml0X2FsbG9jYXRvcl9pbXBsOworICAgIH0gcGF5bG9hZDsKIH07CiAK
ICNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9OVUxMX0lOSVRJQUxJWkVSICgocGFzX2xvY2Fs
X2FsbG9jYXRvcil7IFwKQEAgLTkyLDE3ICs5OCwyMyBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9j
YXRvciB7CiAgICAgICAgIC52aWV3ID0gTlVMTCwgXAogICAgICAgICAuYWxpZ25tZW50X3NoaWZ0
ID0gMCwgXAogICAgICAgICAuY3VycmVudF93b3JkX2lzX3ZhbGlkID0gZmFsc2UsIFwKKyAgICAg
ICAgLm51bV9idW1wcyA9IDAsIFwKICAgICAgICAgLmN1cnJlbnRfd29yZCA9IDAsIFwKICAgICAg
ICAgLmNvbmZpZ19raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9udWxsIFwK
ICAgICB9KQogCi0jZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRShudW1fYWxsb2NfYml0
cykgXAotICAgIChQQVNfT0ZGU0VUT0YocGFzX2xvY2FsX2FsbG9jYXRvciwgYml0cykgKyBcCisj
ZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfTUFYX05VTV9CVU1QUyhudW1fbGluZXMpIFwKKyAg
ICAoKG51bV9saW5lcykgLyAyKQorCisjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRShu
dW1fYWxsb2NfYml0cywgbnVtX2xpbmVzKSBcCisgICAgKFBBU19PRkZTRVRPRihwYXNfbG9jYWxf
YWxsb2NhdG9yLCBwYXlsb2FkKSArIFwKICAgICAgUEFTX01BWF9DT05TVCggXAotICAgICAgICAg
c2l6ZW9mKHVpbnQ2NF90KSAqIFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTNjQobnVtX2FsbG9jX2Jp
dHMpLCBcCisgICAgICAgICBQQVNfTUFYX0NPTlNUKCBcCisgICAgICAgICAgICAgc2l6ZW9mKHVp
bnQ2NF90KSAqIFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTNjQobnVtX2FsbG9jX2JpdHMpLCBcCisg
ICAgICAgICAgICAgc2l6ZW9mKHBhc19sb2NhbF9hbGxvY2F0b3JfYnVtcCkgKiBQQVNfTE9DQUxf
QUxMT0NBVE9SX01BWF9OVU1fQlVNUFMobnVtX2xpbmVzKSksIFwKICAgICAgICAgIFBBU19ST1VO
RF9VUF9UT19QT1dFUl9PRl8yKHNpemVvZihwYXNfYml0Zml0X2FsbG9jYXRvciksIHNpemVvZih1
aW50NjRfdCkpKSkKIAotI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfU0la
RSBQQVNfT0ZGU0VUT0YocGFzX2xvY2FsX2FsbG9jYXRvciwgYml0cykKKyNkZWZpbmUgUEFTX0xP
Q0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVEX1NJWkUgUEFTX09GRlNFVE9GKHBhc19sb2NhbF9hbGxv
Y2F0b3IsIHBheWxvYWQpCiAjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9J
TkRFWCAwdQogI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElD
RVMgKFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9TSVpFIC8gOCkKIApAQCAtMTI2LDYg
KzEzOCwyMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9pCiAgICAg
cmV0dXJuICEhYWxsb2NhdG9yLT5wYWdlX2lzaDsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHVpbnQ2NF90KiBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9hbGxvY19iaXRzKHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3Jv
bGUgcm9sZSkKK3sKKyAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
c2VzX2xpbmVzX2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCByb2xlKSk7CisgICAgcmV0dXJuIGFsbG9j
YXRvci0+cGF5bG9hZC5hbGxvY19iaXRzX2ltcGw7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAqIHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2J1
bXBzKAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3Jv
bGUgcm9sZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Vz
ZXNfbGluZXNfZm9yX3JvbGUocGFnZV9jb25maWcsIHJvbGUpKTsKKyAgICByZXR1cm4gYWxsb2Nh
dG9yLT5wYXlsb2FkLmJ1bXBzX2ltcGw7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2hhc19iaXRmaXQocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKQog
ewogICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2lzX2JpdGZpdChh
bGxvY2F0b3ItPmNvbmZpZ19raW5kKTsKQEAgLTEzNCw3ICsxNjMsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9oCiBzdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfYWxs
b2NhdG9yKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9iaXRmaXQocGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yKQogewogICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfbG9jYWxfYWxsb2Nh
dG9yX2hhc19iaXRmaXQoYWxsb2NhdG9yKSk7Ci0gICAgcmV0dXJuIChwYXNfYml0Zml0X2FsbG9j
YXRvciopYWxsb2NhdG9yLT5iaXRzOworICAgIHJldHVybiAmYWxsb2NhdG9yLT5wYXlsb2FkLmJp
dGZpdF9hbGxvY2F0b3JfaW1wbDsKIH0KIAogc3RhdGljIGlubGluZSB1aW50cHRyX3QgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9wYWdlX2JvdW5kYXJ5KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRv
ciwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxv
Y2F0b3JfYnVtcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfYnVtcC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfYnVtcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IEZpbGlwIFBpemxv
CisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICovCisKKyNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9CVU1QX0gKKyNkZWZpbmUgUEFTX0xP
Q0FMX0FMTE9DQVRPUl9CVU1QX0gKKworI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVH
SU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXA7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAgcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1w
OworCitzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wIHsKKyAgICB1aW50MTZfdCByZW1h
aW5pbmc7CisgICAgdWludDE2X3QgcGF5bG9hZF9lbmQ7Cit9OworCitQQVNfRU5EX0VYVEVSTl9D
OworCisjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9CVU1QX0ggKi8KKwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAicGFzX2RlYnVnX2hlYXAuaCIK
ICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfZnVsbF9hbGxvY19iaXRzX2lu
bGluZXMuaCIKKyNpbmNsdWRlICJwYXNfbGluZV9tZXRhZGF0YS5oIgogI2luY2x1ZGUgInBhc19z
Y2F2ZW5nZXIuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxp
bmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5o
IgpAQCAtNTUsNiArNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yCiB7CiAgICAgYWxsb2NhdG9yLT5wYWdlX2lzaCA9IDA7CiAgICAgcGFzX2NvbXBpbGVyX2Zl
bmNlKCk7CisgICAgYWxsb2NhdG9yLT5udW1fYnVtcHMgPSAwOwogICAgIGFsbG9jYXRvci0+Y3Vy
cmVudF93b3JkX2lzX3ZhbGlkID0gZmFsc2U7CiAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9
IDA7CiAgICAgYWxsb2NhdG9yLT5yZW1haW5pbmcgPSAwOwpAQCAtNjgsOSArNzAsMTQgQEAgc3Rh
dGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfcgogc3RhdGljIGlubGluZSB2b2lk
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXAocGFzX2xvY2FsX2FsbG9jYXRvciogYWxs
b2NhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5kKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVu
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogeworICAgIFBBU19BU1NFUlQo
cGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKICAgICBQQVNfVEVTVElOR19BU1NFUlQoZW5k
KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoYmVnaW4gPj0gcGFnZV9ib3VuZGFyeSk7CisgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKGVuZCA+IGJlZ2luKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQo
ZW5kIDw9IHBhZ2VfYm91bmRhcnkgKyBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAg
YWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9IGVuZDsKICAgICBhbGxvY2F0b3ItPnJlbWFpbmluZyA9
ICh1bnNpZ25lZCkoZW5kIC0gYmVnaW4pOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF9vZmZzZXQg
PSAwOwpAQCAtMTMxLDcgKzEzOCw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBh
c19sb2NhbF8KIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAg
Ci0gICAgdW5zaWduZWQqIGFsbG9jX2JpdHM7CisgICAgdW5zaWduZWQqIHBhZ2VfYWxsb2NfYml0
czsKKyAgICB1aW50NjRfdCogYWxsb2NhdG9yX2FsbG9jX2JpdHM7CiAgICAgc2l6ZV90IGluZGV4
OwogICAgIHVuc2lnbmVkIG51bV9kZW51bGxpZmllZF93b3JkczsKICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYW5fYml0c190b19zZXRfdXBfdXNlX2NvdW50c19kYXRhIGRhdGE7CkBAIC0xNDks
NyArMTU3LDEwIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAg
ICAgICAgUEFTX0FTU0VSVCh2aWV3X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfa2luZCk7CiAgICAgCiAgICAgb2JqZWN0X3NpemUgPSBhbGxvY2F0b3ItPm9iamVjdF9zaXpl
OwotICAgIGFsbG9jX2JpdHMgPSBwYWdlLT5hbGxvY19iaXRzOworICAgIHBhZ2VfYWxsb2NfYml0
cyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfYWxsb2NfYml0cygKKyAgICAgICAgcGFnZSwgcGFnZV9j
b25maWcsIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfcGFnZV9yb2xlX2Zvcl9hbGxvY2F0
b3Iodmlld19raW5kKSk7CisgICAgYWxsb2NhdG9yX2FsbG9jX2JpdHMgPSBwYXNfbG9jYWxfYWxs
b2NhdG9yX2dldF9hbGxvY19iaXRzKAorICAgICAgICBhbGxvY2F0b3IsIHBhZ2VfY29uZmlnLCBw
YXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X3BhZ2Vfcm9sZV9mb3JfYWxsb2NhdG9yKHZpZXdf
a2luZCkpOwogICAgIAogICAgIG51bV9kZW51bGxpZmllZF93b3JkcyA9IDA7CiAKQEAgLTE4NCw3
ICsxOTUsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfCiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCB6ZXJvaW5nIGJpdHMu
XG4iLCBhbGxvY2F0b3IpOwogICAgIHBhc196ZXJvX21lbW9yeSgKLSAgICAgICAgYWxsb2NhdG9y
LT5iaXRzICsgKGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2JlZ2luID4+IDEpLAorICAgICAg
ICBhbGxvY2F0b3JfYWxsb2NfYml0cyArIChmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdp
biA+PiAxKSwKICAgICAgICAgc2l6ZW9mKHVuc2lnbmVkKSAqICgoKGZ1bGxfYWxsb2NfYml0cy53
b3JkX2luZGV4X2VuZCArIDEpICYgfjF1KSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2JlZ2luICYgfjF1KSkpOwogCkBAIC0yMTAsOSAr
MjIxLDkgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAgICAg
ICB1bnNpZ25lZCBmcmVlOwogICAgICAgICAKICAgICAgICAgZnVsbCA9IGZ1bGxfYWxsb2NfYml0
cy5iaXRzW2luZGV4XTsKLSAgICAgICAgYWxsb2MgPSBhbGxvY19iaXRzW2luZGV4XTsKKyAgICAg
ICAgYWxsb2MgPSBwYWdlX2FsbG9jX2JpdHNbaW5kZXhdOwogICAgICAgICBmcmVlID0gZnVsbCAm
IH5hbGxvYzsKLSAgICAgICAgKCh1bnNpZ25lZCopYWxsb2NhdG9yLT5iaXRzKVtpbmRleF0gPSBm
cmVlOworICAgICAgICAoKHVuc2lnbmVkKilhbGxvY2F0b3JfYWxsb2NfYml0cylbaW5kZXhdID0g
ZnJlZTsKIAogI2lmIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5D
WQogICAgICAgICBudW1fdG90YWxfb2JqZWN0cyArPSBfX2J1aWx0aW5fcG9wY291bnQoZnVsbCk7
CkBAIC0yMjAsNyArMjMxLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xv
Y2FsXwogI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJ
RU5DWSAqLwogICAgICAgICAKICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgICAg
IGFsbG9jX2JpdHNbaW5kZXhdID0gYWxsb2MgfCBmdWxsOworICAgICAgICBwYWdlX2FsbG9jX2Jp
dHNbaW5kZXhdID0gYWxsb2MgfCBmdWxsOwogICAgICAgICBzd2l0Y2ggKHZpZXdfa2luZCkgewog
ICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTI1Niw3ICsyNjcsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCBwYXNfbG9jYWxfCiAgICAgICAgIAogICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAg
ICAgICAgcHJpbnRmKCJpbmRleCA9ICV6dSwgZnVsbCA9ICV4LCBhbGxvYyA9ICV4LCBmcmVlID0g
JXhcbiIsCi0gICAgICAgICAgICAgICAgICAgaW5kZXgsIGZ1bGwsIGFsbG9jLCAoKHVuc2lnbmVk
KilhbGxvY2F0b3ItPmJpdHMpW2luZGV4XSk7CisgICAgICAgICAgICAgICAgICAgaW5kZXgsIGZ1
bGwsIGFsbG9jLCAoKHVuc2lnbmVkKilhbGxvY2F0b3JfYWxsb2NfYml0cylbaW5kZXhdKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMjcxLDEzICsyODIsMTMgQEAgc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogCiAgICAgaWYgKHBhZ2VfY29uZmlnLnVzZV9yZXZlcnNl
ZF9jdXJyZW50X3dvcmQpIHsKICAgICAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy52YXJpYW50
ID09IHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQpOwotICAgICAgICBh
bGxvY2F0b3ItPmN1cnJlbnRfd29yZCA9IHBhc19yZXZlcnNlNjQoYWxsb2NhdG9yLT5iaXRzW2N1
cnJlbnRfb2Zmc2V0XSk7CisgICAgICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkID0gcGFzX3Jl
dmVyc2U2NChhbGxvY2F0b3JfYWxsb2NfYml0c1tjdXJyZW50X29mZnNldF0pOwogICAgICAgICBp
ZiAodmVyYm9zZSkgewogICAgICAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwIHVzaW5nIHdv
cmQgJWxseCwgcmV2ZXJzZWQgdG8gJWxseC5cbiIsCi0gICAgICAgICAgICAgICAgICAgIGFsbG9j
YXRvciwgKHVuc2lnbmVkIGxvbmcgbG9uZylhbGxvY2F0b3ItPmJpdHNbY3VycmVudF9vZmZzZXRd
LCAodW5zaWduZWQgbG9uZyBsb25nKWFsbG9jYXRvci0+Y3VycmVudF93b3JkKTsKKyAgICAgICAg
ICAgICAgICAgICAgYWxsb2NhdG9yLCAodW5zaWduZWQgbG9uZyBsb25nKWFsbG9jYXRvcl9hbGxv
Y19iaXRzW2N1cnJlbnRfb2Zmc2V0XSwgKHVuc2lnbmVkIGxvbmcgbG9uZylhbGxvY2F0b3ItPmN1
cnJlbnRfd29yZCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHBhZ2VfY29uZmlnLnZhcmlh
bnQgPT0gcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCkKLSAgICAgICAg
YWxsb2NhdG9yLT5jdXJyZW50X3dvcmQgPSBhbGxvY2F0b3ItPmJpdHNbY3VycmVudF9vZmZzZXRd
OworICAgICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29yZCA9IGFsbG9jYXRvcl9hbGxvY19iaXRz
W2N1cnJlbnRfb2Zmc2V0XTsKICAgICBlbHNlCiAgICAgICAgIGFsbG9jYXRvci0+Y3VycmVudF93
b3JkID0gMDsKIApAQCAtMjg3LDEzICsyOTgsMTMgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQgcGFzX2xvY2FsXwogCiAgICAgc3dpdGNoICh2aWV3X2tpbmQpIHsKICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHBhZ2UtPm51bV9ub25f
ZW1wdHlfd29yZHMgPQorICAgICAgICBwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVz
ID0KICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xv
YWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAgJmRpcmVjdG9yeS0+ZGF0YSktPmZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkczsKKyAgICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5kYXRhKS0+ZnVs
bF9udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzOwogICAgICAgICBicmVhazsKICAgICAgICAg
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcGFn
ZS0+bnVtX25vbl9lbXB0eV93b3JkcyArPSBudW1fZGVudWxsaWZpZWRfd29yZHM7CisgICAgICAg
IHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMgKz0gbnVtX2RlbnVsbGlmaWVkX3dv
cmRzOwogICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgZGVmYXVsdDoKQEAgLTMxNywyMSAr
MzI4LDIzIEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2ZyZWVfYml0cyhwYXMKICAgICBQ
QVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAgICAgUEFTX0FTU0VSVCh2
aWV3X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZAogICAgICAgICAg
ICAgICAgfHwgdmlld19raW5kID09IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kKTsK
KyAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191c2VzX2xpbmVzX2Zv
cl9yb2xlKAorICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF92
aWV3X2tpbmRfZ2V0X3BhZ2Vfcm9sZV9mb3JfYWxsb2NhdG9yKHZpZXdfa2luZCkpKTsKIAogICAg
IGFsbG9jYXRvci0+cGF5bG9hZF9lbmQgPSAwOwogICAgIGFsbG9jYXRvci0+cmVtYWluaW5nID0g
MDsKIAogICAgIGlmICh2aWV3X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
a2luZCkgeworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRh
OwogICAgICAgICB1bnNpZ25lZCBiZWdpbl9vZmZzZXQ7CiAgICAgICAgIHVuc2lnbmVkIGVuZF9v
ZmZzZXQ7CiAKICAgICAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9j
b25maWcuYmFzZS5ncmFudWxlX3NpemUpCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19pbnN0YWxsX2Z1bGxfdXNlX2NvdW50cygocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcqKXZpZXcpOwogCi0gICAgICAgIGJlZ2luX29mZnNldCA9IHBhc19zZWdyZWdhdGVk
X3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QoCi0gICAgICAg
ICAgICBwYWdlLCBkaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgZW5kX29mZnNldCA9
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCi0g
ICAgICAgICAgICAmZGlyZWN0b3J5LT5kYXRhKS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90
b19lbmRfb2ZfbGFzdF9vYmplY3Q7CisgICAgICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOworICAg
ICAgICBiZWdpbl9vZmZzZXQgPSBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2Zp
cnN0X29iamVjdDsKKyAgICAgICAgZW5kX29mZnNldCA9IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2Vf
Ym91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OwogCiAgICAgICAgIGJlZ2luX29mZnNldCA9
IFBBU19CSVRWRUNUT1JfV09SRDY0X0lOREVYKAogICAgICAgICAgICAgKHVuc2lnbmVkKXBhc19w
YWdlX2Jhc2VfaW5kZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCkBA
IC0zNjQsMTUgKzM3Nyw0MTkgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfZnJlZV9iaXRz
KHBhcwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAotcGFzX2xvY2FsX2FsbG9j
YXRvcl9tYWtlX2J1bXAoCi0gICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAg
IHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5LAotICAgIHVpbnRwdHJfdCBiZWdpbiwgdWludHB0cl90
IGVuZCwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKK3Bhc19s
b2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXBzX2Zyb21fbGluZXNfc21hbGwocGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBvYmplY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBh
Z2VfY29uZmlnKQogewotICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVk
KTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgdWlu
dHB0cl90IGVuZF9vZmZzZXQ7CisgICAgdWludHB0cl90IGxpbmVfaW5kZXg7CisgICAgdWludHB0
cl90IGZpcnN0X2xpbmVfaW5kZXg7CisgICAgdWludHB0cl90IGxpbmVfb2Zmc2V0OworICAgIHVp
bnQ4X3QqIGxpbmVzOworICAgIHBhc19saW5lX21ldGFkYXRhKiBsaW5lX21ldGFkYXRhOworICAg
IHVpbnRwdHJfdCBudW1fYnVtcHM7CisgICAgdWludHB0cl90IGxhc3RfZW5kX29mZnNldDsKKyAg
ICB1aW50cHRyX3QgbGFzdF9yZW1haW5pbmc7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1w
KiBidW1wczsKKyAgICAKKyAgICBQQVNfVEVTVElOR19BU1NFUlQob2JqZWN0X3NpemUgPT0gZGly
ZWN0b3J5LT5vYmplY3Rfc2l6ZSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9iamVjdF9zaXpl
ID09IGFsbG9jYXRvci0+b2JqZWN0X3NpemUpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChvYmpl
Y3Rfc2l6ZSA8PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25m
aWcpKTsKKworICAgIGJ1bXBzID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYnVtcHMoYWxsb2Nh
dG9yLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7CisK
KyAgICBmaXJzdF9saW5lX2luZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX2luZGV4X29m
X29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5KAorICAgICAgICBkYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCwgcGFnZV9jb25maWcpOworCisg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImZpcnN0X2xpbmVfaW5kZXggPSAlbHVc
biIsIGZpcnN0X2xpbmVfaW5kZXgpOworICAgIAorICAgIGVuZF9vZmZzZXQgPSBkYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKKyAgICBsaW5lX2lu
ZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRf
ZnJvbV9wYWdlX2JvdW5kYXJ5KAorICAgICAgICBlbmRfb2Zmc2V0IC0gb2JqZWN0X3NpemUsIHBh
Z2VfY29uZmlnKTsKKyAgICBsaW5lX29mZnNldCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9v
ZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X2F0X2xpbmVfaW5kZXgobGluZV9pbmRleCwgcGFnZV9j
b25maWcpOworCisgICAgbGluZXMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVzKHBhZ2UsIHBh
Z2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKTsKKyAgICBsaW5l
X21ldGFkYXRhID0gKHBhc19saW5lX21ldGFkYXRhKikKKyAgICAgICAgcGFzX2NvbXBhY3RfdGFn
Z2VkX3ZvaWRfcHRyX2xvYWRfbm9uX251bGwoJmRhdGEtPmZ1bGxfYWxsb2NfYml0c19vcl9saW5l
X21ldGFkYXRhKTsKKyAgICAKKyAgICBudW1fYnVtcHMgPSAwOworICAgIAorICAgIFBBU19URVNU
SU5HX0FTU0VSVChsaW5lX2luZGV4IDwgcGFnZV9jb25maWcubnVtX2xpbmVzKTsKKworICAgIC8q
IFdlIHByb2NlZWQgaW4gcmV2ZXJzZSBvcmRlciB0aHJvdWdoIHRoZSBwYWdlIHNvIHRoYXQgd2hl
biBidW1wcyBhcmUgcG9wcGVkIGluIHJldmVyc2Ugb3JkZXIsIHdlIGFsbG9jYXRlCisgICAgICAg
aW4gdGhlIHBhZ2UgaW4gZm9yd2FyZCBvcmRlci4gVGhpcyBpcyB3cml0dGVuIGluIGEgY3Jhenkg
bWljcm9vcHRpbWl6ZWQgc3R5bGUgYmVjYXVzZSB3ZSBleHBlY3QgdGhpcyBjb2RlCisgICAgICAg
dG8gYmUgc3VwZXIgaG90LiBPbmUgb2YgdGhlIGNoYWxsZW5nZXMgaXMgdGhhdCB3aGVuIHdlIGZp
bmQgYSBidW1wLCB3ZSBkb24ndCBrbm93IGlmIGl0J3MgdGhlIGxhc3Qgb25lCisgICAgICAgdW50
aWwgd2UgZmluZCB0aGUgbmV4dCBvbmUgYWZ0ZXIgdGhhdC4gVGhlICJsYXN0IiBvbmUgaXMgdGhl
IG9uZSB3ZSB3YW50IHRvIHB1dCBkaXJlY3RseSBpbnRvIHRoZSBidW1wCisgICAgICAgYWxsb2Nh
dG9yLCByYXRoZXIgdGhhbiBhZGRpbmcgaXQgYXMgYSBsaW5lIHRoYXQgdGhlIGJ1bXAgYWxsb2Nh
dG9yIGNhbiBmaW5kLiBUaGF0IGJvdGggc2F2ZXMgc3BhY2UgKHdlCisgICAgICAgbmVlZCBvbmUg
ZmV3ZXIgYnVtcHMgaW4gdGhlIGJ1bXAgYXJyYXkpIGFuZCBzYXZlcyB0aW1lIChvbmNlIHdlIGFy
ZSBmaW5pc2hlZCBoZXJlLCB0aGUgYWxsb2NhdG9yIGNhbgorICAgICAgIGltbWVkaWF0ZWx5IGFs
bG9jYXRlIHVzaW5nIHRoZSBmYXN0ZXN0IHBhdGgpLiBTbywgdGhpcyBob2xkcyBvbnRvIHRoZSBs
YXN0IGJ1bXAgYW5kIG9ubHkgYWRkcyBpdCB0byB0aGUKKyAgICAgICBidW1wcyBhcnJheSBvbmNl
IGl0IGZpbmRzIGFub3RoZXIgYnVtcC4gSWYgaXQgZG9lc24ndCBmaW5kIGFub3RoZXIgYnVtcCwg
dGhlbiB0aGF0IGxhc3QgYnVtcCBlbmRzIHVwCisgICAgICAgYmVpbmcgdGhlIG9uZSB3ZSBzZXQg
YXMgdGhlIGN1cnJlbnQgYnVtcCBhbGxvY2F0b3IuCisgICAgCisgICAgICAgVGhlIGZpcnN0IG9y
ZGVyIG9mIGJ1c2luZXNzIGlzIHRvIGZpbmQgdGhlIGZpcnN0IGJ1bXAuICovCisgICAgaWYgKGxp
bmVzW2xpbmVfaW5kZXhdKSB7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIFBBU19URVNUSU5H
X0FTU0VSVChsaW5lX2luZGV4ID4gZmlyc3RfbGluZV9pbmRleCk7CisgICAgICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQoCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5l
X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfYXRfbGluZV9pbmRleChsaW5lX2luZGV4LCBwYWdl
X2NvbmZpZykKKyAgICAgICAgICAgICAgICA9PSBsaW5lX29mZnNldCk7CisgICAgICAgICAgICBs
aW5lX2luZGV4LS07CisgICAgICAgICAgICBsaW5lX29mZnNldCAtPSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25maWcpOworICAgICAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKGxpbmVfaW5kZXggPj0gZmlyc3RfbGluZV9pbmRleCAmJiBsaW5lX2luZGV4IDwg
cGFnZV9jb25maWcubnVtX2xpbmVzKTsKKyAgICAgICAgfSB3aGlsZSAobGluZXNbbGluZV9pbmRl
eF0pOworICAgICAgICBlbmRfb2Zmc2V0ID0KKyAgICAgICAgICAgIGxpbmVfbWV0YWRhdGFbbGlu
ZV9pbmRleCArIDFdLm9mZnNldF90b19maXJzdF9vYmplY3QgKworICAgICAgICAgICAgbGluZV9v
ZmZzZXQgKyBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25maWcp
OworICAgIH0KKworICAgIFBBU19URVNUSU5HX0FTU0VSVChsaW5lX2luZGV4ID49IGZpcnN0X2xp
bmVfaW5kZXggJiYgbGluZV9pbmRleCA8IHBhZ2VfY29uZmlnLm51bV9saW5lcyk7CisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfb2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeV9hdF9saW5lX2luZGV4KGxpbmVfaW5kZXgsIHBhZ2VfY29uZmln
KQorICAgICAgICA9PSBsaW5lX29mZnNldCk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFsaW5l
c1tsaW5lX2luZGV4XSk7CisgICAgCisgICAgLyogTm93IHdlIGhhdmUgdGhlIGZpcnN0IGZyZWUg
bGluZS4gRmluZCBob3cgYmlnIGl0IGlzLiAqLworICAgIGZvciAoOzspIHsKKyAgICAgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKGxpbmVfaW5kZXggPj0gZmlyc3RfbGluZV9pbmRleCAmJiBsaW5lX2lu
ZGV4IDwgcGFnZV9jb25maWcubnVtX2xpbmVzKTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX29mZnNldF9mcm9tX3BhZ2Vf
Ym91bmRhcnlfYXRfbGluZV9pbmRleChsaW5lX2luZGV4LCBwYWdlX2NvbmZpZykKKyAgICAgICAg
ICAgID09IGxpbmVfb2Zmc2V0KTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFsaW5lc1ts
aW5lX2luZGV4XSk7CisKKyAgICAgICAgbGluZXNbbGluZV9pbmRleF0gPSBsaW5lX21ldGFkYXRh
W2xpbmVfaW5kZXhdLm51bV9vYmplY3RzOworICAgICAgICAKKyAgICAgICAgaWYgKGxpbmVfaW5k
ZXggPD0gZmlyc3RfbGluZV9pbmRleCkgeworICAgICAgICAgICAgLyogVGhpcyBpcyB0aGUgb25s
eSBidW1wIHdlIHdpbGwgZmluZCEgKi8KKyAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChs
aW5lX2luZGV4ID09IGZpcnN0X2xpbmVfaW5kZXgpOworICAgICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zZXRfdXBfYnVtcCgKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3IsCisgICAgICAg
ICAgICAgICAgcGFnZV9ib3VuZGFyeSwKKyAgICAgICAgICAgICAgICBwYWdlX2JvdW5kYXJ5ICsg
bGluZV9tZXRhZGF0YVtsaW5lX2luZGV4XS5vZmZzZXRfdG9fZmlyc3Rfb2JqZWN0ICsgbGluZV9v
ZmZzZXQsCisgICAgICAgICAgICAgICAgcGFnZV9ib3VuZGFyeSArIGVuZF9vZmZzZXQsCisgICAg
ICAgICAgICAgICAgcGFnZV9jb25maWcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbGluZV9pbmRleC0tOworICAgICAgICBsaW5lX29mZnNldCAtPSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25maWcpOworICAgICAgICBpZiAo
bGluZXNbbGluZV9pbmRleF0pIHsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBwYXlsb2FkX29mZnNl
dDsKKyAgICAgICAgICAgIC8qIFdlIGZvdW5kIG91ciBmaXJzdCBidW1wISAqLworICAgICAgICAg
ICAgcGF5bG9hZF9vZmZzZXQgPSBsaW5lX21ldGFkYXRhW2xpbmVfaW5kZXggKyAxXS5vZmZzZXRf
dG9fZmlyc3Rfb2JqZWN0ICsKKyAgICAgICAgICAgICAgICBsaW5lX29mZnNldCArIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2xpbmVfc2l6ZShwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBs
YXN0X2VuZF9vZmZzZXQgPSBlbmRfb2Zmc2V0OworICAgICAgICAgICAgbGFzdF9yZW1haW5pbmcg
PSBlbmRfb2Zmc2V0IC0gcGF5bG9hZF9vZmZzZXQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIFBBU19URVNUSU5HX0FTU0VSVChsaW5lX2luZGV4ID49IGZpcnN0
X2xpbmVfaW5kZXggJiYgbGluZV9pbmRleCA8IHBhZ2VfY29uZmlnLm51bV9saW5lcyk7CisgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfb2Zm
c2V0X2Zyb21fcGFnZV9ib3VuZGFyeV9hdF9saW5lX2luZGV4KGxpbmVfaW5kZXgsIHBhZ2VfY29u
ZmlnKQorICAgICAgICA9PSBsaW5lX29mZnNldCk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGxp
bmVzW2xpbmVfaW5kZXhdKTsKKworICAgIC8qIE5vdyB3ZSdyZSBzaXR0aW5nIG9uIGEgbGluZSB0
aGF0IGlzIGRlZmluaXRlbHkgYWxyZWFkeSBvY2N1cGllZC4gV2UgaGF2ZSByZWdpc3RlcmVkIG91
ciBmaXJzdCBmcmVlCisgICAgICAgYnVtcCwgYW5kIGl0J3Mgc2l0dGluZyBpbiBsYXN0X2VuZF9v
ZmZzZXQvbGFzdF9yZW1haW5pbmcuICovCisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVChsaW5lX2luZGV4ID49IGZpcnN0X2xpbmVfaW5kZXggJiYgbGluZV9pbmRl
eCA8IHBhZ2VfY29uZmlnLm51bV9saW5lcyk7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgK
KyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5X2F0X2xpbmVfaW5kZXgobGluZV9pbmRleCwgcGFnZV9jb25maWcpCisgICAgICAgICAg
ICA9PSBsaW5lX29mZnNldCk7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChsaW5lc1tsaW5l
X2luZGV4XSk7CisKKyAgICAgICAgaWYgKGxpbmVfaW5kZXggPD0gZmlyc3RfbGluZV9pbmRleCkg
eworICAgICAgICAgICAgLyogV2UgaGF2ZSBmb3VuZCB0aGUgbGFzdCBidW1wISAqLworICAgICAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGxpbmVfaW5kZXggPT0gZmlyc3RfbGluZV9pbmRleCk7
CisgICAgICAgICAgICBhbGxvY2F0b3ItPm51bV9idW1wcyA9IG51bV9idW1wczsKKyAgICAgICAg
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXAoCisgICAgICAgICAgICAgICAgYWxs
b2NhdG9yLAorICAgICAgICAgICAgICAgIHBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAg
cGFnZV9ib3VuZGFyeSArIGxhc3RfZW5kX29mZnNldCAtIGxhc3RfcmVtYWluaW5nLAorICAgICAg
ICAgICAgICAgIHBhZ2VfYm91bmRhcnkgKyBsYXN0X2VuZF9vZmZzZXQsCisgICAgICAgICAgICAg
ICAgcGFnZV9jb25maWcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgbGluZV9pbmRleC0tOworICAgICAgICBsaW5lX29mZnNldCAtPSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25maWcpOworICAgICAgICBpZiAobGluZXNbbGlu
ZV9pbmRleF0pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBQQVNfVEVTVElOR19B
U1NFUlQobGluZV9pbmRleCA+PSBmaXJzdF9saW5lX2luZGV4ICYmIGxpbmVfaW5kZXggPCBwYWdl
X2NvbmZpZy5udW1fbGluZXMpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV9h
dF9saW5lX2luZGV4KGxpbmVfaW5kZXgsIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgPT0gbGlu
ZV9vZmZzZXQpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWxpbmVzW2xpbmVfaW5kZXhd
KTsKKworICAgICAgICAvKiBXZSBoYXZlIHRoZSBiZWdpbm5pbmdzIG9mIGEgYnVtcC4gKi8KKyAg
ICAgICAgZW5kX29mZnNldCA9CisgICAgICAgICAgICBsaW5lX21ldGFkYXRhW2xpbmVfaW5kZXgg
KyAxXS5vZmZzZXRfdG9fZmlyc3Rfb2JqZWN0ICsKKyAgICAgICAgICAgIGxpbmVfb2Zmc2V0ICsg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbGluZV9zaXplKHBhZ2VfY29uZmlnKTsKKworICAg
ICAgICAvKiBIYXZpbmcgdGhlIGJlZ2lubmluZ3Mgb2YgYSBidW1wIG1lYW5zIHRoYXQgd2UgY2Fu
IHB1c2ggdGhlIHBlbmRpbmcgYnVtcCBvbnRvIHRoZSBidW1wcyBsaXN0LiAqLworICAgICAgICBQ
QVNfVEVTVElOR19BU1NFUlQobnVtX2J1bXBzIDwgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NQVhfTlVN
X0JVTVBTKHBhZ2VfY29uZmlnLm51bV9saW5lcykpOworICAgICAgICAKKyAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKCh1aW50MTZfdClsYXN0X3JlbWFpbmluZyA9PSBsYXN0X3JlbWFpbmluZyk7
CisgICAgICAgIGJ1bXBzW251bV9idW1wc10ucmVtYWluaW5nID0gKHVpbnQxNl90KWxhc3RfcmVt
YWluaW5nOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoKHVpbnQxNl90KWxhc3RfZW5kX29m
ZnNldCA9PSBsYXN0X2VuZF9vZmZzZXQpOworICAgICAgICBidW1wc1tudW1fYnVtcHNdLnBheWxv
YWRfZW5kID0gKHVpbnQxNl90KWxhc3RfZW5kX29mZnNldDsKKyAgICAgICAgbnVtX2J1bXBzKys7
CisgICAgICAgIAorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBQQVNfVEVTVElOR19B
U1NFUlQobGluZV9pbmRleCA+PSBmaXJzdF9saW5lX2luZGV4ICYmIGxpbmVfaW5kZXggPCBwYWdl
X2NvbmZpZy5udW1fbGluZXMpOworICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAorICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5X2F0X2xpbmVfaW5kZXgobGluZV9pbmRleCwgcGFnZV9jb25maWcpCisgICAgICAgICAg
ICAgICAgPT0gbGluZV9vZmZzZXQpOworICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFs
aW5lc1tsaW5lX2luZGV4XSk7CisgICAgICAgIAorICAgICAgICAgICAgbGluZXNbbGluZV9pbmRl
eF0gPSBsaW5lX21ldGFkYXRhW2xpbmVfaW5kZXhdLm51bV9vYmplY3RzOworICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAobGluZV9pbmRleCA8PSBmaXJzdF9saW5lX2luZGV4KSB7CisgICAg
ICAgICAgICAgICAgLyogV2UgaGF2ZSBmb3VuZCB0aGUgbGFzdCBidW1wLCBhbmQgd2UgYWxzbyBo
YXZlIGEgYnVtcCBwZW5kaW5nLiAqLworICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VChsaW5lX2luZGV4ID09IGZpcnN0X2xpbmVfaW5kZXgpOworCisgICAgICAgICAgICAgICAgYWxs
b2NhdG9yLT5udW1fYnVtcHMgPSBudW1fYnVtcHM7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcCgKKyAgICAgICAgICAgICAg
ICAgICAgYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICBwYWdlX2JvdW5kYXJ5LAorICAg
ICAgICAgICAgICAgICAgICBwYWdlX2JvdW5kYXJ5ICsgbGluZV9tZXRhZGF0YVtsaW5lX2luZGV4
XS5vZmZzZXRfdG9fZmlyc3Rfb2JqZWN0ICsgbGluZV9vZmZzZXQsCisgICAgICAgICAgICAgICAg
ICAgIHBhZ2VfYm91bmRhcnkgKyBlbmRfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBwYWdl
X2NvbmZpZyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBsaW5lX2luZGV4LS07CisgICAgICAgICAgICBsaW5lX29mZnNldCAtPSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25maWcpOworICAgICAgICAgICAg
aWYgKGxpbmVzW2xpbmVfaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgdWludHB0cl90IHBheWxv
YWRfb2Zmc2V0OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIFdlIGhhdmUg
Zm91bmQgYW4gaW50ZXJpb3IgYnVtcCEgKi8KKyAgICAgICAgICAgICAgICBwYXlsb2FkX29mZnNl
dCA9IAorICAgICAgICAgICAgICAgICAgICBsaW5lX21ldGFkYXRhW2xpbmVfaW5kZXggKyAxXS5v
ZmZzZXRfdG9fZmlyc3Rfb2JqZWN0ICsKKyAgICAgICAgICAgICAgICAgICAgbGluZV9vZmZzZXQg
KyBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19saW5lX3NpemUocGFnZV9jb25maWcpOworICAg
ICAgICAgICAgICAgIGxhc3RfZW5kX29mZnNldCA9IGVuZF9vZmZzZXQ7CisgICAgICAgICAgICAg
ICAgbGFzdF9yZW1haW5pbmcgPSBlbmRfb2Zmc2V0IC0gcGF5bG9hZF9vZmZzZXQ7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQobGluZV9pbmRleCA+PSBmaXJzdF9saW5lX2luZGV4ICYmIGxpbmVfaW5k
ZXggPCBwYWdlX2NvbmZpZy5udW1fbGluZXMpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQo
CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfb2Zmc2V0X2Zyb21fcGFnZV9i
b3VuZGFyeV9hdF9saW5lX2luZGV4KGxpbmVfaW5kZXgsIHBhZ2VfY29uZmlnKQorICAgICAgICAg
ICAgPT0gbGluZV9vZmZzZXQpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQobGluZXNbbGlu
ZV9pbmRleF0pOworICAgIH0KKworICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNo
ZWQiKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKK3Bhc19sb2NhbF9hbGxv
Y2F0b3Jfc2V0X3VwX2J1bXBzX2Zyb21fbGluZXNfbm90X3NtYWxsKHBhc19sb2NhbF9hbGxvY2F0
b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBvYmplY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKK3sKKyAgICB1aW50cHRyX3QgZmlyc3Rfb2Zm
c2V0OworICAgIHVpbnRwdHJfdCBsYXN0X29mZnNldDsKKyAgICB1aW50cHRyX3Qgb2Zmc2V0Owor
ICAgIHVpbnRwdHJfdCBlbmRfb2Zmc2V0OworICAgIHVpbnQ4X3QqIGxpbmVzOworICAgIHVpbnRw
dHJfdCBudW1fYnVtcHM7CisgICAgdWludHB0cl90IGxhc3RfZW5kX29mZnNldDsKKyAgICB1aW50
cHRyX3QgbGFzdF9yZW1haW5pbmc7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wKiBidW1w
czsKICAgICAKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9idW1wKGFsbG9jYXRvciwg
cGFnZV9ib3VuZGFyeSwgYmVnaW4sIGVuZCk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9iamVj
dF9zaXplID09IGRpcmVjdG9yeS0+b2JqZWN0X3NpemUpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChvYmplY3Rfc2l6ZSA9PSBhbGxvY2F0b3ItPm9iamVjdF9zaXplKTsKKyAgICBQQVNfVEVTVElO
R19BU1NFUlQob2JqZWN0X3NpemUgPiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19saW5lX3Np
emUocGFnZV9jb25maWcpKTsKKworICAgIGJ1bXBzID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRf
YnVtcHMoYWxsb2NhdG9yLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNp
dmVfcm9sZSk7CisKKyAgICBmaXJzdF9vZmZzZXQgPSBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5X3RvX2ZpcnN0X29iamVjdDsKKyAgICBsYXN0X29mZnNldCA9IGRhdGEtPm9mZnNldF9m
cm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0IC0gb2JqZWN0X3NpemU7Cisg
ICAgb2Zmc2V0ID0gbGFzdF9vZmZzZXQ7CisKKyAgICBsaW5lcyA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfbGluZXMocGFnZSwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZl
X3JvbGUpOworCisgICAgbnVtX2J1bXBzID0gMDsKKworICAgIC8qIEZpbmQgdGhlIGZpcnN0IGJ1
bXAuICovCisgICAgd2hpbGUgKGxpbmVzW3Bhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9pbmRleF9v
Zl9vYmplY3RfYXRfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeShvZmZzZXQsIHBhZ2VfY29uZmln
KV0pIHsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9mZnNldCA+IGZpcnN0X29mZnNldCk7
CisgICAgICAgIG9mZnNldCAtPSBvYmplY3Rfc2l6ZTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKG9mZnNldCA+PSBmaXJzdF9vZmZzZXQpOworICAgIH0KKworICAgIFBBU19URVNUSU5HX0FT
U0VSVChvZmZzZXQgPj0gZmlyc3Rfb2Zmc2V0KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQob2Zm
c2V0IDw9IGxhc3Rfb2Zmc2V0KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAgICFs
aW5lc1twYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfaW5kZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9m
cm9tX3BhZ2VfYm91bmRhcnkob2Zmc2V0LCBwYWdlX2NvbmZpZyldKTsKKworICAgIGVuZF9vZmZz
ZXQgPSBvZmZzZXQgKyBvYmplY3Rfc2l6ZTsKKworICAgIC8qIEZpbmQgaG93IGJpZyB0aGUgZmly
c3QgYnVtcCBpcy4gKi8KKyAgICBmb3IgKDs7KSB7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VChvZmZzZXQgPj0gZmlyc3Rfb2Zmc2V0KTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9m
ZnNldCA8PSBsYXN0X29mZnNldCk7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAg
ICAgICAgICFsaW5lc1twYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfaW5kZXhfb2Zfb2JqZWN0X2F0
X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkob2Zmc2V0LCBwYWdlX2NvbmZpZyldKTsKKworICAg
ICAgICBsaW5lc1twYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfaW5kZXhfb2Zfb2JqZWN0X2F0X29m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkob2Zmc2V0LCBwYWdlX2NvbmZpZyldID0gMTsKKworICAg
ICAgICBpZiAob2Zmc2V0IDw9IGZpcnN0X29mZnNldCkgeworICAgICAgICAgICAgLyogVGhpcyBp
cyB0aGUgb25seSBidW1wIHdlIHdpbGwgZmluZCEgKi8KKyAgICAgICAgICAgIFBBU19URVNUSU5H
X0FTU0VSVChvZmZzZXQgPT0gZmlyc3Rfb2Zmc2V0KTsKKyAgICAgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2V0X3VwX2J1bXAoCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLAorICAgICAg
ICAgICAgICAgIHBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgcGFnZV9ib3VuZGFyeSAr
IG9mZnNldCwKKyAgICAgICAgICAgICAgICBwYWdlX2JvdW5kYXJ5ICsgZW5kX29mZnNldCwKKyAg
ICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBvZmZzZXQgLT0gb2JqZWN0X3NpemU7CisgICAgICAgIGlmIChsaW5lc1tw
YXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfaW5kZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9mcm9tX3Bh
Z2VfYm91bmRhcnkob2Zmc2V0LCBwYWdlX2NvbmZpZyldKSB7CisgICAgICAgICAgICB1aW50cHRy
X3QgcGF5bG9hZF9vZmZzZXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIFdlIGZvdW5k
IG91ciBmaXJzdCBidW1wISAqLworICAgICAgICAgICAgcGF5bG9hZF9vZmZzZXQgPSBvZmZzZXQg
KyBvYmplY3Rfc2l6ZTsKKyAgICAgICAgICAgIGxhc3RfZW5kX29mZnNldCA9IGVuZF9vZmZzZXQ7
CisgICAgICAgICAgICBsYXN0X3JlbWFpbmluZyA9IGVuZF9vZmZzZXQgLSBwYXlsb2FkX29mZnNl
dDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKG9mZnNldCA+PSBmaXJzdF9vZmZzZXQpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChvZmZzZXQgPD0gbGFzdF9vZmZzZXQpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAg
ICAgbGluZXNbcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX2luZGV4X29mX29iamVjdF9hdF9vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5KG9mZnNldCwgcGFnZV9jb25maWcpXSk7CisKKyAgICAvKiBO
b3cgd2UncmUgc2l0dGluZyBvbiBhIGxpbmUgdGhhdCBpcyBkZWZpbml0ZWx5IG9jY3VwaWVkLiBX
ZSBoYXZlIHJlZ2lzdGVyZWQgb3VyIGZpcnN0IGZyZWUgYnVtcG8sIGFuZAorICAgICAgIGl0J3Mg
c2l0dGluZyBpbiBsYXN0X2VuZF9vZmZzZXQvbGFzdF9yZW1haW5pbmcuICovCisKKyAgICBmb3Ig
KDs7KSB7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChvZmZzZXQgPj0gZmlyc3Rfb2Zmc2V0
KTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9mZnNldCA8PSBsYXN0X29mZnNldCk7Cisg
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgIGxpbmVzW3Bhc19zZWdyZWdh
dGVkX3BhZ2VfbGluZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFy
eShvZmZzZXQsIHBhZ2VfY29uZmlnKV0pOworCisgICAgICAgIGlmIChvZmZzZXQgPD0gZmlyc3Rf
b2Zmc2V0KSB7CisgICAgICAgICAgICAvKiBXZSBoYXZlIGZvdW5kIHRoZSBsYXN0IGJ1bXAhICov
CisgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQob2Zmc2V0ID09IGZpcnN0X29mZnNldCk7
CisgICAgICAgICAgICBhbGxvY2F0b3ItPm51bV9idW1wcyA9IG51bV9idW1wczsKKyAgICAgICAg
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXAoCisgICAgICAgICAgICAgICAgYWxs
b2NhdG9yLAorICAgICAgICAgICAgICAgIHBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAg
cGFnZV9ib3VuZGFyeSArIGxhc3RfZW5kX29mZnNldCAtIGxhc3RfcmVtYWluaW5nLAorICAgICAg
ICAgICAgICAgIHBhZ2VfYm91bmRhcnkgKyBsYXN0X2VuZF9vZmZzZXQsCisgICAgICAgICAgICAg
ICAgcGFnZV9jb25maWcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgb2Zmc2V0IC09IG9iamVjdF9zaXplOworICAgICAgICBpZiAobGluZXNbcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9saW5lX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5
KG9mZnNldCwgcGFnZV9jb25maWcpXSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IFBBU19URVNUSU5HX0FTU0VSVChvZmZzZXQgPj0gZmlyc3Rfb2Zmc2V0KTsKKyAgICAgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKG9mZnNldCA8PSBsYXN0X29mZnNldCk7CisgICAgICAgIFBBU19URVNU
SU5HX0FTU0VSVCgKKyAgICAgICAgICAgICFsaW5lc1twYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVf
aW5kZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkob2Zmc2V0LCBwYWdl
X2NvbmZpZyldKTsKKworICAgICAgICBlbmRfb2Zmc2V0ID0gb2Zmc2V0ICsgb2JqZWN0X3NpemU7
CisKKyAgICAgICAgLyogSGF2aW5nIHRoZSBiZWdpbm5pbmdzIG9mIGEgYnVtcCBtZWFucyB0aGF0
IHdlIGNhbiBwdXNoIHRoZSBwZW5kaW5nIGJ1bXAgb250byB0aGUgYnVtcHMgbGlzdC4gKi8KKyAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG51bV9idW1wcyA8IFBBU19MT0NBTF9BTExPQ0FUT1Jf
TUFYX05VTV9CVU1QUyhwYWdlX2NvbmZpZy5udW1fbGluZXMpKTsKKyAgICAgICAgCisgICAgICAg
IFBBU19URVNUSU5HX0FTU0VSVCgodWludDE2X3QpbGFzdF9yZW1haW5pbmcgPT0gbGFzdF9yZW1h
aW5pbmcpOworICAgICAgICBidW1wc1tudW1fYnVtcHNdLnJlbWFpbmluZyA9ICh1aW50MTZfdCls
YXN0X3JlbWFpbmluZzsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCh1aW50MTZfdClsYXN0
X2VuZF9vZmZzZXQgPT0gbGFzdF9lbmRfb2Zmc2V0KTsKKyAgICAgICAgYnVtcHNbbnVtX2J1bXBz
XS5wYXlsb2FkX2VuZCA9ICh1aW50MTZfdClsYXN0X2VuZF9vZmZzZXQ7CisgICAgICAgIG51bV9i
dW1wcysrOworICAgICAgICAKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKG9mZnNldCA+PSBmaXJzdF9vZmZzZXQpOworICAgICAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKG9mZnNldCA8PSBsYXN0X29mZnNldCk7CisgICAgICAgICAgICBQQVNfVEVT
VElOR19BU1NFUlQoCisgICAgICAgICAgICAgICAgIWxpbmVzW3Bhc19zZWdyZWdhdGVkX3BhZ2Vf
bGluZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeSgKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9mZnNldCwgcGFnZV9jb25maWcpXSk7CisKKyAgICAgICAgICAg
IGxpbmVzW3Bhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeShvZmZzZXQsIHBhZ2VfY29uZmlnKV0KKyAgICAgICAgICAgICAg
ICA9IDE7CisKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPD0gZmlyc3Rfb2Zmc2V0KSB7CisgICAg
ICAgICAgICAgICAgLyogV2UgaGF2ZSBmb3VuZCB0aGUgbGFzdCBidW1wISAqLworICAgICAgICAg
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChvZmZzZXQgPT0gZmlyc3Rfb2Zmc2V0KTsKKyAgICAg
ICAgICAgICAgICBhbGxvY2F0b3ItPm51bV9idW1wcyA9IG51bV9idW1wczsKKyAgICAgICAgICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9idW1wKAorICAgICAgICAgICAgICAgICAg
ICBhbGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgIHBhZ2VfYm91bmRhcnksCisgICAgICAg
ICAgICAgICAgICAgIHBhZ2VfYm91bmRhcnkgKyBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
IHBhZ2VfYm91bmRhcnkgKyBlbmRfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBwYWdlX2Nv
bmZpZyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBvZmZzZXQgLT0gb2JqZWN0X3NpemU7CisgICAgICAgICAgICBpZiAobGluZXNbcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9saW5lX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdlX2NvbmZpZyldKSB7
CisgICAgICAgICAgICAgICAgdWludHB0cl90IHBheWxvYWRfb2Zmc2V0OworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIC8qIFdlIGhhdmUgZm91bmQgYW4gaW50ZXJpb3IgYnVtcCEg
Ki8KKyAgICAgICAgICAgICAgICBwYXlsb2FkX29mZnNldCA9IG9mZnNldCArIG9iamVjdF9zaXpl
OworICAgICAgICAgICAgICAgIGxhc3RfZW5kX29mZnNldCA9IGVuZF9vZmZzZXQ7CisgICAgICAg
ICAgICAgICAgbGFzdF9yZW1haW5pbmcgPSBlbmRfb2Zmc2V0IC0gcGF5bG9hZF9vZmZzZXQ7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChvZmZzZXQgPj0gZmlyc3Rfb2Zmc2V0KTsKKyAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9mZnNldCA8PSBsYXN0X29mZnNldCk7CisgICAgICAg
IFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgIGxpbmVzW3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfbGluZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeShvZmZz
ZXQsIHBhZ2VfY29uZmlnKV0pOworICAgIH0KKworICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKK3Bhc19s
b2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXBzX2Zyb21fbGluZXMocGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3Qg
cGFnZV9ib3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCit7CisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICB1bnNpZ25lZCBvYmplY3Rf
c2l6ZTsKKworICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcudmFyaWFudCA9PSBwYXNfc21hbGxf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50KTsKKworICAgIGRhdGEgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRh
dGEpOworICAgIG9iamVjdF9zaXplID0gZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZTsKKworICAgIHBh
Z2UtPm51bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMgPSBkYXRhLT5mdWxsX251bV9ub25fZW1w
dHlfd29yZHNfb3JfbGluZXM7CisKKyAgICBpZiAob2JqZWN0X3NpemUgPD0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfbGluZV9zaXplKHBhZ2VfY29uZmlnKSkgeworICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NldF91cF9idW1wc19mcm9tX2xpbmVzX3NtYWxsKAorICAgICAgICAgICAg
YWxsb2NhdG9yLCBkaXJlY3RvcnksIG9iamVjdF9zaXplLCBkYXRhLCBwYWdlLCBwYWdlX2JvdW5k
YXJ5LCBwYWdlX2NvbmZpZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NldF91cF9idW1wc19mcm9tX2xpbmVzX25vdF9zbWFsbCgKKyAgICAgICAg
YWxsb2NhdG9yLCBkaXJlY3RvcnksIG9iamVjdF9zaXplLCBkYXRhLCBwYWdlLCBwYWdlX2JvdW5k
YXJ5LCBwYWdlX2NvbmZpZyk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCkBA
IC00MDAsNDIgKzgxNyw2OSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2Nh
dGUoCiAKICAgICBwYWdlX2JvdW5kYXJ5ID0gKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9wYWdl
X2JvdW5kYXJ5KHBhZ2UsIHBhZ2VfY29uZmlnKTsKICAgICAKLSAgICBpZiAodmlld19raW5kID09
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQgJiYgIXBhZ2UtPm51bV9ub25fZW1w
dHlfd29yZHMpIHsKLSAgICAgICAgdWludHB0cl90IHBheWxvYWRfYmVnaW47Ci0gICAgICAgIHVp
bnRwdHJfdCBwYXlsb2FkX2VuZDsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogZGF0YTsKLQotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19s
b2coIlJlZmlsbGluZyB3aXRoIGJ1bXAuXG4iKTsKLQotICAgICAgICBpZiAocGFnZV9jb25maWcu
YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkKLSAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2luc3RhbGxfZnVsbF91c2VfY291bnRz
KChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopdmlldyk7Ci0KLSAgICAgICAgZGF0YSA9
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRp
cmVjdG9yeS0+ZGF0YSk7Ci0gICAgICAgIAotICAgICAgICBwYXlsb2FkX2JlZ2luID0gcGFnZV9i
b3VuZGFyeSArIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0
OwotICAgICAgICBwYXlsb2FkX2VuZCA9IHBhZ2VfYm91bmRhcnkgKyBkYXRhLT5vZmZzZXRfZnJv
bV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKLSAgICAgICAgCi0gICAgICAg
IHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMgPSBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29y
ZHM7Ci0KLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9tYWtlX2J1bXAoCi0gICAgICAgICAg
ICBhbGxvY2F0b3IsIHBhZ2VfYm91bmRhcnksIHBheWxvYWRfYmVnaW4sIHBheWxvYWRfZW5kLCBw
YWdlX2NvbmZpZyk7Ci0KLSAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgICAgIAot
ICAgICAgICBtZW1jcHkocGFnZS0+YWxsb2NfYml0cywgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2ln
bmVkX3B0cl9sb2FkX25vbl9udWxsKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMpLAotICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2VfY29u
ZmlnKSk7Ci0KKyAgICBpZiAodmlld19raW5kID09IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2tpbmQpIHsKKyAgICAgICAgaWYgKCFwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xp
bmVzKSB7CisgICAgICAgICAgICB1aW50cHRyX3QgcGF5bG9hZF9iZWdpbjsKKyAgICAgICAgICAg
IHVpbnRwdHJfdCBwYXlsb2FkX2VuZDsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIlJlZmlsbGluZyB3aXRoIGJ1bXAuXG4iKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXpl
ID4gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpCisgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGFsbF9mdWxsX3VzZV9jb3VudHMoKHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Kil2aWV3KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
ZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251
bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBheWxvYWRf
YmVnaW4gPSBwYWdlX2JvdW5kYXJ5ICsgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90
b19maXJzdF9vYmplY3Q7CisgICAgICAgICAgICBwYXlsb2FkX2VuZCA9IHBhZ2VfYm91bmRhcnkg
KyBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFnZS0+bnVtX25vbl9lbXB0eV93b3Jkc19vcl9s
aW5lcyA9IGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5lczsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcCgKKyAgICAg
ICAgICAgICAgICBhbGxvY2F0b3IsIHBhZ2VfYm91bmRhcnksIHBheWxvYWRfYmVnaW4sIHBheWxv
YWRfZW5kLCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhc19jb21w
aWxlcl9mZW5jZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9sZShwYWdlX2NvbmZpZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpKSB7CisgICAgICAgICAgICAgICAgcGFz
X2xpbmVfbWV0YWRhdGEqIGxpbmVfbWV0YWRhdGE7CisgICAgICAgICAgICAgICAgdWludDhfdCog
bGluZXM7CisgICAgICAgICAgICAgICAgdWludHB0cl90IGxpbmVfaW5kZXg7CisKKyAgICAgICAg
ICAgICAgICBsaW5lX21ldGFkYXRhID0gKHBhc19saW5lX21ldGFkYXRhKikKKyAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyX2xvYWRfbm9uX251bGwoJmRhdGEt
PmZ1bGxfYWxsb2NfYml0c19vcl9saW5lX21ldGFkYXRhKTsKKyAgICAgICAgICAgICAgICBsaW5l
cyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbGluZXMocGFnZSwgcGFnZV9jb25maWcsIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpOworCisgICAgICAgICAgICAgICAgZm9yIChsaW5l
X2luZGV4ID0gcGFnZV9jb25maWcubnVtX2xpbmVzOyBsaW5lX2luZGV4LS07KQorICAgICAgICAg
ICAgICAgICAgICBsaW5lc1tsaW5lX2luZGV4XSA9IGxpbmVfbWV0YWRhdGFbbGluZV9pbmRleF0u
bnVtX29iamVjdHM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1lbWNw
eShwYXNfc2VncmVnYXRlZF9wYWdlX2FsbG9jX2JpdHMoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYWdlLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9s
ZSksCisgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0cl9s
b2FkX25vbl9udWxsKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHNfb3JfbGluZV9tZXRhZGF0YSksCisg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxv
Y19ieXRlcyhwYWdlX2NvbmZpZykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCiAjaWYg
UEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCi0gICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19sb2NrKCk7Ci0gICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtKys7Ci0gICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbisrOwotICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfdW5sb2NrKCk7CisgICAgICAgICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfbG9jaygpOworICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0rKzsKKyAg
ICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbisrOworICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX3VubG9j
aygpOwogI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJ
RU5DWSAqLwotICAgICAgICAKLSAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9sZShwYWdlX2NvbmZpZywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSkpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgIHBhc19sb2coIlJlZmlsbGluZyB3aXRoICVwIHVzaW5nIGxpbmVzXG4iLCBw
YWdlKTsKKyAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXBzX2Zyb21f
bGluZXMoCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBkaXJlY3RvcnksIHBhZ2UsIHBhZ2Vf
Ym91bmRhcnksIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgIH0KLSAgICAKKwogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJSZWZpbGxp
bmcgd2l0aCAlcCB1c2luZyBmcmVlX2JpdHNcbiIsIHBhZ2UpOwogICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2V0X3VwX2ZyZWVfYml0cygKQEAgLTQ3Miw4ICs5MTYsOCBAQCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NldF91cF9wcmltb3JkaWFsX2J1CiAgICAgdW5zaWduZWQgY3VycmVudF9vZmZzZXQ7
CiAgICAgdW5zaWduZWQgYmVnaW5fb2Zmc2V0OwogICAgIHVuc2lnbmVkIGVuZF9vZmZzZXQ7Ci0g
ICAgdW5zaWduZWQqIGJpdHM7Ci0gICAgdW5zaWduZWQqIGFsbG9jX2JpdHM7CisgICAgdW5zaWdu
ZWQqIHBhZ2VfYWxsb2NfYml0czsKKyAgICB1bnNpZ25lZCogYWxsb2NhdG9yX2FsbG9jX2JpdHM7
CiAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7CiAKICAgICBQQVNf
VU5VU0VEX1BBUkFNKGhlbGRfbG9jayk7CkBAIC00ODYsOCArOTMwLDkgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zZXRfdXBfcHJpbW9yZGlhbF9idQogICAgIGJlZ2luX29mZnNldCA9IGJ1bXBfcmVz
dWx0Lm9sZF9idW1wOwogICAgIGVuZF9vZmZzZXQgPSBidW1wX3Jlc3VsdC5lbmRfYnVtcDsKIAot
ICAgIGJpdHMgPSAodW5zaWduZWQqKWFsbG9jYXRvci0+Yml0czsKLSAgICBhbGxvY19iaXRzID0g
cGFnZS0+YWxsb2NfYml0czsKKyAgICBhbGxvY2F0b3JfYWxsb2NfYml0cyA9ICh1bnNpZ25lZCop
cGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYWxsb2NfYml0cygKKyAgICAgICAgYWxsb2NhdG9yLCBw
YWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSk7CisgICAgcGFnZV9h
bGxvY19iaXRzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbGxvY19iaXRzKHBhZ2UsIHBhZ2VfY29u
ZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlKTsKIAogICAgIGlmIChwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplKQogICAg
ICAgICB1c2VfY291bnRzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291
bnRzKHBhZ2UsIHBhZ2VfY29uZmlnKTsKQEAgLTUyMCw5ICs5NjUsOSBAQCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NldF91cF9wcmltb3JkaWFsX2J1CiAKICAgICAgICAgd29yZF9pbmRleCA9IFBBU19C
SVRWRUNUT1JfV09SRF9JTkRFWChpbmRleCk7CiAKLSAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXRf
aW5fd29yZChiaXRzICsgd29yZF9pbmRleCwgaW5kZXgsIHRydWUpOworICAgICAgICBwYXNfYml0
dmVjdG9yX3NldF9pbl93b3JkKGFsbG9jYXRvcl9hbGxvY19iaXRzICsgd29yZF9pbmRleCwgaW5k
ZXgsIHRydWUpOwogCi0gICAgICAgIHdvcmQgPSBhbGxvY19iaXRzW3dvcmRfaW5kZXhdOworICAg
ICAgICB3b3JkID0gcGFnZV9hbGxvY19iaXRzW3dvcmRfaW5kZXhdOwogICAgICAgICBpZiAoIXdv
cmQpIHsKICAgICAgICAgICAgIGlmIChwYWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0ID09IFBBU19C
SVRWRUNUT1JfV09SRF9TSElGVCkgewogICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0cl9pc19udWxsKApAQCAtNTMx
LDcgKzk3Niw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX3ByaW1vcmRpYWxfYnUKICAg
ICAgICAgICAgICAgICAgICAgaGFuZGxlLT5wYXJ0aWFsX3ZpZXdzICsgd29yZF9pbmRleCwgdmll
dyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhZ2UtPm51bV9u
b25fZW1wdHlfd29yZHMrKzsKKyAgICAgICAgICAgIHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHNf
b3JfbGluZXMrKzsKICAgICAgICAgfQogICAgICAgICBpZiAocGFnZV9jb25maWcuc2hhcmluZ19z
aGlmdCAhPSBQQVNfQklUVkVDVE9SX1dPUkRfU0hJRlQpIHsKICAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIqIHB0cjsKQEAgLTU0NCw3ICs5
ODksNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9wcmltb3JkaWFsX2J1CiAgICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyX3N0b3Jl
KHB0ciwgdmlldyk7CiAgICAgICAgIH0KICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXRfaW5fd29y
ZCgmd29yZCwgaW5kZXgsIHRydWUpOwotICAgICAgICBhbGxvY19iaXRzW3dvcmRfaW5kZXhdID0g
d29yZDsKKyAgICAgICAgcGFnZV9hbGxvY19iaXRzW3dvcmRfaW5kZXhdID0gd29yZDsKIAogICAg
ICAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdy
YW51bGVfc2l6ZSkgewogICAgICAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV9pbmNyZW1lbnRfdXNl
c19mb3JfcmFuZ2UoCkBAIC02NjAsMTAgKzExMDUsMTUgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
dGFydF9hbGxvY2F0aW5nX2luXwogICAgICAgICAKICAgICAgICAgYWxsb2NhdG9yLT5wYWdlX2lz
aCA9ICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2Nv
bmZpZyk7CiAKLSAgICAgICAgcGFzX3plcm9fbWVtb3J5KGFsbG9jYXRvci0+Yml0cywgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2VfY29uZmlnKSk7CisgICAg
ICAgIHBhc196ZXJvX21lbW9yeShwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9hbGxvY19iaXRzKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFnZV9jb25maWcsIHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2VfY29uZmlnKSk7CiAK
ICAgICAgICAgLyogRG9pbmcgdGhpcyBoZWxwcyBoZWFwIGludHJvc3BlY3Rpb24gYnV0IGlzbid0
IG90aGVyd2lzZSBuZWNlc3NhcnkuICovCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNp
Z25lZF9wdHJfc3RvcmUoJnZpZXctPmFsbG9jX2JpdHMsICh1bnNpZ25lZCopYWxsb2NhdG9yLT5i
aXRzKTsKKyAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgKKyAg
ICAgICAgICAgICZ2aWV3LT5hbGxvY19iaXRzLAorICAgICAgICAgICAgKHVuc2lnbmVkKilwYXNf
bG9jYWxfYWxsb2NhdG9yX2dldF9hbGxvY19iaXRzKAorICAgICAgICAgICAgICAgIGFsbG9jYXRv
ciwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpKTsKICAgICAg
ICAgUEFTX0FTU0VSVCghdmlldy0+YWxsb2NfYml0c19vZmZzZXQpOwogICAgICAgICBQQVNfQVNT
RVJUKCh1aW50OF90KXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3Jkcyhw
YWdlX2NvbmZpZykKICAgICAgICAgICAgICAgICAgICA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpKTsKQEAgLTcwNSwxMCArMTE1NSwxMSBA
QCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFyCiAgICAgc2l6ZV90IGZp
cnN0X25vbl96ZXJvX3dvcmRfaW5kZXg7CiAgICAgc2l6ZV90IGxhc3Rfbm9uX3plcm9fd29yZF9p
bmRleDsKICAgICBzaXplX3Qgd29yZF9pbmRleDsKLSAgICB1bnNpZ25lZCogYml0czsKKyAgICB1
bnNpZ25lZCogYWxsb2NhdG9yX2FsbG9jX2JpdHM7CiAgICAgc2l6ZV90IGFsbG9jX2JpdHNfc2l6
ZTsKICAgICBzaXplX3QgYWxsb2NfYml0c19vZmZzZXQ7Ci0gICAgdW5zaWduZWQqIGFsbG9jX2Jp
dHM7CisgICAgdW5zaWduZWQqIHBhZ2VfYWxsb2NfYml0czsKKyAgICB1bnNpZ25lZCogZnVsbF9h
bGxvY19iaXRzOwogCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQp
OwogICAgIFBBU19BU1NFUlQocGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9pc19wcmlt
b3JkaWFsX3BhcnRpYWwoYWxsb2NhdG9yLT5jb25maWdfa2luZCkpOwpAQCAtNzE2LDcgKzExNjcs
OCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFyCiAgICAgUEFTX0FT
U0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykp
OwogCiAgICAgaGFzX2ZpcnN0X25vbl96ZXJvX3dvcmRfaW5kZXggPSBmYWxzZTsKLSAgICBiaXRz
ID0gKHVuc2lnbmVkKilhbGxvY2F0b3ItPmJpdHM7CisgICAgYWxsb2NhdG9yX2FsbG9jX2JpdHMg
PSAodW5zaWduZWQqKXBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2FsbG9jX2JpdHMoCisgICAgICAg
IGFsbG9jYXRvciwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUp
OwogCiAgICAgZmlyc3Rfbm9uX3plcm9fd29yZF9pbmRleCA9IFNJWkVfTUFYOwogICAgIGxhc3Rf
bm9uX3plcm9fd29yZF9pbmRleCA9IFNJWkVfTUFYOwpAQCAtNzI2LDEzICsxMTc4LDE1IEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfYmxlc3NfcHJpbW9yZGlhbF9wYXIKICAgICBpZiAodmVyYm9zZSkK
ICAgICAgICAgcGFzX2xvZygiQmxlc3NpbmcgdmlldyAlcC5cbiIsIHZpZXcpOwogCisgICAgcGFn
ZV9hbGxvY19iaXRzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbGxvY19iaXRzKHBhZ2UsIHBhZ2Vf
Y29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlKTsKKwogICAgIGZvciAod29y
ZF9pbmRleCA9IDA7CiAgICAgICAgICB3b3JkX2luZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKTsKICAgICAgICAgIHdvcmRfaW5kZXgr
KykgewogICAgICAgICB1bnNpZ25lZCBmdWxsX2FsbG9jX3dvcmQ7CiAgICAgICAgIGJvb2wgc2hv
dWxkX2JlX2VsaWdpYmxlOwogCi0gICAgICAgIGZ1bGxfYWxsb2Nfd29yZCA9IGJpdHNbd29yZF9p
bmRleF07CisgICAgICAgIGZ1bGxfYWxsb2Nfd29yZCA9IGFsbG9jYXRvcl9hbGxvY19iaXRzW3dv
cmRfaW5kZXhdOwogICAgICAgICAKICAgICAgICAgaWYgKCFmdWxsX2FsbG9jX3dvcmQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKQEAgLTc0Nyw5ICsxMjAxLDkgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9ibGVzc19wcmltb3JkaWFsX3BhcgogICAgICAgICAgICBiZWhhdmlvcmFsIGNoYW5nZSAtIHNs
aWdodGx5IGJldHRlciBmb3Igc3BhY2UsIHNsaWdodGx5IHdvcnNlIGZvciB0aW1lIC0gdG8gZ2V0
IHJpZCBvZgogICAgICAgICAgICB0aGlzIHNwZWNpYWwgY2FzZSwgaW4gd2hpY2ggY2FzZSB3ZSdk
IGhhdmUgdG8gZWRpdCBzaG91bGRfYmVfZWxpZ2libGUoKS4gKi8KICAgICAgICAgaWYgKHBhZ2Vf
Y29uZmlnLmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbl9mb3Jfc2hh
cmVkKQotICAgICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0gISEoZnVsbF9hbGxvY193b3Jk
ICYmICFwYWdlLT5hbGxvY19iaXRzW3dvcmRfaW5kZXhdKTsKKyAgICAgICAgICAgIHNob3VsZF9i
ZV9lbGlnaWJsZSA9ICEhKGZ1bGxfYWxsb2Nfd29yZCAmJiAhcGFnZV9hbGxvY19iaXRzW3dvcmRf
aW5kZXhdKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0g
ISEoZnVsbF9hbGxvY193b3JkICYgfnBhZ2UtPmFsbG9jX2JpdHNbd29yZF9pbmRleF0pOworICAg
ICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0gISEoZnVsbF9hbGxvY193b3JkICYgfnBhZ2Vf
YWxsb2NfYml0c1t3b3JkX2luZGV4XSk7CiAgICAgICAgIGlmIChzaG91bGRfYmVfZWxpZ2libGUp
IHsKICAgICAgICAgICAgIHZpZXctPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9k
ZWZlcnJlZCA9IHRydWU7CiAgICAgICAgICAgICB2aWV3LT5lbGlnaWJpbGl0eV9oYXNfYmVlbl9u
b3RlZCA9IHRydWU7CkBAIC03NzYsNyArMTIzMCw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfYmxl
c3NfcHJpbW9yZGlhbF9wYXIKICAgICB2aWV3LT5hbGxvY19iaXRzX29mZnNldCA9ICh1aW50OF90
KWFsbG9jX2JpdHNfb2Zmc2V0OwogCiAgICAgaWYgKGFsbG9jX2JpdHNfc2l6ZSA9PSAxKQotICAg
ICAgICBhbGxvY19iaXRzID0gJnZpZXctPmlubGluZV9hbGxvY19iaXRzIC0gYWxsb2NfYml0c19v
ZmZzZXQ7CisgICAgICAgIGZ1bGxfYWxsb2NfYml0cyA9ICZ2aWV3LT5pbmxpbmVfYWxsb2NfYml0
cyAtIGFsbG9jX2JpdHNfb2Zmc2V0OwogICAgIGVsc2UgewogICAgICAgICAvKiBXZSBob2xkIHRo
ZSBwYWdlIGxvY2suIExvY2sgb3JkZXJpbmcgc2F5cyB0aGF0IHdlIGNhbm5vdCBhY3F1aXJlIHRo
ZSBoZWFwIGxvY2sgd2hlbgogICAgICAgICAgICB3ZSBhcmUgaG9sZGluZyB0aGUgcGFnZSBsb2Nr
LgpAQCAtNzkxLDcgKzEyNDUsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRp
YWxfcGFyCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2xvY2socGFnZSwgcGFnZV9j
b25maWcpOwogICAgICAgICB9CiAKLSAgICAgICAgYWxsb2NfYml0cyA9ICh1bnNpZ25lZCopcGFz
X2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAorICAgICAgICBm
dWxsX2FsbG9jX2JpdHMgPSAodW5zaWduZWQqKXBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dp
dGhfbWFudWFsX2FsaWdubWVudCgKICAgICAgICAgICAgIGFsbG9jX2JpdHNfc2l6ZSAqIHNpemVv
Zih1bnNpZ25lZCksCiAgICAgICAgICAgICBzaXplb2YodW5zaWduZWQpLAogICAgICAgICAgICAg
InBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy9hbGxvY19iaXRzIiwKQEAgLTgwMCwxMyArMTI1
NCwxMyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFyCiAgICAgICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CiAgICAgfQogICAgIAotICAgIG1lbWNweShhbGxvY19iaXRzICsgYWxsb2NfYml0c19vZmZzZXQs
Ci0gICAgICAgICAgIGJpdHMgKyBhbGxvY19iaXRzX29mZnNldCwKKyAgICBtZW1jcHkoZnVsbF9h
bGxvY19iaXRzICsgYWxsb2NfYml0c19vZmZzZXQsCisgICAgICAgICAgIGFsbG9jYXRvcl9hbGxv
Y19iaXRzICsgYWxsb2NfYml0c19vZmZzZXQsCiAgICAgICAgICAgIGFsbG9jX2JpdHNfc2l6ZSAq
IHNpemVvZih1bnNpZ25lZCkpOwogCiAgICAgcGFzX3N0b3JlX3N0b3JlX2ZlbmNlKCk7CiAKLSAg
ICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZ2aWV3LT5hbGxvY19iaXRz
LCBhbGxvY19iaXRzKTsKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3Jl
KCZ2aWV3LT5hbGxvY19iaXRzLCBmdWxsX2FsbG9jX2JpdHMpOwogfQogCiBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CkBAIC0xMTg4LDcgKzE2NDIsOSBAQCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnCiAKICAgICBkYXRhID0gKHBh
c19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWdlX3NldF9iaXRfZGF0YSopYXJn
OwogCi0gICAgcmV0dXJuIGRhdGEtPmZ1bGxfYWxsb2NfYml0cy5iaXRzW3dvcmRfaW5kZXhdICYg
KCh1bnNpZ25lZCopZGF0YS0+YWxsb2NhdG9yLT5iaXRzKVt3b3JkX2luZGV4XTsKKyAgICByZXR1
cm4gZGF0YS0+ZnVsbF9hbGxvY19iaXRzLmJpdHNbd29yZF9pbmRleF0KKyAgICAgICAgJiAoKHVu
c2lnbmVkKilwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9hbGxvY19iaXRzKAorICAgICAgICAgICAg
ICAgZGF0YS0+YWxsb2NhdG9yLCBkYXRhLT5wYWdlX2NvbmZpZywgZGF0YS0+cm9sZSkpW3dvcmRf
aW5kZXhdOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbApAQCAtMTIyNyw2ICsx
NjgzLDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZwogICAgIHNp
emVfdCBvYmplY3Rfc2l6ZTsKICAgICBwYXNfZnVsbF9hbGxvY19iaXRzIGZ1bGxfYWxsb2NfYml0
czsKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnZV9zZXRfYml0
X2RhdGEgZGF0YTsKKyAgICB1aW50NjRfdCogYWxsb2NhdG9yX2FsbG9jX2JpdHM7CiAKICAgICBQ
QVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAKQEAgLTEyNDksNyArMTcw
Niw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWcKICAgICAKICAg
ICBvYmplY3Rfc2l6ZSA9IGFsbG9jYXRvci0+b2JqZWN0X3NpemU7CiAKLSAgICBpZiAoYWxsb2Nh
dG9yLT5yZW1haW5pbmcpIHsKKyAgICB3aGlsZSAoYWxsb2NhdG9yLT5yZW1haW5pbmcgfHwgYWxs
b2NhdG9yLT5udW1fYnVtcHMpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9idW1wIGJ1
bXA7CisgICAgICAgIAogICAgICAgICBiZWdpbiA9IGFsbG9jYXRvci0+cGF5bG9hZF9lbmQgLSBh
bGxvY2F0b3ItPnJlbWFpbmluZzsKICAgICAgICAgZW5kID0gYWxsb2NhdG9yLT5wYXlsb2FkX2Vu
ZDsKICAgICAgICAgCkBAIC0xMjU3LDE2ICsxNzE2LDI3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmV0dXJuX21lbW9yeV90b19wYWcKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVh
bGxvY2F0ZV93aXRoX3BhZ2UoCiAgICAgICAgICAgICAgICAgcGFnZSwgb2JqZWN0LCBwYXNfc2Vn
cmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsIE5VTEwsIHBhZ2VfY29uZmlnLCByb2xl
KTsKICAgICAgICAgfQorCisgICAgICAgIGlmICghYWxsb2NhdG9yLT5udW1fYnVtcHMpCisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBidW1wID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRf
YnVtcHMoYWxsb2NhdG9yLCBwYWdlX2NvbmZpZywgcm9sZSlbLS1hbGxvY2F0b3ItPm51bV9idW1w
c107CisKKyAgICAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9IGFsbG9jYXRvci0+cGFnZV9p
c2ggKyBidW1wLnBheWxvYWRfZW5kOworICAgICAgICBhbGxvY2F0b3ItPnJlbWFpbmluZyA9IGJ1
bXAucmVtYWluaW5nOworCisgICAgICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yLT5yZW1haW5pbmcp
OwogICAgIH0KLSAgICAKKwogICAgIGlmIChhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID09IGFs
bG9jYXRvci0+ZW5kX29mZnNldCkKICAgICAgICAgcmV0dXJuOwogCisgICAgYWxsb2NhdG9yX2Fs
bG9jX2JpdHMgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9hbGxvY19iaXRzKGFsbG9jYXRvciwg
cGFnZV9jb25maWcsIHJvbGUpOwogICAgIGlmIChwYWdlX2NvbmZpZy51c2VfcmV2ZXJzZWRfY3Vy
cmVudF93b3JkKSB7CiAgICAgICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcudmFyaWFudCA9PSBw
YXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50KTsKLSAgICAgICAgYWxsb2Nh
dG9yLT5iaXRzW2FsbG9jYXRvci0+Y3VycmVudF9vZmZzZXRdID0gcGFzX3JldmVyc2U2NChhbGxv
Y2F0b3ItPmN1cnJlbnRfd29yZCk7CisgICAgICAgIGFsbG9jYXRvcl9hbGxvY19iaXRzW2FsbG9j
YXRvci0+Y3VycmVudF9vZmZzZXRdID0gcGFzX3JldmVyc2U2NChhbGxvY2F0b3ItPmN1cnJlbnRf
d29yZCk7CiAgICAgfSBlbHNlIGlmIChwYWdlX2NvbmZpZy52YXJpYW50ID09IHBhc19zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQpCi0gICAgICAgIGFsbG9jYXRvci0+Yml0c1th
bGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0XSA9IGFsbG9jYXRvci0+Y3VycmVudF93b3JkOworICAg
ICAgICBhbGxvY2F0b3JfYWxsb2NfYml0c1thbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0XSA9IGFs
bG9jYXRvci0+Y3VycmVudF93b3JkOwogCiAgICAgUEFTX0FTU0VSVCghcGFzX2xvY2FsX2FsbG9j
YXRvcl9jb25maWdfa2luZF9pc19wcmltb3JkaWFsX3BhcnRpYWwoYWxsb2NhdG9yLT5jb25maWdf
a2luZCkpOwogCkBAIC0xMzMyLDEyICsxODAyLDE1IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlX3dpdGhfZnIKICAgICB1aW50cHRyX3QgcmVzdWx0OwogICAgIHVuc2lnbmVkIGN1
cnJlbnRfb2Zmc2V0OwogICAgIHVpbnRwdHJfdCBwYWdlX2lzaDsKLQogICAgIGJvb2wgdXNlX2N1
cnJlbnRfd29yZDsKICAgICBib29sIHVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQ7CisgICAgdWlu
dDY0X3QqIGFsbG9jYXRvcl9hbGxvY19iaXRzOwogCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZp
Zy5iYXNlLmlzX2VuYWJsZWQpOwogCisgICAgLyogV2UgZG9uJ3Qga25vdyBvdXIgcm9sZSwgYnV0
IGlmIHdlIGdldCBoZXJlLCB3ZSBrbm93IHRoYXQgd2UgY2FuIGFjY2VzcyB0aGUgYWxsb2NhdG9y
J3MgYml0cy4gKi8KKyAgICBhbGxvY2F0b3JfYWxsb2NfYml0cyA9IGFsbG9jYXRvci0+cGF5bG9h
ZC5hbGxvY19iaXRzX2ltcGw7CisKICAgICB1c2VfY3VycmVudF93b3JkID0gcGFnZV9jb25maWcu
dmFyaWFudCA9PSBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50OwogCiAg
ICAgdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IHBhZ2VfY29uZmlnLnVzZV9yZXZlcnNlZF9j
dXJyZW50X3dvcmQ7CkBAIC0xMzY0LDcgKzE4MzcsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Ry
eV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoY3VycmVudF9vZmZz
ZXQgPj0gYWxsb2NhdG9yLT5lbmRfb2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybiBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAgICAgCi0gICAgICAgIGN1cnJl
bnRfd29yZCA9IGFsbG9jYXRvci0+Yml0c1tjdXJyZW50X29mZnNldF07CisgICAgICAgIGN1cnJl
bnRfd29yZCA9IGFsbG9jYXRvcl9hbGxvY19iaXRzW2N1cnJlbnRfb2Zmc2V0XTsKICAgICB9CiAK
ICAgICBwYWdlX2lzaCA9IGFsbG9jYXRvci0+cGFnZV9pc2g7CkBAIC0xMzg2LDggKzE4NTksOCBA
QCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAgICAgICAgICBQ
QVNfVEVTVElOR19BU1NFUlQoY3VycmVudF9vZmZzZXQgPCBQQVNfQklUVkVDVE9SX05VTV9XT1JE
UzY0KHBhZ2VfY29uZmlnLm51bV9hbGxvY19iaXRzKSk7CiAKICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIlplcm9pbmcgJXBcbiIsIGFsbG9jYXRvci0+
Yml0cyArIGN1cnJlbnRfb2Zmc2V0KTsKLSAgICAgICAgICAgIGFsbG9jYXRvci0+Yml0c1tjdXJy
ZW50X29mZnNldF0gPSAwOworICAgICAgICAgICAgICAgIHBhc19sb2coIlplcm9pbmcgJXBcbiIs
IGFsbG9jYXRvcl9hbGxvY19iaXRzICsgY3VycmVudF9vZmZzZXQpOworICAgICAgICAgICAgYWxs
b2NhdG9yX2FsbG9jX2JpdHNbY3VycmVudF9vZmZzZXRdID0gMDsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgZG8gewpAQCAtMTM5OCw3ICsxODcxLDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfd2l0aF9mcgogICAgICAgICAgICAgICAgIGFsbG9jYXRvci0+Y3VycmVu
dF9vZmZzZXQgPSBlbmRfb2Zmc2V0OwogICAgICAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGN1cnJlbnRfd29yZCA9IGFsbG9jYXRvci0+Yml0c1tjdXJyZW50X29mZnNldF07CisgICAgICAg
ICAgICBjdXJyZW50X3dvcmQgPSBhbGxvY2F0b3JfYWxsb2NfYml0c1tjdXJyZW50X29mZnNldF07
CiAgICAgICAgIH0gd2hpbGUgKCFjdXJyZW50X3dvcmQpOwogCiAgICAgICAgIGlmICh1c2VfcmV2
ZXJzZWRfY3VycmVudF93b3JkKSB7CkBAIC0xNDI5LDcgKzE5MDIsNyBAQCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAgaWYgKHVzZV9jdXJyZW50X3dvcmQpCiAg
ICAgICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkID0gY3VycmVudF93b3JkOwogICAgIGVsc2UK
LSAgICAgICAgYWxsb2NhdG9yLT5iaXRzW2N1cnJlbnRfb2Zmc2V0XSA9IGN1cnJlbnRfd29yZDsK
KyAgICAgICAgYWxsb2NhdG9yX2FsbG9jX2JpdHNbY3VycmVudF9vZmZzZXRdID0gY3VycmVudF93
b3JkOwogICAgIHJlc3VsdCA9IHBhZ2VfaXNoICsgKGZvdW5kX2JpdF9pbmRleCA8PCBwYWdlX2Nv
bmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdCk7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpIHsKQEAg
LTE0NDQsNiArMTkxNyw1OCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRo
X2ZyCiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQK
K3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2J1bXBfd2l0aF9udW1fYnVtcHMocGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBudW1fYnVtcHMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2Vf
Y29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAK
KyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2J1bXAgYnVtcDsKKyAgICB1aW50cHRyX3QgcGF5bG9h
ZF9lbmQ7CisgICAgc2l6ZV90IHJlbWFpbmluZ19iZWZvcmVfYWxsb2NhdGlvbjsKKyAgICBzaXpl
X3QgcmVtYWluaW5nOworCisgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5udW1fbGluZXMpOwor
ICAgIFBBU19URVNUSU5HX0FTU0VSVChudW1fYnVtcHMpOworCisgICAgLyogVGhpcyByZWxpZXMg
b24gYnVtcHMgYmVpbmcgcHV0IGludG8gdGhlIGJ1bXBzIGFycmF5IGluIHJldmVyc2Ugb3JkZXIu
IFNvLCB3aGVuIHdlIHBvcCBmcm9tIHRoZQorICAgICAgIGJ1bXBzIGFycmF5LCB3ZSBhcmUgbW92
aW5nIGZvcndhcmQgaW4gdGhlIHBhZ2UuICovCisKKyAgICAtLW51bV9idW1wczsKKworICAgIC8q
IFdlIGtub3cgaXQncyBPSyB0byBhY2Nlc3MgdGhlIGJ1bXBzIGJlY2F1c2UgbnVtX2J1bXBzIHdh
cyBub24temVybywgYnV0IHdlIGRvbid0IG5lY2Vzc2FyaWx5IGtub3cgdGhlCisgICAgICAgcm9s
ZSBpbiBoZXJlLiAqLworICAgIGJ1bXAgPSBhbGxvY2F0b3ItPnBheWxvYWQuYnVtcHNfaW1wbFtu
dW1fYnVtcHNdOworICAgIGFsbG9jYXRvci0+bnVtX2J1bXBzID0gbnVtX2J1bXBzOworCisgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKGFsbG9jYXRvci0+cGF5bG9hZF9lbmQpOworCisgICAgcGF5bG9h
ZF9lbmQgPSBhbGxvY2F0b3ItPnBhZ2VfaXNoICsgYnVtcC5wYXlsb2FkX2VuZDsKKyAgICAKKyAg
ICBQQVNfVEVTVElOR19BU1NFUlQocGF5bG9hZF9lbmQgPiBhbGxvY2F0b3ItPnBheWxvYWRfZW5k
KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAgIHBheWxvYWRfZW5kCisgICAgICAg
IDw9ICh1aW50cHRyX3QpcGFzX3BhZ2VfYmFzZV9ib3VuZGFyeV9mb3JfYWRkcmVzc19hbmRfcGFn
ZV9jb25maWcoCisgICAgICAgICAgICBhbGxvY2F0b3ItPnBheWxvYWRfZW5kLCBwYWdlX2NvbmZp
Zy5iYXNlKSArIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKworICAgIHJlbWFpbmluZ19i
ZWZvcmVfYWxsb2NhdGlvbiA9IGJ1bXAucmVtYWluaW5nOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChyZW1haW5pbmdfYmVmb3JlX2FsbG9jYXRpb24gPj0gYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSk7
CisgICAgcmVtYWluaW5nID0gcmVtYWluaW5nX2JlZm9yZV9hbGxvY2F0aW9uIC0gYWxsb2NhdG9y
LT5vYmplY3Rfc2l6ZTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocmVtYWluaW5nIDwgcmVtYWlu
aW5nX2JlZm9yZV9hbGxvY2F0aW9uKTsKKyAgICAKKyAgICBhbGxvY2F0b3ItPnBheWxvYWRfZW5k
ID0gcGF5bG9hZF9lbmQ7CisgICAgYWxsb2NhdG9yLT5yZW1haW5pbmcgPSAodW5zaWduZWQpcmVt
YWluaW5nOworICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0b3ItPnJlbWFpbmluZyA9PSBy
ZW1haW5pbmcpOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiUmVmaWxs
ZWQgYnVtcCB3aXRoIHBheWxvYWRfZW5kID0gJWx1LCByZW1haW5pbmcgPSAlbHUsIHJldHVybmlu
ZyAlbHVcbiIsCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCwgcmVtYWlu
aW5nLCBwYXlsb2FkX2VuZCAtIHJlbWFpbmluZ19iZWZvcmVfYWxsb2NhdGlvbik7CisgICAgfQor
CisgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhwYXlsb2Fk
X2VuZCAtIHJlbWFpbmluZ19iZWZvcmVfYWxsb2NhdGlvbik7Cit9CisKK3N0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlX2lubGluZV9jYXNlcyhwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29u
ZmlnIGNvbmZpZykKIHsKQEAgLTE0ODYsNyArMjAxMSwyMCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZV9pbmxpbmVfCiAgICAgfQogCiAgICAgaWYgKGNvbmZpZy5zbWFsbF9zZWdy
ZWdhdGVkX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpIHsKLSAgICAgICAgLyogVGhpcyBpcyB0aGUg
d2F5IHRvIHRoZSBzZWNvbmQtZmFzdGVzdCBmYXN0IHBhdGguIFdlIHVzZSBpdCBhIGxvdC4gKi8K
KyAgICAgICAgaWYgKGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5udW1fbGluZXMpIHsK
KyAgICAgICAgICAgIHVuc2lnbmVkIG51bV9idW1wczsKKyAgICAgICAgICAgIG51bV9idW1wcyA9
IGFsbG9jYXRvci0+bnVtX2J1bXBzOworICAgICAgICAgICAgaWYgKG51bV9idW1wcykgeworICAg
ICAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfYnVtcF93aXRoX251bV9idW1w
cygKKyAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBudW1fYnVtcHMsIGNvbmZpZy5zbWFs
bF9zZWdyZWdhdGVkX2NvbmZpZyk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5kaWRfc3Vj
Y2VlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyogVGhpcyBpcyB0aGUgd2F5IHRvIHRoZSB0
aGlyZC1mYXN0ZXN0IGZhc3QgcGF0aC4gV2UgdXNlIGl0IGEgbG90LiBJbiBzb21lIGNvbmZpZ3Vy
YXRpb25zLCBpdCdzIHRoZQorICAgICAgICAgICB0aGlyZC1mYXN0ZXN0IHBhdGguICovCiAgICAg
ICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyZWVfYml0
cygKICAgICAgICAgICAgIGFsbG9jYXRvciwgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmln
KTsKICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfb2Jq
ZWN0X2xpdmVuZXNzX2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX09CSkVDVF9MSVZFTkVTU19LSU5E
X0gKKyNkZWZpbmUgUEFTX09CSkVDVF9MSVZFTkVTU19LSU5EX0gKKworI2luY2x1ZGUgInBhc191
dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK2VudW0gcGFzX29iamVjdF9saXZlbmVz
c19raW5kIHsKKyAgICBwYXNfcG9zc2libHlfbGl2ZV9vYmplY3Rfa2luZCwKKyAgICBwYXNfZGVm
aW5pdGVseV9saXZlX29iamVjdF9raW5kCit9OworCit0eXBlZGVmIGVudW0gcGFzX29iamVjdF9s
aXZlbmVzc19raW5kIHBhc19vYmplY3RfbGl2ZW5lc3Nfa2luZDsKKworc3RhdGljIGlubGluZSBj
b25zdCBjaGFyKiBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmRfZ2V0X3N0cmluZyhwYXNfb2JqZWN0
X2xpdmVuZXNzX2tpbmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIHBh
c19wb3NzaWJseV9saXZlX29iamVjdF9raW5kOgorICAgICAgICByZXR1cm4gInBvc3NpYmx5X2xp
dmUiOworICAgIGNhc2UgcGFzX2RlZmluaXRlbHlfbGl2ZV9vYmplY3Rfa2luZDoKKyAgICAgICAg
cmV0dXJuICJkZWZpbml0ZWx5X2xpdmUiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxk
IG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJO
X0M7CisKKyNlbmRpZiAvKiBQQVNfT0JKRUNUX0xJVkVORVNTX0tJTkRfSCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZS5jCShy
ZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
cGFnZV9iYXNlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsMjMgQEAKICNpbmNsdWRlICJwYXNf
Yml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCiAKK3NpemVf
dCBwYXNfcGFnZV9iYXNlX2hlYWRlcl9zaXplKHBhc19wYWdlX2Jhc2VfY29uZmlnKiBjb25maWcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9raW5kIHBhZ2Vfa2lu
ZCkKK3sKKyAgICBzd2l0Y2ggKGNvbmZpZy0+cGFnZV9jb25maWdfa2luZCkgeworICAgIGNhc2Ug
cGFzX3BhZ2VfY29uZmlnX2tpbmRfc2VncmVnYXRlZDoKKyAgICAgICAgUEFTX0FTU0VSVChwYXNf
cGFnZV9raW5kX2dldF9jb25maWdfa2luZChwYWdlX2tpbmQpID09IHBhc19wYWdlX2NvbmZpZ19r
aW5kX3NlZ3JlZ2F0ZWQpOworICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFk
ZXJfc2l6ZSgKKyAgICAgICAgICAgICpwYXNfcGFnZV9iYXNlX2NvbmZpZ19nZXRfc2VncmVnYXRl
ZChjb25maWcpLAorICAgICAgICAgICAgcGFzX3BhZ2Vfa2luZF9nZXRfc2VncmVnYXRlZF9yb2xl
KHBhZ2Vfa2luZCkpOworICAgIGNhc2UgcGFzX3BhZ2VfY29uZmlnX2tpbmRfYml0Zml0OgorICAg
ICAgICBQQVNfQVNTRVJUKHBhc19wYWdlX2tpbmRfZ2V0X2NvbmZpZ19raW5kKHBhZ2Vfa2luZCkg
PT0gcGFzX3BhZ2VfY29uZmlnX2tpbmRfYml0Zml0KTsKKyAgICAgICAgcmV0dXJuIHBhc19iaXRm
aXRfcGFnZV9oZWFkZXJfc2l6ZSgqcGFzX3BhZ2VfYmFzZV9jb25maWdfZ2V0X2JpdGZpdChjb25m
aWcpKTsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwor
ICAgIHJldHVybiAwOworfQorCiBwYXNfcGFnZV9iYXNlX2NvbmZpZyogcGFzX3BhZ2VfYmFzZV9n
ZXRfY29uZmlnKHBhc19wYWdlX2Jhc2UqIHBhZ2UpCiB7CiAgICAgc3dpdGNoIChwYXNfcGFnZV9i
YXNlX2dldF9jb25maWdfa2luZChwYWdlKSkgewpAQCAtOTYsNyArMTEzLDcgQEAgYm9vbCBwYXNf
cGFnZV9iYXNlX2lzX2VtcHR5KHBhc19wYWdlX2JhcwogewogICAgIHN3aXRjaCAocGFzX3BhZ2Vf
YmFzZV9nZXRfY29uZmlnX2tpbmQocGFnZSkpIHsKICAgICBjYXNlIHBhc19wYWdlX2NvbmZpZ19r
aW5kX3NlZ3JlZ2F0ZWQ6Ci0gICAgICAgIHJldHVybiAhcGFzX3BhZ2VfYmFzZV9nZXRfc2VncmVn
YXRlZChwYWdlKS0+bnVtX25vbl9lbXB0eV93b3JkczsKKyAgICAgICAgcmV0dXJuICFwYXNfcGFn
ZV9iYXNlX2dldF9zZWdyZWdhdGVkKHBhZ2UpLT5udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVz
OwogICAgIGNhc2UgcGFzX3BhZ2VfY29uZmlnX2tpbmRfYml0Zml0OgogICAgICAgICByZXR1cm4g
IXBhc19wYWdlX2Jhc2VfZ2V0X2JpdGZpdChwYWdlKS0+bnVtX2xpdmVfYml0czsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFz
ZS5oCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcGFnZV9iYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNiArNjAsOSBAQCBzdHJ1Y3QgcGFz
X3BhZ2VfYmFzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2ljYWxseSBhbnkgcmVh
c29uLiAqLwogfTsKIAorUEFTX0FQSSBzaXplX3QgcGFzX3BhZ2VfYmFzZV9oZWFkZXJfc2l6ZShw
YXNfcGFnZV9iYXNlX2NvbmZpZyogY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfcGFnZV9raW5kIHBhZ2Vfa2luZCk7CisKIHN0YXRpYyBpbmxpbmUg
dm9pZCBwYXNfcGFnZV9iYXNlX2NvbnN0cnVjdChwYXNfcGFnZV9iYXNlKiBwYWdlX2Jhc2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfa2luZCBw
YWdlX2tpbmQpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
cGFnZV9iYXNlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgInBhc19sb2NrLmgiCiAj
aW5jbHVkZSAicGFzX3BhZ2VfY29uZmlnX2tpbmQuaCIKKyNpbmNsdWRlICJwYXNfcGFnZV9raW5k
LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCIKICNpbmNsdWRlICJw
YXNfdXRpbHMuaCIKIApAQCAtNTUsNyArNTYsNyBAQCB0eXBlZGVmIHZvaWQqICgqcGFzX3BhZ2Vf
YmFzZV9jb25maWdfYm91CiB0eXBlZGVmIHBhc19wYWdlX2Jhc2UqICgqcGFzX3BhZ2VfYmFzZV9j
b25maWdfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSkoCiAgICAgcGFzX2VudW1lcmF0
b3IqIGVudW1lcmF0b3IsIHZvaWQqIGJvdW5kYXJ5KTsKIHR5cGVkZWYgcGFzX3BhZ2VfYmFzZSog
KCpwYXNfcGFnZV9iYXNlX2NvbmZpZ19jcmVhdGVfcGFnZV9oZWFkZXIpKAotICAgIHZvaWQqIGJv
dW5kYXJ5LCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgdm9p
ZCogYm91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBf
bG9ja19ob2xkX21vZGUpOwogdHlwZWRlZiB2b2lkICgqcGFzX3BhZ2VfYmFzZV9jb25maWdfZGVz
dHJveV9wYWdlX2hlYWRlcikoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZV9iYXNlLCBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKQEAgLTgyLDEwICs4Myw2IEBAIHN0
cnVjdCBwYXNfcGFnZV9iYXNlX2NvbmZpZyB7CiAgICAgLyogVGhlIGNvbW1pdCBncmFudWxlIHNp
emUuICovCiAgICAgc2l6ZV90IGdyYW51bGVfc2l6ZTsKIAotICAgIC8qIFRoZSBoZWFkZXIgc2l6
ZS4gVGhpcyBjYW4gYmUgY29tcHV0ZWQgaWYgeW91IGtub3cgdGhlIGtpbmQgb2YgcGFnZSBjb25m
aWcgd2UncmUgZGVhbGluZwotICAgICAgIHdpdGguIEJ1dCB3ZSBkb24ndCBhbHdheXMsIHNvIGl0
J3MgYmVzdCB0byBzdG9yZSBpdC4gKi8KLSAgICBzaXplX3QgcGFnZV9oZWFkZXJfc2l6ZTsKLSAg
ICAKICAgICAvKiBIYXJkIGN1dC1vZmYgZm9yIG9iamVjdCBzaXplcyBmb3IgdGhpcyB2YXJpYW50
LiBGb3Igc2VncmVnYXRlZCBwYWdlIGNvbmZpZ3MsIGl0J3MgcmVjb21tZW5kZWQKICAgICAgICB0
aGF0IHRoaXMgaXMgc29tZXRoaW5nIHRoYXQgZGl2aWRlcyBjbGVhbmx5IGludG8gcGFnZV9vYmpl
Y3RfcGF5bG9hZF9zaXplLiBGb3IgYml0Zml0IHBhZ2UKICAgICAgICBjb25maWdzLCB0aGlzIG11
c3QgYmUgc3RyaWN0bHkgc21hbGxlciB0aGFuIFBBU19CSVRGSVRfTUFYX0ZSRUVfVU5QUk9DRVNT
RUQgKiBtaW5fYWxpZ24uICovCkBAIC05OCwxMiArOTUsNiBAQCBzdHJ1Y3QgcGFzX3BhZ2VfYmFz
ZV9jb25maWcgewogICAgIC8qIE5lZWQgdG8gYWxzbyBiZSBhYmxlIHRvIGdldCB0aGUgcGFnZSBo
ZWFkZXIgcmVtb3RlbHkgZHVyaW5nIGVudW1lcmF0aW9uLiAqLwogICAgIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUgcGFnZV9oZWFkZXJfZm9yX2Jv
dW5kYXJ5X3JlbW90ZTsKICAgICAKLSAgICAvKiBXaGF0J3MgdGhlIGZpcnN0IGJ5dGUgYXQgd2hp
Y2ggdGhlIG9iamVjdCBwYXlsb2FkIGNvdWxkIHN0YXJ0IHJlbGF0aXZlIHRvIHRoZSBib3VuZGFy
eT8gKi8KLSAgICB1aW50cHRyX3QgcGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQ7Ci0KLSAgICAv
KiBIb3cgbWFueSBieXRlcyBhcmUgcHJvdmlzaW9uZWQgZm9yIG9iamVjdHMgcGFzdCB0aGF0IG9m
ZnNldD8gKi8KLSAgICBzaXplX3QgcGFnZV9vYmplY3RfcGF5bG9hZF9zaXplOwotCiAgICAgLyog
U29tZSBjb25maWd1cmF0aW9ucyBuZWVkIHRvIGJlIGFibGUgdG8gYWxsb2NhdGUvZnJlZSB0aGUg
cGFnZSBoZWFkZXIuIFRoZSBhbGxvY2F0aW9uIHdvdWxkCiAgICAgICAgaGFwcGVuIGFmdGVyIHBh
Z2UgYWxsb2NhdGlvbiBvciBjb21taXQsIGFuZCB0aGUgZGVhbGxvY2F0aW9uIHdvdWxkIGhhcHBl
biByaWdodCBiZWZvcmUgb3IKICAgICAgICByaWdodCBhZnRlciBwYWdlIGRlY29tbWl0LiAqLwpA
QCAtMTE2LDEyICsxMDcsNiBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19w
YWdlCiAgICAgcmV0dXJuIChzaXplX3QpMSA8PCAoc2l6ZV90KWNvbmZpZy5taW5fYWxpZ25fc2hp
ZnQ7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50cHRyX3QKLXBhc19wYWdlX2Jh
c2VfY29uZmlnX29iamVjdF9wYXlsb2FkX2VuZF9vZmZzZXRfZnJvbV9ib3VuZGFyeShwYXNfcGFn
ZV9iYXNlX2NvbmZpZyBjb25maWcpCi17Ci0gICAgcmV0dXJuIGNvbmZpZy5wYWdlX29iamVjdF9w
YXlsb2FkX29mZnNldCArIGNvbmZpZy5wYWdlX29iamVjdF9wYXlsb2FkX3NpemU7Ci19Ci0KICNk
ZWZpbmUgUEFTX1BBR0VfQkFTRV9DT05GSUdfTlVNX0dSQU5VTEVfQllURVMobnVtX2dyYW51bGVz
KSBcCiAgICAgKChudW1fZ3JhbnVsZXMpID09IDEgPyAwIDogKG51bV9ncmFudWxlcykgKiBzaXpl
b2YocGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQpKQogCkBAIC0xMzgsNyArMTIzLDcgQEAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3BhZ2VfYgogCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgYm9vbCBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pc19iaXRmaXQocGFzX3BhZ2VfYmFz
ZV9jb25maWcgY29uZmlnKQogewotICAgIHJldHVybiBjb25maWcucGFnZV9jb25maWdfa2luZCA9
PSBwYXNfcGFnZV9jb25maWdfa2luZF9zZWdyZWdhdGVkOworICAgIHJldHVybiBjb25maWcucGFn
ZV9jb25maWdfa2luZCA9PSBwYXNfcGFnZV9jb25maWdfa2luZF9iaXRmaXQ7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29u
ZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDcgKzQzLDcgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIG5hbWUgIyMgX3BhZ2VfaGVh
ZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIHZvaWQq
IGJvdW5kYXJ5KTsgXAogICAgIFwKICAgICBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIG5hbWUgIyMg
X2NyZWF0ZV9wYWdlX2hlYWRlciggXAotICAgICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX2xvY2tf
aG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOyBcCisgICAgICAgIHZvaWQqIGJvdW5kYXJ5
LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9t
b2RlKTsgXAogICAgIFBBU19BUEkgdm9pZCBuYW1lICMjIF9kZXN0cm95X3BhZ2VfaGVhZGVyKCBc
CiAgICAgICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2UsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xv
Y2tfaG9sZF9tb2RlKQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5s
aW5lcy5oCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY5LDcgKzY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIH0gXAogICAgIFwKICAgICBw
YXNfcGFnZV9iYXNlKiBuYW1lICMjIF9jcmVhdGVfcGFnZV9oZWFkZXIoIFwKLSAgICAgICAgdm9p
ZCogYm91bmRhcnksIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKSBcCisg
ICAgICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKSBcCiAgICAgeyBcCiAgICAgICAgIHBhc19iYXNpY19w
YWdlX2Jhc2VfY29uZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50cyBhcmd1bWVudHMgPSBcCiAgICAg
ICAgICAgICAoKHBhc19iYXNpY19wYWdlX2Jhc2VfY29uZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50
cyl7X19WQV9BUkdTX199KTsgXApAQCAtODQsMTAgKzg0LDExIEBAIHR5cGVkZWYgc3RydWN0IHsK
ICAgICAgICAgY2FzZSBwYXNfcGFnZV9oZWFkZXJfaW5fdGFibGU6IHsgXAogICAgICAgICAgICAg
cGFzX3BhZ2VfYmFzZSogcmVzdWx0OyBcCiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tf
Y29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsgXAotICAgICAgICAgICAgcmVzdWx0
ID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2FkZChhcmd1bWVudHMuaGVhZGVyX3RhYmxlLCBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cy5w
YWdlX2NvbmZpZy5wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJndW1lbnRzLnBhZ2VfY29uZmlnLnBhZ2VfaGVhZGVyX3NpemUsIFwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRhcnkp
OyBcCisgICAgICAgICAgICByZXN1bHQgPSBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKCBcCisg
ICAgICAgICAgICAgICAgYXJndW1lbnRzLmhlYWRlcl90YWJsZSwgXAorICAgICAgICAgICAgICAg
IGFyZ3VtZW50cy5wYWdlX2NvbmZpZy5wYWdlX3NpemUsIFwKKyAgICAgICAgICAgICAgICBwYXNf
cGFnZV9iYXNlX2hlYWRlcl9zaXplKGFyZ3VtZW50cy5wYWdlX2NvbmZpZy5wYWdlX2NvbmZpZ19w
dHIsIGtpbmQpLCBcCisgICAgICAgICAgICAgICAgYm91bmRhcnkpOyBcCiAgICAgICAgICAgICBw
YXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOyBc
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyBcCiAgICAgICAgIH0gfSBcCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxs
b2NfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMw
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisvLwor
Ly8gUHJvYmFiaWxpc3RpYyBHdWFyZCBNYWxsb2MgKFBHTSkgaXMgYSBuZXcgYWxsb2NhdG9yIGRl
c2lnbmVkIHRvIGNhdGNoIHVzZSBhZnRlciBmcmVlIGF0dGVtcHRzIGFuZCBvdXQgb2YgYm91bmRz
IGFjY2Vzc2VzLgorLy8gSXQgYmVoYXZlcyBzaW1pbGFybHkgdG8gQWRkcmVzc1Nhbml0aXplciAo
QVNBTiksIGJ1dCBhaW1zIHRvIGhhdmUgbWluaW1hbCBydW50aW1lIG92ZXJoZWFkLgorLy8KKy8v
IFRoZSBkZXNpZ24gb2YgUEdNIGlzIHF1aXRlIHNpbXBsZS4gRWFjaCB0aW1lIGFuIGFsbG9jYXRp
b24gaXMgcGVyZm9ybWVkIGFuIGFkZGl0aW9uYWwgZ3VhcmQgcGFnZSBpcyBhZGRlZCBhYm92ZSBh
bmQgYmVsb3cgdGhlIG5ld2x5CisvLyBhbGxvY2F0ZWQgcGFnZShzKS4gQW4gYWxsb2NhdGlvbiBt
YXkgc3BhbiBtdWx0aXBsZSBwYWdlcy4gV2hlbiBhIGRlYWxsb2NhdGlvbiBpcyBwZXJmb3JtZWQs
IHRoZSBwYWdlKHMpIGFsbG9jYXRlZCB3aWxsIGJlIHByb3RlY3RlZAorLy8gdXNpbmcgbXByb3Rl
Y3QgdG8gZW5zdXJlIHRoYXQgYW55IHVzZSBhZnRlciBmcmVlcyB3aWxsIHRyaWdnZXIgYSBjcmFz
aC4gVmlydHVhbCBtZW1vcnkgYWRkcmVzc2VzIGFyZSBuZXZlciByZXVzZWQsIHNvIHdlIHdpbGwg
bmV2ZXIgcnVuCisvLyBpbnRvIGEgY2FzZSB3aGVyZSBvYmplY3QgMSBpcyBmcmVlZCwgb2JqZWN0
IDIgaXMgYWxsb2NhdGVkIG92ZXIgdGhlIHNhbWUgYWRkcmVzcyBzcGFjZSwgYW5kIG9iamVjdCAx
IHRoZW4gYWNjZXNzZXMgdGhlIG1lbW9yeSBhZGRyZXNzCisvLyBzcGFjZSBvZiBub3cgb2JqZWN0
IDIuCisvLworLy8gUEdNIGRvZXMgYWRkIG5vdGFibGUgbWVtb3J5IG92ZXJoZWFkLiBFYWNoIGFs
bG9jYXRpb24sIG5vIG1hdHRlciB0aGUgc2l6ZSwgYWRkcyBhbiBhZGRpdGlvbmFsIDIgZ3VhcmQg
cGFnZXMgKDhLQiBmb3IgWDg2XzY0IGFuZCAzMktCCisvLyBmb3IgQVJNNjQpLiBJbiBhZGRpdGlv
biwgdGhlcmUgbWF5IGJlIGZyZWUgbWVtb3J5IGxlZnQgb3ZlciBpbiB0aGUgcGFnZShzKSBhbGxv
Y2F0ZWQgZm9yIHRoZSB1c2VyLiBUaGlzIG1lbW9yeSBtYXkgbm90IGJlIHVzZWQgYnkgYW55Cisv
LyBvdGhlciBhbGxvY2F0aW9uLgorLy8KKy8vIFdlIGFkZGVkIGxpbWl0cyBvbiB2aXJ0dWFsIG1l
bW9yeSBhbmQgd2FzdGVkIG1lbW9yeSB0byBoZWxwIGxpbWl0IHRoZSBtZW1vcnkgaW1wYWN0IG9u
IHRoZSBvdmVyYWxsIHN5c3RlbS4gVmlydHVhbCBtZW1vcnkgZm9yIHRoaXMKKy8vIGFsbG9jYXRv
ciBpcyBsaW1pdGVkIHRvIDFHQi4gV2FzdGVkIG1lbW9yeSwgd2hpY2ggaXMgdGhlIHVudXNlZCBt
ZW1vcnkgaW4gdGhlIHBhZ2UocykgYWxsb2NhdGVkIGJ5IHRoZSB1c2VyLCBpcyBsaW1pdGVkIHRv
IDFNQi4KKy8vIFRoZXNlIG92ZXJhbGwgbGltaXRzIHNob3VsZCBlbnN1cmUgdGhhdCB0aGUgbWVt
b3J5IGltcGFjdCBvbiB0aGUgc3lzdGVtIGlzIG1pbmltYWwsIHdoaWxlIGhlbHBpbmcgdG8gdGFj
a2xlIHRoZSBwcm9ibGVtcyBvZiBjYXRjaGluZworLy8gdXNlIGFmdGVyIGZyZWVzIGFuZCBvdXQg
b2YgYm91bmRzIGFjY2Vzc2VzLgorLy8KKworCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVk
ZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+
CisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisjaW5jbHVkZSAicGFzX2hlYXAuaCIKKyNpbmNsdWRl
ICJwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmgiCisjaW5jbHVkZSAi
cGFzX2xhcmdlX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfcHRyX2hhc2hfbWFwLmgiCisjaW5jbHVk
ZSAiaXNvX2hlYXBfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9o
ZWFwLmgiCisKKy8vIGRlYnVnIHRvZ2dsZQorYm9vbCBwZ21fdmVyYm9zZSA9IGZhbHNlOworCisv
LyBtYXggYW1vdW50IG9mIGZyZWUgbWVtb3J5IHRoYXQgY2FuIGJlIHdhc3RlZCAoMU1CKQorI2Rl
ZmluZSBNQVhfV0FTVEVEX01FTU9SWSAoMTAyNCAqIDEwMjQpCisKKy8vIG1heCBhbW91bnQgb2Yg
dmlydHVhbCBtZW1vcnkgdGhhdCBjYW4gYmUgdXNlZCBieSBQR00gKDFHQikKKy8vIGluY2x1ZGlu
ZyBndWFyZCBwYWdlcyBhbmQgd2FzdGVkIG1lbW9yeQorI2RlZmluZSBNQVhfVklSVFVBTF9NRU1P
UlkgKDEwMjQgKiAxMDI0ICogMTAyNCkKKworYm9vbCBwZ21fZW5hYmxlZCA9IHRydWU7CisKK3Np
emVfdCBmcmVlX3dhc3RlZF9tZW0gID0gTUFYX1dBU1RFRF9NRU1PUlk7CitzaXplX3QgZnJlZV92
aXJ0dWFsX21lbSA9IE1BWF9WSVJUVUFMX01FTU9SWTsKKworLy8gc3RydWN0dXJlIGZvciBob2xk
aW5nIG1ldGFkYXRhIG9mIHBnbSBhbGxvY2F0aW9ucwordHlwZWRlZiBzdHJ1Y3QgcGdtX3N0b3Jh
Z2UgcGdtX3N0b3JhZ2U7CitzdHJ1Y3QgcGdtX3N0b3JhZ2UgeworICAgIHNpemVfdCBhbGxvY2F0
aW9uX3NpemVfcmVxdWVzdGVkOworICAgIHNpemVfdCBzaXplX29mX2RhdGFfcGFnZXM7CisgICAg
c2l6ZV90IG1lbV90b193YXN0ZTsKKyAgICBzaXplX3QgbWVtX3RvX2FsbG9jOworICAgIHVpbnRw
dHJfdCBzdGFydF9vZl9kYXRhX3BhZ2VzOworICAgIHVpbnRwdHJfdCB1cHBlcl9ndWFyZF9wYWdl
OworICAgIHVpbnRwdHJfdCBsb3dlcl9ndWFyZF9wYWdlOworfTsKKworLy8gdGhlIGhhc2ggbWFw
IGlzIHVzZWQgdG8ga2VlcCB0cmFjayBvZiBhbGwgcGdtIGFsbG9jYXRpb25zCisvLyBrZXkgICA6
IHVzZXIncyBzdGFydGluZyBtZW1vcnkgYWRkcmVzcworLy8gdmFsdWUgOiBtZXRhZGF0YSBmb3Ig
dHJhY2tpbmcgdGhhdCBhbGxvY2F0aW9uIChwZ21fc3RvcmFnZSkKK3Bhc19wdHJfaGFzaF9tYXAg
cGdtX2hhc2hfbWFwID0gUEFTX0hBU0hUQUJMRV9JTklUSUFMSVpFUjsKKworCisjcHJhZ21hIG1h
cmsgLQorI3ByYWdtYSBtYXJrIEFMTE9DL0RFQUxMT0MKKwordm9pZCogcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKHNpemVfdCBzaXplLCBwYXNfaGVhcCogaGVhcCwgcGFz
X2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbikgeworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIC8vIGlucHV0
IGNoZWNraW5nCisgICAgaWYgKCFoZWFwIHx8ICFzaXplIHx8ICFoZWFwX2NvbmZpZyB8fCAhdHJh
bnNhY3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gZ2V0IHBhZ2Ugc2l6ZQor
ICAgIGNvbnN0IHNpemVfdCBwYWdlX3NpemUgPSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7
CisKKyAgICAvLyBjYWxjdWxhdGUgd2FzdGVkIG1lbW9yeQorICAgIHNpemVfdCBtZW1fdG9fd2Fz
dGUgPSBwYWdlX3NpemUgLSAoc2l6ZSAlIHBhZ2Vfc2l6ZSk7CisgICAgaWYgKG1lbV90b193YXN0
ZSA+IGZyZWVfd2FzdGVkX21lbSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBjYWxj
dWxhdGUgdmlydHVhbCBtZW1vcnkKKyAgICAvLworICAgIC8vICotLS0tLS0tLS0tLS0tLS0tLS0q
ICotLS0tLS0tLS0tLS0tLS0tLS0qICotLS0tLS0tLS0tLS0tLS0tLS0qCisgICAgLy8gfCBsb3dl
ciBndWFyZCBwYWdlIHwgfCB1c2VyIGFsbG9jIHBhZ2VzIHwgfCB1cHBlciBndWFyZCBwYWdlIHwK
KyAgICAvLyAqLS0tLS0tLS0tLS0tLS0tLS0tKiAqLS0tLS0tLS0tLS0tLS0tLS0tKiAqLS0tLS0t
LS0tLS0tLS0tLS0tKgorICAgIHNpemVfdCBtZW1fdG9fYWxsb2MgPSAoMiAqIHBhZ2Vfc2l6ZSkg
KyBzaXplICsgbWVtX3RvX3dhc3RlOworICAgIGlmIChtZW1fdG9fYWxsb2MgPiBmcmVlX3ZpcnR1
YWxfbWVtKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIGFsbG9jYXRlIG1lbW9yeQor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQgPSBwYXNfbGFyZ2VfaGVhcF90cnlfYWxs
b2NhdGVfYW5kX2ZvcmdldCgmaGVhcC0+bGFyZ2VfaGVhcCwgbWVtX3RvX2FsbG9jLCBwYWdlX3Np
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlYXBfY29uZmlnLCB0cmFuc2FjdGlvbik7CisgICAgaWYg
KCFyZXN1bHQuZGlkX3N1Y2NlZWQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gcHJv
dGVjdCBndWFyZCBwYWdlcyBmcm9tIGJlaW5nIGFjY2Vzc2VkCisgICAgdWludHB0cl90IGxvd2Vy
X2d1YXJkX3BhZ2UgPSByZXN1bHQuYmVnaW47CisgICAgdWludHB0cl90IHVwcGVyX2d1YXJkX3Bh
Z2UgPSByZXN1bHQuYmVnaW4gKyAobWVtX3RvX2FsbG9jIC0gcGFnZV9zaXplKTsKKworICAgIGlu
dCBtcHJvdGVjdF9yZXMgPSBtcHJvdGVjdCggKHZvaWQgKikgbG93ZXJfZ3VhcmRfcGFnZSwgcGFn
ZV9zaXplLCBQUk9UX05PTkUpOworICAgIFBBU19BU1NFUlQoIW1wcm90ZWN0X3Jlcyk7CisKKyAg
ICBtcHJvdGVjdF9yZXMgPSBtcHJvdGVjdCggKHZvaWQgKikgdXBwZXJfZ3VhcmRfcGFnZSwgcGFn
ZV9zaXplLCBQUk9UX05PTkUpOworICAgIFBBU19BU1NFUlQoIW1wcm90ZWN0X3Jlcyk7CisKKyAg
ICAvLyBlbnN1cmUgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZSByZWxlYXNlZAorICAgIC8vIFRPRE86
IGludmVzdGlnYXRlIHVzaW5nIE1BRFZfRlJFRV9SRVVTQUJMRSBpbnN0ZWFkCisgICAgaW50IG1h
ZHZpc2VfcmVzID0gbWFkdmlzZSgodm9pZCAqKSB1cHBlcl9ndWFyZF9wYWdlLCBwYWdlX3NpemUs
IE1BRFZfRlJFRSk7CisgICAgUEFTX0FTU0VSVCghbWFkdmlzZV9yZXMpOworCisgICAgbWFkdmlz
ZV9yZXMgPSBtYWR2aXNlKCh2b2lkICopIGxvd2VyX2d1YXJkX3BhZ2UsIHBhZ2Vfc2l6ZSwgTUFE
Vl9GUkVFKTsKKyAgICBQQVNfQVNTRVJUKCFtYWR2aXNlX3Jlcyk7CisKKyAgICAvLyB0aGUga2V5
IGlzIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgdXNlcidzIHN0YXJ0aW5nIG1lbW9yeSBhZGRyZXNz
IGlzIGxvY2F0ZWQuCisgICAgLy8gYWxsb2NhdGlvbnMgYXJlIHJpZ2h0IGFsaWduZWQsIHNvIHRo
ZSBlbmQgYmFja3MgdXAgdG8gdGhlIHVwcGVyIGd1YXJkIHBhZ2UuCisgICAgdm9pZCAqIGtleSA9
ICh2b2lkKikgKHJlc3VsdC5iZWdpbiArIHBhZ2Vfc2l6ZSArIG1lbV90b193YXN0ZSk7CisKKyAg
ICAvLyBjcmVhdGUgc3RydWN0IHRvIGhvbGQgaGFzaCBtYXAgdmFsdWUKKyAgICBwZ21fc3RvcmFn
ZSAqdmFsdWUgPSBtYWxsb2Moc2l6ZW9mKHBnbV9zdG9yYWdlKSk7CisgICAgUEFTX0FTU0VSVCh2
YWx1ZSk7CisKKyAgICB2YWx1ZS0+bWVtX3RvX2FsbG9jICAgICAgICAgICAgICA9IG1lbV90b19h
bGxvYzsKKyAgICB2YWx1ZS0+bWVtX3RvX3dhc3RlICAgICAgICAgICAgICA9IG1lbV90b193YXN0
ZTsKKyAgICB2YWx1ZS0+c2l6ZV9vZl9kYXRhX3BhZ2VzICAgICAgICA9IHNpemUgKyBtZW1fdG9f
d2FzdGU7CisgICAgdmFsdWUtPmxvd2VyX2d1YXJkX3BhZ2UgICAgICAgICAgPSBsb3dlcl9ndWFy
ZF9wYWdlOworICAgIHZhbHVlLT51cHBlcl9ndWFyZF9wYWdlICAgICAgICAgID0gdXBwZXJfZ3Vh
cmRfcGFnZTsKKyAgICB2YWx1ZS0+c3RhcnRfb2ZfZGF0YV9wYWdlcyAgICAgICA9IHJlc3VsdC5i
ZWdpbiArIHBhZ2Vfc2l6ZTsKKyAgICB2YWx1ZS0+YWxsb2NhdGlvbl9zaXplX3JlcXVlc3RlZCA9
IHNpemU7CisKKyAgICAvLyBhZGQgdG8gaGFzaCBtYXAKKyAgICBwYXNfcHRyX2hhc2hfbWFwX2Fk
ZF9yZXN1bHQgYWRkX3Jlc3VsdCA9IHBhc19wdHJfaGFzaF9tYXBfYWRkKCZwZ21faGFzaF9tYXAs
IGtleSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2Nh
dGlvbl9jb25maWcpOworICAgIFBBU19BU1NFUlQoYWRkX3Jlc3VsdC5pc19uZXdfZW50cnkpOwor
CisgICAgYWRkX3Jlc3VsdC5lbnRyeS0+a2V5ID0ga2V5OworICAgIGFkZF9yZXN1bHQuZW50cnkt
PnZhbHVlID0gdmFsdWU7CisKKyAgICAvLyB1cGRhdGUgZ2xvYmFsIHZpcnR1YWwgYW5kIHdhc3Rl
ZCBtZW1vcnkKKyAgICBmcmVlX3dhc3RlZF9tZW0gIC09IG1lbV90b193YXN0ZTsKKyAgICBmcmVl
X3ZpcnR1YWxfbWVtIC09IG1lbV90b19hbGxvYzsKKworICAgIGlmIChwZ21fdmVyYm9zZSkgewor
ICAgICAgICBwcmludGYoIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKlxuIgorICAgICAgICAgICAgICAgIiBBbGxvY2F0aW5nIE1lbW9yeVxuXG4i
CisgICAgICAgICAgICAgICAiIE92ZXJhbGwgU3lzdGVtIFN0YXRzIgorICAgICAgICAgICAgICAg
IiBmcmVlX3dhc3RlZF9tZW0gIDogJXp1XG4iCisgICAgICAgICAgICAgICAiIGZyZWVfdmlydHVh
bF9tZW0gOiAlenVcbiIKKyAgICAgICAgICAgICAgICJcbiIKKyAgICAgICAgICAgICAgICIgQWxs
b2NhdGlvblxuIgorICAgICAgICAgICAgICAgIiBBbGxvY2F0aW9uIFNpemUgUmVxdWVzdGVkIDog
JXp1IFxuIgorICAgICAgICAgICAgICAgIiBNZW1vcnkgQWxsb2NhdGVkICAgICAgICAgIDogJXp1
IFxuIgorICAgICAgICAgICAgICAgIiBNZW1vcnkgV2FzdGVkICAgICAgICAgICAgIDogJXp1IFxu
IgorICAgICAgICAgICAgICAgIiBTaXplIG9mIERhdGEgUGFnZXMgICAgICAgIDogJXp1IFxuIgor
ICAgICAgICAgICAgICAgIiBMb3dlciBHdWFyZCBQYWdlIEFkZHJlc3MgIDogJXAgIFxuIgorICAg
ICAgICAgICAgICAgIiBVcHBlciBHdWFyZCBQYWdlIEFkZHJlc3MgIDogJXAgIFxuIgorICAgICAg
ICAgICAgICAgIiBTdGFydCBvZiBEYXRhIFBhZ2VzICAgICAgIDogJXAgIFxuIgorICAgICAgICAg
ICAgICAgIiBNZW1vcnkgQWRkcmVzcyBmb3IgVXNlciAgIDogJXAgIFxuIgorICAgICAgICAgICAg
ICAgIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KlxuXG5cbiIsCisgICAgICAgICAgICAgICBmcmVlX3dhc3RlZF9tZW0sCisgICAgICAgICAgICAg
ICBmcmVlX3ZpcnR1YWxfbWVtLAorICAgICAgICAgICAgICAgdmFsdWUtPmFsbG9jYXRpb25fc2l6
ZV9yZXF1ZXN0ZWQsCisgICAgICAgICAgICAgICB2YWx1ZS0+bWVtX3RvX2FsbG9jLAorICAgICAg
ICAgICAgICAgdmFsdWUtPm1lbV90b193YXN0ZSwKKyAgICAgICAgICAgICAgIHZhbHVlLT5zaXpl
X29mX2RhdGFfcGFnZXMsCisgICAgICAgICAgICAgICAodWludHB0cl90ICopIHZhbHVlLT5sb3dl
cl9ndWFyZF9wYWdlLAorICAgICAgICAgICAgICAgKHVpbnRwdHJfdCAqKSB2YWx1ZS0+dXBwZXJf
Z3VhcmRfcGFnZSwKKyAgICAgICAgICAgICAgICh1aW50cHRyX3QgKikgdmFsdWUtPnN0YXJ0X29m
X2RhdGFfcGFnZXMsCisgICAgICAgICAgICAgICBrZXkpOworICAgIH0KKworICAgIHJldHVybiBr
ZXk7Cit9CisKK3ZvaWQgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUo
dm9pZCogbWVtKSB7CisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgaWYg
KHBnbV92ZXJib3NlKQorICAgICAgICBwcmludGYoIk1lbW9yeSBBZGRyZXNzIFJlcXVlc3RlZCB0
byBEZWFsbG9jYXRlICVwXG4iLCBtZW0pOworCisgICAgdWludHB0cl90ICoga2V5ID0gKHVpbnRw
dHJfdCAqKSBtZW07CisKKyAgICAvLyBnZXQgdmFsdWUgZnJvbSBoYXNoIG1hcAorICAgIHBhc19w
dHJfaGFzaF9tYXBfZW50cnkgKiBlbnRyeSA9IHBhc19wdHJfaGFzaF9tYXBfZmluZCgmcGdtX2hh
c2hfbWFwLCBrZXkpOworICAgIGlmICghZW50cnkgfHwgIWVudHJ5LT52YWx1ZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gcHJvdGVjdCB0aGUgcGFnZXMKKyAgICBwZ21fc3RvcmFnZSAqIHZh
bHVlID0gKHBnbV9zdG9yYWdlICopIGVudHJ5LT52YWx1ZTsKKyAgICBpbnQgbXByb3RlY3RfcmVz
ID0gbXByb3RlY3QoICh2b2lkICopIHZhbHVlLT5zdGFydF9vZl9kYXRhX3BhZ2VzLCB2YWx1ZS0+
c2l6ZV9vZl9kYXRhX3BhZ2VzLCBQUk9UX05PTkUpOworICAgIFBBU19BU1NFUlQoIW1wcm90ZWN0
X3Jlcyk7CisKKyAgICAvLyBlbnN1cmUgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZSByZWxlYXNlZAor
ICAgIC8vIFRPRE86IGludmVzdGlnYXRlIHVzaW5nIE1BRFZfRlJFRV9SRVVTQUJMRSBpbnN0ZWFk
CisgICAgaW50IG1hZHZpc2VfcmVzID0gbWFkdmlzZSgodm9pZCAqKSB2YWx1ZS0+c3RhcnRfb2Zf
ZGF0YV9wYWdlcywgdmFsdWUtPnNpemVfb2ZfZGF0YV9wYWdlcywgTUFEVl9GUkVFKTsKKyAgICBQ
QVNfQVNTRVJUKCFtYWR2aXNlX3Jlcyk7CisKKyAgICAvLyByZW1vdmUgdmFsdWUgZnJvbSBoYXNo
IG1hcAorICAgIGJvb2wgcmVtb3ZlZCA9IHBhc19wdHJfaGFzaF9tYXBfcmVtb3ZlKCZwZ21faGFz
aF9tYXAsIGtleSwgTlVMTCwgJnBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0aW9u
X2NvbmZpZyk7CisgICAgUEFTX0FTU0VSVChyZW1vdmVkKTsKKworICAgIC8vIHVwZGF0ZSBnbG9i
YWwgdmlydHVhbCBhbmQgd2FzdGVkIG1lbW9yeQorICAgIGZyZWVfd2FzdGVkX21lbSAgKz0gdmFs
dWUtPm1lbV90b193YXN0ZTsKKyAgICBmcmVlX3ZpcnR1YWxfbWVtICs9IHZhbHVlLT5tZW1fdG9f
YWxsb2M7CisKKyAgICBpZiAocGdtX3ZlcmJvc2UpIHsKKyAgICAgICAgcHJpbnRmKCIqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIKKyAgICAg
ICAgICAgICAgICIgRGVhbGxvY2F0aW5nIE1lbW9yeVxuXG4iCisgICAgICAgICAgICAgICAiIE92
ZXJhbGwgU3lzdGVtIFN0YXRzIgorICAgICAgICAgICAgICAgIiBmcmVlX3dhc3RlZF9tZW0gIDog
JXp1XG4iCisgICAgICAgICAgICAgICAiIGZyZWVfdmlydHVhbF9tZW0gOiAlenVcbiIKKyAgICAg
ICAgICAgICAgICJcbiIKKyAgICAgICAgICAgICAgICIgRGVhbGxvY2F0aW9uXG4iCisgICAgICAg
ICAgICAgICAiIEFsbG9jYXRpb24gU2l6ZSBSZXF1ZXN0ZWQgOiAlenUgXG4iCisgICAgICAgICAg
ICAgICAiIE1lbW9yeSBBbGxvY2F0ZWQgICAgICAgICAgOiAlenUgXG4iCisgICAgICAgICAgICAg
ICAiIE1lbW9yeSBXYXN0ZWQgICAgICAgICAgICAgOiAlenUgXG4iCisgICAgICAgICAgICAgICAi
IFNpemUgb2YgRGF0YSBQYWdlcyAgICAgICAgOiAlenUgXG4iCisgICAgICAgICAgICAgICAiIExv
d2VyIEd1YXJkIFBhZ2UgQWRkcmVzcyAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiIFVwcGVy
IEd1YXJkIFBhZ2UgQWRkcmVzcyAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiIFN0YXJ0IG9m
IERhdGEgUGFnZXMgICAgICAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiIE1lbW9yeSBBZGRy
ZXNzIGZvciBVc2VyICAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblxuIiwKKyAgICAgICAg
ICAgICAgIGZyZWVfd2FzdGVkX21lbSwKKyAgICAgICAgICAgICAgIGZyZWVfdmlydHVhbF9tZW0s
CisgICAgICAgICAgICAgICB2YWx1ZS0+YWxsb2NhdGlvbl9zaXplX3JlcXVlc3RlZCwKKyAgICAg
ICAgICAgICAgIHZhbHVlLT5tZW1fdG9fYWxsb2MsCisgICAgICAgICAgICAgICB2YWx1ZS0+bWVt
X3RvX3dhc3RlLAorICAgICAgICAgICAgICAgdmFsdWUtPnNpemVfb2ZfZGF0YV9wYWdlcywKKyAg
ICAgICAgICAgICAgICh1aW50cHRyX3QgKikgdmFsdWUtPmxvd2VyX2d1YXJkX3BhZ2UsCisgICAg
ICAgICAgICAgICAodWludHB0cl90ICopIHZhbHVlLT51cHBlcl9ndWFyZF9wYWdlLAorICAgICAg
ICAgICAgICAgKHVpbnRwdHJfdCAqKSB2YWx1ZS0+c3RhcnRfb2ZfZGF0YV9wYWdlcywKKyAgICAg
ICAgICAgICAgIGtleSk7CisgICAgfQorCisgICAgLy8gZnJlZSBtZW1vcnkKKyAgICBmcmVlKHZh
bHVlKTsKK30KKworCisjcHJhZ21hIG1hcmsgLQorI3ByYWdtYSBtYXJrIERldGVybWluZSB3aGV0
aGVyIHRvIHVzZSBQR00KKwordm9pZCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfdHJp
Z2dlcih2b2lkKSB7CisgICAgLy8gPz8/Cit9CisKK2Jvb2wgcGFzX3Byb2JhYmlsaXN0aWNfZ3Vh
cmRfbWFsbG9jX2Nhbl91c2Uodm9pZCkgeworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQo
KTsKKworICAgIGlmICghcGdtX2VuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghZnJlZV93YXN0ZWRfbWVtIHx8ICFmcmVlX3ZpcnR1YWxfbWVtKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBwYXNfcHJvYmFiaWxpc3Rp
Y19ndWFyZF9tYWxsb2Nfc2hvdWxkX3VzZSh2b2lkKSB7CisgICAgcGFzX2hlYXBfbG9ja19hc3Nl
cnRfaGVsZCgpOworCisgICAgaWYgKCFwZ21fZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKyNwcmFnbWEgbWFyayAtCisjcHJhZ21hIG1hcmsg
SGVscGVyIEZ1bmN0aW9ucworCitzaXplX3QgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9j
X2dldF9mcmVlX3ZpcnR1YWxfbWVtb3J5KCkgeworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hl
bGQoKTsKKyAgICByZXR1cm4gZnJlZV92aXJ0dWFsX21lbTsKK30KKworc2l6ZV90IHBhc19wcm9i
YWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV93YXN0ZWRfbWVtb3J5KCkgeworICAgIHBh
c19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAgICByZXR1cm4gZnJlZV93YXN0ZWRfbWVtOwor
fQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0
b3IuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisKKyNpZm5kZWYgUEFTX1BST0JBQklMSVNUSUNfR1VBUkRfTUFMTE9DX0FMTE9DQVRP
UgorI2RlZmluZSBQQVNfUFJPQkFCSUxJU1RJQ19HVUFSRF9NQUxMT0NfQUxMT0NBVE9SCisKKyNp
bmNsdWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCisvKiBJbml0aWFs
IEZ1bmN0aW9uIERlZmluaXRpb25zICovCisKK3ZvaWQgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRf
bWFsbG9jX3RyaWdnZXIodm9pZCk7Citib29sIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxv
Y19jYW5fdXNlKHZvaWQpOworYm9vbCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2Nfc2hv
dWxkX3VzZSh2b2lkKTsKKwordm9pZCogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2Fs
bG9jYXRlKHNpemVfdCBzaXplLCBwYXNfaGVhcCogaGVhcCwgcGFzX2hlYXBfY29uZmlnKiBoZWFw
X2NvbmZpZywgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOwor
dm9pZCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZGVhbGxvY2F0ZSh2b2lkKiBtZW1v
cnkpOworCisvKiBIZWxwZXIgZnVuY3Rpb25zICovCitzaXplX3QgcGFzX3Byb2JhYmlsaXN0aWNf
Z3VhcmRfbWFsbG9jX2dldF9mcmVlX3ZpcnR1YWxfbWVtb3J5KHZvaWQpOworc2l6ZV90IHBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV93YXN0ZWRfbWVtb3J5KHZvaWQpOwor
CitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5j
CShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3
IEBAIHVpbnQ2NF90IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfdXMKICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7CiAgICAgICAgICAgICB1aW50NjRfdCB1c2VfZXBv
Y2g7CiAgICAgICAgICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3
KTsKLSAgICAgICAgICAgIGlmIChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKQorICAgICAgICAg
ICAgaWYgKHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMpCiAgICAgICAgICAgICAg
ICAgdXNlX2Vwb2NoID0gMDsgLyogaXQncyBub3QgZW1wdHksIHNvIGtlZXAgbG9va2luZy4gKi8K
ICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHVzZV9lcG9jaCA9IHBhZ2UtPnVz
ZV9lcG9jaDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkocmV2aXNpb24g
Mjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKIAog
I2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCisj
aW5jbHVkZSAicGFzX2xpbmVfbWV0YWRhdGEuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5j
bHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29s
LmgiCkBAIC05NSw3ICs5Niw2IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3Vt
bWFyeV8KICAgICB2b2lkKiBib3VuZGFyeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
OwogICAgIHNpemVfdCBvYmplY3Rfc2l6ZTsKLSAgICBzaXplX3Qgb2Zmc2V0OwogICAgIHNpemVf
dCBiZWdpbjsKICAgICBzaXplX3QgZW5kOwogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEqIGRhdGE7CkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1h
cnkgY29tcHV0ZV9zdW1tYXJ5XwogICAgIGRpcmVjdG9yeSA9ICZzaXplX2RpcmVjdG9yeS0+YmFz
ZTsKICAgICBwYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2dldF9jb25maWcoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKTsKICAgICBwYWdlX2NvbmZp
ZyA9ICpwYWdlX2NvbmZpZ19wdHI7Ci0gICAgCisKICAgICByZXN1bHQgPSBwYXNfaGVhcF9zdW1t
YXJ5X2NyZWF0ZV9lbXB0eSgpOwogCiAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2RhdGFfcHRyX2xvYWQoJnNpemVfZGlyZWN0b3J5LT5kYXRhKTsKQEAgLTEyMSw4ICsx
MjEsNyBAQCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnlfCiAKICAgICBv
YmplY3Rfc2l6ZSA9IHNpemVfZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZTsKIAotICAgIGJlZ2luID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29i
amVjdCgKLSAgICAgICAgcGFnZSwgc2l6ZV9kaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsKKyAgICBi
ZWdpbiA9IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0Owog
ICAgIGVuZCA9IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rf
b2JqZWN0OwogCiAgICAgcGFzX3BhZ2VfYmFzZV9hZGRfZnJlZV9yYW5nZSgKQEAgLTEzMCwxOCAr
MTI5LDQ4IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3VtbWFyeV8KICAgICBw
YXNfcGFnZV9iYXNlX2FkZF9mcmVlX3JhbmdlKAogICAgICAgICAmcGFnZS0+YmFzZSwgJnJlc3Vs
dCwgcGFzX3JhbmdlX2NyZWF0ZShlbmQsIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKSwKICAg
ICAgICAgcGFzX2ZyZWVfbWV0YV9yYW5nZSk7Ci0gICAgCi0gICAgZm9yIChvZmZzZXQgPSBiZWdp
bjsgb2Zmc2V0IDwgZW5kOyBvZmZzZXQgKz0gb2JqZWN0X3NpemUpIHsKLSAgICAgICAgaWYgKHBh
c19iaXR2ZWN0b3JfZ2V0KAotICAgICAgICAgICAgICAgIHBhZ2UtPmFsbG9jX2JpdHMsCi0gICAg
ICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeSgKLSAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdlX2NvbmZpZy5i
YXNlKSkpCi0gICAgICAgICAgICByZXN1bHQuYWxsb2NhdGVkICs9IG9iamVjdF9zaXplOwotICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfYWRkX2ZyZWVfcmFuZ2UoCi0g
ICAgICAgICAgICAgICAgJnBhZ2UtPmJhc2UsICZyZXN1bHQsCi0gICAgICAgICAgICAgICAgcGFz
X3JhbmdlX2NyZWF0ZShvZmZzZXQsIG9mZnNldCArIG9iamVjdF9zaXplKSwKLSAgICAgICAgICAg
ICAgICBwYXNfZnJlZV9vYmplY3RfcmFuZ2UpOworCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3VzZXNfbGluZXNfZm9yX3JvbGUocGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVk
X3BhZ2VfZXhjbHVzaXZlX3JvbGUpKSB7CisgICAgICAgIHVpbnRwdHJfdCBsaW5lX2luZGV4Owor
ICAgICAgICBwYXNfbGluZV9tZXRhZGF0YSogbGluZV9tZXRhZGF0YTsKKyAgICAgICAgdWludDhf
dCogbGluZXM7CisKKyAgICAgICAgbGluZV9tZXRhZGF0YSA9IHBhc19jb21wYWN0X3RhZ2dlZF92
b2lkX3B0cl9sb2FkX25vbl9udWxsKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHNfb3JfbGluZV9tZXRh
ZGF0YSk7CisgICAgICAgIGxpbmVzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lcyhwYWdlLCBw
YWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7CisgICAgICAg
IAorICAgICAgICBmb3IgKGxpbmVfaW5kZXggPSBwYWdlX2NvbmZpZy5udW1fbGluZXM7IGxpbmVf
aW5kZXgtLTspIHsKKyAgICAgICAgICAgIHNpemVfdCBzaXplOworCisgICAgICAgICAgICBzaXpl
ID0gbGluZV9tZXRhZGF0YVtsaW5lX2luZGV4XS5udW1fb2JqZWN0cyAqIG9iamVjdF9zaXplOwor
CisgICAgICAgICAgICBpZiAobGluZXNbbGluZV9pbmRleF0pCisgICAgICAgICAgICAgICAgcmVz
dWx0LmFsbG9jYXRlZCArPSBzaXplOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgcmVzdWx0LmZyZWUgKz0gc2l6ZTsKKyAgICAgICAgICAgICAgICBpZiAocGFnZS0+bnVtX25v
bl9lbXB0eV93b3Jkc19vcl9saW5lcykKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZyZWVf
aW5lbGlnaWJsZV9mb3JfZGVjb21taXQgKz0gc2l6ZTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mcmVlX2VsaWdpYmxlX2Zvcl9kZWNvbW1pdCArPSBz
aXplOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6
ZV90IG9mZnNldDsKKyAgICAgICAgdW5zaWduZWQqIHBhZ2VfYWxsb2NfYml0czsKKworICAgICAg
ICBwYWdlX2FsbG9jX2JpdHMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2FsbG9jX2JpdHMocGFnZSwg
cGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpOworICAgICAg
ICAKKyAgICAgICAgZm9yIChvZmZzZXQgPSBiZWdpbjsgb2Zmc2V0IDwgZW5kOyBvZmZzZXQgKz0g
b2JqZWN0X3NpemUpIHsKKyAgICAgICAgICAgIGlmIChwYXNfYml0dmVjdG9yX2dldCgKKyAgICAg
ICAgICAgICAgICAgICAgcGFnZV9hbGxvY19iaXRzLAorICAgICAgICAgICAgICAgICAgICBwYXNf
cGFnZV9iYXNlX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5KAor
ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdlX2NvbmZpZy5iYXNlKSkpCisgICAg
ICAgICAgICAgICAgcmVzdWx0LmFsbG9jYXRlZCArPSBvYmplY3Rfc2l6ZTsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfYWRkX2ZyZWVfcmFuZ2UoCisg
ICAgICAgICAgICAgICAgICAgICZwYWdlLT5iYXNlLCAmcmVzdWx0LAorICAgICAgICAgICAgICAg
ICAgICBwYXNfcmFuZ2VfY3JlYXRlKG9mZnNldCwgb2Zmc2V0ICsgb2JqZWN0X3NpemUpLAorICAg
ICAgICAgICAgICAgICAgICBwYXNfZnJlZV9vYmplY3RfcmFuZ2UpOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCkBAIC0xNzYsNiArMjA1LDEwIEBAIHZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGEKIAogICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9y
eSk7CiAgICAgcGFnZV9jb25maWcgPSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9n
ZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKworICAgIFBBU19B
U1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3VzZXNfbGluZXNfZm9yX3JvbGUoCisg
ICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVz
aXZlX3JvbGUpKTsKKyAgICAKICAgICBib3VuZGFyeSA9IHZpZXctPnBhZ2VfYm91bmRhcnk7CiAg
ICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KGJvdW5kYXJ5LCBwYWdl
X2NvbmZpZyk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19p
bmxpbmVzLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtOTEsNyArOTEsOCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNf
c2VncmVnCiAgICAgICAgIHBhc19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19w
dHIpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVChwYWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRp
b24pOwogICAgIAotICAgIHNob3VsZF9ub3RpZnlfZW1wdGluZXNzID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIHBhZ2VfY29uZmlnKTsKKyAgICBzaG91
bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9k
ZWNvbW1pdCgKKyAgICAgICAgcGFnZSwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
ZXhjbHVzaXZlX3JvbGUpOwogICAgIAogICAgIHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlv
biA9IGZhbHNlOwogICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwkocmV2aXNpb24gMjg3MDU5KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCSh3
b3JraW5nIGNvcHkpCkBAIC04OTksNyArODk5LDggQEAgc3RhdGljIHNpemVfdCBjb21wdXRlX2lk
ZWFsX29iamVjdF9zaXplKAogICAgIGFsaWdubWVudCA9IFBBU19NQVgoYWxpZ25tZW50LCBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24ocGFnZV9jb25maWcpKTsKICAgICAKICAg
ICBudW1fb2JqZWN0cyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29mX29iamVjdHMoKHVu
c2lnbmVkKW9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKTsKICAgICAKICAgICBwYXJlbnRfaGVhcCA9IHBhc19o
ZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCk7CiAKQEAgLTkyMSw3ICs5MjIsOCBAQCBzdGF0
aWMgc2l6ZV90IGNvbXB1dGVfaWRlYWxfb2JqZWN0X3NpemUoCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2Jq
ZWN0cygodW5zaWduZWQpbmV4dF9vYmplY3Rfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpICE9IG51bV9vYmplY3RzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2Nv
bmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSkgIT0gbnVtX29iamVjdHMpCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgICAgIG9iamVjdF9zaXplID0gbmV4dF9vYmpl
Y3Rfc2l6ZTsKQEAgLTE1NzMsNyArMTU3NSw4IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJl
X3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgYnl0ZXNfZGlydGllZF9wZXJfb2JqZWN0ID0KLSAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ieXRlc19kaXJ0aWVkX3Blcl9vYmpl
Y3Qob2JqZWN0X3NpemVfZm9yX2NvbmZpZywgcGFnZV9jb25maWcpOworICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdCgKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9iamVjdF9zaXplX2Zvcl9jb25maWcsIHBhZ2VfY29uZmlnLCBw
YXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKTsKICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAgICAgICAgICBwYXNfbG9n
KCJCeXRlcyBkaXJ0aWVkIHBlciBvYmplY3QgZm9yICVzLCAlenU6ICVsZi5cbiIsCkBAIC0xNjE3
LDcgKzE2MjAsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAg
ICAgICAgICAgICAgICAgYnl0ZXNfZGlydGllZF9wZXJfb2JqZWN0X2J5X2NhbmRpZGF0ZSA9CiAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfYnl0ZXNfZGlydGllZF9wZXJf
b2JqZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlLT5vYmplY3Rfc2l6ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2dldF9jb25maWcoY2FuZGlkYXRlLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25m
aWcoY2FuZGlkYXRlLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICBieXRlc19kaXJ0aWVkX3Blcl9vYmplY3RfYnlfY2FuZGlk
YXRlID0gY2FuZGlkYXRlLT5vYmplY3Rfc2l6ZTsKIApAQCAtMjEzNywxMSArMjE0MSwxMiBAQCB0
eXBlZGVmIHN0cnVjdCB7CiBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3Rf
Y2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludHB0cl90IGJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19vYmplY3RfbGl2ZW5lc3Nfa2luZCBsaXZlbmVzc19raW5kLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFy
ZykKIHsKICAgICBmb3JfZWFjaF9saXZlX29iamVjdF9kYXRhKiBkYXRhID0gYXJnOwogICAgIFBB
U19VTlVTRURfUEFSQU0odmlldyk7Ci0gICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmhl
YXAsIGJlZ2luLCBkaXJlY3RvcnktPm9iamVjdF9zaXplLCBkYXRhLT5hcmcpOworICAgIHJldHVy
biBkYXRhLT5jYWxsYmFjayhkYXRhLT5oZWFwLCBiZWdpbiwgZGlyZWN0b3J5LT5vYmplY3Rfc2l6
ZSwgbGl2ZW5lc3Nfa2luZCwgZGF0YS0+YXJnKTsKIH0KIAogc3RhdGljIGJvb2wgZm9yX2VhY2hf
bGl2ZV9vYmplY3RfZGlyZWN0b3J5X2NhbGxiYWNrKApAQCAtMjE2OSw3ICsyMTc0LDcgQEAgc3Rh
dGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3RfYml0Zml0XwogICAgIFBBU19VTlVTRURfUEFS
QU0odmlldyk7CiAgICAgZGF0YSA9IGFyZzsKICAgICAKLSAgICByZXR1cm4gZGF0YS0+Y2FsbGJh
Y2soZGF0YS0+aGVhcCwgYmVnaW4sIHNpemUsIGRhdGEtPmFyZyk7CisgICAgcmV0dXJuIGRhdGEt
PmNhbGxiYWNrKGRhdGEtPmhlYXAsIGJlZ2luLCBzaXplLCBwYXNfZGVmaW5pdGVseV9saXZlX29i
amVjdF9raW5kLCBkYXRhLT5hcmcpOwogfQogCiBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9y
X2VhY2hfbGl2ZV9vYmplY3QoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCShyZXZpc2lvbiAyODcwNTkpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1Niw2ICszNTYsNyBAQCB0eXBlZGVmIGJvb2wgKCpwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Zvcl9lCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICB1
aW50cHRyX3QgYmVnaW4sCiAgICAgc2l6ZV90IHNpemUsCisgICAgcGFzX29iamVjdF9saXZlbmVz
c19raW5kIGxpdmVuZXNzX2tpbmQsCiAgICAgdm9pZCogYXJnKTsKIAogUEFTX0FQSSBib29sIHBh
c19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5j
CShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYWdlLmMJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw5ICsyMjEsMTUgQEAg
dm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdChwYXNfcwogICAgICAgICBwYWdlLT5s
b2NrX3B0ciA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293bmVyc2hpcF9sb2NrKG93bmVyKTsK
ICAgICAKICAgICBwYWdlLT5vd25lciA9IG93bmVyOwotICAgIHBhc196ZXJvX21lbW9yeShwYWdl
LT5hbGxvY19iaXRzLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2NfYnl0ZXMo
cGFnZV9jb25maWcpKTsKIAotICAgIHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMgPSAwOworICAg
IGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191c2VzX2xpbmVzX2Zvcl9yb2xlKHBhZ2Vf
Y29uZmlnLCByb2xlKSkKKyAgICAgICAgcGFzX3plcm9fbWVtb3J5KHBhc19zZWdyZWdhdGVkX3Bh
Z2VfbGluZXMocGFnZSwgcGFnZV9jb25maWcsIHJvbGUpLCBwYWdlX2NvbmZpZy5udW1fbGluZXMp
OworICAgIGVsc2UgeworICAgICAgICBwYXNfemVyb19tZW1vcnkocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9hbGxvY19iaXRzKHBhZ2UsIHBhZ2VfY29uZmlnLCByb2xlKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhwYWdlX2Nv
bmZpZykpOworICAgIH0KKworICAgIHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMg
PSAwOwogICAgIAogICAgIHBhZ2UtPnZpZXdfY2FjaGVfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9p
bmRleClVSU5UX01BWDsKIApAQCAtMjc4LDkgKzI4NCw4IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25zdHJ1Y3QocGFzX3MKICAgICAgICAgCiAgICAgICAgIC8qIElmIHRoZXJlIGFyZSBh
bnkgYnl0ZXMgaW4gdGhlIHBhZ2Ugbm90IG1hZGUgYXZhaWxhYmxlIGZvciBhbGxvY2F0aW9uIHRo
ZW4gbWFrZSBzdXJlCiAgICAgICAgICAgIHRoYXQgdGhlIHVzZSBjb3VudHMga25vdyBhYm91dCBp
dC4gKi8KLSAgICAgICAgc3RhcnRfb2ZfcGF5bG9hZCA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9v
YmplY3RfcGF5bG9hZF9vZmZzZXQ7Ci0gICAgICAgIGVuZF9vZl9wYXlsb2FkID0KLSAgICAgICAg
ICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgKyBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZTsKKyAgICAgICAgc3RhcnRfb2ZfcGF5
bG9hZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfb2Zmc2V0X2Zvcl9yb2xl
KHBhZ2VfY29uZmlnLCByb2xlKTsKKyAgICAgICAgZW5kX29mX3BheWxvYWQgPSBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUocGFnZV9jb25maWcs
IHJvbGUpOwogCiAgICAgICAgIHBhc19wYWdlX2dyYW51bGVfaW5jcmVtZW50X3VzZXNfZm9yX3Jh
bmdlKAogICAgICAgICAgICAgdXNlX2NvdW50cywgMCwgc3RhcnRfb2ZfcGF5bG9hZCwKQEAgLTQw
Miw3ICs0MDcsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfdGFrZV9waHlzaWNhbGx5CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgUEFTX0FTU0VSVCghcGFnZS0+bnVt
X25vbl9lbXB0eV93b3Jkcyk7CisgICAgUEFTX0FTU0VSVCghcGFnZS0+bnVtX25vbl9lbXB0eV93
b3Jkc19vcl9saW5lcyk7CiAgICAgCiAgICAgYmFzZSA9ICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2NvbmZpZyk7CiAKQEAgLTU1NCw2ICs1NTksNyBA
QCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIHZlcmlmeV9ncmFudWxlc19saXZlX29i
amVjdF9jYWxsYmFjayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JhbmdlIHJhbmdlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19vYmplY3RfbGl2
ZW5lc3Nfa2luZCBsaXZlbmVzc19raW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CkBAIC01NjEsNiArNTY3LDcgQEAgc3RhdGljIGJvb2wgdmVyaWZ5X2dy
YW51bGVzX2xpdmVfb2JqZWN0XwogICAgIHZlcmlmeV9ncmFudWxlc19kYXRhKiBkYXRhOwogCiAg
ICAgUEFTX1VOVVNFRF9QQVJBTSh2aWV3KTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGxpdmVuZXNz
X2tpbmQpOwogCiAgICAgZGF0YSA9IGFyZzsKIApAQCAtNTg0LDYgKzU5MSw3IEBAIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV92ZXJpZnlfZ3JhbnVsZXMKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWc7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGU7CiAgICAgcGFzX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQgY29ycmVjdF91c2VfY291bnRzW1BBU19NQVhfR1JBTlVMRVNd
OwogICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOwogICAgIHVpbnRw
dHJfdCBudW1fZ3JhbnVsZXM7CkBAIC01OTMsNiArNjAxLDcgQEAgdm9pZCBwYXNfc2VncmVnYXRl
ZF9wYWdlX3ZlcmlmeV9ncmFudWxlcwogICAgIHZlcmlmeV9ncmFudWxlc19kYXRhIGRhdGE7CiAK
ICAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2NvbmZpZyhw
YWdlLT5vd25lcik7CisgICAgcm9sZSA9IHBhc19wYWdlX2tpbmRfZ2V0X3NlZ3JlZ2F0ZWRfcm9s
ZShwYXNfcGFnZV9iYXNlX2dldF9raW5kKCZwYWdlLT5iYXNlKSk7CiAKICAgICBpZiAodmVyYm9z
ZSkKICAgICAgICAgcGFzX2xvZygiVmVyaWZ5aW5nIGdyYW51bGVzIGluIHBhZ2UgJXAuXG4iLCBw
YWdlKTsKQEAgLTYwNCwxMCArNjEzLDggQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3Zlcmlm
eV9ncmFudWxlcwogICAgIAogICAgIC8qIElmIHRoZXJlIGFyZSBhbnkgYnl0ZXMgaW4gdGhlIHBh
Z2Ugbm90IG1hZGUgYXZhaWxhYmxlIGZvciBhbGxvY2F0aW9uIHRoZW4gbWFrZSBzdXJlCiAgICAg
ICAgdGhhdCB0aGUgdXNlIGNvdW50cyBrbm93IGFib3V0IGl0LiAqLwotICAgIHN0YXJ0X29mX3Bh
eWxvYWQgPQotICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zm
c2V0OwotICAgIGVuZF9vZl9wYXlsb2FkID0KLSAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdl
X29iamVjdF9wYXlsb2FkX29mZnNldCArIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5
bG9hZF9zaXplOworICAgIHN0YXJ0X29mX3BheWxvYWQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19wYXlsb2FkX29mZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSk7CisgICAgZW5k
X29mX3BheWxvYWQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZz
ZXRfZm9yX3JvbGUocGFnZV9jb25maWcsIHJvbGUpOwogICAgIAogICAgIHBhc19wYWdlX2dyYW51
bGVfaW5jcmVtZW50X3VzZXNfZm9yX3JhbmdlKAogICAgICAgICBjb3JyZWN0X3VzZV9jb3VudHMs
IDAsIHN0YXJ0X29mX3BheWxvYWQsCkBAIC02NDAsNyArNjQ3LDE0IEBAIHZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV92ZXJpZnlfZ3JhbnVsZXMKICAgICB9CiB9CiAKLXZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9kZWFsbG9jYXRpb25fZGlkX2ZhaWwodWludHB0cl90IGJlZ2luKQordm9pZCBwYXNf
c2VncmVnYXRlZF9wYWdlX2xpbmVfZGVhbGxvY2F0aW9uX2RpZF9mYWlsKHVpbnRwdHJfdCBiZWdp
bikKK3sKKyAgICBwYXNfZGVhbGxvY2F0aW9uX2RpZF9mYWlsKAorICAgICAgICAiTGluZSBpcyB6
ZXJvIGluIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UiLAorICAgICAg
ICBiZWdpbik7Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9iaXRfZGVhbGxvY2F0aW9u
X2RpZF9mYWlsKHVpbnRwdHJfdCBiZWdpbikKIHsKICAgICBwYXNfZGVhbGxvY2F0aW9uX2RpZF9m
YWlsKAogICAgICAgICAiQWxsb2MgYml0IG5vdCBzZXQgaW4gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9k
ZWFsbG9jYXRlX3dpdGhfcGFnZSIsCkBAIC04MTAsMjAgKzgyNCw0IEBAIHBhc19zZWdyZWdhdGVk
X3BhZ2VfYW5kX2NvbmZpZ19mb3JfYWRkcmUKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9hbmRfY29uZmlnX2NyZWF0ZV9lbXB0eSgpOwogfQogCi12b2lkIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfdmVyaWZ5X251bV9ub25fZW1wdHlfd29yZHMocGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpCi17Ci0gICAgc2l6ZV90IG15X251
bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgc2l6ZV90IGluZGV4OwotCi0gICAgbXlfbnVtX25vbl9l
bXB0eV93b3JkcyA9IDA7Ci0KLSAgICBmb3IgKGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfbnVtX2FsbG9jX3dvcmRzKCpwYWdlX2NvbmZpZyk7IGluZGV4LS07KSB7Ci0gICAgICAg
IGlmIChwYWdlLT5hbGxvY19iaXRzW2luZGV4XSkKLSAgICAgICAgICAgIG15X251bV9ub25fZW1w
dHlfd29yZHMrKzsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKHBhZ2UtPm51bV9ub25fZW1wdHlf
d29yZHMgPT0gbXlfbnVtX25vbl9lbXB0eV93b3Jkcyk7Ci19Ci0KICNlbmRpZiAvKiBMSUJQQVNf
RU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuaAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDMsMTAgKzEwMywxNCBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSB7
CiAgICAgICAgdGhpcyBkb2Vzbid0IGdldCBjbGVhcmVkIHVudGlsIHdlIG1hcmsgdGhlIHBhZ2Ug
YXMgYmVpbmcgaW5fdXNlX2Zvcl9hbGxvY2F0aW9uLiAqLwogICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgb3duZXI7CiAgICAgCi0gICAgdWludDE2X3QgbnVtX25vbl9lbXB0eV93b3JkczsKKyAgICB1
aW50MTZfdCBudW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzOwogICAgIHBhc19hbGxvY2F0b3Jf
aW5kZXggdmlld19jYWNoZV9pbmRleDsKIAotICAgIHVuc2lnbmVkIGFsbG9jX2JpdHNbMV07Cisg
ICAgLyogQWNjZXNzIHRoaXMgdW5pb24gdXNpbmcgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbGxvY19i
aXRzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfbGluZXMuICovCisgICAgdW5pb24geworICAgICAgICB1
bnNpZ25lZCBhbGxvY19iaXRzX2ltcGxbMV07CisgICAgICAgIHVpbnQ4X3QgbGluZXNfaW1wbFsx
XTsKKyAgICB9IHBheWxvYWQ7CiB9OwogCiBlbnVtIHBhc19zZWdyZWdhdGVkX3BhZ2VfaHVnZ2lu
Z19tb2RlIHsKQEAgLTExOCwyNyArMTIyLDU0IEBAIHR5cGVkZWYgZW51bSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2h1Z2dpbmcKIAogZXh0ZXJuIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdl
X2RlYWxsb2NhdGVfc2hvdWxkX3ZlcmlmeV9ncmFudWxlczsKIAotI2RlZmluZSBQQVNfU0VHUkVH
QVRFRF9QQUdFX0JBU0VfSEVBREVSX1NJWkUgUEFTX09GRlNFVE9GKHBhc19zZWdyZWdhdGVkX3Bh
Z2UsIGFsbG9jX2JpdHMpCisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1BBR0VfQkFTRV9IRUFERVJf
U0laRSBQQVNfT0ZGU0VUT0YocGFzX3NlZ3JlZ2F0ZWRfcGFnZSwgcGF5bG9hZCkKIAotI2RlZmlu
ZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFKG51bV9hbGxvY19iaXRzLCBudW1fZ3Jh
bnVsZXMpIFwKKyNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0laRV9GT1JfQklU
UyhudW1fYWxsb2NfYml0cywgbnVtX2dyYW51bGVzKSBcCiAgICAgKFBBU19TRUdSRUdBVEVEX1BB
R0VfQkFTRV9IRUFERVJfU0laRSArIFwKICAgICAgUEFTX1JPVU5EX1VQX1RPX1BPV0VSX09GXzIo
IFwKICAgICAgICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX05VTV9BTExPQ19CWVRFUyhu
dW1fYWxsb2NfYml0cykgKyBcCiAgICAgICAgICBQQVNfUEFHRV9CQVNFX0NPTkZJR19OVU1fR1JB
TlVMRV9CWVRFUyhudW1fZ3JhbnVsZXMpLCBcCiAgICAgICAgICBzaXplb2YodWludDY0X3QpKSkK
IAorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFX0ZPUl9MSU5FUyhudW1f
bGluZXMpIFwKKyAgICAoUEFTX1NFR1JFR0FURURfUEFHRV9CQVNFX0hFQURFUl9TSVpFICsgXAor
ICAgICBQQVNfUk9VTkRfVVBfVE9fUE9XRVJfT0ZfMigobnVtX2xpbmVzKSwgc2l6ZW9mKHVpbnQ2
NF90KSkpCisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9oZWFkZXJfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2Nv
bmZpZykKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKIHsKLSAgICByZXR1cm4gUEFTX1NFR1JFR0FU
RURfUEFHRV9IRUFERVJfU0laRSgKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dXNlc19saW5lc19mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSkpIHsKKyAgICAgICAgUEFTX0FT
U0VSVChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBwYWdlX2NvbmZpZy5iYXNlLmdyYW51
bGVfc2l6ZSk7CisgICAgICAgIHJldHVybiBQQVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpF
X0ZPUl9MSU5FUyhwYWdlX2NvbmZpZy5udW1fbGluZXMpOworICAgIH0KKworICAgIHJldHVybiBQ
QVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFX0ZPUl9CSVRTKAogICAgICAgICBwYWdlX2Nv
bmZpZy5udW1fYWxsb2NfYml0cywKICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUg
LyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB1aW50cHRyX3QKK3Bhc19zZWdyZWdhdGVkX3BhZ2VfbGluZV9pbmRleF9vZl9vYmpl
Y3RfYXRfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeSgKKyAgICB1aW50cHRyX3Qgb2Zmc2V0X2lu
X3BhZ2UsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCit7Cisg
ICAgcmV0dXJuIG9mZnNldF9pbl9wYWdlID4+IHBhZ2VfY29uZmlnLmxpbmVfc2hpZnQ7Cit9CisK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50cHRyX3QKK3Bhc19zZWdyZWdhdGVkX3BhZ2Vf
bGluZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X2F0X2xpbmVfaW5kZXgoCisgICAgdWludHB0
cl90IGxpbmVfaW5kZXgsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25m
aWcpCit7CisgICAgcmV0dXJuIGxpbmVfaW5kZXggPDwgcGFnZV9jb25maWcubGluZV9zaGlmdDsK
K30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0X2Zvcl9odWdnaW5n
X21vZGUoCiAgICAgdW5zaWduZWQgb2JqZWN0X3NpemUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGUs
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9odWdnaW5nX21vZGUgbW9kZSkKIHsKICAgICBQQVNf
QVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19taW5fYWxpZ24ocGFnZV9jb25maWcpKSk7CkBAIC0xNDcsMTMgKzE3OCwxNCBAQCBwYXNf
c2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91CiAgICAgc3dpdGNoIChtb2RlKSB7
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19sZWZ0OgogICAgICAgICByZXR1cm4g
KHVuc2lnbmVkKSgKLSAgICAgICAgICAgICgocGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVjdF9w
YXlsb2FkX29mZnNldCArIG9iamVjdF9zaXplIC0gMSkgLworICAgICAgICAgICAgKChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX29mZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywg
cm9sZSkgKyBvYmplY3Rfc2l6ZSAtIDEpIC8KICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSkgKiBv
YmplY3Rfc2l6ZSk7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19yaWdodDoKICAg
ICAgICAgcmV0dXJuICh1bnNpZ25lZCkoCiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBh
Z2Vfc2l6ZSAtIAotICAgICAgICAgICAgKChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAtIHBh
Z2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQpIC8KLSAgICAgICAgICAg
ICBvYmplY3Rfc2l6ZSkgKiBvYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAoKHBhZ2VfY29uZmln
LmJhc2UucGFnZV9zaXplCisgICAgICAgICAgICAgIC0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfcGF5bG9hZF9vZmZzZXRfZm9yX3JvbGUocGFnZV9jb25maWcsIHJvbGUpKQorICAgICAgICAg
ICAgIC8gb2JqZWN0X3NpemUpICogb2JqZWN0X3NpemUpOwogICAgIH0KICAgICByZXR1cm4gMDsK
IH0KQEAgLTE2Miw2ICsxOTQsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQg
CiBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29m
X2xhc3Rfb2JqZWN0X2Zvcl9odWdnaW5nX21vZGUoCiAgICAgdW5zaWduZWQgb2JqZWN0X3NpemUs
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9odWdnaW5n
X21vZGUgbW9kZSkKIHsKICAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXpl
LCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24ocGFnZV9jb25maWcpKSk7CkBA
IC0xNzAsMTMgKzIwMywxMyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2Vf
Ym91CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1
Z19sZWZ0OgogICAgICAgICByZXR1cm4gKHVuc2lnbmVkKSgKLSAgICAgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91bmRh
cnkocGFnZV9jb25maWcpIC8KLSAgICAgICAgICAgICBvYmplY3Rfc2l6ZSkgKiBvYmplY3Rfc2l6
ZSk7CisgICAgICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9lbmRf
b2Zmc2V0X2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCByb2xlKSAvIG9iamVjdF9zaXplKQorICAgICAg
ICAgICAgKiBvYmplY3Rfc2l6ZSk7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19y
aWdodDoKICAgICAgICAgcmV0dXJuICh1bnNpZ25lZCkoCiAgICAgICAgICAgICBwYWdlX2NvbmZp
Zy5iYXNlLnBhZ2Vfc2l6ZSAtCiAgICAgICAgICAgICAoKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9z
aXplIC0KLSAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfb2JqZWN0X3Bh
eWxvYWRfZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KHBhZ2VfY29uZmlnKSArCisgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9s
ZShwYWdlX2NvbmZpZywgcm9sZSkgKwogICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSAtIDEpIC8K
ICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSkgKiBvYmplY3Rfc2l6ZSk7CiAgICAgfQpAQCAtMTg2
LDI4ICsyMTksMzIgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdQog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkIHBhc19zZWdyZWdhdGVkX3BhZ2VfdXNl
ZnVsX29iamVjdF9wYXlsb2FkX3NpemVfZm9yX2h1Z2dpbmdfbW9kZSgKICAgICB1bnNpZ25lZCBv
YmplY3Rfc2l6ZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywK
KyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSwKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2h1Z2dpbmdfbW9kZSBtb2RlKQogewogICAgIHJldHVybgogICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0
X2Zvcl9odWdnaW5nX21vZGUoCiAgICAgICAgICAgICBvYmplY3Rfc2l6ZSwKICAgICAgICAgICAg
IHBhZ2VfY29uZmlnLAorICAgICAgICAgICAgcm9sZSwKICAgICAgICAgICAgIG1vZGUpIC0KICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2Zp
cnN0X29iamVjdF9mb3JfaHVnZ2luZ19tb2RlKAogICAgICAgICAgICAgb2JqZWN0X3NpemUsCiAg
ICAgICAgICAgICBwYWdlX2NvbmZpZywKKyAgICAgICAgICAgIHJvbGUsCiAgICAgICAgICAgICBt
b2RlKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
aHVnZ2luZ19tb2RlCiBwYXNfc2VncmVnYXRlZF9wYWdlX2Jlc3RfaHVnZ2luZ19tb2RlKHVuc2ln
bmVkIG9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25m
aWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2Vfcm9sZSByb2xlKQogewogICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9v
YmplY3RfcGF5bG9hZF9zaXplX2Zvcl9odWdnaW5nX21vZGUoCi0gICAgICAgICAgICBvYmplY3Rf
c2l6ZSwgcGFnZV9jb25maWcsCisgICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcs
IHJvbGUsCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19sZWZ0KSA+PQogICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9vYmplY3RfcGF5bG9hZF9zaXplX2Zvcl9o
dWdnaW5nX21vZGUoCi0gICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsCisgICAg
ICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHJvbGUsCiAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2h1Z19yaWdodCkpCiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2h1Z19sZWZ0OwogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19yaWdo
dDsKQEAgLTIxOSw3ICsyNTYsOCBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3Bh
Z2VfYm91CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90
b19maXJzdF9vYmplY3RfZm9yX2h1Z2dpbmdfbW9kZSgKLSAgICAgICAgb2JqZWN0X3NpemUsIHBh
Z2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Jlc3RfaHVnZ2luZ19tb2RlKG9iamVjdF9z
aXplLCBwYWdlX2NvbmZpZykpOworICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHBh
c19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUsCisgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfYmVzdF9odWdnaW5nX21vZGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnLCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB1bnNpZ25lZCAKQEAgLTIyOCwzMCArMjY2LDMzIEBAIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
b2Zmc2V0X2Zyb21fcGFnZV9ib3UKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdl
X2NvbmZpZykKIHsKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9w
YWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdF9mb3JfaHVnZ2luZ19tb2RlKAotICAg
ICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfYmVzdF9o
dWdnaW5nX21vZGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnKSk7CisgICAgICAgIG9iamVjdF9z
aXplLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSwKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9iZXN0X2h1Z2dpbmdfbW9kZShvYmplY3Rfc2l6ZSwg
cGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpKTsKIH0KIAog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9wYWdlX3Vz
ZWZ1bF9vYmplY3RfcGF5bG9hZF9zaXplKHVuc2lnbmVkIG9iamVjdF9zaXplLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2Vfcm9sZSByb2xlKQogewogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1
bF9vYmplY3RfcGF5bG9hZF9zaXplX2Zvcl9odWdnaW5nX21vZGUoCi0gICAgICAgIG9iamVjdF9z
aXplLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9iZXN0X2h1Z2dpbmdfbW9kZShv
YmplY3Rfc2l6ZSwgcGFnZV9jb25maWcpKTsKKyAgICAgICAgb2JqZWN0X3NpemUsIHBhZ2VfY29u
ZmlnLCByb2xlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Jlc3RfaHVnZ2luZ19tb2RlKG9iamVjdF9z
aXplLCBwYWdlX2NvbmZpZywgcm9sZSkpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dW5zaWduZWQKIHBhc19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29mX29iamVjdHModW5zaWduZWQg
b2JqZWN0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9yb2xlIHJvbGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
ICAgIHVuc2lnbmVkIHJlc3VsdDsKICAgICAKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9w
YWdlX3VzZWZ1bF9vYmplY3RfcGF5bG9hZF9zaXplKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZykg
LyBvYmplY3Rfc2l6ZTsKKyAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9v
YmplY3RfcGF5bG9hZF9zaXplKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZywgcm9sZSkgLyBvYmpl
Y3Rfc2l6ZTsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJmaXJz
dCBvYmplY3Qgb2Zmc2V0ID0gJXVcbiIsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLCBwYWdl
X2NvbmZpZykpOwogICAgICAgICBwYXNfbG9nKCJlbmQgb2YgbGFzdCBvYmplY3Qgb2Zmc2V0ID0g
JXVcbiIsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19l
bmRfb2ZfbGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZykpOwot
ICAgICAgICBwYXNfbG9nKCJwYXlsb2FkIG9mZnNldCA9ICVsdVxuIiwgcGFnZV9jb25maWcuYmFz
ZS5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCk7CisgICAgICAgIHBhc19sb2coInBheWxvYWQg
b2Zmc2V0ID0gJWx1XG4iLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX29mZnNl
dF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSkpOwogICAgICAgICBwYXNfbG9nKCJvYmplY3Rf
c2l6ZSA9ICV1LCBzbyBudW1iZXJfb2Zfb2JqZWN0cyA9ICV1XG4iLCBvYmplY3Rfc2l6ZSwgcmVz
dWx0KTsKICAgICB9CiAgICAgCkBAIC0yNjIsNyArMzAzLDggQEAgUEFTX0FQSSBleHRlcm4gZG91
YmxlIHBhc19zZWdyZWdhdGVkX3BhZwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgZG91Ymxl
CiBwYXNfc2VncmVnYXRlZF9wYWdlX2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdCh1bnNpZ25lZCBv
YmplY3Rfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcg
cGFnZV9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKIHsKICAgICBkb3VibGUgZXh0cmFfaGFu
ZGljYXA7CiAKQEAgLTI3MSw3ICszMTMsNyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2J5dGVzX2Rp
cnRpZWRfcGVyX29iCiAgICAgICAgIHBhZ2VfY29uZmlnLnZhcmlhbnRdOwogICAgIAogICAgIHJl
dHVybiAoZG91YmxlKXBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8KLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cyhvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcp
ICoKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cyhvYmplY3Rf
c2l6ZSwgcGFnZV9jb25maWcsIHJvbGUpICoKICAgICAgICAgcGFnZV9jb25maWcud2FzdGVhZ2Vf
aGFuZGljYXAgKiBleHRyYV9oYW5kaWNhcDsKIH0KIApAQCAtMjgzLDMxICszMjUsNTUgQEAgUEFT
X0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uc3RydQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgd2FzX3N0b2xlbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyog
cGFnZV9jb25maWcpOwogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQqCitwYXNf
c2VncmVnYXRlZF9wYWdlX2FsbG9jX2JpdHMocGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBw
YWdlX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX3JvbGUgcm9sZSkKK3sKKyAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ191c2VzX2xpbmVzX2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCByb2xlKSk7CisgICAgcmV0
dXJuIHBhZ2UtPnBheWxvYWQuYWxsb2NfYml0c19pbXBsOworfQorCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdWludDhfdCoKK3Bhc19zZWdyZWdhdGVkX3BhZ2VfbGluZXMocGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfcm9sZSByb2xlKQoreworICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSkpOwor
ICAgIHJldHVybiBwYWdlLT5wYXlsb2FkLmxpbmVzX2ltcGw7Cit9CisKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCoKIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewogICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFz
ZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CisgICAgLyogVGhp
cyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBmcm9tIHRoaW5ncyB0aGF0IGRvbid0IGtub3cgdGhlIHNl
Z3JlZ2F0ZWRfcGFnZV9yb2xlLCBidXQgc2luY2Ugd2UgZG9uJ3QKKyAgICAgICBzdXBwb3J0IGxp
bmVzIHdoZW4gd2UgaGF2ZSBncmFudWxlcywgaXQncyBzYWZlIHRvIGFzc3VtZSB3ZSBoYXZlIGFs
bG9jX2JpdHMuICovCiAgICAgcmV0dXJuIChwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCopKAot
ICAgICAgICBwYWdlLT5hbGxvY19iaXRzICsgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVt
X2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKSk7CisgICAgICAgIHBhZ2UtPnBheWxvYWQuYWxsb2Nf
Yml0c19pbXBsICsgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBh
Z2VfY29uZmlnKSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSogcGFnZSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykK
KyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKIHsKICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3Vu
dCogdXNlX2NvdW50czsKICAgICB1aW50cHRyX3QgbnVtX2dyYW51bGVzOwogICAgIHVpbnRwdHJf
dCBncmFudWxlX2luZGV4OwogICAgIAogICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5p
c19lbmFibGVkKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3BhZ2Vfa2luZF9nZXRfc2Vn
cmVnYXRlZF9yb2xlKHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQoJnBhZ2UtPmJhc2UpKSA9PSByb2xl
KTsKIAotICAgIGlmICghcGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcykKKyAgICBpZiAoIXBhZ2Ut
Pm51bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IAogICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBwYWdlX2NvbmZpZy5iYXNl
LmdyYW51bGVfc2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUEFTX0FTU0VSVCgh
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9sZShwYWdlX2NvbmZp
Zywgcm9sZSkpOwogICAgIAogICAgIHVzZV9jb3VudHMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dl
dF9ncmFudWxlX3VzZV9jb3VudHMocGFnZSwgcGFnZV9jb25maWcpOwogICAgIG51bV9ncmFudWxl
cyA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxl
X3NpemU7CkBAIC0zNjQsMTAgKzQzMCwxMSBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9hZGRy
ZXNzX2FuZF9wYWdlCiAgICAgICAgIHBhc19wYWdlX2Jhc2VfZm9yX2FkZHJlc3NfYW5kX3BhZ2Vf
Y29uZmlnKGJlZ2luLCBwYWdlX2NvbmZpZy5iYXNlKSk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBib29sCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3RyaV9zdGF0ZQogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pc19hbGxvY2F0ZWRfd2l0aF9wYWdlKHBhc19zZWdyZWdhdGVkX3Bh
Z2UqIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dHB0cl90IGJlZ2luLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBh
Z2VfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2Vfcm9sZSByb2xlKQogewogICAgIHVpbnRwdHJfdCBvZmZzZXRfaW5f
cGFnZTsKICAgICBzaXplX3QgYml0X2luZGV4OwpAQCAtMzc1LDI2ICs0NDIsNDggQEAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9pc19hbGxvY2F0ZWRfd2l0aF9wYQogICAgIHNpemVfdCB3b3JkX2luZGV4
OwogICAgIHVuc2lnbmVkIGJpdF9tYXNrOwogICAgIAorICAgIFBBU19URVNUSU5HX0FTU0VSVChw
YXNfcGFnZV9raW5kX2dldF9zZWdyZWdhdGVkX3JvbGUocGFzX3BhZ2VfYmFzZV9nZXRfa2luZCgm
cGFnZS0+YmFzZSkpID09IHJvbGUpOworCiAgICAgb2Zmc2V0X2luX3BhZ2UgPSBiZWdpbiAtICh1
aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2NvbmZpZyk7
CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9s
ZShwYWdlX2NvbmZpZywgcm9sZSkpIHsKKyAgICAgICAgdWludHB0cl90IGxpbmVfaW5kZXg7CisK
KyAgICAgICAgUEFTX0FTU0VSVChyb2xlICE9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3Jv
bGUpOworCisgICAgICAgIGxpbmVfaW5kZXggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVfaW5k
ZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoYmVnaW4sIHBhZ2VfY29u
ZmlnKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVzKHBh
Z2UsIHBhZ2VfY29uZmlnLCByb2xlKVtsaW5lX2luZGV4XSkgeworICAgICAgICAgICAgaWYgKHBh
Z2UtPm9iamVjdF9zaXplID49IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2xpbmVfc2l6ZShw
YWdlX2NvbmZpZykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBhc190cmlfc3RhdGVfeWVzOwor
CisgICAgICAgICAgICAvKiBGSVhNRTogSWYgd2Ugd2FudGVkIHRvLCB3ZSBjb3VsZCByZXR1cm4g
cGFzX3RyaV9zdGF0ZV95ZXMgaWYgdGhlIGxpbmUgY291bnQgaXMgbWF4ZWQgb3V0LgorICAgICAg
ICAgICAgICAgQnV0LCBtYXliZSB0aGF0J3Mgb3ZlcmtpbGwgZm9yIHRoaXMgcmFyZWx5IHVzZWQg
ZnVuY3Rpb24uICovCisgICAgICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV9tYXliZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV9ubzsKKyAgICB9CisgICAgCiAg
ICAgYml0X2luZGV4ID0gcGFzX3BhZ2VfYmFzZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zy
b21fcGFnZV9ib3VuZGFyeSgKICAgICAgICAgb2Zmc2V0X2luX3BhZ2UsIHBhZ2VfY29uZmlnLmJh
c2UpOwogICAgIAogICAgIHdvcmRfaW5kZXggPSBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgoYml0
X2luZGV4KTsKICAgICBiaXRfbWFzayA9IFBBU19CSVRWRUNUT1JfQklUX01BU0soYml0X2luZGV4
KTsKICAgICAKLSAgICB3b3JkID0gcGFnZS0+YWxsb2NfYml0c1t3b3JkX2luZGV4XTsKLSAgICBy
ZXR1cm4gd29yZCAmIGJpdF9tYXNrOworICAgIHdvcmQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Fs
bG9jX2JpdHMocGFnZSwgcGFnZV9jb25maWcsIHJvbGUpW3dvcmRfaW5kZXhdOworICAgIHJldHVy
biBwYXNfdHJpX3N0YXRlX2Zyb21fYm9vbGVhbih3b3JkICYgYml0X21hc2spOwogfQogCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190
cmlfc3RhdGUKIHBhc19zZWdyZWdhdGVkX3BhZ2VfaXNfYWxsb2NhdGVkKHVpbnRwdHJfdCBiZWdp
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKIHsKICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlKiBwYWdlOwotICAgIGJvb2wgcmVzdWx0OworICAgIHBhc190cmlfc3Rh
dGUgcmVzdWx0OwogICAgIAogICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9hZGRy
ZXNzX2FuZF9wYWdlX2NvbmZpZyhiZWdpbiwgcGFnZV9jb25maWcpOwotICAgIHJlc3VsdCA9IHBh
c19zZWdyZWdhdGVkX3BhZ2VfaXNfYWxsb2NhdGVkX3dpdGhfcGFnZShwYWdlLCBiZWdpbiwgcGFn
ZV9jb25maWcpOworICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfaXNfYWxsb2NhdGVk
X3dpdGhfcGFnZShwYWdlLCBiZWdpbiwgcGFnZV9jb25maWcsIHJvbGUpOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKQEAgLTQ0NCw5ICs1MzMsNiBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9h
ZGRyZXNzX2FuZF9oZWFwCiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZp
Z19mb3JfYWRkcmVzc19hbmRfaGVhcF9jb25maWcoYmVnaW4sIGNvbmZpZykucGFnZTsKIH0KIAot
UEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfdmVyaWZ5X251bV9ub25fZW1wdHlfd29y
ZHMocGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnKiBwYWdlX2NvbmZpZyk7Ci0KIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNf
U0VHUkVHQVRFRF9QQUdFX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYwkocmV2
aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ0LDE1ICs0NCwyNSBA
QCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhbGlkYXRlCiB7CiAgICAgaWYgKCFw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19kb192YWxpZGF0ZSkKICAgICAgICAgcmV0dXJuOwot
ICAgIAotICAgIFBBU19BU1NFUlQoY29uZmlnLT5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6
ZSA8PSBjb25maWctPmJhc2UucGFnZV9zaXplKTsKKworICAgIFBBU19BU1NFUlQoIWNvbmZpZy0+
bnVtX2xpbmVzIHx8IGNvbmZpZy0+dmFyaWFudCA9PSBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ192YXJpYW50KTsKKyAgICBQQVNfQVNTRVJUKGNvbmZpZy0+ZXhjbHVzaXZlX3BheWxv
YWRfc2l6ZSA8PSBjb25maWctPmJhc2UucGFnZV9zaXplKTsKKyAgICBQQVNfQVNTRVJUKGNvbmZp
Zy0+c2hhcmVkX3BheWxvYWRfc2l6ZSA8PSBjb25maWctPmJhc2UucGFnZV9zaXplKTsKICAgICBQ
QVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbigqY29uZmlnKSA8
IGNvbmZpZy0+YmFzZS5tYXhfb2JqZWN0X3NpemUpOwotICAgIFBBU19BU1NFUlQoY29uZmlnLT5i
YXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0IDwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7
Ci0gICAgUEFTX0FTU0VSVChjb25maWctPmJhc2UubWF4X29iamVjdF9zaXplIDw9IGNvbmZpZy0+
YmFzZS5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUpOworICAgIFBBU19BU1NFUlQoY29uZmlnLT5l
eGNsdXNpdmVfcGF5bG9hZF9vZmZzZXQgPCBjb25maWctPmJhc2UucGFnZV9zaXplKTsKKyAgICBQ
QVNfQVNTRVJUKGNvbmZpZy0+c2hhcmVkX3BheWxvYWRfb2Zmc2V0IDwgY29uZmlnLT5iYXNlLnBh
Z2Vfc2l6ZSk7CisgICAgUEFTX0FTU0VSVChjb25maWctPmJhc2UubWF4X29iamVjdF9zaXplIDw9
IGNvbmZpZy0+ZXhjbHVzaXZlX3BheWxvYWRfc2l6ZSk7CisgICAgUEFTX0FTU0VSVChjb25maWct
PmJhc2UubWF4X29iamVjdF9zaXplIDw9IGNvbmZpZy0+c2hhcmVkX3BheWxvYWRfc2l6ZSk7Cisg
ICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191c2VzX2xpbmVzX2Zvcl9yb2xlKCpj
b25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpKSB7CisgICAgICAgIFBB
U19BU1NFUlQoY29uZmlnLT5udW1fYWxsb2NfYml0cyA+PQorICAgICAgICAgICAgICAgICAgIChw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUoCisg
ICAgICAgICAgICAgICAgICAgICAgICpjb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVz
aXZlX3JvbGUpID4+IGNvbmZpZy0+YmFzZS5taW5fYWxpZ25fc2hpZnQpKTsKKyAgICB9CiAgICAg
UEFTX0FTU0VSVChjb25maWctPm51bV9hbGxvY19iaXRzID49Ci0gICAgICAgICAgICAgICAoY29u
ZmlnLT5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSA+PiBjb25maWctPmJhc2UubWluX2Fs
aWduX3NoaWZ0KSk7Ci0gICAgUEFTX0FTU0VSVCgoY29uZmlnLT5iYXNlLnBhZ2Vfb2JqZWN0X3Bh
eWxvYWRfb2Zmc2V0ICsKLSAgICAgICAgICAgICAgICBjb25maWctPmJhc2UucGFnZV9vYmplY3Rf
cGF5bG9hZF9zaXplKSA8PSBjb25maWctPmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgICAg
IChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUo
CisgICAgICAgICAgICAgICAgICAgKmNvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRf
cm9sZSkgPj4gY29uZmlnLT5iYXNlLm1pbl9hbGlnbl9zaGlmdCkpOworICAgIFBBU19BU1NFUlQo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zvcl9yb2xlKAor
ICAgICAgICAgICAgICAgICAgICpjb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZl
X3JvbGUpIDw9IGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwogICAgIFBBU19BU1NFUlQoIShjb25m
aWctPmJhc2UucGFnZV9zaXplICUgY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSkpOwogICAgIFBB
U19BU1NFUlQoY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA+PSBjb25maWctPmJhc2UuZ3JhbnVsZV9z
aXplKTsKICAgICBQQVNfQVNTRVJUKCEoY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSAlIHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnQoKSkpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5o
CShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNiArMTQx
LDIxIEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyB7CiAgICAgICAgYW5kIHdo
ZXJlIHlvdSBwbGFjZSB0aGUgaGVhZGVyLiAqLwogICAgIHNpemVfdCBudW1fYWxsb2NfYml0czsK
IAorICAgIC8qIE51bWJlciBvZiBsaW5lcy4gSWYgdGhpcyBpcyB6ZXJvLCB0aGVuIGxpbmUgYWxs
b2NhdGlvbiBpcyBkaXNhYmxlZC4gSWYgdGhpcyBpcyBub256ZXJvLCB0aGVuIGxpbmUKKyAgICAg
ICBhbGxvY2F0aW9uIGlzIGVuYWJsZWQganVzdCBmb3IgZXhjbHVzaXZlcy4gKi8KKyAgICBzaXpl
X3QgbnVtX2xpbmVzOworCisgICAgLyogVGhlIHNoaWZ0IGFtb3VudCB0byBnZXQgdGhlIGxpbmUg
aW5kZXggZm9yIGEgYnl0ZS4gKi8KKyAgICB1aW50OF90IGxpbmVfc2hpZnQ7CisKKyAgICAvKiBX
aGF0J3MgdGhlIGZpcnN0IGJ5dGUgYXQgd2hpY2ggdGhlIG9iamVjdCBwYXlsb2FkIGNvdWxkIHN0
YXJ0IHJlbGF0aXZlIHRvIHRoZSBib3VuZGFyeT8gKi8KKyAgICB1aW50cHRyX3Qgc2hhcmVkX3Bh
eWxvYWRfb2Zmc2V0OworICAgIHVpbnRwdHJfdCBleGNsdXNpdmVfcGF5bG9hZF9vZmZzZXQ7CisK
KyAgICAvKiBIb3cgbWFueSBieXRlcyBhcmUgcHJvdmlzaW9uZWQgZm9yIG9iamVjdHMgcGFzdCB0
aGF0IG9mZnNldD8gKi8KKyAgICBzaXplX3Qgc2hhcmVkX3BheWxvYWRfc2l6ZTsKKyAgICBzaXpl
X3QgZXhjbHVzaXZlX3BheWxvYWRfc2l6ZTsKKwogICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2Nh
dGlvbl9sb2dnaW5nX21vZGUgc2hhcmVkX2xvZ2dpbmdfbW9kZTsKICAgICBwYXNfc2VncmVnYXRl
ZF9kZWFsbG9jYXRpb25fbG9nZ2luZ19tb2RlIGV4Y2x1c2l2ZV9sb2dnaW5nX21vZGU7CiAKQEAg
LTIzNSw5ICsyNTAsNTggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKHBh
cwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90Ci1wYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91bmRhcnkocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgY29uZmlnKQorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfcGF5bG9hZF9vZmZzZXRfZm9yX3JvbGUocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGUpCit7CisgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlOgorICAgICAgICByZXR1cm4g
Y29uZmlnLnNoYXJlZF9wYXlsb2FkX29mZnNldDsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZXhjbHVzaXZlX3JvbGU6CisgICAgICAgIHJldHVybiBjb25maWcuZXhjbHVzaXZlX3BheWxv
YWRfb2Zmc2V0OworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVk
Iik7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QK
K3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfc2l6ZV9mb3Jfcm9sZShwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGUpCit7Cisg
ICAgc3dpdGNoIChyb2xlKSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9y
b2xlOgorICAgICAgICByZXR1cm4gY29uZmlnLnNoYXJlZF9wYXlsb2FkX3NpemU7CisgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlOgorICAgICAgICByZXR1cm4gY29u
ZmlnLmV4Y2x1c2l2ZV9wYXlsb2FkX3NpemU7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHVpbnRwdHJfdAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9l
bmRfb2Zmc2V0X2Zvcl9yb2xlKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKK3sKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfcGF5bG9hZF9vZmZzZXRfZm9yX3JvbGUoY29uZmlnLCByb2xlKQorICAgICAg
ICArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfc2l6ZV9mb3Jfcm9sZShjb25m
aWcsIHJvbGUpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAorcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9sZShwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZSByb2xlKQoreworICAgIHN3aXRjaCAocm9s
ZSkgeworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRfcm9sZToKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9s
ZToKKyAgICAgICAgcmV0dXJuICEhY29uZmlnLm51bV9saW5lczsKKyAgICB9CisgICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
c3RhdGljIGlubGluZSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbGluZV9zaXpl
KHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKIHsKLSAgICByZXR1cm4gcGFzX3Bh
Z2VfYmFzZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KGNv
bmZpZy5iYXNlKTsKKyAgICByZXR1cm4gKHNpemVfdCkxIDw8IChzaXplX3QpY29uZmlnLmxpbmVf
c2hpZnQ7CiB9CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfTlVNX0FMTE9D
X1dPUkRTKG51bV9hbGxvY19iaXRzKSBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmRlZgkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCwzICsxMDQsMTAgQEAgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09O
RklHX0tJTkQoaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSE9UQklU
X0hFQVBfQ09ORklHLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZykKICNlbmRpZgogCisjaWYgUEFT
X0VOQUJMRV9MSU5FUkVGCitQQVNfREVGSU5FX1NFR1JFR0FURURfUEFHRV9DT05GSUdfS0lORChs
aW5lcmVmX3NtYWxsX3NlZ3JlZ2F0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMSU5FUkVGX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKQorUEFT
X0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQobGluZXJlZl9tZWRpdW1fc2VncmVn
YXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJTkVSRUZfSEVB
UF9DT05GSUcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29uZmlnKQorI2VuZGlmCisKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmRfYW5kX3JvbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmgJKHJldmlzaW9u
IDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyAr
NDEsNyBAQCBlbnVtIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kCiAKIHR5cGVk
ZWYgZW51bSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGU7CiAKLSNkZWZpbmUgUEFTX1NFR1JFR0FU
RURfUEFHRV9DT05GSUdfS0lORF9BTkRfUk9MRV9OVU1fQklUUyA1dQorI2RlZmluZSBQQVNfU0VH
UkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTIDZ1CiAjZGVmaW5lIFBB
U19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkRfQU5EX1JPTEVfTUFTSyBcCiAgICAgKCgxdSA8
PCBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EX0FORF9ST0xFX05VTV9CSVRTKSAtIDF1
KQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ191dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9u
IDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE2ICszOSwzMyBA
QCBQQVNfQkVHSU5fRVhURVJOX0M7CiAjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9B
TExPQ19CSVRTKG1pbl9hbGlnbl9zaGlmdCwgcGFnZV9zaXplKSBcCiAgICAgKChwYWdlX3NpemUp
ID4+IChtaW5fYWxpZ25fc2hpZnQpKQogCi0jZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BB
R0VfSEVBREVSX1NJWkUobWluX2FsaWduX3NoaWZ0LCBwYWdlX3NpemUsIGdyYW51bGVfc2l6ZSkg
XAotICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfSEVBREVSX1NJWkUoIFwKKyNkZWZpbmUgUEFTX0JB
U0lDX1NFR1JFR0FURURfTlVNX0xJTkVTKGxpbmVfc2hpZnQsIHBhZ2Vfc2l6ZSkgXAorICAgICgo
bGluZV9zaGlmdCkgPyAocGFnZV9zaXplKSA+PiAobGluZV9zaGlmdCkgOiAwdSkKKworI2RlZmlu
ZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFX0VYQ0xVU0lWRShtaW5fYWxp
Z25fc2hpZnQsIGxpbmVfc2hpZnQsIHBhZ2Vfc2l6ZSwgZ3JhbnVsZV9zaXplKSBcCisgICAgKChs
aW5lX3NoaWZ0KSBcCisgICAgID8gUEFTX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0laRV9GT1Jf
TElORVMoUEFTX0JBU0lDX1NFR1JFR0FURURfTlVNX0xJTkVTKChsaW5lX3NoaWZ0KSwgKHBhZ2Vf
c2l6ZSkpKSBcCisgICAgIDogUEFTX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0laRV9GT1JfQklU
UyggXAorICAgICAgICAgICBQQVNfQkFTSUNfU0VHUkVHQVRFRF9OVU1fQUxMT0NfQklUUygobWlu
X2FsaWduX3NoaWZ0KSwgKHBhZ2Vfc2l6ZSkpLCBcCisgICAgICAgICAgIChwYWdlX3NpemUpIC8g
KGdyYW51bGVfc2l6ZSkpKQorCisjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURf
T0ZGU0VUX0VYQ0xVU0lWRShtaW5fYWxpZ25fc2hpZnQsIGxpbmVfc2hpZnQsIHBhZ2Vfc2l6ZSwg
Z3JhbnVsZV9zaXplKSBcCisgICAgUEFTX0JBU0lDX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0la
RV9FWENMVVNJVkUoKG1pbl9hbGlnbl9zaGlmdCksIChsaW5lX3NoaWZ0KSwgKHBhZ2Vfc2l6ZSks
IChncmFudWxlX3NpemUpKQorCisjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURf
U0laRV9FWENMVVNJVkUobWluX2FsaWduX3NoaWZ0LCBsaW5lX3NoaWZ0LCBwYWdlX3NpemUsIGdy
YW51bGVfc2l6ZSkgXAorICAgICgocGFnZV9zaXplKSAtIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BB
WUxPQURfT0ZGU0VUX0VYQ0xVU0lWRSggXAorICAgICAgICAgKG1pbl9hbGlnbl9zaGlmdCksIChs
aW5lX3NoaWZ0KSwgKHBhZ2Vfc2l6ZSksIChncmFudWxlX3NpemUpKSkKKworI2RlZmluZSBQQVNf
QkFTSUNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFX1NIQVJFRChtaW5fYWxpZ25fc2hpZnQs
IHBhZ2Vfc2l6ZSwgZ3JhbnVsZV9zaXplKSBcCisgICAgUEFTX1NFR1JFR0FURURfUEFHRV9IRUFE
RVJfU0laRV9GT1JfQklUUyggXAogICAgICAgICBQQVNfQkFTSUNfU0VHUkVHQVRFRF9OVU1fQUxM
T0NfQklUUygobWluX2FsaWduX3NoaWZ0KSwgKHBhZ2Vfc2l6ZSkpLCBcCiAgICAgICAgIChwYWdl
X3NpemUpIC8gKGdyYW51bGVfc2l6ZSkpCiAKLSNkZWZpbmUgUEFTX0JBU0lDX1NFR1JFR0FURURf
UEFZTE9BRF9PRkZTRVQobWluX2FsaWduX3NoaWZ0LCBwYWdlX3NpemUsIGdyYW51bGVfc2l6ZSkg
XAotICAgIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBR0VfSEVBREVSX1NJWkUoKG1pbl9hbGlnbl9z
aGlmdCksIChwYWdlX3NpemUpLCAoZ3JhbnVsZV9zaXplKSkKKyNkZWZpbmUgUEFTX0JBU0lDX1NF
R1JFR0FURURfUEFZTE9BRF9PRkZTRVRfU0hBUkVEKG1pbl9hbGlnbl9zaGlmdCwgcGFnZV9zaXpl
LCBncmFudWxlX3NpemUpIFwKKyAgICBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9T
SVpFX1NIQVJFRCgobWluX2FsaWduX3NoaWZ0KSwgKHBhZ2Vfc2l6ZSksIChncmFudWxlX3NpemUp
KQogCi0jZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfU0laRShtaW5fYWxpZ25f
c2hpZnQsIHBhZ2Vfc2l6ZSwgZ3JhbnVsZV9zaXplKSBcCi0gICAgKChwYWdlX3NpemUpIC0gUEFT
X0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9PRkZTRVQoKG1pbl9hbGlnbl9zaGlmdCksIChwYWdl
X3NpemUpLCAoZ3JhbnVsZV9zaXplKSkpCisjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BB
WUxPQURfU0laRV9TSEFSRUQobWluX2FsaWduX3NoaWZ0LCBwYWdlX3NpemUsIGdyYW51bGVfc2l6
ZSkgXAorICAgICgocGFnZV9zaXplKSAtIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfT0ZG
U0VUX1NIQVJFRCgobWluX2FsaWduX3NoaWZ0KSwgKHBhZ2Vfc2l6ZSksIChncmFudWxlX3NpemUp
KSkKIAogI2RlZmluZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19GT1JXQVJEX0RF
Q0xBUkFUSU9OUyhuYW1lKSBcCiAgICAgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lB
TElaQVRJT05fREVDTEFSQVRJT05TKG5hbWUgIyMgX3BhZ2VfY29uZmlnKTsgXApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw0MiArNDAsNyBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLS8q
IE9LIHRvIHBhc3MgTlVMTCBwYWdlIGlmIHlvdSBwYXNzIG5vbi1OVUxMIGRpcmVjdG9yeS4gKi8K
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAotcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9v
ZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCgKLSAgICBwYXNfc2VncmVn
YXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0g
ICAgdWludHB0cl90IHJlc3VsdDsKLQotICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5p
c19lbmFibGVkKTsKLSAgICAKLSAgICBpZiAoIXBhZ2UgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19zb21lX2V4Y2x1c2l2ZShwYWdlLT5vd25lcikpIHsKLSAgICAgICAgaWYgKCFwYWdlKQotICAg
ICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X2V4Y2x1c2l2ZShwYWdlLT5vd25lciktPmRpcmVjdG9yeSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25f
bnVsbCgmZGlyZWN0b3J5LT5kYXRhKQotICAgICAgICAgICAgLT5vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5X3RvX2ZpcnN0X29iamVjdDsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBwYXNfcm91bmRf
dXBfdG9fcG93ZXJfb2ZfMigKLSAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVjdF9w
YXlsb2FkX29mZnNldCwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2Fs
aWduKHBhZ2VfY29uZmlnKSk7Ci0KLSAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClyZXN1bHQgPT0g
cmVzdWx0KTsKLSAgICByZXR1cm4gKHVuc2lnbmVkKXJlc3VsdDsKLX0KLQotLyogUmV0dXJucyB0
cnVlIGlmIGl0IGNvdmVyZWQgZXZlcnl0aGluZy4gT0sgdG8gcGFzcyBOVUxMIHBhZ2UuIFBhc3Np
bmcgTlVMTCBmb3IgdGhlIGRpcmVjdG9yeQotICAgbWVhbnMgdGhhdCB3ZSdyZSBpbnRlcmVzdGVk
IGluIGxlYXZpbmcgemVyb2VzIHdoZXJlIHRoZSBvYmplY3RzIGdvLCB3aGljaCBpcyB1c2VmdWwg
Zm9yCi0gICBicmluZ2luZyB1cCBzaGFyZWQgdmlld3MuICovCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2luaXRpYWxpemVfZnVsbF91c2VfY291bnRz
KAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCog
dXNlX2NvdW50cywKICAgICB1aW50cHRyX3QgZW5kX2dyYW51bGVfaW5kZXgsCkBAIC05Miw2ICs1
Nyw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWcKICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwogCiAgICAgUEFTX0FTU0VSVChw
YWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOworICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsK
ICAgICAKICAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBh
Z2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplOwogICAgIFBBU19BU1NFUlQoZW5kX2dyYW51bGVf
aW5kZXggPD0gbnVtX2dyYW51bGVzKTsKQEAgLTEwMyw5ICs2OSwxMCBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAgLyogSWYgdGhlcmUgYXJlIGFueSBieXRl
cyBpbiB0aGUgcGFnZSBub3QgbWFkZSBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24gdGhlbiBtYWtl
IHN1cmUKICAgICAgICB0aGF0IHRoZSB1c2UgY291bnRzIGtub3cgYWJvdXQgaXQuICovCiAgICAg
c3RhcnRfb2ZfcGF5bG9hZCA9Ci0gICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3Rf
cGF5bG9hZF9vZmZzZXQ7CisgICAgICAgIHBhZ2VfY29uZmlnLmV4Y2x1c2l2ZV9wYXlsb2FkX29m
ZnNldDsKICAgICBlbmRfb2ZfcGF5bG9hZCA9Ci0gICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFn
ZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgKyBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3Bh
eWxvYWRfc2l6ZTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9l
bmRfb2Zmc2V0X2Zvcl9yb2xlKAorICAgICAgICAgICAgcGFnZV9jb25maWcsIHBhc19zZWdyZWdh
dGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpOwogCiAgICAgaWYgKHN0YXJ0X29mX3BheWxvYWQpIHsK
ICAgICAgICAgaWYgKCFlbmRfZ3JhbnVsZV9vZmZzZXQpCkBAIC0xMTksMTQgKzg2LDkgQEAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZwogICAgIGlmIChzdGFydF9vZl9w
YXlsb2FkID4gZW5kX2dyYW51bGVfb2Zmc2V0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIGVuZF9ncmFudWxlX29mZnNldCA9PSBw
YWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKLQogICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOwog
Ci0gICAgc3RhcnRfb2ZfZmlyc3Rfb2JqZWN0ID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCgKLSAgICAgICAgICAg
IHBhZ2UsIGRpcmVjdG9yeSwgcGFnZV9jb25maWcpOworICAgIHN0YXJ0X29mX2ZpcnN0X29iamVj
dCA9IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OwogICAg
IGVuZF9vZl9sYXN0X29iamVjdCA9IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9f
ZW5kX29mX2xhc3Rfb2JqZWN0OwogCiAgICAgb2JqZWN0X3NpemUgPSBkaXJlY3RvcnktPm9iamVj
dF9zaXplOwpAQCAtMzIwLDcgKzI4MiwyMCBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9s
b2NrX2FuZF9yZWJpCiAKIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3ZlcmlmeV9n
cmFudWxlcyhwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKIAotUEFTX0FQSSBQQVNfTk9fUkVU
VVJOIFBBU19VU0VEIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRpb25fZGlkX2Zh
aWwodWludHB0cl90IGJlZ2luKTsKK1BBU19BUEkgUEFTX05PX1JFVFVSTiBQQVNfVVNFRCB2b2lk
IHBhc19zZWdyZWdhdGVkX3BhZ2VfYml0X2RlYWxsb2NhdGlvbl9kaWRfZmFpbCh1aW50cHRyX3Qg
YmVnaW4pOworUEFTX0FQSSBQQVNfTk9fUkVUVVJOIFBBU19VU0VEIHZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9saW5lX2RlYWxsb2NhdGlvbl9kaWRfZmFpbCh1aW50cHRyX3QgYmVnaW4pOworCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWNyZW1l
bnRfbnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5lcyhwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
KQoreworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzX29y
X2xpbmVzKTsKKyAgICBpZiAoIS0tcGFnZS0+bnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5lcykg
eworICAgICAgICAvKiBUaGlzIGhhcyB0byBoYXBwZW4gbGFzdCBzaW5jZSBpdCBlZmZlY3RpdmVs
eSB1bmxvY2tzIHRoZSBsb2NrLiBUaGF0J3MgZHVlIHRvCisgICAgICAgICAgIHRoZSB0aGluZ3Mg
dGhhdCBoYXBwZW4gaW4gc3dpdGNoX2xvY2tfYW5kX3RyeV90b190YWtlX2JpYXMuIFNwZWNpZmlj
YWxseSwgaXRzCisgICAgICAgICAgIHJlbGlhbmNlIG9uIHRoZSBmdWxseV9lbXB0eSBiaXQuICov
CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfbm90ZV9lbXB0aW5lc3MocGFnZSk7CisgICAg
fQorfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9kZWFsbG9jYXRlX3dpdGhfcGFnZShwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLApAQCAtMzM4
LDE5ICszMTMsNjMgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQog
ICAgIAogICAgIHNpemVfdCBiaXRfaW5kZXhfdW5tYXNrZWQ7CiAgICAgc2l6ZV90IHdvcmRfaW5k
ZXg7Ci0gICAgCisgICAgdW5zaWduZWQqIHBhZ2VfYWxsb2NfYml0czsKICAgICB1bnNpZ25lZCB3
b3JkOwogICAgIHVuc2lnbmVkIG5ld193b3JkOwogICAgIAogICAgIFBBU19BU1NFUlQocGFnZV9j
b25maWcuYmFzZS5pc19lbmFibGVkKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3BhZ2Vf
a2luZF9nZXRfc2VncmVnYXRlZF9yb2xlKHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQoJnBhZ2UtPmJh
c2UpKSA9PSByb2xlKTsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwYXNfbG9n
KCJGcmVlaW5nICVwIGluICVwKCVzKSwgbnVtX25vbl9lbXB0eV93b3JkcyA9ICV1XG4iLAorICAg
ICAgICBwYXNfbG9nKCJGcmVlaW5nICVwIGluICVwKCVzKSwgbnVtX25vbl9lbXB0eV93b3Jkc19v
cl9saW5lcyA9ICV1XG4iLAogICAgICAgICAgICAgICAgICh2b2lkKiliZWdpbiwgcGFnZSwKICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmco
cGFnZV9jb25maWcua2luZCksCi0gICAgICAgICAgICAgICAgcGFnZS0+bnVtX25vbl9lbXB0eV93
b3Jkcyk7CisgICAgICAgICAgICAgICAgcGFnZS0+bnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5l
cyk7CiAgICAgfQogCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3VzZXNfbGlu
ZXNfZm9yX3JvbGUocGFnZV9jb25maWcsIHJvbGUpKSB7CisgICAgICAgIHVpbnQ4X3QqIHBhZ2Vf
bGluZXM7CisgICAgICAgIHNpemVfdCBsaW5lX2luZGV4OworICAgICAgICB1aW50OF90IGxpbmU7
CisKKyAgICAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBwYWdl
X2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CisgICAgICAgIFBBU19BU1NFUlQocm9sZSA9PSBw
YXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKTsKKworICAgICAgICBwYWdlX2xpbmVz
ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lcyhwYWdlLCBwYWdlX2NvbmZpZywgcm9sZSk7CisK
KyAgICAgICAgbGluZV9pbmRleCA9IHBhc19tb2R1bG9fcG93ZXJfb2ZfMigKKyAgICAgICAgICAg
IGJlZ2luID4+IHBhZ2VfY29uZmlnLmxpbmVfc2hpZnQsCisgICAgICAgICAgICBwYWdlX2NvbmZp
Zy5iYXNlLnBhZ2Vfc2l6ZSA+PiBwYWdlX2NvbmZpZy5saW5lX3NoaWZ0KTsKKyAgICAgICAgbGlu
ZSA9IHBhZ2VfbGluZXNbbGluZV9pbmRleF07CisKKyAgICAgICAgaWYgKFBBU19VTkxJS0VMWShw
YWdlX2NvbmZpZy5jaGVja19kZWFsbG9jYXRpb24gJiYgIWxpbmUpKQorICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX2RlYWxsb2NhdGlvbl9kaWRfZmFpbChiZWdpbik7CisKKyAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJsaW5lIGF0IGluZGV4ICV6
dSBnb2VzIGZyb20gJXUgdG8gJXVcbiIsIGxpbmVfaW5kZXgsIGxpbmUsIGxpbmUgLSAxKTsKKwor
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQobGluZSk7CisKKyAgICAgICAgbGluZS0tOworICAg
ICAgICBwYWdlX2xpbmVzW2xpbmVfaW5kZXhdID0gbGluZTsKKworICAgICAgICBpZiAoIWxpbmUp
IHsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXI7CisgICAgICAgICAgICBv
d25lciA9IHBhZ2UtPm93bmVyOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfa2luZChvd25lcikgIT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfa2luZCkgeworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X25vdGVfZWxpZ2liaWxpdHkoCisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X2V4Y2x1c2l2ZShvd25lciksCisgICAgICAgICAgICAgICAgICAgIHBhZ2UsIGRl
YWxsb2NhdGlvbl9tb2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhZ2VfY29uZmlnKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9k
ZWNyZW1lbnRfbnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5lcyhwYWdlKTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFnZV9hbGxvY19iaXRzID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9hbGxvY19iaXRzKHBhZ2UsIHBhZ2VfY29uZmlnLCByb2xlKTsKKwogICAgIGJp
dF9pbmRleF91bm1hc2tlZCA9IGJlZ2luID4+IHBhZ2VfY29uZmlnLmJhc2UubWluX2FsaWduX3No
aWZ0OwogICAgIAogICAgIHdvcmRfaW5kZXggPSBwYXNfbW9kdWxvX3Bvd2VyX29mXzIoCkBAIC0z
NjgsNyArMzg3LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQog
ICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpY291bnRfcGFydGlhbCwgKHVuc2ln
bmVkIGxvbmcgbG9uZyljb3VudF9leGNsdXNpdmUpOwogICAgIH0KICAgICAKLSAgICB3b3JkID0g
cGFnZS0+YWxsb2NfYml0c1t3b3JkX2luZGV4XTsKKyAgICB3b3JkID0gcGFnZV9hbGxvY19iaXRz
W3dvcmRfaW5kZXhdOwogCiAgICAgaWYgKHBhZ2VfY29uZmlnLmNoZWNrX2RlYWxsb2NhdGlvbikg
ewogI2lmICFQQVNfQVJNICYmICFQQVNfUklTQ1YKQEAgLTM3OSw5ICszOTgsOSBAQCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlCiAgICAgICAgICAgICAiamMgMGZcblx0
IgogICAgICAgICAgICAgIm1vdnEgJTIsICUlcmRpXG5cdCIKICNpZiBQQVNfT1MoREFSV0lOKQot
ICAgICAgICAgICAgImNhbGwgX3Bhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0aW9uX2RpZF9m
YWlsXG5cdCIKKyAgICAgICAgICAgICJjYWxsIF9wYXNfc2VncmVnYXRlZF9wYWdlX2JpdF9kZWFs
bG9jYXRpb25fZGlkX2ZhaWxcblx0IgogI2Vsc2UKLSAgICAgICAgICAgICJjYWxsIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZGVhbGxvY2F0aW9uX2RpZF9mYWlsXG5cdCIKKyAgICAgICAgICAgICJjYWxs
IHBhc19zZWdyZWdhdGVkX3BhZ2VfYml0X2RlYWxsb2NhdGlvbl9kaWRfZmFpbFxuXHQiCiAjZW5k
aWYKICAgICAgICAgICAgICIwOiIKICAgICAgICAgICAgIDogIityIihuZXdfd29yZCkKQEAgLTM5
MiwxNCArNDExLDE0IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UK
ICAgICAgICAgYml0X21hc2sgPSBQQVNfQklUVkVDVE9SX0JJVF9NQVNLKGJpdF9pbmRleF91bm1h
c2tlZCk7CiAgICAgICAgIAogICAgICAgICBpZiAoUEFTX1VOTElLRUxZKCEod29yZCAmIGJpdF9t
YXNrKSkpCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGlvbl9kaWRf
ZmFpbChiZWdpbik7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2JpdF9kZWFsbG9j
YXRpb25fZGlkX2ZhaWwoYmVnaW4pOwogICAgICAgICAKICAgICAgICAgbmV3X3dvcmQgPSB3b3Jk
ICYgfmJpdF9tYXNrOwogI2VuZGlmIC8qICFQQVNfQVJNICYmICFQQVNfUklTQ1YtPiBzbyBlbmQg
b2YgUEFTX0FSTSBvciBQQVNfUklTQ1YgKi8KICAgICB9IGVsc2UKICAgICAgICAgbmV3X3dvcmQg
PSB3b3JkICYgflBBU19CSVRWRUNUT1JfQklUX01BU0soYml0X2luZGV4X3VubWFza2VkKTsKICAg
ICAKLSAgICBwYWdlLT5hbGxvY19iaXRzW3dvcmRfaW5kZXhdID0gbmV3X3dvcmQ7CisgICAgcGFn
ZV9hbGxvY19iaXRzW3dvcmRfaW5kZXhdID0gbmV3X3dvcmQ7CiAKICAgICBpZiAodmVyYm9zZSkK
ICAgICAgICAgcGFzX2xvZygiYXQgd29yZF9pbmRleCA9ICV6dSwgbmV3X3dvcmQgPSAldVxuIiwg
d29yZF9pbmRleCwgbmV3X3dvcmQpOwpAQCAtNDg1LDE1ICs1MDQsOCBAQCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX25vdGVfZW1wdGluZXNzKHBhZ2UpOwogICAgIH0KICAgICAKLSAgICBpZiAoIW5ld193b3Jk
KSB7Ci0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRz
KTsKLSAgICAgICAgaWYgKCEtLXBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMpIHsKLSAgICAgICAg
ICAgIC8qIFRoaXMgaGFzIHRvIGhhcHBlbiBsYXN0IHNpbmNlIGl0IGVmZmVjdGl2ZWx5IHVubG9j
a3MgdGhlIGxvY2suIFRoYXQncyBkdWUgdG8KLSAgICAgICAgICAgICAgIHRoZSB0aGluZ3MgdGhh
dCBoYXBwZW4gaW4gc3dpdGNoX2xvY2tfYW5kX3RyeV90b190YWtlX2JpYXMuIFNwZWNpZmljYWxs
eSwgaXRzCi0gICAgICAgICAgICAgICByZWxpYW5jZSBvbiB0aGUgZnVsbHlfZW1wdHkgYml0LiAq
LwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ub3RlX2VtcHRpbmVzcyhwYWdlKTsK
LSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoIW5ld193b3JkKQorICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2RlY3JlbWVudF9udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzKHBhZ2UpOwog
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2Rl
YWxsb2NhdGUoCkBAIC02MTYsOCArNjI4LDEyIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19zZWdyZWcKICAgICAvKiBUaGlzIGNoZWNrIGhhcHBlbnMgaGVyZSBiZWNhdXNlIGlm
IGxvZ2dpbmcgaXMgZGlzYWJsZWQgdGhlbiB3aGV0aGVyIHdlIGNoZWNrIGRlYWxsb2NhdGlvbiBp
cyBnb3Zlcm5lZAogICAgICAgIGJ5IHRoZSBjaGVja19kZWFsbG9jYXRpb24gZmxhZy4gKi8KICAg
ICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2xvZ2dpbmdfbW9kZV9pc19jaGVja2Vk
KG1vZGUpKSB7Ci0gICAgICAgIGlmIChQQVNfVU5MSUtFTFkoIXBhc19zZWdyZWdhdGVkX3BhZ2Vf
aXNfYWxsb2NhdGVkKGJlZ2luLCBwYWdlX2NvbmZpZykpKQotICAgICAgICAgICAgcGFzX2RlYWxs
b2NhdGlvbl9kaWRfZmFpbCgiUGFnZSBiaXQgbm90IHNldCIsIGJlZ2luKTsKKyAgICAgICAgaWYg
KFBBU19VTkxJS0VMWSghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pc19hbGxvY2F0ZWQoYmVnaW4sIHBh
Z2VfY29uZmlnLCByb2xlKSkpIHsKKyAgICAgICAgICAgIHBhc19kZWFsbG9jYXRpb25fZGlkX2Zh
aWwoCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXNlc19saW5l
c19mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSkKKyAgICAgICAgICAgICAgICA/ICJQYWdlIGxp
bmUgbm90IHNldCIgOiAiUGFnZSBiaXQgbm90IHNldCIsCisgICAgICAgICAgICAgICAgYmVnaW4p
OworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9sb2dnaW5nX21vZGVfaXNfc2l6ZV9hd2FyZShtb2RlKSkgewpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3LmMJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTgsNyArMTU4LDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfc2hv
dWxkXwogICAgIHNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSA9IHNoYXJlZF92aWV3LT5z
aGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnk7CiAgICAgc2hhcmVkX2hhbmRsZSA9IHBhc191
bndyYXBfc2hhcmVkX2hhbmRsZShzaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnksICpwYWdl
X2NvbmZpZyk7CiAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHNo
YXJlZF9oYW5kbGUtPnBhZ2VfYm91bmRhcnksICpwYWdlX2NvbmZpZyk7Ci0gICAgcmV0dXJuICFw
YWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzOworICAgIHJldHVybiAhcGFnZS0+bnVtX25vbl9lbXB0
eV93b3Jkc19vcl9saW5lczsKIH0KIAogc3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9z
dW1tYXJ5KHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogdmlldykKQEAgLTE5Miw3ICsxOTIs
NyBAQCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAgICAgIHBh
Z2VfYm91bmRhcnkgPSAodWludHB0cl90KXBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnlfZ2V0X3BhZ2VfYm91bmRhcnkoCiAgICAgICAgICAgICBzaGFyZWRfdmlldy0+c2hhcmVkX2hh
bmRsZV9vcl9wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7CiAgICAgICAgIHBhZ2UgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeSgodm9pZCopcGFnZV9ib3VuZGFyeSwgcGFnZV9j
b25maWcpOwotICAgICAgICBhbGxvY19iaXRzID0gcGFnZS0+YWxsb2NfYml0czsKKyAgICAgICAg
YWxsb2NfYml0cyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfYWxsb2NfYml0cyhwYWdlLCBwYWdlX2Nv
bmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSk7CiAKICAgICAgICAgLyogV2Ug
cmVseSBvbiB0aGUgZmFjdCB0aGF0IHRoZSBvd25lcnNoaXAgbG9jayBpcyB0aGUgcGFnZSBsb2Nr
LiBUaGF0IGhhcyB0byBiZSB0cnVlIGZvcgogICAgICAgICAgICBwYXJ0aWFsIHZpZXdzLCBzaW5j
ZSB0aGV5IGRvIG5vdCBkbyBiaWFzaW5nLiAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsNyArMzk0LDcgQEAgdGFrZV9sYXN0X2VtcHR5X2Nv
bnNpZGVyX3ZpZXcoCiAKICAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBhZ2UgaXNuJ3Qg
YWN0dWFsbHkgZW1wdHkuIEJldHdlZW4gd2hlbiB3ZSB0b29rIHRoZSBlbXB0eSBiaXQgYW5kIGhl
cmUsCiAgICAgICAgc29tZW9uZSBjb3VsZCBoYXZlIGFsbG9jYXRlZCBzb21lIG9iamVjdHMgaW4g
dGhpcyBwYWdlLiAqLwotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9y
X2RlY29tbWl0KHBhZ2UsIHBhZ2VfY29uZmlnKSkKKyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3Bh
Z2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9zaGFyZWRfcm9sZSkpCiAgICAgICAgIGdvdG8gcmV0dXJuX3Rha2VuX3BhcnRpYWxf
dmlld3NfdW5sb2NrX3RoaXNfdmlld19hbmRfcmV0dXJuX3Jlc3VsdDsKIAogICAgIGlmICh2ZXJi
b3NlKQpAQCAtNDMyLDcgKzQzMiw3IEBAIHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KAog
ICAgICAgICBnb3RvIHJldHVybl90YWtlbl9wYXJ0aWFsX3ZpZXdzX2FmdGVyX2RlY29tbWl0Owog
ICAgIH0KICAgICAKLSAgICBpZiAocGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcykgeworICAgIGlm
IChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzKSB7CiAgICAgICAgIHNpemVfdCBu
dW1fY29tbWl0dGVkX2dyYW51bGVzOwogCiAgICAgICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcu
YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmll
dy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMJKHdvcmtp
bmcgY29weSkKQEAgLTE0NCw3ICsxNDQsMTEgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZSogcGFzX3NlZ3JlZwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBwYWdlID0gKHBhc19z
ZWdyZWdhdGVkX3BhZ2UqKQotICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5jcmVhdGVfcGFn
ZV9oZWFkZXIocGFnZV9ib3VuZGFyeSwgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAgICAgICBw
YWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICAgICAgICAgICAgICBwYWdl
X2JvdW5kYXJ5LAorICAgICAgICAgICAgICAgIHBhc19wYWdlX2tpbmRfZm9yX3NlZ3JlZ2F0ZWRf
dmFyaWFudF9hbmRfcm9sZSgKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcudmFyaWFu
dCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSksCisgICAgICAgICAgICAgICAgcGFz
X2xvY2tfaXNfaGVsZCk7CiAgICAgICAgIAogICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19j
b25kaXRpb25hbGx5KAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVh
cF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOwpAQCAtMTUyLDggKzE1Niw3IEBAIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHBhc19zZWdyZWcKICAgICAgICAgaGFuZGxlLT5wYWdl
X2JvdW5kYXJ5ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2NvbmZp
Zyk7CiAKICAgICAgICAgdmlldy0+YnVtcF9vZmZzZXQgPSAodW5zaWduZWQpcGFzX3JvdW5kX3Vw
X3RvX3Bvd2VyX29mXzIoCi0gICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0
X3BheWxvYWRfb2Zmc2V0LAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
bWluX2FsaWduKHBhZ2VfY29uZmlnKSk7CisgICAgICAgICAgICBwYWdlX2NvbmZpZy5zaGFyZWRf
cGF5bG9hZF9vZmZzZXQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihwYWdl
X2NvbmZpZykpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1f
VVNFX0ZPUl9DT01NSVQpIHsKICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCkBA
IC0xNjUsNyArMTY4LDExIEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHBhc19zZWdy
ZWcKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xk
X21vZGUocGFnZV9jb25maWcpKTsKIAogICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGhh
bmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUpOwotICAgICAg
ICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcihoYW5kbGUtPnBhZ2VfYm91bmRh
cnksIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgcGFnZV9jb25maWcuYmFzZS5jcmVh
dGVfcGFnZV9oZWFkZXIoCisgICAgICAgICAgICBoYW5kbGUtPnBhZ2VfYm91bmRhcnksCisgICAg
ICAgICAgICBwYXNfcGFnZV9raW5kX2Zvcl9zZWdyZWdhdGVkX3ZhcmlhbnRfYW5kX3JvbGUoCisg
ICAgICAgICAgICAgICAgcGFnZV9jb25maWcudmFyaWFudCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9z
aGFyZWRfcm9sZSksCisgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAgICAgfQog
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QoCkBAIC0xOTEsNiArMTk4LDcgQEAg
dHlwZWRlZiBzdHJ1Y3Qgewogc3RhdGljIGJvb2wgY29tcHV0ZV9zdW1tYXJ5X2Zvcl9lYWNoX2xp
dmVfb2JqZWN0X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBw
YXNfcmFuZ2UgcmFuZ2UsCisgICAgcGFzX29iamVjdF9saXZlbmVzc19raW5kIGxpdmVuZXNzX2tp
bmQsCiAgICAgdm9pZCogYXJnKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKQEAgLTIwMSw2ICsyMDksNyBAQCBzdGF0aWMgYm9vbCBjb21wdXRlX3N1bW1hcnlfZm9y
X2VhY2hfbGl2CiAgICAgcGFzX3JhbmdlMTYgbXlfcmFuZ2U7CiAKICAgICBQQVNfVU5VU0VEX1BB
UkFNKHZpZXcpOworICAgIFBBU19BU1NFUlQobGl2ZW5lc3Nfa2luZCA9PSBwYXNfZGVmaW5pdGVs
eV9saXZlX29iamVjdF9raW5kKTsKIAogICAgIGRhdGEgPSBhcmc7CiAKQEAgLTI2Myw3ICsyNzIs
NyBAQCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAKICAgICBzdGFy
dF9vZl9wYWdlID0gMDsKICAgICBzdGFydF9vZl9wYXlsb2FkID0gcGFzX3JvdW5kX3VwX3RvX3Bv
d2VyX29mXzIoCi0gICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9v
ZmZzZXQsCisgICAgICAgIHBhZ2VfY29uZmlnLnNoYXJlZF9wYXlsb2FkX29mZnNldCwKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnKSk7CiAg
ICAgZW5kX29mX3BheWxvYWQgPSB2aWV3LT5idW1wX29mZnNldDsKICAgICBlbmRfb2ZfcGFnZSA9
IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmll
dy5oCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNyAr
MTE5LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY2FuX2J1bXAoCiAgICAgdW5zaWdu
ZWQgYnVtcF9saW1pdDsKIAogICAgIGJ1bXBfbGltaXQgPSAodW5zaWduZWQpCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX29iamVjdF9wYXlsb2FkX2VuZF9vZmZzZXRfZnJvbV9i
b3VuZGFyeShwYWdlX2NvbmZpZyk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9zaGFyZWRfcm9sZSk7CiAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXdfY29tcHV0ZV9pbml0aWFsX25ld19idW1wKHZpZXcsIHNpemUsIGFsaWdubWVudCwgcGFnZV9j
b25maWcpOwogCiAgICAgcmV0dXJuIHJlc3VsdC5uZXdfYnVtcCA8PSBidW1wX2xpbWl0OwpAQCAt
MTM4LDcgKzEzOCw3IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvbXB1dGVfbmV3X2IK
IAogICAgIHRvdGFsX3NoaWZ0ID0gcGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQgKyBw
YWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0OwogICAgIGJ1bXBfbGltaXQgPSAodW5zaWduZWQpCi0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX29iamVjdF9wYXlsb2FkX2VuZF9vZmZz
ZXRfZnJvbV9ib3VuZGFyeShwYWdlX2NvbmZpZyk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSk7CiAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXdfY29tcHV0ZV9pbml0aWFsX25ld19idW1wKHZpZXcsIHNpemUsIGFsaWdubWVu
dCwgcGFnZV9jb25maWcpOwogCiAgICAgaWYgKHJlc3VsdC5uZXdfYnVtcCA+IGJ1bXBfbGltaXQp
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4NzA1OSkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJw
YXNfYml0Zml0X2hlYXAuaCIKICNpbmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgi
CiAjaW5jbHVkZSAicGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaCIKKyNp
bmNsdWRlICJwYXNfbGluZV9tZXRhZGF0YS5oIgogI2luY2x1ZGUgInBhc19tb25vdG9uaWNfdGlt
ZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgogI2luY2x1ZGUgInBhc19wYWdlX3No
YXJpbmdfcG9vbC5oIgpAQCAtMjAwLDEwICsyMDEsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogcGFzXwogICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsK
ICAgICB9CiAKLSAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZkYXRh
LT5mdWxsX2FsbG9jX2JpdHMsIE5VTEwpOworICAgIHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0
cl9zdG9yZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzX29yX2xpbmVfbWV0YWRhdGEsIE5VTEwpOwog
ICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gMDsK
ICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVj
dCA9IDA7Ci0gICAgZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID0gMDsKKyAgICBkYXRh
LT5mdWxsX251bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMgPSAwOwogICAgIGRhdGEtPmFsbG9j
YXRvcl9pbmRleCA9IDA7CiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9zdG9yZSgmZGF0YS0+bmV4dF9mb3JfbGF5b3V0LCBOVUxMKTsKIApAQCAt
Mjk2LDI1ICsyOTcsMjQgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVh
dAogdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3Zp
ZXdzKAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7Cisg
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAogICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcqIHBhZ2VfY29uZmlnX3B0cjsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBw
YWdlX2NvbmZpZzsKICAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKLSAgICBzaXplX3QgYWxsb2Nf
Yml0c19ieXRlczsKICAgICB1bnNpZ25lZCBvZmZzZXQ7CiAgICAgdW5zaWduZWQgYmVnaW47CiAg
ICAgdW5zaWduZWQgZW5kOwotICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2JpdHM7Ci0gICAgdW5z
aWduZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwogICAgIHNpemVfdCBpbmRleDsKICAgICBw
YXNfYWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnOwogCiAgICAg
cGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCiAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7
Ci0gICAgaWYgKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcykKKyAgICBpZiAoZGF0YS0+
ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzKQogICAgICAgICByZXR1cm47CiAKICAg
ICBwYWdlX2NvbmZpZ19raW5kID0gZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7CkBA
IC0zMzIsNyArMzMyLDcgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFi
bAogCiAgICAgICAgIHRlbXBsYXRlX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkKCZ0ZW1wbGF0ZV9kaXJlY3RvcnktPmRhdGEpOwogICAgICAgICAKLSAg
ICAgICAgZGF0YS0+ZnVsbF9hbGxvY19iaXRzID0gdGVtcGxhdGVfZGF0YS0+ZnVsbF9hbGxvY19i
aXRzOworICAgICAgICBkYXRhLT5mdWxsX2FsbG9jX2JpdHNfb3JfbGluZV9tZXRhZGF0YSA9IHRl
bXBsYXRlX2RhdGEtPmZ1bGxfYWxsb2NfYml0c19vcl9saW5lX21ldGFkYXRhOwogICAgICAgICBk
YXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9CiAgICAgICAg
ICAgICB0ZW1wbGF0ZV9kYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29i
amVjdDsKICAgICAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2Zf
bGFzdF9vYmplY3QgPQpAQCAtMzQ1LDIxICszNDUsMTMgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9lbmFibAogICAgICAgICB9CiAKICAgICAgICAgcGFzX2ZlbmNlKCk7Ci0g
ICAgICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9Ci0gICAgICAgICAgICB0ZW1w
bGF0ZV9kYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7CisgICAgICAgIGRhdGEtPmZ1bGxf
bnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5lcyA9CisgICAgICAgICAgICB0ZW1wbGF0ZV9kYXRh
LT5mdWxsX251bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXM7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBwYWdlX2NvbmZpZyA9ICpwYWdlX2NvbmZpZ19wdHI7CiAgICAgCi0gICAgYWxs
b2NfYml0c19ieXRlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRl
cyhwYWdlX2NvbmZpZyk7Ci0gICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2ltbW9ydGFsX2hlYXBf
YWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICBhbGxvY19iaXRzX2J5dGVz
LCBzaXplb2YodW5zaWduZWQpLAotICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YS9mdWxsX2FsbG9jX2JpdHMiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24p
OwotICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3RvcmUoJmRhdGEtPmZ1bGxf
YWxsb2NfYml0cywgZnVsbF9hbGxvY19iaXRzKTsKLSAgICBwYXNfemVyb19tZW1vcnkoZnVsbF9h
bGxvY19iaXRzLCBhbGxvY19iaXRzX2J5dGVzKTsKLQogICAgIGJlZ2luID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdF9leGNsdXNp
dmUob2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7
CiAgICAgZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5
X3RvX2VuZF9vZl9sYXN0X29iamVjdF9leGNsdXNpdmUob2JqZWN0X3NpemUsCkBAIC0zNjgsNTEg
KzM2MCwxMDMgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibAogICAg
IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47
CiAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmpl
Y3QgPSBlbmQ7CiAKLSAgICBmb3IgKG9mZnNldCA9IGJlZ2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNl
dCArPSBvYmplY3Rfc2l6ZSkgewotICAgICAgICBwYXNfYml0dmVjdG9yX3NldCgKLSAgICAgICAg
ICAgIGZ1bGxfYWxsb2NfYml0cywKLSAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zf
b2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCi0gICAgICAgICAgICAgICAgb2Zm
c2V0LCBwYWdlX2NvbmZpZy5iYXNlKSwKLSAgICAgICAgICAgIHRydWUpOwotICAgIH0KLSAgICAK
LSAgICBmdWxsX251bV9ub25fZW1wdHlfd29yZHMgPSAwOwotICAgIGZvciAoaW5kZXggPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRl
eC0tOykgewotICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW2luZGV4XSkKLSAgICAgICAgICAg
IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcysrOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKGZ1bGxf
bnVtX25vbl9lbXB0eV93b3Jkcyk7Ci0KLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3Np
emUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgewotICAgICAgICBwYXNfZXh0ZW5k
ZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBleHRlbmRlZF9kYXRhOwotICAgICAg
ICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogZnVsbF91c2VfY291bnRzOwotICAgICAgICB1
aW50cHRyX3QgbnVtX2dyYW51bGVzOwotICAgICAgICBib29sIGluaXRpYWxpemVfcmVzdWx0Owot
Ci0gICAgICAgIGV4dGVuZGVkX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9n
ZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpOwotCi0gICAgICAgIG51bV9ncmFudWxlcyA9IHBh
Z2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemU7
Ci0KLSAgICAgICAgZnVsbF91c2VfY291bnRzID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVf
d2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICAgICAgbnVtX2dyYW51bGVzICogc2l6ZW9m
KHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KSwKLSAgICAgICAgICAgIHNpemVvZihwYXNfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudCksCi0gICAgICAgICAgICAicGFzX2V4dGVuZGVkX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAorICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ191c2VzX2xpbmVzX2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCBwYXNf
c2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSkgeworICAgICAgICBwYXNfbGluZV9tZXRh
ZGF0YSogbGluZV9tZXRhZGF0YTsKKyAgICAgICAgdW5zaWduZWQgZnVsbF9udW1fbm9uX2VtcHR5
X2xpbmVzOworCisgICAgICAgIGxpbmVfbWV0YWRhdGEgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxv
Y2F0ZV93aXRoX21hbnVhbF9hbGlnbm1lbnQoCisgICAgICAgICAgICBwYWdlX2NvbmZpZy5udW1f
bGluZXMgKiBzaXplb2YocGFzX2xpbmVfbWV0YWRhdGEpLCBzaXplb2YocGFzX2xpbmVfbWV0YWRh
dGEpLAorICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEvbGlu
ZV9tZXRhZGF0YSIsCiAgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOworICAgICAg
ICBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHJfc3RvcmUoJmRhdGEtPmZ1bGxfYWxsb2NfYml0
c19vcl9saW5lX21ldGFkYXRhLCBsaW5lX21ldGFkYXRhKTsKKyAgICAgICAgcGFzX3plcm9fbWVt
b3J5KGxpbmVfbWV0YWRhdGEsIHBhZ2VfY29uZmlnLm51bV9saW5lcyAqIHNpemVvZihwYXNfbGlu
ZV9tZXRhZGF0YSkpOwogCi0gICAgICAgIGluaXRpYWxpemVfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9pbml0aWFsaXplX2Z1bGxfdXNlX2NvdW50cygKLSAgICAgICAgICAgIE5VTEwsIGRp
cmVjdG9yeSwgZnVsbF91c2VfY291bnRzLCBudW1fZ3JhbnVsZXMsIHBhZ2VfY29uZmlnKTsKKyAg
ICAgICAgZnVsbF9udW1fbm9uX2VtcHR5X2xpbmVzID0gMDsKKyAgICAgICAgZm9yIChvZmZzZXQg
PSBiZWdpbjsgb2Zmc2V0IDwgZW5kOyBvZmZzZXQgKz0gb2JqZWN0X3NpemUpIHsKKyAgICAgICAg
ICAgIHVpbnRwdHJfdCBsaW5lX2luZGV4OworCisgICAgICAgICAgICBsaW5lX2luZGV4ID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdl
X2JvdW5kYXJ5KAorICAgICAgICAgICAgICAgIG9mZnNldCwgcGFnZV9jb25maWcpOworCisgICAg
ICAgICAgICBpZiAoIWxpbmVfbWV0YWRhdGFbbGluZV9pbmRleF0ubnVtX29iamVjdHMpIHsKKyAg
ICAgICAgICAgICAgICB1aW50cHRyX3Qgb2Zmc2V0X3RvX2ZpcnN0X29iamVjdDsKKyAgICAgICAg
ICAgICAgICBvZmZzZXRfdG9fZmlyc3Rfb2JqZWN0ID0gb2Zmc2V0IC0KKyAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlf
YXRfbGluZV9pbmRleChsaW5lX2luZGV4LCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygib2Zmc2V0ID0gJXUs
IGxpbmVfaW5kZXggPSAlbHUsIG9mZnNldF90b19maXJzdF9vYmplY3QgPSAlbHVcbiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBsaW5lX2luZGV4LCBvZmZzZXRfdG9fZmly
c3Rfb2JqZWN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUEFTX0FTU0VS
VCgodWludDhfdClvZmZzZXRfdG9fZmlyc3Rfb2JqZWN0ID09IG9mZnNldF90b19maXJzdF9vYmpl
Y3QpOworICAgICAgICAgICAgICAgIGxpbmVfbWV0YWRhdGFbbGluZV9pbmRleF0ub2Zmc2V0X3Rv
X2ZpcnN0X29iamVjdCA9ICh1aW50OF90KW9mZnNldF90b19maXJzdF9vYmplY3Q7CisgICAgICAg
ICAgICAgICAgZnVsbF9udW1fbm9uX2VtcHR5X2xpbmVzKys7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBsaW5lX21ldGFkYXRhW2xpbmVfaW5kZXhdLm51bV9vYmplY3RzKys7CisgICAgICAg
ICAgICBQQVNfQVNTRVJUKGxpbmVfbWV0YWRhdGFbbGluZV9pbmRleF0ubnVtX29iamVjdHMpOwor
ICAgICAgICB9CisgICAgICAgIFBBU19BU1NFUlQoZnVsbF9udW1fbm9uX2VtcHR5X2xpbmVzKTsK
IAotICAgICAgICAvKiBUaGlzIHNob3VsZCBoYXZlIGluaXRpYWxpemVkIGFsbCBvZiB0aGUgYml0
cy4gKi8KLSAgICAgICAgUEFTX0FTU0VSVChpbml0aWFsaXplX3Jlc3VsdCk7CisgICAgICAgIHBh
c19mZW5jZSgpOworICAgICAgICBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHNfb3JfbGlu
ZXMgPSBmdWxsX251bV9ub25fZW1wdHlfbGluZXM7CisgICAgICAgIFBBU19BU1NFUlQoZGF0YS0+
ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzID09IGZ1bGxfbnVtX25vbl9lbXB0eV9s
aW5lcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGFsbG9jX2JpdHNfYnl0ZXM7Cisg
ICAgICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2JpdHM7CisgICAgICAgIHVuc2lnbmVkIGZ1bGxf
bnVtX25vbl9lbXB0eV93b3JkczsKKyAgICAgICAgCisgICAgICAgIGFsbG9jX2JpdHNfYnl0ZXMg
PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2NfYnl0ZXMocGFnZV9jb25maWcp
OworICAgICAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93
aXRoX21hbnVhbF9hbGlnbm1lbnQoCisgICAgICAgICAgICBhbGxvY19iaXRzX2J5dGVzLCBzaXpl
b2YodW5zaWduZWQpLAorICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RhdGEvZnVsbF9hbGxvY19iaXRzIiwKKyAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlv
bik7CisgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0cl9zdG9yZSgmZGF0YS0+ZnVs
bF9hbGxvY19iaXRzX29yX2xpbmVfbWV0YWRhdGEsIGZ1bGxfYWxsb2NfYml0cyk7CisgICAgICAg
IHBhc196ZXJvX21lbW9yeShmdWxsX2FsbG9jX2JpdHMsIGFsbG9jX2JpdHNfYnl0ZXMpOwogCi0g
ICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9y
ZSgKLSAgICAgICAgICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3VzZV9jb3VudHMsCi0gICAgICAg
ICAgICBmdWxsX3VzZV9jb3VudHMpOwotICAgIH0KKyAgICAgICAgZm9yIChvZmZzZXQgPSBiZWdp
bjsgb2Zmc2V0IDwgZW5kOyBvZmZzZXQgKz0gb2JqZWN0X3NpemUpIHsKKyAgICAgICAgICAgIHBh
c19iaXR2ZWN0b3Jfc2V0KAorICAgICAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cywKKyAgICAg
ICAgICAgICAgICBwYXNfcGFnZV9iYXNlX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9w
YWdlX2JvdW5kYXJ5KAorICAgICAgICAgICAgICAgICAgICBvZmZzZXQsIHBhZ2VfY29uZmlnLmJh
c2UpLAorICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICB9CisgICAgCisgICAgICAgIGZ1
bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IDA7CisgICAgICAgIGZvciAoaW5kZXggPSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRleC0t
OykgeworICAgICAgICAgICAgaWYgKGZ1bGxfYWxsb2NfYml0c1tpbmRleF0pCisgICAgICAgICAg
ICAgICAgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzKys7CisgICAgICAgIH0KKyAgICAgICAgUEFT
X0FTU0VSVChmdWxsX251bV9ub25fZW1wdHlfd29yZHMpOwogCi0gICAgcGFzX2ZlbmNlKCk7Ci0g
ICAgZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID0gZnVsbF9udW1fbm9uX2VtcHR5X3dv
cmRzOwotICAgIFBBU19BU1NFUlQoZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID09IGZ1
bGxfbnVtX25vbl9lbXB0eV93b3Jkcyk7CisgICAgICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBh
Z2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAgICAgICBw
YXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBleHRlbmRlZF9kYXRh
OworICAgICAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIGZ1bGxfdXNlX2NvdW50
czsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBudW1fZ3JhbnVsZXM7CisgICAgICAgICAgICBib29s
IGluaXRpYWxpemVfcmVzdWx0OworCisgICAgICAgICAgICBleHRlbmRlZF9kYXRhID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5KTsKKwor
ICAgICAgICAgICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBw
YWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZTsKKworICAgICAgICAgICAgZnVsbF91c2VfY291
bnRzID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAor
ICAgICAgICAgICAgICAgIG51bV9ncmFudWxlcyAqIHNpemVvZihwYXNfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudCksCisgICAgICAgICAgICAgICAgc2l6ZW9mKHBhc19wYWdlX2dyYW51bGVfdXNlX2Nv
dW50KSwKKyAgICAgICAgICAgICAgICAicGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAorICAgICAgICAgICAgICAgIHBhc19vYmplY3Rf
YWxsb2NhdGlvbik7CisKKyAgICAgICAgICAgIGluaXRpYWxpemVfcmVzdWx0ID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9pbml0aWFsaXplX2Z1bGxfdXNlX2NvdW50cygKKyAgICAgICAgICAgICAgICBk
aXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7CisK
KyAgICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIGhhdmUgaW5pdGlhbGl6ZWQgYWxsIG9mIHRoZSBi
aXRzLiAqLworICAgICAgICAgICAgUEFTX0FTU0VSVChpbml0aWFsaXplX3Jlc3VsdCk7CisKKyAg
ICAgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9z
dG9yZSgKKyAgICAgICAgICAgICAgICAmZXh0ZW5kZWRfZGF0YS0+ZnVsbF91c2VfY291bnRzLAor
ICAgICAgICAgICAgICAgIGZ1bGxfdXNlX2NvdW50cyk7CisgICAgICAgIH0KKworICAgICAgICBw
YXNfZmVuY2UoKTsKKyAgICAgICAgZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xp
bmVzID0gZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgICAgICBQQVNfQVNTRVJUKGRhdGEt
PmZ1bGxfbnVtX25vbl9lbXB0eV93b3Jkc19vcl9saW5lcyA9PSBmdWxsX251bV9ub25fZW1wdHlf
d29yZHMpOworICAgIH0KIAogICAgIHBhc19ib290c3RyYXBfZnJlZV9oZWFwX2FsbG9jYXRpb25f
Y29uZmlnX2NvbnN0cnVjdCgmYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnLCBwYXNfbG9ja19p
c19oZWxkKTsKICAgICAKQEAgLTcwMCw3ICs3NDQsOCBAQCB0YWtlX2xhc3RfZW1wdHlfY29uc2lk
ZXJfdmlldyhwYXNfc2VncmVnCiAgICAgCiAgICAgLyogVGhlIGVtcHR5IGJpdCBqdXN0IG1lYW5z
IHRoYXQgdGhlIHBhZ2UgKmNvdWxkKiBiZSBlbXB0eS4gSXQncyBwb3NzaWJsZSB0byBjb21lIGhl
cmUgYW5kIGZpbmQKICAgICAgICBhIG5vbi1lbXB0eSBwYWdlLiBJbiB0aGF0IGNhc2Ugd2UgbWFr
ZSB0aGUgcGFnZSBlbGlnaWJsZSBhZ2FpbiBidXQgbGVhdmUgdGhlIGVtcHR5IGJpdCBjbGVhci4g
Ki8KLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdChw
YWdlLCBteV9wYWdlX2NvbmZpZykpIHsKKyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfcXVh
bGlmaWVzX2Zvcl9kZWNvbW1pdCgKKyAgICAgICAgICAgIHBhZ2UsIG15X3BhZ2VfY29uZmlnLCBw
YXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSkgewogICAgICAgICBpZiAodmVyYm9z
ZSkKICAgICAgICAgICAgIHBhc19sb2coIndhcyBub3QgZW1wdHkuXG4iKTsKICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChk
aXJlY3RvcnksIGluZGV4KTsKQEAgLTczMyw3ICs3NzgsOCBAQCB0YWtlX2xhc3RfZW1wdHlfY29u
c2lkZXJfdmlldyhwYXNfc2VncmVnCiAgICAgLyogSXQncyB0b3RhbGx5IHBvc3NpYmxlIHRoYXQg
dGhlIGVtcHR5IGJpdCBnb3Qgc2V0IGFnYWluLiBXZSBzaG91bGQgY2xlYXIgaXQgZm9yIHN1cmUg
bm93LiAqLwogICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwg
aW5kZXgsIGVtcHR5LCBmYWxzZSk7CiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSk7
CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zv
cl9kZWNvbW1pdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UsIG15X3BhZ2VfY29u
ZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSk7CiAgICAgCiAgICAgaWYg
KHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKSB7
CiAgICAgICAgIFBBU19BU1NFUlQobXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gbXlf
cGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpOwpAQCAtNzU2LDcgKzgwMiw3IEBAIHRha2Vf
bGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KHBhc19zZWdyZWcKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIAotICAgIGlmIChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKSB7CisgICAg
aWYgKHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHNfb3JfbGluZXMpIHsKICAgICAgICAgYm9vbCBk
ZWNvbW1pdF9yZXN1bHQ7CiAgICAgICAgIHNpemVfdCBudW1fY29tbWl0dGVkX2dyYW51bGVzOwog
ICAgICAgICAKQEAgLTk4OSw2ICsxMDM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgewogc3RhdGljIGJv
b2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldywKICAgICBwYXNfcmFuZ2UgcmFuZ2UsCisgICAgcGFzX29iamVjdF9saXZl
bmVzc19raW5kIGxpdmVuZXNzX2tpbmQsCiAgICAgdm9pZCogYXJnKQogewogICAgIGZvcl9lYWNo
X2xpdmVfb2JqZWN0X2RhdGEqIGRhdGE7CkBAIC05OTcsNyArMTA0NCw3IEBAIHN0YXRpYyBib29s
IGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF8KIAogICAgIFBBU19BU1NFUlQoZGF0YS0+ZGly
ZWN0b3J5LT5vYmplY3Rfc2l6ZSA9PSBwYXNfcmFuZ2Vfc2l6ZShyYW5nZSkpOwogCi0gICAgcmV0
dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmRpcmVjdG9yeSwgdmlldywgcmFuZ2UuYmVnaW4sIGRh
dGEtPmFyZyk7CisgICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmRpcmVjdG9yeSwgdmll
dywgcmFuZ2UuYmVnaW4sIGxpdmVuZXNzX2tpbmQsIGRhdGEtPmFyZyk7CiB9CiAKIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKICNpbmNsdWRlICJwYXNf
Y29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgiCiAjaW5jbHVk
ZSAicGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgiCi0jaW5j
bHVkZSAicGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oIgorI2luY2x1ZGUgInBhc19j
b21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKICNpbmNs
dWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9ncmFudWxlX3VzZV9j
b3VudC5oIgpAQCAtOTcsOSArOTcsMTUgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2RhdAogICAgIAogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4
OwogICAgIAotICAgIHVpbnQ4X3QgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgIHVpbnQ4
X3QgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzX29yX2xpbmVzOwogCi0gICAgcGFzX2NvbXBhY3Rf
dGFnZ2VkX3Vuc2lnbmVkX3B0ciBmdWxsX2FsbG9jX2JpdHM7IC8qIFByZWNvbXB1dGVkIGFsbG9j
IGJpdHMgaW4gdGhlIGNhc2UgdGhhdCBhIHBhZ2UgaXMgZW1wdHkuICovCisgICAgLyogVGhpcyBw
b2ludHMgdG8gZGlmZmVyZW50IHRoaW5ncyBkZXBlbmRpbmcgb24gd2hldGhlciBleGNsdXNpdmVz
IGFyZSB1c2luZyBsaW5lIGFsbG9jYXRpb24gb3Igbm90LgorICAgICAKKyAgICAgICBJZiBub3Qg
dXNpbmcgbGluZSBhbGxvY2F0aW9uOiB0aGlzIGhvbGRzIHRoZSBwcmVjb21wdXRlZCBhbGxvYyBi
aXRzIGlmIGFsbCBvYmplY3RzIGluIHRoZSBwYWdlIHdlcmUKKyAgICAgICBhbGxvY2F0ZWQuCisg
ICAgCisgICAgICAgSWYgdXNpbmcgbGluZSBhbGxvY2F0aW9uOiB0aGlzIGhvbGRzIHRoZSBvZmZz
ZXQgdmVjdG9yIGFuZCB0aGUgZnVsbCBsaW5lIHZlY3Rvci4gKi8KKyAgICBwYXNfY29tcGFjdF90
YWdnZWRfdm9pZF9wdHIgZnVsbF9hbGxvY19iaXRzX29yX2xpbmVfbWV0YWRhdGE7CiAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X2Zvcl9s
YXlvdXQ7CiB9OwogCkBAIC0zMTgsNyArMzI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19z
ZWdyZWdhdGVkX3NpemVfZAogewogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGEqIGRhdGE7CiAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFf
cHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgcmV0dXJuIGRhdGEgJiYgZGF0YS0+ZnVs
bF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgIHJldHVybiBkYXRhICYmIGRhdGEtPmZ1bGxfbnVt
X25vbl9lbXB0eV93b3Jkc19vcl9saW5lczsKIH0KIAogUEFTX0FQSSBwYXNfc2VncmVnYXRlZF92
aWV3IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCkBA
IC0zNDIsNiArMzQ4LDcgQEAgdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
YwogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgIHVpbnRwdHJfdCBiZWdpbiwKKyAgICBwYXNfb2Jq
ZWN0X2xpdmVuZXNzX2tpbmQgbGl2ZW5lc3Nfa2luZCwKICAgICB2b2lkKiBhcmcpOwogCiBQQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmpl
Y3QoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5o
CShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTkxLDE0ICs5MSwxNCBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxs
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcodm9pZCkKIHsKLSAg
ICByZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKDApOworICAgIHJldHVybiBQQVNfTE9D
QUxfQUxMT0NBVE9SX1NJWkUoMCwgMCk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBz
aXplX3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVf
Zm9yX2NvbmZpZygKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCiB7CiAg
ICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAgICByZXR1cm4gUEFTX0xP
Q0FMX0FMTE9DQVRPUl9TSVpFKGNvbmZpZy5udW1fYWxsb2NfYml0cyk7CisgICAgcmV0dXJuIFBB
U19MT0NBTF9BTExPQ0FUT1JfU0laRShjb25maWcubnVtX2FsbG9jX2JpdHMsIGNvbmZpZy5udW1f
bGluZXMpOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0b3JfaW5kZXgKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF92aWV3LmMJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCiAKICNpbmNsdWRlICJwYXNf
ZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfbGluZV9tZXRhZGF0YS5o
IgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3LmgiCkBAIC0yOTUsNiArMjk2LDggQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hf
bGl2ZV9vYmplY3QoCiAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnk7CiAgICAgc2l6ZV90IGlu
ZGV4OwogICAgIHNpemVfdCBvYmplY3Rfc2l6ZTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3Jv
bGUgcm9sZTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owog
CiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKHZpZXcpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTM2NCwxMSArMzY3LDU3IEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xp
dmVfb2JqZWN0KAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBmdWxsX2FsbG9j
X2JpdHMgPSBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3Jfdmlldyh2aWV3LCBwYWdlX2Nv
bmZpZyk7CiAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2Uodmlldyk7Cisg
ICAgcm9sZSA9IHBhc19wYWdlX2tpbmRfZ2V0X3NlZ3JlZ2F0ZWRfcm9sZShwYXNfcGFnZV9iYXNl
X2dldF9raW5kKCZwYWdlLT5iYXNlKSk7CiAgICAgcGFnZV9ib3VuZGFyeSA9ICh1aW50cHRyX3Qp
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2NvbmZpZyk7Ci0gICAgb2Jq
ZWN0X3NpemUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+
b2JqZWN0X3NpemU7CisgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6
ZV9kaXJlY3Rvcnkodmlldyk7CisgICAgb2JqZWN0X3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9z
aXplOworCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3VzZXNfbGluZXNfZm9y
X3JvbGUocGFnZV9jb25maWcsIHJvbGUpKSB7CisgICAgICAgIHBhc19saW5lX21ldGFkYXRhKiBs
aW5lX21ldGFkYXRhOworICAgICAgICAKKyAgICAgICAgUEFTX0FTU0VSVChyb2xlID09IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpOworICAgICAgICBQQVNfQVNTRVJUKG9iamVj
dF9zaXplID09IHBhZ2UtPm9iamVjdF9zaXplKTsKKworICAgICAgICBsaW5lX21ldGFkYXRhID0g
cGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICAgICAm
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKKyAg
ICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5kYXRhKS0+ZnVsbF9hbGxvY19iaXRzX29yX2xpbmVf
bWV0YWRhdGEpOworCisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhZ2VfY29uZmln
Lm51bV9saW5lczsgKytpbmRleCkgeworICAgICAgICAgICAgdWludHB0cl90IG9iamVjdDsKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGFjdHVhbF9udW1fb2JqZWN0c19pbl9saW5lOworICAgICAgICAg
ICAgdW5zaWduZWQgbWF4X251bV9vYmplY3RzX2luX2xpbmU7CisgICAgICAgICAgICB1bnNpZ25l
ZCBpbmRleF9vZl9vYmplY3RfaW5fbGluZTsKKworICAgICAgICAgICAgYWN0dWFsX251bV9vYmpl
Y3RzX2luX2xpbmUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2xpbmVzKHBhZ2UsIHBhZ2VfY29uZmln
LCByb2xlKVtpbmRleF07CisgICAgICAgICAgICBpZiAoIWFjdHVhbF9udW1fb2JqZWN0c19pbl9s
aW5lKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAgICBtYXhfbnVtX29i
amVjdHNfaW5fbGluZSA9IGxpbmVfbWV0YWRhdGFbaW5kZXhdLm51bV9vYmplY3RzOworICAgICAg
ICAgICAgUEFTX0FTU0VSVChtYXhfbnVtX29iamVjdHNfaW5fbGluZSk7CisgICAgICAgICAgICBQ
QVNfQVNTRVJUKG1heF9udW1fb2JqZWN0c19pbl9saW5lID49IGFjdHVhbF9udW1fb2JqZWN0c19p
bl9saW5lKTsKKworICAgICAgICAgICAgb2JqZWN0ID0gcGFnZV9ib3VuZGFyeSArCisgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9saW5lX29mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnlfYXRfbGluZV9pbmRleChpbmRleCwgcGFnZV9jb25maWcpICsKKyAgICAgICAgICAgICAgICBs
aW5lX21ldGFkYXRhW2luZGV4XS5vZmZzZXRfdG9fZmlyc3Rfb2JqZWN0OworCisgICAgICAgICAg
ICBmb3IgKGluZGV4X29mX29iamVjdF9pbl9saW5lID0gMDsKKyAgICAgICAgICAgICAgICAgaW5k
ZXhfb2Zfb2JqZWN0X2luX2xpbmUgPCBtYXhfbnVtX29iamVjdHNfaW5fbGluZTsKKyAgICAgICAg
ICAgICAgICAgKytpbmRleF9vZl9vYmplY3RfaW5fbGluZSwgb2JqZWN0ICs9IG9iamVjdF9zaXpl
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFjYWxsYmFjayh2aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShvYmplY3QsIG9iamVjdCArIG9iamVjdF9z
aXplKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9udW1fb2JqZWN0c19p
bl9saW5lID09IG1heF9udW1fb2JqZWN0c19pbl9saW5lCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA/IHBhc19kZWZpbml0ZWx5X2xpdmVfb2JqZWN0X2tpbmQgOiBwYXNfcG9zc2libHlf
bGl2ZV9vYmplY3Rfa2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZykpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgZnVsbF9hbGxv
Y19iaXRzID0gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXcodmlldywgcGFnZV9j
b25maWcpOworICAgIAogICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coInBhZ2Ug
PSAlcCwgZ290IGFsbG9jIGJpdHMgcmFuZ2UgJXUuLi4ldS5cbiIsCiAgICAgICAgICAgICAgICAg
cGFnZSwKQEAgLTM3NiwxMyArNDI1LDcgQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmpl
Y3QoCiAgICAgICAgICAgICAgICAgZnVsbF9hbGxvY19iaXRzLndvcmRfaW5kZXhfZW5kKTsKICAg
ICB9CiAKLSAgICAvKiBGSVhNRTogUHJldHR5IHN1cmUgdGhpcyBjYW4ganVzdCBzdGFydCBhdCB3
b3JkX2luZGV4X2JlZ2luLiAqLwotICAgIGZvciAoaW5kZXggPSBQQVNfTUFYKAotICAgICAgICAg
ICAgIFBBU19CSVRWRUNUT1JfQklUX0lOREVYKGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2Jl
Z2luKSwKLSAgICAgICAgICAgICBwYXNfcGFnZV9iYXNlX2luZGV4X29mX29iamVjdF9hdF9vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5KAotICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KAotICAgICAgICAg
ICAgICAgICAgICAgcGFnZSwgTlVMTCwgcGFnZV9jb25maWcpLAotICAgICAgICAgICAgICAgICBw
YWdlX2NvbmZpZy5iYXNlKSk7CisgICAgZm9yIChpbmRleCA9IFBBU19CSVRWRUNUT1JfQklUX0lO
REVYKGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2JlZ2luKTsKICAgICAgICAgIGluZGV4IDwg
UEFTX0JJVFZFQ1RPUl9CSVRfSU5ERVgoZnVsbF9hbGxvY19iaXRzLndvcmRfaW5kZXhfZW5kKTsK
ICAgICAgICAgICsraW5kZXgpIHsKICAgICAgICAgdWludHB0cl90IG9iamVjdDsKQEAgLTM5Niw3
ICs0MzksNyBAQCBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29iamVjdCgKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldChw
YWdlLT5hbGxvY19iaXRzLCBpbmRleCkpIHsKKyAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dl
dChwYXNfc2VncmVnYXRlZF9wYWdlX2FsbG9jX2JpdHMocGFnZSwgcGFnZV9jb25maWcsIHJvbGUp
LCBpbmRleCkpIHsKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIHBh
c19sb2coIklzbid0IGFsbG9jYXRlZC5cbiIpOwogICAgICAgICAgICAgY29udGludWU7CkBAIC00
MDksNyArNDUyLDEwIEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAgICAg
ICAgICAgcGFzX3BhZ2VfYmFzZV9vYmplY3Rfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV9hdF9p
bmRleCgKICAgICAgICAgICAgICAgICAodW5zaWduZWQpaW5kZXgsIHBhZ2VfY29uZmlnLmJhc2Up
OwogCi0gICAgICAgIGlmICghY2FsbGJhY2sodmlldywgcGFzX3JhbmdlX2NyZWF0ZShvYmplY3Qs
IG9iamVjdCArIG9iamVjdF9zaXplKSwgYXJnKSkKKyAgICAgICAgaWYgKCFjYWxsYmFjayh2aWV3
LAorICAgICAgICAgICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUob2JqZWN0LCBvYmplY3Qg
KyBvYmplY3Rfc2l6ZSksCisgICAgICAgICAgICAgICAgICAgICAgcGFzX2RlZmluaXRlbHlfbGl2
ZV9vYmplY3Rfa2luZCwKKyAgICAgICAgICAgICAgICAgICAgICBhcmcpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNDQyLDYgKzQ4OCw4IEBAIHN0YXRpYyBwYXNfdHJp
X3N0YXRlIHNob3VsZF9iZV9lbGlnaWJsZSgKICAgICBwYXNfZnVsbF9hbGxvY19iaXRzIGZ1bGxf
YWxsb2NfYml0czsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwogICAgIHNpemVfdCBp
bmRleDsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZTsKKyAgICB1bnNpZ25lZCog
cGFnZV9hbGxvY19iaXRzOwogCiAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgcGFzX2xvZygi
Q2hlY2tpbmcgc2hvdWxkIGVsaWdpYmxlIGluIG93bmVkIHZpZXcgJXAoJXMpLlxuIiwKQEAgLTQ2
Myw3ICs1MTEsOCBAQCBzdGF0aWMgcGFzX3RyaV9zdGF0ZSBzaG91bGRfYmVfZWxpZ2libGUoCiAg
ICAgICAgICAgICBwYXNfbG9nKCJDaGVja2luZyBpZiBjYW4gYnVtcCBmb3Igc2hhcmVkIHZpZXcg
JXAsIGJ1bXAgJXUsIG1heCBvYmplY3Qgc2l6ZSAlenUsICIKICAgICAgICAgICAgICAgICAgICAg
ImJ1bXAgbGltaXQgJXp1XG4iLAogICAgICAgICAgICAgICAgICAgICBzaGFyZWRfdmlldywgc2hh
cmVkX3ZpZXctPmJ1bXBfb2Zmc2V0LCBwYWdlX2NvbmZpZy0+YmFzZS5tYXhfb2JqZWN0X3NpemUs
Ci0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX29iamVjdF9w
YXlsb2FkX2VuZF9vZmZzZXRfZnJvbV9ib3VuZGFyeSgqcGFnZV9jb25maWcpKTsKKyAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9lbmRfb2Zmc2V0
X2Zvcl9yb2xlKAorICAgICAgICAgICAgICAgICAgICAgICAgKnBhZ2VfY29uZmlnLCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IFBBU19BU1NFUlQoKHVuc2lnbmVkKXBhZ2VfY29uZmlnLT5iYXNlLm1heF9vYmplY3Rfc2l6ZSA9
PSBwYWdlX2NvbmZpZy0+YmFzZS5tYXhfb2JqZWN0X3NpemUpOwpAQCAtNDc5LDggKzUyOCwyOCBA
QCBzdGF0aWMgcGFzX3RyaV9zdGF0ZSBzaG91bGRfYmVfZWxpZ2libGUoCiAgICAgICAgIHJldHVy
biBwYXNfdHJpX3N0YXRlX3llczsKICAgICAKICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfcGFnZSh2aWV3KTsKKyAgICByb2xlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZV9yb2xlX2Zvcl9hbGxvY2F0b3Iodmlldyk7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdXNlc19saW5lc19mb3Jfcm9sZSgqcGFnZV9jb25maWcsIHJvbGUpKSB7CisgICAg
ICAgIHVpbnQ4X3QqIGxpbmVzOworICAgICAgICBwYXNfbGluZV9tZXRhZGF0YSogbGluZV9tZXRh
ZGF0YTsKKworICAgICAgICBsaW5lcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbGluZXMocGFnZSwg
KnBhZ2VfY29uZmlnLCByb2xlKTsKKyAgICAgICAgbGluZV9tZXRhZGF0YSA9IChwYXNfbGluZV9t
ZXRhZGF0YSopcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyX2xvYWRfbm9uX251bGwoCisgICAg
ICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25f
bnVsbCgKKyAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICAgICAgICAgJnBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+ZGlyZWN0b3J5KS0+ZGF0YSkKKyAgICAgICAg
ICAgIC0+ZnVsbF9hbGxvY19iaXRzX29yX2xpbmVfbWV0YWRhdGEpOworICAgICAgICAKKyAgICAg
ICAgZm9yIChpbmRleCA9IHBhZ2VfY29uZmlnLT5udW1fbGluZXM7IGluZGV4LS07KSB7CisgICAg
ICAgICAgICBpZiAobGluZV9tZXRhZGF0YVtpbmRleF0ubnVtX29iamVjdHMgJiYgIWxpbmVzW2lu
ZGV4XSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV95ZXM7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHBhc190cmlfc3RhdGVfbm87CisgICAgfQogCiAgICAgZnVsbF9h
bGxvY19iaXRzID0gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXcodmlldywgKnBh
Z2VfY29uZmlnKTsKKyAgICBwYWdlX2FsbG9jX2JpdHMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Fs
bG9jX2JpdHMocGFnZSwgKnBhZ2VfY29uZmlnLCByb2xlKTsKIAogICAgIGlmICh2ZXJib3NlKSB7
CiAgICAgICAgIHBhc19sb2coInBhZ2UgPSAlcCwgZ290IGFsbG9jIGJpdHMgcmFuZ2UgJXUuLi4l
dS5cbiIsCkBAIC00OTgsOSArNTY3LDkgQEAgc3RhdGljIHBhc190cmlfc3RhdGUgc2hvdWxkX2Jl
X2VsaWdpYmxlKAogICAgICAgICAgICAgICsraW5kZXgpIHsKICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKSB7CiAgICAgICAgICAgICAgICAgcGFzX2xvZygiaW5kZXggPSAlenUsIGZ1bGwgYWxsb2Mg
Yml0cyB3b3JkID0gJXUsIGFsbG9jIGJpdHMgd29yZCA9ICV1XG4iLAotICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kZXgsIGZ1bGxfYWxsb2NfYml0cy5iaXRzW2luZGV4XSwgcGFnZS0+YWxsb2Nf
Yml0c1tpbmRleF0pOworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIGZ1bGxfYWxsb2Nf
Yml0cy5iaXRzW2luZGV4XSwgcGFnZV9hbGxvY19iaXRzW2luZGV4XSk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzLmJpdHNbaW5kZXhdICYmICFwYWdlLT5h
bGxvY19iaXRzW2luZGV4XSkKKyAgICAgICAgICAgIGlmIChmdWxsX2FsbG9jX2JpdHMuYml0c1tp
bmRleF0gJiYgIXBhZ2VfYWxsb2NfYml0c1tpbmRleF0pCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHBhc190cmlfc3RhdGVfeWVzOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXNfdHJpX3N0
YXRlX25vOwpAQCAtNTE4LDcgKzU4Nyw3IEBAIHN0YXRpYyBwYXNfdHJpX3N0YXRlIHNob3VsZF9i
ZV9lbGlnaWJsZSgKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKCFwYXNfYml0dmVjdG9yX2dldChwYWdlLT5hbGxvY19iaXRzLCBpbmRleCkpIHsKKyAgICAg
ICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldChwYWdlX2FsbG9jX2JpdHMsIGluZGV4KSkgewogICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFzX2xvZygiSXNuJ3QgYWxs
b2NhdGVkLlxuIik7CiAgICAgICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV95ZXM7CkBAIC02
MjIsMTAgKzY5MSwxMiBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUocGFz
CiAKIHN0YXRpYyBib29sIGlzX3BheWxvYWRfZW1wdHlfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmFu
Z2UgcmFuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19vYmpl
Y3RfbGl2ZW5lc3Nfa2luZCBsaXZlbmVzc19raW5kLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2b2lkICphcmcpCiB7CiAgICAgUEFTX1VOVVNFRF9QQVJBTSh2aWV3KTsK
ICAgICBQQVNfVU5VU0VEX1BBUkFNKHJhbmdlKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGxpdmVu
ZXNzX2tpbmQpOwogICAgIFBBU19VTlVTRURfUEFSQU0oYXJnKTsKICAgICByZXR1cm4gZmFsc2U7
CiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfdmlldy5oCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJwYXNfaGVhcF9zdW1tYXJ5LmgiCiAjaW5jbHVk
ZSAicGFzX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCisjaW5jbHVkZSAicGFzX29iamVj
dF9saXZlbmVzc19raW5kLmgiCiAjaW5jbHVkZSAicGFzX3JhbmdlLmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3ZpZXdfa2luZC5oIgpAQCAtMjAwLDEyICsyMDEsMTIgQEAgUEFTX0FQSSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyogcGFzXwogCiBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
cm9sZSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX3JvbGVfZm9yX293bmVyKHBhc19zZWdy
ZWdhdGVkX3ZpZXcgdmlldykKIHsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
X2dldF9yb2xlX2Zvcl9vd25lcihwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKTsK
KyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9wYWdlX3JvbGVfZm9yX293
bmVyKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOwogfQogCiBzdGF0aWMgaW5s
aW5lIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdl
X3JvbGVfZm9yX2FsbG9jYXRvcihwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7Ci0gICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfcm9sZV9mb3JfYWxsb2NhdG9yKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOworICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmRfZ2V0X3BhZ2Vfcm9sZV9mb3JfYWxsb2NhdG9yKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2tpbmQodmlldykpOwogfQogCiBQQVNfQVBJIHNpemVfdCBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9pbmRleChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwpAQCAtMjQ3LDYgKzI0OCw3
IEBAIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZW0KIHR5cGVkZWYgYm9v
bCAoKnBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2spKAog
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBwYXNfcmFuZ2UgcmFuZ2UsCisgICAg
cGFzX29iamVjdF9saXZlbmVzc19raW5kIGxpdmVuZXNzX2tpbmQsCiAgICAgdm9pZCogYXJnKTsK
IAogLyogSXQncyBiZXN0IHRvIGNhbGwgdGhpcyB3aXRob3V0IGhvbGRpbmcgbG9ja3MuIFRoaXMg
d2lsbCBncmFiIHRoZSBvd25lcnNoaXAgbG9jayBvZiB0aGUgdmlldyB0bwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3Jf
aW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg3MDU5
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmll
d19hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDggQEAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5i
YXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfcGFnZV9raW5kX2Zvcl9zZWdyZWdhdGVkX3ZhcmlhbnRfYW5kX3JvbGUoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy52YXJpYW50LCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhl
YXBfbG9ja19ob2xkX21vZGUpOwpAQCAtMTg3LDYgKzE4OSw4IEBAIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfd2lsbF9zdGFydF9hbGxvY2F0aW4KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgcGFnZV9jb25maWcuYmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCiAgICAgICAgICAgICAgICAg
ICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgcGFzX3Bh
Z2Vfa2luZF9mb3Jfc2VncmVnYXRlZF92YXJpYW50X2FuZF9yb2xlKAorICAgICAgICAgICAgICAg
ICAgICAgICAgcGFnZV9jb25maWcudmFyaWFudCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNp
dmVfcm9sZSksCiAgICAgICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CkBAIC0zOTcs
NyArNDAxLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAogICAg
ICAgICBpZiAoc2hvdWxkX2NvbnNpZGVyX2VtcHRpbmVzcykgewogICAgICAgICAgICAgc2hvdWxk
X25vdGlmeV9lbXB0aW5lc3MgPQogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
cXVhbGlmaWVzX2Zvcl9kZWNvbW1pdCgKLSAgICAgICAgICAgICAgICAgICAgcGFnZSwgcGFnZV9j
b25maWcpOworICAgICAgICAgICAgICAgICAgICBwYWdlLCBwYWdlX2NvbmZpZywgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGFydGlh
bF92aWV3LT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJyZWQpIHsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19rCiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlCi1w
YXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X3JvbGVfZm9yX293bmVyKHBhc19zZWdyZWdhdGVk
X3ZpZXdfa2luZCBraW5kKQorcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9wYWdlX3JvbGVf
Zm9yX293bmVyKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5kKQogewogICAgIHN3aXRjaCAo
a2luZCkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKQEAg
LTEwNSw3ICsxMDUsNyBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X3JvbGVfZm9yX293
CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlCi1wYXNfc2VncmVn
YXRlZF92aWV3X2tpbmRfZ2V0X3JvbGVfZm9yX2FsbG9jYXRvcihwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmQga2luZCkKK3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfcGFnZV9yb2xlX2Zvcl9h
bGxvY2F0b3IocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChr
aW5kKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NoYXJlZF9oYW5kbGVfb3Jf
cGFnZV9ib3VuZGFyeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVz
LmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw3ICs0MCw5IEBAIHBhc193cmFwX3NoYXJlZF9oYW5kbGUocGFzX3NlZ3JlZ2F0
ZWRfc2gKIHsKICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHko
cGFnZV9jb25maWcpKSB7CiAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRl
ZF9wYWdlX2lzX2FsbG9jYXRlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWlu
dHB0cl90KWhhbmRsZSwgUEFTX1VUSUxJVFlfSEVBUF9DT05GSUcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludHB0cl90KWhhbmRs
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfVVRJTElUWV9IRUFQX0NPTkZJ
Ry5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSk7CiAgICAgfQogICAgIHJldHVy
biAocGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSkoKHVpbnRwdHJfdCloYW5kbGUg
fCBQQVNfSVNfU0hBUkVEX0hBTkRMRV9CSVQpOwogfQpAQCAtNjEsNyArNjMsOSBAQCBwYXNfdW53
cmFwX3NoYXJlZF9oYW5kbGUocGFzX3NoYXJlZF9oYW5kCiAgICAgcmVzdWx0ID0gcGFzX3Vud3Jh
cF9zaGFyZWRfaGFuZGxlX25vX2xpdmVuZXNzX2NoZWNrcyhzaGFyZWRfaGFuZGxlX29yX3BhZ2Up
OwogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2Nv
bmZpZykpIHsKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
aXNfYWxsb2NhdGVkKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3Qp
cmVzdWx0LCBQQVNfVVRJTElUWV9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZykp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpcmVzdWx0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19VVElMSVRZX0hFQVBfQ09ORklHLnNtYWxs
X3NlZ3JlZ2F0ZWRfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNf
cmVwb3J0ZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkod29ya2luZyBjb3B5
KQpAQCAtMjU3LDkgKzI1NywxMCBAQCBzdGF0aWMgdm9pZCByZXBvcnRfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfCiAgICAgICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCk7CiAKICAgICAgICAg
cGF5bG9hZF9iZWdpbiA9IHBhc19yb3VuZF91cF90b19wb3dlcl9vZl8yKAotICAgICAgICAgICAg
cGFnZV9jb25maWctPmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQsCisgICAgICAgICAg
ICBwYWdlX2NvbmZpZy0+c2hhcmVkX3BheWxvYWRfb2Zmc2V0LAogICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKCpwYWdlX2NvbmZpZykpOwotICAgICAgICBw
YXlsb2FkX2VuZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX29iamVjdF9wYXlsb2FkX2Vu
ZF9vZmZzZXRfZnJvbV9ib3VuZGFyeSgqcGFnZV9jb25maWcpOworICAgICAgICBwYXlsb2FkX2Vu
ZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9s
ZSgKKyAgICAgICAgICAgICpwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRf
cm9sZSk7CiAgICAgICAgIAogICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAg
ICAgICAgQnVtcDogIiwgcHJlZml4KTsKICAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgewpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyaV9zdGF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cmlfc3RhdGUu
aAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyaV9zdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxMSBAQCBzdGF0aWMg
aW5saW5lIGNvbnN0IGNoYXIqIHBhc190cmlfc3RhdGVfCiAgICAgcmV0dXJuIE5VTEw7CiB9CiAK
K3N0YXRpYyBpbmxpbmUgcGFzX3RyaV9zdGF0ZSBwYXNfdHJpX3N0YXRlX2Zyb21fYm9vbGVhbihi
b29sIHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA/IHBhc190cmlfc3RhdGVfeWVzIDogcGFz
X3RyaV9zdGF0ZV9ubzsKK30KKwogc3RhdGljIGlubGluZSBib29sIHBhc190cmlfc3RhdGVfZXF1
YWxzX2Jvb2xlYW4ocGFzX3RyaV9zdGF0ZSB0cmlfc3RhdGUsIGJvb2wgYm9vbGVhbikKIHsKICAg
ICBzd2l0Y2ggKHRyaV9zdGF0ZSkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuYwkocmV2aXNpb24gMjg3MDU5KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODMsMTEgKzE4MywxMyBAQCB0eXBlZGVmIHN0cnVjdCB7CiBzdGF0aWMg
Ym9vbCBmb3JfZWFjaF9saXZlX29iamVjdF9zbWFsbF9vYmplY3RfY2FsbGJhY2socGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX29iamVjdF9s
aXZlbmVzc19raW5kIGxpdmVuZXNzX2tpbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQogewogICAgIGZvcl9lYWNoX2xp
dmVfb2JqZWN0X2RhdGEqIGRhdGE7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOworICAg
IFBBU19BU1NFUlQobGl2ZW5lc3Nfa2luZCA9PSBwYXNfZGVmaW5pdGVseV9saXZlX29iamVjdF9r
aW5kKTsKICAgICAKICAgICBkYXRhID0gYXJnOwogICAgIApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZp
Zy5oCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNSArMzYs
MTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9B
TExPQ19CSVRTKFBBU19JTlRFUk5BTF9NSU5fQUxJR05fU0hJRlQsIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUpCiAK
LSNkZWZpbmUgUEFTX1VUSUxJVFlfSEVBUF9IRUFERVJfU0laRSBcCi0gICAgUEFTX0JBU0lDX1NF
R1JFR0FURURfUEFHRV9IRUFERVJfU0laRShQQVNfSU5URVJOQUxfTUlOX0FMSUdOX1NISUZULCBc
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfU01BTExfUEFH
RV9ERUZBVUxUX1NJWkUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSkKLQogI2RlZmluZSBQQVNfVVRJTElUWV9I
RUFQX1BBWUxPQURfT0ZGU0VUIFwKLSAgICBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQVlMT0FEX09G
RlNFVChQQVNfSU5URVJOQUxfTUlOX0FMSUdOX1NISUZULCBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX1NNQUxMX1BBR0VfREVGQVVM
VF9TSVpFKQorICAgIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfT0ZGU0VUX0VYQ0xVU0lW
RShQQVNfSU5URVJOQUxfTUlOX0FMSUdOX1NISUZULCBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBc
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19T
TUFMTF9QQUdFX0RFRkFVTFRfU0laRSkKIAogc3RhdGljIGlubGluZSBwYXNfcGFnZV9iYXNlKiBw
YXNfdXRpbGl0eV9oZWFwX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBhbGxvY2F0aW9u
KQogewpAQCAtNjQsOSArNjAsMTAgQEAgcGFzX3V0aWxpdHlfaGVhcF9zaGFyZWRfcGFnZV9kaXJl
Y3RvcnlfcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIHN0YXRpYyBpbmxp
bmUgcGFzX3BhZ2VfYmFzZSogcGFzX3V0aWxpdHlfaGVhcF9jcmVhdGVfcGFnZV9oZWFkZXIoCi0g
ICAgdm9pZCogYm91bmRhcnksIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2Rl
KQorICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CisgICAgUEFTX0FTU0VSVChraW5kID09IHBhc19zbWFsbF9leGNsdXNp
dmVfc2VncmVnYXRlZF9wYWdlX2tpbmQpOwogICAgIHJldHVybiAocGFzX3BhZ2VfYmFzZSopYm91
bmRhcnk7CiB9CiAKQEAgLTEwMywxNCArMTAwLDEwIEBAIFBBU19BUEkgdm9pZCBwYXNfdXRpbGl0
eV9oZWFwX2NvbmZpZ19kdW0KICAgICAgICAgICAgICAgICAubWluX2FsaWduX3NoaWZ0ID0gUEFT
X0lOVEVSTkFMX01JTl9BTElHTl9TSElGVCwgXAogICAgICAgICAgICAgICAgIC5wYWdlX3NpemUg
PSBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAgICAgICAgICAgICAuZ3JhbnVs
ZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCi0gICAgICAgICAgICAgICAg
LnBhZ2VfaGVhZGVyX3NpemUgPSBQQVNfVVRJTElUWV9IRUFQX0hFQURFUl9TSVpFLCBcCiAgICAg
ICAgICAgICAgICAgLm1heF9vYmplY3Rfc2l6ZSA9IFBBU19VVElMSVRZX0xPT0tVUF9TSVpFX1VQ
UEVSX0JPVU5ELCBcCiAgICAgICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9
IHBhc191dGlsaXR5X2hlYXBfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5LCBcCiAgICAgICAgICAg
ICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9IHBhc191dGlsaXR5X2hlYXBfYm91bmRh
cnlfZm9yX3BhZ2VfaGVhZGVyLCBcCiAgICAgICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9i
b3VuZGFyeV9yZW1vdGUgPSBOVUxMLCBcCi0gICAgICAgICAgICAgICAgLnBhZ2Vfb2JqZWN0X3Bh
eWxvYWRfb2Zmc2V0ID0gUEFTX1VUSUxJVFlfSEVBUF9QQVlMT0FEX09GRlNFVCwgXAotICAgICAg
ICAgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUgPSBcCi0gICAgICAgICAgICAgICAg
ICAgIFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSAtIFBBU19VVElMSVRZX0hFQVBfUEFZTE9B
RF9PRkZTRVQsIFwKICAgICAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0gcGFzX3V0
aWxpdHlfaGVhcF9jcmVhdGVfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAgICAgICAuZGVzdHJv
eV9wYWdlX2hlYWRlciA9IHBhc191dGlsaXR5X2hlYXBfZGVzdHJveV9wYWdlX2hlYWRlciwgXAog
ICAgICAgICAgICAgfSwgXApAQCAtMTE5LDYgKzExMiwxMyBAQCBQQVNfQVBJIHZvaWQgcGFzX3V0
aWxpdHlfaGVhcF9jb25maWdfZHVtCiAgICAgICAgICAgICAud2FzdGVhZ2VfaGFuZGljYXAgPSAx
LiwgXAogICAgICAgICAgICAgLnNoYXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElG
VCwgXAogICAgICAgICAgICAgLm51bV9hbGxvY19iaXRzID0gUEFTX1VUSUxJVFlfTlVNX0FMTE9D
X0JJVFMsIFwKKyAgICAgICAgICAgIC5udW1fbGluZXMgPSAwLCBcCisgICAgICAgICAgICAubGlu
ZV9zaGlmdCA9IDAsIFwKKyAgICAgICAgICAgIC5zaGFyZWRfcGF5bG9hZF9vZmZzZXQgPSAwLCBc
CisgICAgICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0ID0gUEFTX1VUSUxJVFlfSEVB
UF9QQVlMT0FEX09GRlNFVCwgXAorICAgICAgICAgICAgLnNoYXJlZF9wYXlsb2FkX3NpemUgPSAw
LCBcCisgICAgICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfc2l6ZSA9IFwKKyAgICAgICAgICAg
ICAgICBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUgLSBQQVNfVVRJTElUWV9IRUFQX1BBWUxP
QURfT0ZGU0VULCBcCiAgICAgICAgICAgICAuc2hhcmVkX2xvZ2dpbmdfbW9kZSA9IHBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9ub19sb2dnaW5nX21vZGUsIFwKICAgICAgICAgICAgIC5leGNs
dXNpdmVfbG9nZ2luZ19tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX25vX2xvZ2dp
bmdfbW9kZSwgXAogICAgICAgICAgICAgLnVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNf
QVJNNjQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGls
aXR5X2hlYXBfc3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfc3VwcG9ydC5oCShyZXZpc2lvbiAyODcwNTkpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX3N1cHBv
cnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBzdHJ1Y3QgcGFzX3V0aWxpdHlf
aGVhcF9zdXBwb3J0IHsKIHVuaW9uIHBhc191dGlsaXR5X2hlYXBfYWxsb2NhdG9yIHsKICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yIGFsbG9jYXRvcjsKICAgICBjaGFyIGZha2VfZmllbGRfdG9fZm9y
Y2Vfc2l6ZVsKLSAgICAgICAgUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKFBBU19VVElMSVRZX05V
TV9BTExPQ19CSVRTKV07CisgICAgICAgIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRShQQVNfVVRJ
TElUWV9OVU1fQUxMT0NfQklUUywgMCldOwogfTsKIAogI2RlZmluZSBQQVNfVVRJTElUWV9IRUFQ
X1NVUFBPUlRfSU5JVElBTElaRVIgeyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg3MDU5
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmln
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwog
ICAgIC5zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJp
bGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAogICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRl
ZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAog
ICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJN
NjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF9saW5lX3NoaWZ0ID0gMCwgXAogICAgIC5lbmFi
bGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBc
CiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBUSElOR1lfTUlOX0FMSUdOX1NI
SUZULCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvRXhwZW5kYWJsZU1l
bW9yeVRlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0V4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCB0ZXN0UGF5bG9hZEltcGwocGFzX2hlYXBf
cmVmJiBoZWFwLAogCiAgICAgdm9pZCogbGFyZ2VBcnJheSA9IGJtYWxsb2NfaXNvX2FsbG9jYXRl
X2FycmF5X2J5X3NpemUoJmhlYXAsIDIwMDApOwogICAgIENIRUNLKGxhcmdlQXJyYXkpOwotICAg
IENIRUNLX0VRVUFMKGJtYWxsb2NfZ2V0X2FsbG9jYXRpb25fc2l6ZShsYXJnZUFycmF5KSwgMjAx
Nik7CisgICAgQ0hFQ0tfRVFVQUwoYm1hbGxvY19nZXRfYWxsb2NhdGlvbl9zaXplKGxhcmdlQXJy
YXkpLCAyMDMyKTsKIAogICAgIHZvaWQqIGxhcmdlckFycmF5ID0gYm1hbGxvY19pc29fYWxsb2Nh
dGVfYXJyYXlfYnlfc2l6ZSgmaGVhcCwgMTAwMDApOwogICAgIENIRUNLKGxhcmdlckFycmF5KTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBD
aGFvc1Rlc3RzLmNwcAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsOSBAQAogI2luY2x1ZGUgImlzb190ZXN0X2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAiaml0
X2hlYXAuaCIKICNpbmNsdWRlICJqaXRfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRlICJsaW5lcmVm
X2hlYXAuaCIKKyNpbmNsdWRlICJsaW5lcmVmX2hlYXBfY29uZmlnLmgiCisjaW5jbHVkZSAibGlu
ZXJlZl9oZWFwX2lubmFyZHMuaCIKICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSAibWluYWxpZ24z
Ml9oZWFwLmgiCiAjaW5jbHVkZSAibWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oIgpAQCAtMTIxLDEw
ICsxMjQsOCBAQCB2b2lkIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvCiAjZW5k
aWYKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgT2JqZWN0VmVyaWZpY2F0aW9uRnVuYz4KIHZvaWQg
dmVyaWZ5T2JqZWN0U2V0KGNvbnN0IHNldDx2b2lkKj4mIGV4cGVjdGVkT2JqZWN0cywKLSAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxwYXNfaGVhcCo+JiBoZWFwcywKLSAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IE9iamVjdFZlcmlmaWNhdGlvbkZ1bmMmIG9iamVjdFZlcmlmaWNh
dGlvbkZ1bmMpCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8cGFzX2hlYXAqPiYg
aGVhcHMpCiB7CiAgICAgZmx1c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxsb2NhdG9ycygpOwog
CkBAIC0xMzgsNDYgKzEzOSw1OSBAQCB2b2lkIHZlcmlmeU9iamVjdFNldChjb25zdCBzZXQ8dm9p
ZCo+JiBlCiAgICAgc2V0PHZvaWQqPiBmb3VuZE9iamVjdHM7CiAgICAgYm9vbCBleHBlY3RlZEFs
bEZvdW5kT2JqZWN0cyA9IHRydWU7CiAgICAgYm9vbCBmb3VuZEZpcnN0VW5leHBlY3RlZE9iamVj
dEluQml0Zml0ID0gZmFsc2U7CisgICAgYm9vbCBmb3VuZFBvc3NpYmx5TGl2ZU9iamVjdCA9IGZh
bHNlOwogICAgIGZvciAocGFzX2hlYXAqIGhlYXAgOiBoZWFwcykgewogICAgICAgICBmb3JFYWNo
TGl2ZU9iamVjdCgKICAgICAgICAgICAgIGhlYXAsCi0gICAgICAgICAgICBbJl0gKHZvaWQqIG9i
amVjdCwgc2l6ZV90IHNpemUpIC0+IGJvb2wgewotICAgICAgICAgICAgICAgIGlmICghZXhwZWN0
ZWRPYmplY3RzLmNvdW50KG9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY291dCA8PCAi
Rm91bmQgdW5leHBlY3RlZCBvYmplY3Q6ICIgPDwgb2JqZWN0IDw8ICIgb2Ygc2l6ZSAiIDw8IHNp
emUgPDwgIlxuIjsKLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRBbGxGb3VuZE9iamVjdHMg
PSBmYWxzZTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kRmlyc3RVbmV4cGVjdGVk
T2JqZWN0SW5CaXRmaXQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2Uq
IHBhZ2VfYmFzZSA9IHBhc19nZXRfcGFnZV9iYXNlKG9iamVjdCwgKnNlbGVjdGVkSGVhcENvbmZp
Zyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFzX3BhZ2VfYmFzZV9pc19iaXRmaXQo
cGFnZV9iYXNlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFn
ZSogcGFnZSA9IHBhc19wYWdlX2Jhc2VfZ2V0X2JpdGZpdChwYWdlX2Jhc2UpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBvZmZzZXQgPSByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4ob2JqZWN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfcGFnZV9ib3VuZGFyeSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICpwYXNfaGVhcF9jb25maWdfYml0Zml0X3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFw
Q29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
cGFnZV9raW5kX2dldF9iaXRmaXRfdmFyaWFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQocGFnZV9iYXNlKSkp
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2xvZ19iaXRz
KHBhZ2UsIG9mZnNldCwgb2Zmc2V0ICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm91bmRGaXJzdFVuZXhwZWN0ZWRPYmplY3RJbkJpdGZpdCA9IHRydWU7CisgICAgICAgICAgICBb
Jl0gKHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUsIHBhc19vYmplY3RfbGl2ZW5lc3Nfa2luZCBs
aXZlbmVzc0tpbmQpIC0+IGJvb2wgeworICAgICAgICAgICAgICAgIHN3aXRjaCAobGl2ZW5lc3NL
aW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSBwYXNfZGVmaW5pdGVseV9saXZlX29iamVjdF9r
aW5kOgorICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cGVjdGVkT2JqZWN0cy5jb3VudChvYmpl
Y3QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJGb3VuZCB1bmV4cGVjdGVk
IG9iamVjdDogIiA8PCBvYmplY3QgPDwgIiBvZiBzaXplICIgPDwgc2l6ZSA8PCAiXG4iOworICAg
ICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRBbGxGb3VuZE9iamVjdHMgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3Vu
ZEZpcnN0VW5leHBlY3RlZE9iamVjdEluQml0Zml0KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZV9iYXNlID0gcGFzX2dldF9wYWdlX2Jhc2Uob2JqZWN0
LCAqc2VsZWN0ZWRIZWFwQ29uZmlnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cGFzX3BhZ2VfYmFzZV9pc19iaXRmaXQocGFnZV9iYXNlKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2UgPSBwYXNfcGFnZV9iYXNlX2dldF9i
aXRmaXQocGFnZV9iYXNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0
cl90IG9mZnNldCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3Bh
Z2VfYm91bmRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwYXNf
aGVhcF9jb25maWdfYml0Zml0X3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSGVhcENvbmZp
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX2tpbmRfZ2V0X2JpdGZpdF92YXJpYW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQocGFnZV9iYXNl
KSkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9s
b2dfYml0cyhwYWdlLCBvZmZzZXQsIG9mZnNldCArIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3VuZEZpcnN0VW5leHBlY3RlZE9iamVjdEluQml0Zml0ID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICAgICAgICBjYXNlIHBhc19wb3NzaWJseV9saXZlX29iamVjdF9raW5kOgorICAgICAgICAg
ICAgICAgICAgICBmb3VuZFBvc3NpYmx5TGl2ZU9iamVjdCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBDSEVDSygh
Zm91bmRPYmplY3RzLmNvdW50KG9iamVjdCkpOwotICAgICAgICAgICAgICAgIG9iamVjdFZlcmlm
aWNhdGlvbkZ1bmMob2JqZWN0LCBzaXplKTsKICAgICAgICAgICAgICAgICBmb3VuZE9iamVjdHMu
aW5zZXJ0KG9iamVjdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg
ICB9KTsKICAgICB9CiAKLSAgICBpZiAoZm91bmRPYmplY3RzLnNpemUoKSAhPSBleHBlY3RlZE9i
amVjdHMuc2l6ZSgpIHx8ICFleHBlY3RlZEFsbEZvdW5kT2JqZWN0cykgewotICAgICAgICBmb3Ig
KHZvaWQqIG9iamVjdCA6IGV4cGVjdGVkT2JqZWN0cykgewotICAgICAgICAgICAgaWYgKCFmb3Vu
ZE9iamVjdHMuY291bnQob2JqZWN0KSkKLSAgICAgICAgICAgICAgICBjb3V0IDw8ICJEaWQgbm90
IGZpbmQgZXhwZWN0ZWQgb2JqZWN0OiAiIDw8IG9iamVjdCA8PCAiXG4iOworICAgIGJvb2wgZm91
bmRBbGxFeHBlY3RlZE9iamVjdHMgPSB0cnVlOworICAgIGZvciAodm9pZCogb2JqZWN0IDogZXhw
ZWN0ZWRPYmplY3RzKSB7CisgICAgICAgIGlmICghZm91bmRPYmplY3RzLmNvdW50KG9iamVjdCkp
IHsKKyAgICAgICAgICAgIGNvdXQgPDwgIkRpZCBub3QgZmluZCBleHBlY3RlZCBvYmplY3Q6ICIg
PDwgb2JqZWN0IDw8ICJcbiI7CisgICAgICAgICAgICBmb3VuZEFsbEV4cGVjdGVkT2JqZWN0cyA9
IGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIENIRUNLX0VRVUFMKGZvdW5kT2JqZWN0cy5zaXpl
KCksIGV4cGVjdGVkT2JqZWN0cy5zaXplKCkpOwotICAgICAgICBDSEVDSyhleHBlY3RlZEFsbEZv
dW5kT2JqZWN0cyk7CiAgICAgfQorICAgIGlmIChmb3VuZFBvc3NpYmx5TGl2ZU9iamVjdCkKKyAg
ICAgICAgQ0hFQ0tfR1JFQVRFUl9FUVVBTChmb3VuZE9iamVjdHMuc2l6ZSgpLCBleHBlY3RlZE9i
amVjdHMuc2l6ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIENIRUNLX0VRVUFMKGZvdW5kT2JqZWN0
cy5zaXplKCksIGV4cGVjdGVkT2JqZWN0cy5zaXplKCkpOworICAgIENIRUNLKGV4cGVjdGVkQWxs
Rm91bmRPYmplY3RzKTsKKyAgICBDSEVDSyhmb3VuZEFsbEV4cGVjdGVkT2JqZWN0cyk7CiB9CiAK
IG11dGV4IGxvY2s7CkBAIC0zODUsMTAgKzM5OSwxNiBAQCB1bnNpZ25lZCBzb21ldGltZXNTbWFs
bFNvbWV0aW1lc0JpZygpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorZW51bSBFbnVtZXJhdG9y
VGVzdE1vZGUgeworICAgIE5vRW51bWVyYXRvclRlc3RzLAorICAgIExpbmVFbnVtZXJhdG9yVGVz
dHMsCisgICAgRnVsbEVudW1lcmF0b3JUZXN0cworfTsKKwogdm9pZCB0ZXN0QWxsb2NhdGlvbkNo
YW9zKHVuc2lnbmVkIG51bVRocmVhZHMsIHVuc2lnbmVkIG51bUlzb2xhdGVkSGVhcHMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtSW5pdGlhbEFsbG9jYXRpb25zLCB1bnNp
Z25lZCBudW1BY3Rpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICgqY2hv
b3NlU2l6ZSkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtYXhUb3RhbFNp
emUsIGJvb2wgdGVzdEVudW1lcmF0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgbWF4VG90YWxTaXplLCBFbnVtZXJhdG9yVGVzdE1vZGUgZW51bWVyYXRvclRlc3RNb2RlKQog
ewogICAgIFBBU19BU1NFUlQoIXBhc19lcG9jaF9pc19jb3VudGVyKTsgLy8gV2UgZG9uJ3Qgd2Fu
dCB0byBydW4gdGhlc2UgdGVzdHMgaW4gdGhlIGZha2Ugc2NhdmVuZ2VyIG1vZGUuCiAgICAgCkBA
IC00MzAsNyArNDUwLDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRo
cgogICAgIHVuc2lnbmVkIHRvdGFsU2l6ZTsKIAogICAgIHZlY3RvcjxPcHRpb25hbE9iamVjdD4g
b3B0aW9uYWxPYmplY3RzOwotICAgIGlmICh0ZXN0RW51bWVyYXRvcikgeworICAgIGlmIChlbnVt
ZXJhdG9yVGVzdE1vZGUgIT0gTm9FbnVtZXJhdG9yVGVzdHMpIHsKICAgICAgICAgcGFzX3NjYXZl
bmdlcl9kaWRfc3RhcnRfY2FsbGJhY2sgPSBzY2F2ZW5nZXJEaWRTdGFydDsKICAgICAgICAgcGFz
X3NjYXZlbmdlcl93aWxsX3NodXRfZG93bl9jYWxsYmFjayA9IHNjYXZlbmdlcldpbGxTaHV0RG93
bjsKICAgICAgICAgCkBAIC00NTcsMTggKzQ3NywxOCBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hh
b3ModW5zaWduZWQgbnVtVGhyCiAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4
X3QqPihwdHIpW2ldID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhcnRWYWx1ZSArIGkpOwogICAg
ICAgICAgICAgfTsKIAotICAgICAgICAgICAgaWYgKCF0ZXN0RW51bWVyYXRvcikKKyAgICAgICAg
ICAgIGlmIChlbnVtZXJhdG9yVGVzdE1vZGUgPT0gTm9FbnVtZXJhdG9yVGVzdHMpCiAgICAgICAg
ICAgICAgICAgcG9wdWxhdGVPYmplY3QoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIGxvY2tfZ3VhcmQ8bXV0ZXg+IGxvY2tlcihsb2NrKTsKIAotICAgICAg
ICAgICAgICAgIGlmICh0ZXN0RW51bWVyYXRvcikKKyAgICAgICAgICAgICAgICBpZiAoZW51bWVy
YXRvclRlc3RNb2RlICE9IE5vRW51bWVyYXRvclRlc3RzKQogICAgICAgICAgICAgICAgICAgICBw
b3B1bGF0ZU9iamVjdCgpOwogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
ICAgICAgICAgICAgIGNvdXQgPDwgIkFkZGluZyBvYmplY3QgIiA8PCBwdHIgPDwgIlxuIjsKLSAg
ICAgICAgICAgICAgICBpZiAodGVzdEVudW1lcmF0b3IpCisgICAgICAgICAgICAgICAgaWYgKGVu
dW1lcmF0b3JUZXN0TW9kZSA9PSBGdWxsRW51bWVyYXRvclRlc3RzKQogICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbE9iamVjdHNbdGhyZWFkSW5kZXhdID0gT3B0aW9uYWxPYmplY3QoKTsKICAg
ICAgICAgICAgICAgICBvYmplY3RzLnB1c2hfYmFjayhPYmplY3QocHRyLCBzaXplLCBzdGFydFZh
bHVlKSk7CiAgICAgICAgICAgICAgICAgdG90YWxTaXplICs9IHNpemU7CkBAIC00NzcsNyArNDk3
LDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogCiAgICAgYXV0
byBsb2dPcHRpb25hbE9iamVjdCA9CiAgICAgICAgIFsmXSAodW5zaWduZWQgdGhyZWFkSW5kZXgs
IHVuc2lnbmVkIHNpemUpIHsKLSAgICAgICAgICAgIGlmICh0ZXN0RW51bWVyYXRvcikgeworICAg
ICAgICAgICAgaWYgKGVudW1lcmF0b3JUZXN0TW9kZSA9PSBGdWxsRW51bWVyYXRvclRlc3RzKSB7
CiAgICAgICAgICAgICAgICAgbG9ja19ndWFyZDxtdXRleD4gbG9ja2VyKGxvY2spOwogICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJBbGxv
Y2F0aW5nIG9iamVjdCBvZiBzaXplID0gIiA8PCBzaXplIDw8ICJcbiI7CkBAIC01MzgsMTggKzU1
OCwxOCBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hhb3ModW5zaWduZWQgbnVtVGhyCiAgICAgICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBjb3V0IDw8ICJGcmVlaW5nIG9iamVj
dCAiIDw8IG9iamVjdC5wdHIgPDwgIlxuIjsKIAotICAgICAgICAgICAgaWYgKHRlc3RFbnVtZXJh
dG9yKSB7CisgICAgICAgICAgICBpZiAoZW51bWVyYXRvclRlc3RNb2RlID09IEZ1bGxFbnVtZXJh
dG9yVGVzdHMpCiAgICAgICAgICAgICAgICAgb3B0aW9uYWxPYmplY3RzW3RocmVhZEluZGV4XSA9
IE9wdGlvbmFsT2JqZWN0KG9iamVjdC5wdHIsIG9iamVjdC5zaXplKTsKKyAgICAgICAgICAgIGlm
IChlbnVtZXJhdG9yVGVzdE1vZGUgIT0gTm9FbnVtZXJhdG9yVGVzdHMpCiAgICAgICAgICAgICAg
ICAgdmFsaWRhdGVPYmplY3QoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAg
IGlmICghdGVzdEVudW1lcmF0b3IpCisgICAgICAgIGlmIChlbnVtZXJhdG9yVGVzdE1vZGUgPT0g
Tm9FbnVtZXJhdG9yVGVzdHMpCiAgICAgICAgICAgICB2YWxpZGF0ZU9iamVjdCgpOwogCiAgICAg
ICAgIHNlbGVjdGVkRGVhbGxvY2F0ZShvYmplY3QucHRyKTsKIAotICAgICAgICBpZiAodGVzdEVu
dW1lcmF0b3IpIHsKKyAgICAgICAgaWYgKGVudW1lcmF0b3JUZXN0TW9kZSA9PSBGdWxsRW51bWVy
YXRvclRlc3RzKSB7CiAgICAgICAgICAgICBsb2NrX2d1YXJkPG11dGV4PiBsb2NrZXIobG9jayk7
CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBjb3V0IDw8ICJGcmVl
ZCBvYmplY3QgIiA8PCBvYmplY3QucHRyIDw8ICJcbiI7CkBAIC01NjIsNyArNTgyLDcgQEAgdm9p
ZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogICAgICAgICAvLyBoYWNrcyB0
byBiZSB0b2xlcmFudCBvZiB0aGUgd2VpcmRuZXNzIHRoZSBlbnVtZXJhdG9yIG1pZ2h0IHNlZSBk
dXJpbmcgdGhlIHNocmluay4gU28gZm9yCiAgICAgICAgIC8vIG5vdyB3ZSBqdXN0IGRvbid0IHRl
c3QgaXQuIEZJWE1FOiBBdCBsZWFzdCB0ZXN0IHRoYXQgdGhlIGVudW1lcmF0b3IgZG9lc24ndCBj
cmFzaCB3aGVuCiAgICAgICAgIC8vIGRlYWxpbmcgd2l0aCBzaHJpbmsuCi0gICAgICAgIFBBU19B
U1NFUlQoIXRlc3RFbnVtZXJhdG9yKTsKKyAgICAgICAgUEFTX0FTU0VSVChlbnVtZXJhdG9yVGVz
dE1vZGUgPT0gTm9FbnVtZXJhdG9yVGVzdHMpOwogCiAgICAgICAgIE9iamVjdCBvYmplY3Q7CiAg
ICAgICAgIHNpemVfdCBuZXdTaXplOwpAQCAtNzU4LDQ0ICs3NzgsNDYgQEAgdm9pZCB0ZXN0QWxs
b2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIGVudW1lcmF0b3Igb25s
eSBmb3VuZCBvYmplY3RzIHRoYXQgd2UgZXhwZWN0ZWQsIHBsdXMgb3B0aW9uYWwgb2JqZWN0cy4K
LSAgICAgICAgICAgIHZlY3Rvcjxib29sPiBmb3VuZE9wdGlvbmFsT2JqZWN0czsKLSAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGNvdW50ID0gb3B0aW9uYWxPYmplY3RzLnNpemUoKTsgY291bnQtLTsp
Ci0gICAgICAgICAgICAgICAgZm91bmRPcHRpb25hbE9iamVjdHMucHVzaF9iYWNrKGZhbHNlKTsK
LSAgICAgICAgICAgIGZvciAoUmVjb3JkZWRSYW5nZSBvYmplY3RSYW5nZSA6IHJlY29yZGVkUmFu
Z2VzW3Bhc19lbnVtZXJhdG9yX29iamVjdF9yZWNvcmRdKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGV4cGVjdGVkT2JqZWN0cy5jb3VudChvYmplY3RSYW5nZS5iYXNlKSkKLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoZW51bWVyYXRvclRlc3RNb2RlID09IEZ1
bGxFbnVtZXJhdG9yVGVzdHMpIHsKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0
aGUgZW51bWVyYXRvciBvbmx5IGZvdW5kIG9iamVjdHMgdGhhdCB3ZSBleHBlY3RlZCwgcGx1cyBv
cHRpb25hbCBvYmplY3RzLgorICAgICAgICAgICAgICAgIHZlY3Rvcjxib29sPiBmb3VuZE9wdGlv
bmFsT2JqZWN0czsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBjb3VudCA9IG9wdGlvbmFs
T2JqZWN0cy5zaXplKCk7IGNvdW50LS07KQorICAgICAgICAgICAgICAgICAgICBmb3VuZE9wdGlv
bmFsT2JqZWN0cy5wdXNoX2JhY2soZmFsc2UpOworICAgICAgICAgICAgICAgIGZvciAoUmVjb3Jk
ZWRSYW5nZSBvYmplY3RSYW5nZSA6IHJlY29yZGVkUmFuZ2VzW3Bhc19lbnVtZXJhdG9yX29iamVj
dF9yZWNvcmRdKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZE9iamVjdHMuY291
bnQob2JqZWN0UmFuZ2UuYmFzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNv
dXQgPDwgIkZvdW5kIG9iamVjdCAiIDw8IG9iamVjdFJhbmdlLmJhc2UgPDwgIiB3aXRoIHNpemUg
IiA8PCBvYmplY3RSYW5nZS5zaXplCi0gICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBpcyBl
aXRoZXIgdW5leHBlY3RlZCBvciBvcHRpb25hbC5cbiI7Ci0gICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Y291dCA8PCAiRm91bmQgb2JqZWN0ICIgPDwgb2JqZWN0UmFuZ2UuYmFzZSA8PCAiIHdpdGggc2l6
ZSAiIDw8IG9iamVjdFJhbmdlLnNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg
IiBpcyBlaXRoZXIgdW5leHBlY3RlZCBvciBvcHRpb25hbC5cbiI7CisgICAgICAgICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgICAgIC8vIE5vdyBjaGVjayBpZiB0aGUgb2JqZWN0IGlzIHNv
bWV0aGluZyB3ZSBjb3VsZCBiZSBhbGxvY2F0aW5nIG9yIGZyZWVpbmcuIE5vdGUgdGhhdCBpZgot
ICAgICAgICAgICAgICAgIC8vIHdlIHRoaW5rIHRoYXQgd2UncmUgZnJlZWluZyBhbiBvYmplY3Qs
IHRoZW4gd2UgY2Fubm90IHJlYWxseSB0cmVhdCBpdCBkaWZmZXJlbnRseSwgc2luY2UKLSAgICAg
ICAgICAgICAgICAvLyBhdGhvdWdoIHdlIGtub3cgdGhlIGFkZHJlc3Mgb2YgZnJlZWQgb2JqZWN0
cywgdGhhdCBhZGRyZXNzIGNvdWxkIGJlIHJldXNlZCBmb3IKLSAgICAgICAgICAgICAgICAvLyBh
bGxvY2F0aW9uIGp1c3QgYmVmb3JlIHdlIGRvIHRoZSBlbnVtZXJhdGlvbi4KLSAgICAgICAgICAg
ICAgICBzaXplX3QgYmVzdEluZGV4ID0gU0laRV9NQVg7Ci0gICAgICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IG9wdGlvbmFsT2JqZWN0cy5zaXplKCk7IGktLTspIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKGZvdW5kT3B0aW9uYWxPYmplY3RzW2ldKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25hbE9iamVjdHNbaV0u
aXNWYWxpZAotICAgICAgICAgICAgICAgICAgICAgICAgJiYgb3B0aW9uYWxPYmplY3RzW2ldLnNp
emUgPD0gb2JqZWN0UmFuZ2Uuc2l6ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJl
c3RJbmRleCA9PSBTSVpFX01BWAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG9wdGlv
bmFsT2JqZWN0c1tpXS5zaXplID4gb3B0aW9uYWxPYmplY3RzW2Jlc3RJbmRleF0uc2l6ZSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0SW5kZXggPSBpOworICAgICAgICAgICAgICAg
ICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIG9iamVjdCBpcyBzb21ldGhpbmcgd2UgY291bGQgYmUg
YWxsb2NhdGluZyBvciBmcmVlaW5nLiBOb3RlIHRoYXQgaWYKKyAgICAgICAgICAgICAgICAgICAg
Ly8gd2UgdGhpbmsgdGhhdCB3ZSdyZSBmcmVlaW5nIGFuIG9iamVjdCwgdGhlbiB3ZSBjYW5ub3Qg
cmVhbGx5IHRyZWF0IGl0IGRpZmZlcmVudGx5LCBzaW5jZQorICAgICAgICAgICAgICAgICAgICAv
LyBhdGhvdWdoIHdlIGtub3cgdGhlIGFkZHJlc3Mgb2YgZnJlZWQgb2JqZWN0cywgdGhhdCBhZGRy
ZXNzIGNvdWxkIGJlIHJldXNlZCBmb3IKKyAgICAgICAgICAgICAgICAgICAgLy8gYWxsb2NhdGlv
biBqdXN0IGJlZm9yZSB3ZSBkbyB0aGUgZW51bWVyYXRpb24uCisgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBiZXN0SW5kZXggPSBTSVpFX01BWDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IG9wdGlvbmFsT2JqZWN0cy5zaXplKCk7IGktLTspIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChmb3VuZE9wdGlvbmFsT2JqZWN0c1tpXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25h
bE9iamVjdHNbaV0uaXNWYWxpZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG9wdGlv
bmFsT2JqZWN0c1tpXS5zaXplIDw9IG9iamVjdFJhbmdlLnNpemUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoYmVzdEluZGV4ID09IFNJWkVfTUFYCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHx8IG9wdGlvbmFsT2JqZWN0c1tpXS5zaXplID4gb3B0aW9uYWxPYmpl
Y3RzW2Jlc3RJbmRleF0uc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVz
dEluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChiZXN0SW5kZXgg
PT0gU0laRV9NQVgpIHsKLSAgICAgICAgICAgICAgICAgICAgY291dCA8PCAiRm91bmQgb2JqZWN0
ICIgPDwgb2JqZWN0UmFuZ2UuYmFzZSA8PCAiIGlzIG5vdCBleHBlY3RlZCBvciBvcHRpb25hbC5c
biI7Ci0gICAgICAgICAgICAgICAgICAgIENIRUNLKGJlc3RJbmRleCAhPSBTSVpFX01BWCk7Ci0g
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYmVzdEluZGV4ID09IFNJ
WkVfTUFYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJGb3VuZCBvYmplY3Qg
IiA8PCBvYmplY3RSYW5nZS5iYXNlIDw8ICIgaXMgbm90IGV4cGVjdGVkIG9yIG9wdGlvbmFsLlxu
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLKGJlc3RJbmRleCAhPSBTSVpFX01BWCk7
CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgY291dCA8PCAiQ2hlY2tpbmcgb2Zm
IGFzIG9wdGlvbmFsIGluZGV4ID0gIiA8PCBiZXN0SW5kZXggPDwgIlxuIjsKLSAgICAgICAgICAg
ICAgICAvLyBEb24ndCBhbGxvdyB0aGUgc2FtZSBhbGxvY2F0aW5nIG9iamVjdCB0byBiZSBmb3Vu
ZCB0d2ljZS4KLSAgICAgICAgICAgICAgICBmb3VuZE9wdGlvbmFsT2JqZWN0c1tiZXN0SW5kZXhd
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb3V0IDw8ICJDaGVja2luZyBvZmYgYXMgb3B0aW9uYWwgaW5kZXggPSAiIDw8
IGJlc3RJbmRleCA8PCAiXG4iOworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBhbGxvdyB0
aGUgc2FtZSBhbGxvY2F0aW5nIG9iamVjdCB0byBiZSBmb3VuZCB0d2ljZS4KKyAgICAgICAgICAg
ICAgICAgICAgZm91bmRPcHRpb25hbE9iamVjdHNbYmVzdEluZGV4XSA9IHRydWU7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwYXNfZW51bWVyYXRvcl9k
ZXN0cm95KGVudW1lcmF0b3IpOwpAQCAtODIyLDEzICs4NDQsMTMgQEAgdm9pZCB0ZXN0QWxsb2Nh
dGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogICAgICAgICAgICAgbG9jay51bmxvY2soKTsKICAg
ICAgICAgfTsKIAotICAgIGlmICh0ZXN0RW51bWVyYXRvcikKKyAgICBpZiAoZW51bWVyYXRvclRl
c3RNb2RlICE9IE5vRW51bWVyYXRvclRlc3RzKQogICAgICAgICBydW5FbnVtZXJhdG9yKCk7CiAg
ICAgCiAgICAgZm9yICh1bnNpZ25lZCBhbGxvY2F0aW9uSW5kZXggPSBudW1Jbml0aWFsQWxsb2Nh
dGlvbnM7IGFsbG9jYXRpb25JbmRleC0tOykKICAgICAgICAgYWxsb2NhdGVTb21ldGhpbmcoMCk7
CiAKLSAgICBpZiAodGVzdEVudW1lcmF0b3IpCisgICAgaWYgKGVudW1lcmF0b3JUZXN0TW9kZSAh
PSBOb0VudW1lcmF0b3JUZXN0cykKICAgICAgICAgcnVuRW51bWVyYXRvcigpOwogICAgIAogICAg
IHVuc2lnbmVkIG51bVRocmVhZHNTdG9wcGVkID0gMDsKQEAgLTg2Niw3ICs4ODgsNyBAQCB2b2lk
IHRlc3RBbGxvY2F0aW9uQ2hhb3ModW5zaWduZWQgbnVtVGhyCiAgICAgICAgIH0KICAgICAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBjb3V0IDw8ICIgICAgVGhyZWFkICIgPDwgKHZvaWQq
KXB0aHJlYWRfc2VsZigpIDw8ICIgc3RvcHBpbmcuXG4iOwotICAgICAgICBpZiAodGVzdEVudW1l
cmF0b3IpCisgICAgICAgIGlmIChlbnVtZXJhdG9yVGVzdE1vZGUgIT0gTm9FbnVtZXJhdG9yVGVz
dHMpCiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Rlc3Ryb3kocGFzX2xvY2tf
aXNfbm90X2hlbGQpOwogICAgICAgICB7CiAgICAgICAgICAgICBsb2NrX2d1YXJkPG11dGV4PiBs
b2NrZXIobG9jayk7CkBAIC04NzYsNyArODk4LDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9z
KHVuc2lnbmVkIG51bVRocgogICAgIH07CiAKICAgICB0aHJlYWQgZW51bWVyYXRpb25UaHJlYWQ7
Ci0gICAgaWYgKHRlc3RFbnVtZXJhdG9yKSB7CisgICAgaWYgKGVudW1lcmF0b3JUZXN0TW9kZSAh
PSBOb0VudW1lcmF0b3JUZXN0cykgewogICAgICAgICBlbnVtZXJhdGlvblRocmVhZCA9IHRocmVh
ZCgKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgd2hpbGUgKCFkaWRTdGFy
dFRocmVhZHMgfHwgbnVtVGhyZWFkc1N0b3BwZWQgPCB0aHJlYWRzLnNpemUoKSkgewpAQCAtOTAx
LDEzICs5MjMsMTMgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgog
ICAgIAogICAgIGZvciAodGhyZWFkJiB0aHJlYWQgOiB0aHJlYWRzKQogICAgICAgICB0aHJlYWQu
am9pbigpOwotICAgIGlmICh0ZXN0RW51bWVyYXRvcikKKyAgICBpZiAoZW51bWVyYXRvclRlc3RN
b2RlICE9IE5vRW51bWVyYXRvclRlc3RzKQogICAgICAgICBlbnVtZXJhdGlvblRocmVhZC5qb2lu
KCk7CiAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgY291dCA8PCAiRG9uZS5cbiI7CiAKLSAg
ICBpZiAodGVzdEVudW1lcmF0b3IpCisgICAgaWYgKGVudW1lcmF0b3JUZXN0TW9kZSAhPSBOb0Vu
dW1lcmF0b3JUZXN0cykKICAgICAgICAgY291dCA8PCAiICAgIFRlc3QgZG9uZTsgZGlkICIgPDwg
bnVtRW51bWVyYXRpb25zIDw8ICIgZW51bWVyYXRpb25zLlxuIjsKICAgICAKICAgICBDSEVDS19F
UVVBTChudW1UaHJlYWRzU3RvcHBlZCwgdGhyZWFkcy5zaXplKCkpOwpAQCAtOTIxLDcgKzk0Myw3
IEBAIHZvaWQgdGVzdEFsbG9jYXRpb25DaGFvcyh1bnNpZ25lZCBudW1UaHIKICAgICBmb3IgKE9i
amVjdCBvYmplY3QgOiBvYmplY3RzKQogICAgICAgICBleHBlY3RlZE9iamVjdHMuaW5zZXJ0KG9i
amVjdC5wdHIpOwogICAgIAotICAgIHZlcmlmeU9iamVjdFNldChleHBlY3RlZE9iamVjdHMsIGhl
YXBzLCBbXSAodm9pZCosIHNpemVfdCkgeyB9KTsKKyAgICB2ZXJpZnlPYmplY3RTZXQoZXhwZWN0
ZWRPYmplY3RzLCBoZWFwcyk7CiAKICAgICBwYXNfc2NhdmVuZ2VyX3J1bl9zeW5jaHJvbm91c2x5
X25vdygpOwogCkBAIC05MzMsNyArOTU1LDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVu
c2lnbmVkIG51bVRocgogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiB9CiAKLXZvaWQgYWRk
VGhlVGVzdHModW5zaWduZWQgbXVsdGlwbGllciwgYm9vbCB0ZXN0RW51bWVyYXRvcikKK3ZvaWQg
YWRkVGhlVGVzdHModW5zaWduZWQgbXVsdGlwbGllciwgRW51bWVyYXRvclRlc3RNb2RlIGVudW1l
cmF0b3JUZXN0TW9kZSkKIHsKICNpZiBQQVNfT1MoTElOVVgpCiAgICAgLy8gRklYTUU6IHRocmVh
ZCBzdXNwZW5zaW9uL3Jlc3VtZSBpbiBsaWJwYXMsIHJlcXVpcmVkIGZvciBlbnVtZXJhdG9yIHRl
c3RzLCBpcyBtaXNzaW5nIG9uIExpbnV4CkBAIC05NDEsMzcgKzk2MywzNyBAQCB2b2lkIGFkZFRo
ZVRlc3RzKHVuc2lnbmVkIG11bHRpcGxpZXIsIGJvCiAgICAgdGVzdEVudW1lcmF0b3IgPSBmYWxz
ZTsKICNlbmRpZgogCi0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAwLCAxMDAw
ICogbXVsdGlwbGllciwgMTAwMDAwMCAqIG11bHRpcGxpZXIsIHVuaWZvcm1seVJhbmRvbVVwVG81
MDAwLCAxMDAwMDAwMCAqIG11bHRpcGxpZXIsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdEFs
bG9jYXRpb25DaGFvcygxLCAxMCwgMTAwMCAqIG11bHRpcGxpZXIsIDUwMDAwMCAqIG11bHRpcGxp
ZXIsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmlnLCAxMDAwMDAwMCAqIG11bHRpcGxpZXIsIGZh
bHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMCwgMTAwMCAqIG11
bHRpcGxpZXIsIDIwMDAwMCAqIG11bHRpcGxpZXIsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmln
LCAxMDAwMDAwMCAqIG11bHRpcGxpZXIsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9j
YXRpb25DaGFvcygxMCwgMTAsIDEwMDAgKiBtdWx0aXBsaWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVy
LCB1bmlmb3JtbHlSYW5kb21VcFRvNTAwMCwgMTAwMDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkp
OwotICAgIGlmICh0ZXN0RW51bWVyYXRvcikgewotICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2Nh
dGlvbkNoYW9zKDEsIDAsIDEwMDAsIDcwMDAsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmlnLCAx
MDAwMDAwMCwgdHJ1ZSkpOwotICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEs
IDEwLCAxMDAwLCA3MDAwLCB1bmlmb3JtbHlSYW5kb21VcFRvNTAwMCwgMTAwMDAwMDAsIHRydWUp
KTsKLSAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMCwgMTAwMCwgNDAw
MCwgdW5pZm9ybWx5UmFuZG9tVXBUbzUwMDAsIDEwMDAwMDAwLCB0cnVlKSk7Ci0gICAgICAgIEFE
RF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDEwLCAxMDAwLCA0MDAwLCBzb21ldGltZXNT
bWFsbFNvbWV0aW1lc0JpZywgMTAwMDAwMDAsIHRydWUpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxs
b2NhdGlvbkNoYW9zKDEsIDAsIDEwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwICogbXVsdGlwbGll
ciwgdW5pZm9ybWx5UmFuZG9tVXBUbzUwMDAsIDEwMDAwMDAwICogbXVsdGlwbGllciwgTm9FbnVt
ZXJhdG9yVGVzdHMpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDEwLCAx
MDAwICogbXVsdGlwbGllciwgNTAwMDAwICogbXVsdGlwbGllciwgc29tZXRpbWVzU21hbGxTb21l
dGltZXNCaWcsIDEwMDAwMDAwICogbXVsdGlwbGllciwgTm9FbnVtZXJhdG9yVGVzdHMpKTsKKyAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEwLCAwLCAxMDAwICogbXVsdGlwbGllciwg
MjAwMDAwICogbXVsdGlwbGllciwgc29tZXRpbWVzU21hbGxTb21ldGltZXNCaWcsIDEwMDAwMDAw
ICogbXVsdGlwbGllciwgTm9FbnVtZXJhdG9yVGVzdHMpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxs
b2NhdGlvbkNoYW9zKDEwLCAxMCwgMTAwMCAqIG11bHRpcGxpZXIsIDIwMDAwMCAqIG11bHRpcGxp
ZXIsIHVuaWZvcm1seVJhbmRvbVVwVG81MDAwLCAxMDAwMDAwMCAqIG11bHRpcGxpZXIsIE5vRW51
bWVyYXRvclRlc3RzKSk7CisgICAgaWYgKGVudW1lcmF0b3JUZXN0TW9kZSAhPSBOb0VudW1lcmF0
b3JUZXN0cykgeworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDAsIDEw
MDAsIDcwMDAsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmlnLCAxMDAwMDAwMCwgZW51bWVyYXRv
clRlc3RNb2RlKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAs
IDEwMDAsIDcwMDAsIHVuaWZvcm1seVJhbmRvbVVwVG81MDAwLCAxMDAwMDAwMCwgZW51bWVyYXRv
clRlc3RNb2RlKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDAs
IDEwMDAsIDQwMDAsIHVuaWZvcm1seVJhbmRvbVVwVG81MDAwLCAxMDAwMDAwMCwgZW51bWVyYXRv
clRlc3RNb2RlKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDEw
LCAxMDAwLCA0MDAwLCBzb21ldGltZXNTbWFsbFNvbWV0aW1lc0JpZywgMTAwMDAwMDAsIGVudW1l
cmF0b3JUZXN0TW9kZSkpOwogICAgIH0KIH0KIAotdm9pZCBhZGRTcG90VGVzdHMoYm9vbCB0ZXN0
RW51bWVyYXRvcikKK3ZvaWQgYWRkU3BvdFRlc3RzKEVudW1lcmF0b3JUZXN0TW9kZSBlbnVtZXJh
dG9yVGVzdE1vZGUpCiB7Ci0gICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEwLCB0ZXN0RW51bWVy
YXRvcikpOworICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxMCwgZW51bWVyYXRvclRlc3RNb2Rl
KSk7CiAgICAgCiAgICAgewogICAgICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVz
OwogICAgICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7Ci0gICAgICAgIEFERF9HUk9V
UChhZGRUaGVUZXN0cygxLCB0ZXN0RW51bWVyYXRvcikpOworICAgICAgICBBRERfR1JPVVAoYWRk
VGhlVGVzdHMoMSwgZW51bWVyYXRvclRlc3RNb2RlKSk7CiAgICAgfQogICAgIAogICAgIHsKICAg
ICAgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKICAgICAgICAgRm9yY2VQYXJ0aWFscyBmb3JjZVBh
cnRpYWxzOwotICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKKyAgICAg
ICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIE5vRW51bWVyYXRvclRlc3RzKSk7CiAgICAgfQog
ICAgIAogICAgIHsKICAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VCaXRmaXQ7Ci0gICAgICAgIEFE
RF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAgICAgICBBRERfR1JPVVAoYWRkVGhl
VGVzdHMoMSwgTm9FbnVtZXJhdG9yVGVzdHMpKTsKICAgICB9CiB9CiAKQEAgLTk5Miw1MCArMTAx
NCw1MCBAQCB2b2lkIGFkZElzb1Rlc3RzKCkKICAgICAgICAgICAgICAgICBzZWxlY3RlZEhlYXBS
ZWZDcmVhdGVGb3JTaXplID0gY3JlYXRlSXNvSGVhcFJlZkZvclNpemU7CiAgICAgICAgICAgICB9
KTsKICAgICAKLSAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEwLCB0cnVlKSk7CisgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxMCwgRnVsbEVudW1lcmF0b3JUZXN0cykpOwogCiAg
ICAgICAgIHsKICAgICAgICAgICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICAg
ICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAgICAgICAgICAgQURE
X0dST1VQKGFkZFRoZVRlc3RzKDEsIE5vRW51bWVyYXRvclRlc3RzKSk7CiAgICAgICAgIH0KICAg
ICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNlRXhjbHVzaXZl
czsKLSAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAgICAg
ICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIE5vRW51bWVyYXRvclRlc3RzKSk7CiAgICAg
ICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNl
RXhjbHVzaXZlczsKICAgICAgICAgICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAg
ICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMg
ZW51bWVyYXRpb24gd2l0aCBleGNsdXNpdmVzIG9uIGZvciBzdXJlLgorICAgICAgICAgICAgQURE
X0dST1VQKGFkZFRoZVRlc3RzKDEsIEZ1bGxFbnVtZXJhdG9yVGVzdHMpKTsgLy8gVGhpcyB0ZXN0
cyBlbnVtZXJhdGlvbiB3aXRoIGV4Y2x1c2l2ZXMgb24gZm9yIHN1cmUuCiAgICAgICAgIH0KICAg
ICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKICAgICAgICAg
ICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAgICAgIEFERF9HUk9VUChh
ZGRUaGVUZXN0cygxLCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBwYXJ0
aWFscyBhbmQgVExBcyBvbiBmb3Igc3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVU
ZXN0cygxLCBGdWxsRW51bWVyYXRvclRlc3RzKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24g
d2l0aCBwYXJ0aWFscyBhbmQgVExBcyBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAg
ICAgICB7CiAgICAgICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKLSAgICAgICAgICAg
IEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRp
b24gd2l0aCBiaXRmaXQgb24gZm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhl
VGVzdHMoMSwgRnVsbEVudW1lcmF0b3JUZXN0cykpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9u
IHdpdGggYml0Zml0IG9uIGZvciBzdXJlLgogICAgICAgICB9CiAgICAgCiAgICAgICAgIHsKICAg
ICAgICAgICAgIEZvcmNlQmFzZWxpbmVzIGZvcmNlQmFzZWxpbmVzOwogICAgICAgICAgICAgRGlz
YWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRl
c3RzKDEsIHRydWUpKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGJhc2VsaW5lcyBh
bmQgc2VnaGVhcHMgb24gZm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVz
dHMoMSwgRnVsbEVudW1lcmF0b3JUZXN0cykpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdp
dGggYmFzZWxpbmVzIGFuZCBzZWdoZWFwcyBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAog
ICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZVRMQXMgZm9yY2VUTEFzOwotICAgICAgICAgICAg
QUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CisgICAgICAgICAgICBBRERfR1JPVVAo
YWRkVGhlVGVzdHMoMSwgTm9FbnVtZXJhdG9yVGVzdHMpKTsKICAgICAgICAgfQogICAgIAogICAg
ICAgICB7CiAgICAgICAgICAgICBGb3JjZUJhc2VsaW5lcyBmb3JjZUJhc2VsaW5lczsKICAgICAg
ICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAgICAgIEFERF9HUk9V
UChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOworICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRl
c3RzKDEsIE5vRW51bWVyYXRvclRlc3RzKSk7CiAgICAgICAgIH0KIAogICAgICAgICB7CkBAIC0x
MDQ2LDcgKzEwNjgsNyBAQCB2b2lkIGFkZElzb1Rlc3RzKCkKICAgICAgICAgICAgICAgICAgICAg
cGFzX3NjYXZlbmdlcl9tYXhfZXBvY2hfZGVsdGEgPSAtMWxsICogMTAwMGxsICogMTAwMGxsOwog
ICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICBhZGRTcG90VGVzdHMoZmFsc2UpOwor
ICAgICAgICAgICAgYWRkU3BvdFRlc3RzKE5vRW51bWVyYXRvclRlc3RzKTsKICAgICAgICAgfQog
ICAgIH0KICNlbmRpZiAvLyBQQVNfRU5BQkxFX0lTTwpAQCAtMTA3MSw3ICsxMDkzLDcgQEAgdm9p
ZCBhZGRBbGxUZXN0cygpCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFwUmVmQ3JlYXRlRm9y
U2l6ZSA9IGNyZWF0ZUlzb0hlYXBSZWZGb3JTaXplOwogICAgICAgICAgICAgfSk7CiAKLSAgICAg
ICAgYWRkU3BvdFRlc3RzKGZhbHNlKTsKKyAgICAgICAgYWRkU3BvdFRlc3RzKE5vRW51bWVyYXRv
clRlc3RzKTsKICAgICB9CiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9JU09fVEVTVAogCkBAIC0xMDkw
LDcgKzExMTIsNyBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICAgICAgICAgICAgICBzZWxlY3Rl
ZEhlYXBSZWZDcmVhdGVGb3JTaXplID0gY3JlYXRlSXNvSGVhcFJlZkZvclNpemU7CiAgICAgICAg
ICAgICB9KTsKICAgICAKLSAgICAgICAgYWRkU3BvdFRlc3RzKGZhbHNlKTsKKyAgICAgICAgYWRk
U3BvdFRlc3RzKE5vRW51bWVyYXRvclRlc3RzKTsKICAgICB9CiAjZW5kaWYgLy8gUEFTX0VOQUJM
RV9NSU5BTElHTjMyCiAKQEAgLTExMDksNyArMTEzMSw3IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQog
ICAgICAgICAgICAgICAgIHNlbGVjdGVkSGVhcFJlZkNyZWF0ZUZvclNpemUgPSBjcmVhdGVJc29I
ZWFwUmVmRm9yU2l6ZTsKICAgICAgICAgICAgIH0pOwogICAgIAotICAgICAgICBhZGRTcG90VGVz
dHModHJ1ZSk7CisgICAgICAgIGFkZFNwb3RUZXN0cyhGdWxsRW51bWVyYXRvclRlc3RzKTsKICAg
ICB9CiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9QQUdFU0laRTY0SwogCkBAIC0xMTI4LDcgKzExNTAs
NyBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICAgICAgICAgICAgICBzZWxlY3RlZEhlYXBSZWZD
cmVhdGVGb3JTaXplID0gY3JlYXRlQm1hbGxvY0hlYXBSZWZGb3JTaXplOwogICAgICAgICAgICAg
fSk7CiAgICAgCi0gICAgICAgIGFkZFNwb3RUZXN0cyh0cnVlKTsKKyAgICAgICAgYWRkU3BvdFRl
c3RzKExpbmVFbnVtZXJhdG9yVGVzdHMpOwogICAgIH0KIAogICAgIHsKQEAgLTExNTcsNyArMTE3
OSw3IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICAgICAgICAgIHNlbGVjdGVkSGVhcFJl
ZkNyZWF0ZUZvclNpemUgPSBudWxscHRyOwogICAgICAgICAgICAgfSk7CiAgICAgCi0gICAgICAg
IGFkZFNwb3RUZXN0cyhmYWxzZSk7CisgICAgICAgIGFkZFNwb3RUZXN0cyhOb0VudW1lcmF0b3JU
ZXN0cyk7CiAKICAgICAgICAgewogICAgICAgICAgICAgVGVzdFNjb3BlIGZyZXF1ZW50U2NhdmVu
Z2luZygKQEAgLTExNjcsNyArMTE4OSw3IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICAg
ICAgICAgICAgICBwYXNfc2NhdmVuZ2VyX21heF9lcG9jaF9kZWx0YSA9IC0xbGwgKiAxMDAwbGwg
KiAxMDAwbGw7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIGFkZFNwb3RUZXN0
cyhmYWxzZSk7CisgICAgICAgICAgICBhZGRTcG90VGVzdHMoTm9FbnVtZXJhdG9yVGVzdHMpOwog
ICAgICAgICB9CiAgICAgfQogI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1BTExPQwpAQCAtMTE4Niwx
MCArMTIwOCwyOCBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICAgICAgICAgICAgICBzZWxlY3Rl
ZEhlYXBSZWZHZXRIZWFwID0gbnVsbHB0cjsKICAgICAgICAgICAgIH0pOwogICAgIAotICAgICAg
ICBhZGRTcG90VGVzdHMoZmFsc2UpOworICAgICAgICBhZGRTcG90VGVzdHMoTm9FbnVtZXJhdG9y
VGVzdHMpOwogICAgIH0KICNlbmRpZiAvLyBQQVNfRU5BQkxFX0hPVEJJVAogCisjaWYgUEFTX0VO
QUJMRV9MSU5FUkVGCisgICAgeworICAgICAgICBUZXN0U2NvcGUgaXNvKAorICAgICAgICAgICAg
ImxpbmVyZWYiLAorICAgICAgICAgICAgW10gKCkgeworICAgICAgICAgICAgICAgIHNlbGVjdGVk
SGVhcENvbmZpZyA9ICZsaW5lcmVmX2hlYXBfY29uZmlnOworICAgICAgICAgICAgICAgIHNlbGVj
dGVkQWxsb2NhdGVDb21tb25QcmltaXRpdmUgPSBsaW5lcmVmX3RyeV9hbGxvY2F0ZTsKKyAgICAg
ICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBz
ZWxlY3RlZEFsbG9jYXRlQXJyYXkgPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNlbGVjdGVk
RGVhbGxvY2F0ZSA9IGxpbmVyZWZfZGVhbGxvY2F0ZTsKKyAgICAgICAgICAgICAgICBzZWxlY3Rl
ZENvbW1vblByaW1pdGl2ZUhlYXAgPSAmbGluZXJlZl9jb21tb25fcHJpbWl0aXZlX2hlYXA7Cisg
ICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFwUmVmR2V0SGVhcCA9IG51bGxwdHI7CisgICAgICAg
ICAgICB9KTsKKyAgICAKKyAgICAgICAgYWRkU3BvdFRlc3RzKE5vRW51bWVyYXRvclRlc3RzKTsK
KyAgICB9CisjZW5kaWYgLy8gUEFTX0VOQUJMRV9MSU5FUkVGCisKICNpZiBQQVNfRU5BQkxFX0pJ
VAogICAgIHsKICAgICAgICAgVGVzdFNjb3BlIGlzbygKQEAgLTEyMDcsNyArMTI0Nyw3IEBAIHZv
aWQgYWRkQWxsVGVzdHMoKQogCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwogCi0g
ICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7CisgICAgICAgIEFERF9HUk9V
UChhZGRUaGVUZXN0cygxLCBGdWxsRW51bWVyYXRvclRlc3RzKSk7CiAgICAgfQogCiAgICAgewpA
QCAtMTIyNyw5ICsxMjY3LDkgQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAKICAgICAgICAgQm9vdEpJ
VEhlYXAgYm9vdEpJVEhlYXA7CiAKLSAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZh
bHNlKSk7CisgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBOb0VudW1lcmF0b3JUZXN0
cykpOwogICAgIH0KLSNlbmRpZiAvLyBQQVNfRU5BQkxFX0hPVEJJVAorI2VuZGlmIC8vIFBBU19F
TkFCTEVfSklUCiB9CiAKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L0xpbmVBbGxvY2F0aW9uVGVzdHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9MaW5lQWxsb2NhdGlvblRlc3RzLmNw
cAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTGluZUFs
bG9jYXRpb25UZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTYzIEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJUZXN0
SGFybmVzcy5oIgorCisjaW5jbHVkZSAibGluZXJlZl9oZWFwLmgiCisjaW5jbHVkZSAibGluZXJl
Zl9oZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgImxpbmVyZWZfaGVhcF9pbm5hcmRzLmgiCisjaW5j
bHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSAicGFzX2FsbF9oZWFw
cy5oIgorI2luY2x1ZGUgInBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmgiCisjaW5jbHVkZSAicGFz
X2dldF9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2dldF9vYmplY3Rfa2luZC5oIgorI2luY2x1ZGUg
InBhc19nZXRfcGFnZV9iYXNlLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuaCIKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDxz
dHJpbmc+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSB7CisKK2NvbnN0ZXhw
ciBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworc3RydWN0IE9iaiB7CisgICAgT2JqKCkgPSBkZWZh
dWx0OworICAgIAorICAgIE9iaihzaXplX3QgaW5kZXgsIHVpbnRwdHJfdCBvZmZzZXQpCisgICAg
ICAgIDogaW5kZXgoaW5kZXgpCisgICAgICAgICwgb2Zmc2V0KG9mZnNldCkKKyAgICB7CisgICAg
fQorCisgICAgYm9vbCBvcGVyYXRvcjwoT2JqIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKGluZGV4ICE9IG90aGVyLmluZGV4KQorICAgICAgICAgICAgcmV0dXJuIGluZGV4IDwgb3Ro
ZXIuaW5kZXg7CisgICAgICAgIHJldHVybiBvZmZzZXQgPCBvdGhlci5vZmZzZXQ7CisgICAgfQor
CisgICAgYm9vbCBvcGVyYXRvcj09KE9iaiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBpbmRleCA9PSBvdGhlci5pbmRleAorICAgICAgICAgICAgJiYgb2Zmc2V0ID09IG90aGVy
Lm9mZnNldDsKKyAgICB9CisgICAgCisgICAgc2l6ZV90IGluZGV4IHsgU0laRV9NQVggfTsKKyAg
ICB1aW50cHRyX3Qgb2Zmc2V0IHsgMCB9OworfTsKKworb3N0cmVhbSYgb3BlcmF0b3I8PChvc3Ry
ZWFtJiBvdXQsIE9iaiBvYmopCit7CisgICAgb3V0IDw8IG9iai5pbmRleCA8PCAiOiIgPDwgb2Jq
Lm9mZnNldDsKKyAgICByZXR1cm4gb3V0OworfQorCitlbnVtIEtpbmQgeworICAgIE5vbmUsCisg
ICAgQWxsb2MsCisgICAgRnJlZSwKKyAgICBTaHJpbmssCisgICAgRmx1c2hEZWFsbG9jYXRpb25M
b2csCisgICAgQ2hlY2tCaXRzLAorICAgIENoZWNrQnVtcCwKKyAgICBDaGVja0J1bXBzLAorICAg
IENoZWNrTm9CdW1wcworfTsKKworb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvdXQsIEtp
bmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIE5vbmU6CisgICAgICAg
IG91dCA8PCAiTm9uZSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWxsb2M6CisgICAgICAg
IG91dCA8PCAiQWxsb2MiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZyZWU6CisgICAgICAg
IG91dCA8PCAiRnJlZSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2hyaW5rOgorICAgICAg
ICBvdXQgPDwgIlNocmluayI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmx1c2hEZWFsbG9j
YXRpb25Mb2c6CisgICAgICAgIG91dCA8PCAiRmx1c2hEZWFsbG9jYXRpb25Mb2ciOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENoZWNrQml0czoKKyAgICAgICAgb3V0IDw8ICJDaGVja0JpdHMi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENoZWNrQnVtcDoKKyAgICAgICAgb3V0IDw8ICJD
aGVja0J1bXAiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENoZWNrQnVtcHM6CisgICAgICAg
IG91dCA8PCAiQ2hlY2tCdW1wcyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2hlY2tOb0J1
bXBzOgorICAgICAgICBvdXQgPDwgIkNoZWNrTm9CdW1wcyI7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICByZXR1cm4gb3V0OworfQorCitzdHJ1Y3QgQWN0IHsKKyAgICBBY3QoKSA9IGRlZmF1
bHQ7CisKKyAgICBBY3QoS2luZCBraW5kKQorICAgICAgICA6IGtpbmQoa2luZCkKKyAgICB7Cisg
ICAgICAgIFBBU19BU1NFUlQoa2luZCA9PSBOb25lIHx8IGtpbmQgPT0gU2hyaW5rIHx8IGtpbmQg
PT0gQ2hlY2tCaXRzIHx8IGtpbmQgPT0gQ2hlY2tCdW1wCisgICAgICAgICAgICAgICAgICAgfHwg
a2luZCA9PSBDaGVja0J1bXBzIHx8IGtpbmQgPT0gQ2hlY2tOb0J1bXBzIHx8IGtpbmQgPT0gRmx1
c2hEZWFsbG9jYXRpb25Mb2cpOworICAgIH0KKworICAgIEFjdChLaW5kIGtpbmQsIE9iaiBvYmos
IHVuc2lnbmVkIHJlcGVhdCA9IDEpCisgICAgICAgIDoga2luZChraW5kKQorICAgICAgICAsIG9i
aihvYmopCisgICAgICAgICwgcmVwZWF0KHJlcGVhdCkKKyAgICB7CisgICAgICAgIFBBU19BU1NF
UlQoa2luZCA9PSBBbGxvYyB8fCBraW5kID09IEZyZWUpOworICAgIH0KKworICAgIEFjdChLaW5k
IGtpbmQsIHNpemVfdCBpbmRleCwgdWludHB0cl90IG9mZnNldCwgdW5zaWduZWQgcmVwZWF0ID0g
MSkKKyAgICAgICAgOiBraW5kKGtpbmQpCisgICAgICAgICwgb2JqKGluZGV4LCBvZmZzZXQpCisg
ICAgICAgICwgcmVwZWF0KHJlcGVhdCkKKyAgICB7CisgICAgICAgIFBBU19BU1NFUlQoa2luZCA9
PSBBbGxvYyB8fCBraW5kID09IEZyZWUpOworICAgIH0KKworICAgIEtpbmQga2luZCB7IE5vbmUg
fTsKKyAgICBPYmogb2JqOworICAgIHVuc2lnbmVkIHJlcGVhdCB7IDAgfTsKK307CisKK29zdHJl
YW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3V0LCBBY3QgYWN0aW9uKQoreworICAgIG91dCA8PCBh
Y3Rpb24ua2luZDsKKyAgICBpZiAoYWN0aW9uLmtpbmQgPT0gQWxsb2MgfHwgYWN0aW9uLmtpbmQg
PT0gRnJlZSkgeworICAgICAgICBvdXQgPDwgIigiIDw8IGFjdGlvbi5vYmo7CisgICAgICAgIGlm
IChhY3Rpb24ucmVwZWF0ICE9IDEpCisgICAgICAgICAgICBvdXQgPDwgIiB4IiA8PCBhY3Rpb24u
cmVwZWF0OworICAgICAgICBvdXQgPDwgIikiOworICAgIH0KKyAgICByZXR1cm4gb3V0OworfQor
CitzdHJ1Y3QgRm9yQWxsT2JqZWN0c0RhdGEgeworICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmln
OworICAgIHNldDx2b2lkKj4gbWluU2V0OworICAgIHNldDx2b2lkKj4gbWF4U2V0OworfTsKKwor
Ym9vbCBmb3JBbGxPYmplY3RzQ2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19vYmplY3RfbGl2ZW5lc3Nfa2luZCBsaXZlbmVz
c0tpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCit7CisgICAgRm9y
QWxsT2JqZWN0c0RhdGEqIGRhdGEgPSBzdGF0aWNfY2FzdDxGb3JBbGxPYmplY3RzRGF0YSo+KGFy
Zyk7CisKKyAgICBpZiAobGl2ZW5lc3NLaW5kID09IHBhc19kZWZpbml0ZWx5X2xpdmVfb2JqZWN0
X2tpbmQpCisgICAgICAgZGF0YS0+bWluU2V0Lmluc2VydChyZWludGVycHJldF9jYXN0PHZvaWQq
PihiZWdpbikpOworICAgIGRhdGEtPm1heFNldC5pbnNlcnQocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oYmVnaW4pKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIGZvckFsbE9iamVjdHNE
aXJlY3RvcnlDYWxsYmFjayhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgdm9p
ZCogYXJnKQoreworICAgIEZvckFsbE9iamVjdHNEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8Rm9y
QWxsT2JqZWN0c0RhdGEqPihhcmcpOworICAgIAorICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9y
eV9raW5kICE9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2tpbmQpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpLT5iYXNlLmhlYXBfY29uZmlnX3B0
cgorICAgICAgICAhPSBkYXRhLT5jb25maWcpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCisgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqPihkaXJl
Y3RvcnkpLAorICAgICAgICBmb3JBbGxPYmplY3RzQ2FsbGJhY2ssCisgICAgICAgIGRhdGEpOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgZG9UZXN0KGZ1bmN0aW9uPHZvaWQqKCk+IGFs
bG9jYXRlLAorICAgICAgICAgICAgZnVuY3Rpb248dm9pZCh2b2lkKik+IGRlYWxsb2NhdGUsCisg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICAgICAgICAgIHZlY3RvcjxB
Y3Q+IGFjdGlvbnMpCit7CisgICAgcGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisgICAgCisgICAg
bWFwPE9iaiwgdm9pZCo+IG9ialRvUHRyOworICAgIG1hcDx2b2lkKiwgT2JqPiBwdHJUb09iajsK
KworICAgIGZvciAoQWN0IGFjdGlvbiA6IGFjdGlvbnMpIHsKKyAgICAgICAgc3RyaW5nIGFjdGlv
blN0cmluZzsKKyAgICAgICAgb3N0cmluZ3N0cmVhbSBhY3Rpb25TdHJpbmdPdXQ7CisgICAgICAg
IGFjdGlvblN0cmluZ091dCA8PCBhY3Rpb247CisgICAgICAgIGFjdGlvblN0cmluZyA9IGFjdGlv
blN0cmluZ091dC5zdHIoKTsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBjb3V0
IDw8IGFjdGlvblN0cmluZyA8PCAiXG4iOworICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7
CisgICAgICAgIGNhc2UgTm9uZToKKyAgICAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGhhdmUgYSBOb25lIGFjdGlvbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QWxsb2M6IHsKKyAgICAgICAgICAgIHdoaWxlIChhY3Rpb24ucmVwZWF0LS0pIHsKKyAgICAgICAg
ICAgICAgICB2b2lkKiBwdHIgPSBhbGxvY2F0ZSgpOworICAgICAgICAgICAgICAgIHVpbnRwdHJf
dCBiZWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpOworICAgICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJiZWdpbiA9ICIg
PDwgYmVnaW4gPDwgIlxuIjsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QoYmVnaW4sIGNvbmZpZyk7CisgICAg
ICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgo
dmlldyk7CisgICAgICAgICAgICAgICAgdWludHB0cl90IG9mZnNldCA9IGJlZ2luIC0gcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KAorICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KHZpZXcpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5k
ZXggIT0gYWN0aW9uLm9iai5pbmRleCkgeworICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJG
b3IgIiA8PCBhY3Rpb25TdHJpbmcgPDwgIjogZXhwZWN0ZWQgIiA8PCBhY3Rpb24ub2JqIDw8ICIg
YnV0IGdvdCBpbmRleCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgPDwgaW5kZXggPDwgIlxu
IjsKKyAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwoaW5kZXgsIGFjdGlvbi5vYmouaW5k
ZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IGFj
dGlvbi5vYmoub2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgIkZvciAiIDw8
IGFjdGlvblN0cmluZyA8PCAiOiBleHBlY3RlZCAiIDw8IGFjdGlvbi5vYmogPDwgIiBidXQgZ290
IG9mZnNldCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgPDwgb2Zmc2V0IDw8ICJcbiI7Cisg
ICAgICAgICAgICAgICAgICAgIENIRUNLX0VRVUFMKG9mZnNldCwgYWN0aW9uLm9iai5vZmZzZXQp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBDSEVDSyghb2JqVG9QdHIuY291
bnQoYWN0aW9uLm9iaikpOworICAgICAgICAgICAgICAgIENIRUNLKCFwdHJUb09iai5jb3VudChw
dHIpKTsKKyAgICAgICAgICAgICAgICBvYmpUb1B0clthY3Rpb24ub2JqXSA9IHB0cjsKKyAgICAg
ICAgICAgICAgICBwdHJUb09ialtwdHJdID0gYWN0aW9uLm9iajsKKyAgICAgICAgICAgICAgICBh
Y3Rpb24ub2JqLm9mZnNldCArPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eSh2aWV3KS0+b2JqZWN0X3NpemU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorCisgICAgICAgIGNhc2UgRnJlZTogeworICAgICAgICAgICAgd2hpbGUgKGFj
dGlvbi5yZXBlYXQtLSkgeworICAgICAgICAgICAgICAgIGlmICghb2JqVG9QdHIuY291bnQoYWN0
aW9uLm9iaikpIHsKKyAgICAgICAgICAgICAgICAgICAgY291dCA8PCAiRm9yICIgPDwgYWN0aW9u
U3RyaW5nIDw8ICI6IENvdWxkIG5vdCBmaW5kIG9iamVjdCB0byBmcmVlOiAiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgYWN0aW9uLm9iaiA8PCAiXG4iOworICAgICAgICAgICAgICAgICAg
ICBDSEVDSyhvYmpUb1B0ci5jb3VudChhY3Rpb24ub2JqKSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHZvaWQqIHB0ciA9IG9ialRvUHRyW2FjdGlvbi5vYmpdOworICAgICAg
ICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihw
dHIpOworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyA9IHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZm9yX29iamVjdChiZWdpbiwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBD
SEVDSyhwdHJUb09iai5jb3VudChwdHIpKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUVVBTChw
dHJUb09ialtwdHJdLCBhY3Rpb24ub2JqKTsKKyAgICAgICAgICAgICAgICBkZWFsbG9jYXRlKHB0
cik7CisgICAgICAgICAgICAgICAgb2JqVG9QdHIuZXJhc2UoYWN0aW9uLm9iaik7CisgICAgICAg
ICAgICAgICAgcHRyVG9PYmouZXJhc2UocHRyKTsKKyAgICAgICAgICAgICAgICBhY3Rpb24ub2Jq
Lm9mZnNldCArPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+
b2JqZWN0X3NpemU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIGNhc2UgU2hyaW5rOgorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zaHJpbmsoCisgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXQo
Y29uZmlnKSwKKyAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIEZsdXNoRGVhbGxvY2F0aW9uTG9nOgorICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKAorICAg
ICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0KGNvbmZpZyksCisgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAKKworICAgICAgICBjYXNlIENoZWNrQml0czoKKyAgICAgICAgY2FzZSBDaGVja0J1
bXA6CisgICAgICAgIGNhc2UgQ2hlY2tCdW1wczoKKyAgICAgICAgY2FzZSBDaGVja05vQnVtcHM6
IHsKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXQoY29uZmlnKTsKKworICAgICAgICAgICAgYm9vbCBzYXdPbmUgPSBm
YWxzZTsKKworICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBs
YXlvdXROb2RlOworICAgICAgICAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9V
VF9FQUNIX0FMTE9DQVRPUihsYXlvdXROb2RlKSkgeworICAgICAgICAgICAgICAgIHBhc19hbGxv
Y2F0b3JfaW5kZXggYWxsb2NhdG9ySW5kZXggPQorICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhs
YXlvdXROb2RlKTsKKworICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JJbmRleCA+PSBjYWNo
ZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQorICAgICAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihsYXlvdXROb2RlKSkKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxv
Y2F0b3IgPSBzdGF0aWNfY2FzdDxwYXNfbG9jYWxfYWxsb2NhdG9yKj4oCisgICAgICAgICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3Qo
Y2FjaGUsIGFsbG9jYXRvckluZGV4KSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2Nh
bF9hbGxvY2F0b3JfaXNfYWN0aXZlKGFsbG9jYXRvcikpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICAgICAgc2F3T25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CisgICAgICAgICAgICAg
ICAgY2FzZSBDaGVja0JpdHM6CisgICAgICAgICAgICAgICAgICAgIENIRUNLX0dSRUFURVIoYWxs
b2NhdG9yLT5lbmRfb2Zmc2V0LCBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0KTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIENoZWNrQnVtcDoKKyAg
ICAgICAgICAgICAgICAgICAgQ0hFQ0soYWxsb2NhdG9yLT5yZW1haW5pbmcpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgQ2hlY2tCdW1wczoKKyAg
ICAgICAgICAgICAgICAgICAgQ0hFQ0soYWxsb2NhdG9yLT5udW1fYnVtcHMpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgQ2hlY2tOb0J1bXBzOgor
ICAgICAgICAgICAgICAgICAgICBDSEVDSyghYWxsb2NhdG9yLT5udW1fYnVtcHMpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgIFBBU19BU1NFUlQoISJCYWQgYWN0aW9uIGtpbmQiKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBDSEVDSyhzYXdPbmUpOworICAgICAgICB9IH0KKyAgICB9CisKKyAgICBQQVNfQVNT
RVJUKHB0clRvT2JqLnNpemUoKSA9PSBvYmpUb1B0ci5zaXplKCkpOworCisgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9zaHJpbmsoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
KGNvbmZpZyksCisgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAKKyAgICBGb3JB
bGxPYmplY3RzRGF0YSBmb3JBbGxPYmplY3RzRGF0YTsKKyAgICBmb3JBbGxPYmplY3RzRGF0YS5j
b25maWcgPSBjb25maWc7CisgICAgCisgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7CisgICAgcGFz
X2FsbF9oZWFwc19mb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeShmb3JBbGxPYmplY3RzRGly
ZWN0b3J5Q2FsbGJhY2ssICZmb3JBbGxPYmplY3RzRGF0YSk7CisgICAgcGFzX2hlYXBfbG9ja191
bmxvY2soKTsKKworICAgIENIRUNLX0dSRUFURVJfRVFVQUwoZm9yQWxsT2JqZWN0c0RhdGEubWF4
U2V0LnNpemUoKSwgcHRyVG9PYmouc2l6ZSgpKTsKKyAgICBDSEVDS19MRVNTX0VRVUFMKGZvckFs
bE9iamVjdHNEYXRhLm1pblNldC5zaXplKCksIHB0clRvT2JqLnNpemUoKSk7CisKKyAgICBmb3Ig
KHZvaWQqIHB0ciA6IGZvckFsbE9iamVjdHNEYXRhLm1pblNldCkKKyAgICAgICAgQ0hFQ0socHRy
VG9PYmouY291bnQocHRyKSk7CisgICAgZm9yIChhdXRvJiBwYWlyIDogcHRyVG9PYmopCisgICAg
ICAgIENIRUNLKGZvckFsbE9iamVjdHNEYXRhLm1heFNldC5jb3VudChwYWlyLmZpcnN0KSk7Cit9
CisKKyNpZiBQQVNfRU5BQkxFX0xJTkVSRUYKK3ZvaWQgZG9MaW5lcmVmVGVzdChzaXplX3Qgb2Jq
ZWN0U2l6ZSwgdmVjdG9yPEFjdD4gYWN0aW9ucykKK3sKKyAgICBkb1Rlc3QoWz1dICgpIHsKKyAg
ICAgICAgICAgICAgIHZvaWQqIHJlc3VsdCA9IGxpbmVyZWZfYWxsb2NhdGUob2JqZWN0U2l6ZSk7
CisgICAgICAgICAgICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZShyZXN1
bHQsIExJTkVSRUZfSEVBUF9DT05GSUcpLCBvYmplY3RTaXplKTsKKyAgICAgICAgICAgICAgIENI
RUNLX0VRVUFMKHBhc19nZXRfb2JqZWN0X2tpbmQocmVzdWx0LCBMSU5FUkVGX0hFQVBfQ09ORklH
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zbWFsbF9zZWdyZWdhdGVkX29iamVj
dF9raW5kKTsKKyAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgIH0sCisg
ICAgICAgICAgIFtdICh2b2lkKiBwdHIpIHsgbGluZXJlZl9kZWFsbG9jYXRlKHB0cik7IH0sCisg
ICAgICAgICAgICZsaW5lcmVmX2hlYXBfY29uZmlnLAorICAgICAgICAgICBhY3Rpb25zKTsKK30K
Kwordm9pZCB0ZXN0RGVjb21taXQoKQoreworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOwor
ICAgIAorICAgIENIRUNLX0VRVUFMKHBhc19oZWFwX2NvbXB1dGVfc3VtbWFyeSgmbGluZXJlZl9j
b21tb25fcHJpbWl0aXZlX2hlYXAsIHBhc19sb2NrX2lzX25vdF9oZWxkKS5jb21taXR0ZWQsIDAp
OworCisgICAgdm9pZCogcHRyID0gbGluZXJlZl9hbGxvY2F0ZSgzMik7CisgICAgQ0hFQ0socHRy
KTsKKyAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZShwdHIsIExJTkVSRUZf
SEVBUF9DT05GSUcpLCAzMik7CisgICAgQ0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgTElO
RVJFRl9IRUFQX0NPTkZJRyksICZsaW5lcmVmX2NvbW1vbl9wcmltaXRpdmVfaGVhcCk7CisgICAg
Q0hFQ0tfRVFVQUwocGFzX3BhZ2VfYmFzZV9nZXRfa2luZChwYXNfZ2V0X3BhZ2VfYmFzZShwdHIs
IExJTkVSRUZfSEVBUF9DT05GSUcpKSwKKyAgICAgICAgICAgICAgICBwYXNfc21hbGxfZXhjbHVz
aXZlX3NlZ3JlZ2F0ZWRfcGFnZV9raW5kKTsKKyAgICAKKyAgICBDSEVDS19FUVVBTChwYXNfaGVh
cF9jb21wdXRlX3N1bW1hcnkoJmxpbmVyZWZfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLCBwYXNfbG9j
a19pc19ub3RfaGVsZCkuY29tbWl0dGVkLAorICAgICAgICAgICAgICAgIDE2Mzg0KTsKKworICAg
IHBhc19zY2F2ZW5nZXJfcnVuX3N5bmNocm9ub3VzbHlfbm93KCk7CisKKyAgICBDSEVDS19FUVVB
TChwYXNfaGVhcF9jb21wdXRlX3N1bW1hcnkoJmxpbmVyZWZfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
LCBwYXNfbG9ja19pc19ub3RfaGVsZCkuY29tbWl0dGVkLAorICAgICAgICAgICAgICAgIDE2Mzg0
KTsKKworICAgIGxpbmVyZWZfZGVhbGxvY2F0ZShwdHIpOworCisgICAgQ0hFQ0tfRVFVQUwocGFz
X2hlYXBfY29tcHV0ZV9zdW1tYXJ5KCZsaW5lcmVmX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwgcGFz
X2xvY2tfaXNfbm90X2hlbGQpLmNvbW1pdHRlZCwKKyAgICAgICAgICAgICAgICAxNjM4NCk7CisK
KyAgICBwYXNfc2NhdmVuZ2VyX3J1bl9zeW5jaHJvbm91c2x5X25vdygpOworCisgICAgQ0hFQ0tf
RVFVQUwocGFzX2hlYXBfY29tcHV0ZV9zdW1tYXJ5KCZsaW5lcmVmX2NvbW1vbl9wcmltaXRpdmVf
aGVhcCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpLmNvbW1pdHRlZCwKKyAgICAgICAgICAgICAgICAw
KTsKK30KKyNlbmRpZiAvLyBQQVNfRU5BQkxFX0xJTkVSRUYKKworfSAvLyBhbm9ueW1vdXMgbmFt
ZXNwYWNlCisKK3ZvaWQgYWRkTGluZUFsbG9jYXRpb25UZXN0cygpCit7CisjaWYgUEFTX0VOQUJM
RV9MSU5FUkVGCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3QoQWxsb2MsIDAs
IDExMiwgMjUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAs
IDExMiwgOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTEyLCA5KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTEyLCA5OTIp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAxMTIpIH0p
KTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMTYsIHsgQWN0KEFsbG9jLCAwLCAxMTIs
IDI1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxMTIs
IDgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDUxMiwgOTkyKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisK
KyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxvYywgMCwgMTEyLCAyNSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTEyLCAxKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA1MTIsIDk5MiksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDExMikgfSkpOworCisgICAg
QUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3QoQWxsb2MsIDAsIDExMiwgMTAxNyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTI4MCwgOCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERf
VEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxvYywgMCwgMTEyLCAxMDE3KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxMjgwLCA4KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAyNTYpIH0pKTsKKworICAgIEFERF9URVNUKGRv
TGluZXJlZlRlc3QoMTYsIHsgQWN0KEFsbG9jLCAwLCAxMTIsIDEwMTcpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAxMTIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDEyODAsIDgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoQWxsb2MsIDEsIDI1NikgfSkpOworCisgICAgLy8gVGhpcyB0ZXN0cyB0aGF0
IGZyZWVpbmcgbW9yZSB0aGFuIG9uZSBsaW5lIGluIGEgcGFnZSB0aGF0IGlzbid0IGN1cnJlbnRs
eSBiZWluZyB1c2VkIGZvciBhbGxvY2F0aW9uCisgICAgLy8gYW5kIHRoZW4gZnVsbHkgYWxsb2Nh
dGluZyBpbiB0aGF0IHBhZ2Ugd29ya3MuCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwg
eyBBY3QoQWxsb2MsIDAsIDExMiwgMTAxNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoQWxsb2MsIDEsIDExMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoRnJlZSwgMCwgMTI4MCwgMzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDAsIDEyODAsIDMyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChB
bGxvYywgMSwgMjU2KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFj
dChBbGxvYywgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChBbGxvYywgMSwgMTEyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChGcmVlLCAwLCAxMjgwLCAzMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgMzMyOCwgMzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2Ms
IDAsIDEyODAsIDMyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxv
YywgMCwgMzMyOCwgMzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFs
bG9jLCAxLCAyNTYpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMTYsIHsgQWN0
KEFsbG9jLCAwLCAxMTIsIDEwMTcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KEZyZWUsIDAsIDEyODAsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9j
LCAwLCAxMjgwLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDEsIDExMikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3Qo
QWxsb2MsIDAsIDExMiwgMTAxNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgMTYxMjgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9j
LCAwLCAxNjEyOCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFs
bG9jLCAxLCAxMTIpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMTYsIHsgQWN0
KEFsbG9jLCAwLCAxMTIsIDEwMTcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KEZyZWUsIDAsIDExMiwgOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MCwgMTEyLCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxv
YywgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChG
cmVlLCAwLCAxMTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZy
ZWUsIDAsIDE2MTI4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
U2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTEyLCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTYxMjgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxv
YywgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChG
cmVlLCAwLCAxMTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZy
ZWUsIDAsIDE2MTI4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
RnJlZSwgMCwgMTMxMiwgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
U2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTEyLCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTYxMjgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxv
YywgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChG
cmVlLCAwLCAxMTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZy
ZWUsIDAsIDE2MTI4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
RnJlZSwgMCwgMTMxMiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAs
IDExMiwgOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAs
IDE2MTI4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2Ms
IDEsIDExMikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3QoQWxs
b2MsIDAsIDExMiwgMTAxNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
RnJlZSwgMCwgMTEyLCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChG
cmVlLCAwLCAxNjEyOCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KEZyZWUsIDAsIDEzMTIsIDQwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAw
LCAxMTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAw
LCAxNTM2LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2Ms
IDAsIDE2MTI4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDEsIDExMikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3Qo
QWxsb2MsIDAsIDExMiwgMTAxNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgMTEyLCAyNyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgMTU4MDgsIDM2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChGcmVlLCAwLCAxMzEyLCA0MCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxv
YywgMCwgMTEyLCAyNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDAsIDE1MzYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChB
bGxvYywgMCwgMTU4NzIsIDMyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7
IEFjdChBbGxvYywgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChGcmVlLCAwLCAxMTIsIDI3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChGcmVlLCAwLCAxNTgwOCwgMzYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEZyZWUsIDAsIDEzMTIsIDQwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KEFsbG9jLCAwLCAxMTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENo
ZWNrQnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1w
cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDEyOCwg
MjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNTM2
LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1wcyks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE1ODcyKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXApLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrTm9CdW1wcyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE1ODg4LCAzMSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDExMikgfSkpOworCisgICAg
QUREX1RFU1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3QoQWxsb2MsIDAsIDExMiwgMTAxNyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTEyLCA5KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA1MTIsIDE2KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxMDI0LCAxNiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTUzNiwgMTYpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDIwNDgsIDE2KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAyNTYwLCAxNiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMzA3MiwgMTYp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDM1ODQsIDE2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA0MDk2LCAx
NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgNDYwOCwg
MTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDUxMjAs
IDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA1NjMy
LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgNjE0
NCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDY2
NTYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA3
MTY4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwg
NzY4MCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAs
IDgxOTIsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAw
LCA4NzA0LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwg
MCwgOTIxNiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUs
IDAsIDk3MjgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVl
LCAwLCAxMDI0MCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZy
ZWUsIDAsIDEwNzUyLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
RnJlZSwgMCwgMTEyNjQsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChGcmVlLCAwLCAxMTc3NiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KEZyZWUsIDAsIDEyMjg4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoRnJlZSwgMCwgMTI4MDAsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChGcmVlLCAwLCAxMzMxMiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEZyZWUsIDAsIDEzODI0LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoRnJlZSwgMCwgMTQzMzYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChGcmVlLCAwLCAxNDg0OCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDE1MzYwLCAxNiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTU4NzIsIDE2KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEFsbG9jLCAwLCAxMTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEFsbG9jLCAwLCA1MTIsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMCwgMTAyNCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNTM2LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDIwNDgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMjU2MCwgMTYpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAzMDcyLCAxNiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDM1ODQsIDE2KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNDA5NiwgMTYpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA0NjA4LCAxNiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDUxMjAsIDE2KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTYzMiwgMTYpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA2MTQ0LCAxNiksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDY2NTYsIDE2KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNzE2OCwgMTYpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA3NjgwLCAxNiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDgxOTIsIDE2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgODcwNCwg
MTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA5MjE2
LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDk3
MjgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTAyNDAsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MCwgMTA3NTIsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxv
YywgMCwgMTEyNjQsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChB
bGxvYywgMCwgMTE3NzYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChBbGxvYywgMCwgMTIyODgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChBbGxvYywgMCwgMTI4MDAsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMCwgMTMzMTIsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMCwgMTM4MjQsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChBbGxvYywgMCwgMTQzMzYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTQ4NDgsIDE2KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTUzNjAsIDE2KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTU4NzIsIDE2KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERf
VEVTVChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxvYywgMCwgMTEyLCAxMDE3KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAyNTYsIDE2KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA3NjgsIDE2KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxMjgwLCAxNiksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTc5MiwgMTYpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDIzMDQsIDE2KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAyODE2LCAxNiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMzMyOCwgMTYpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDM4NDAsIDE2KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA0MzUyLCAxNiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgNDg2NCwgMTYp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDUzNzYsIDE2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA1ODg4LCAx
NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgNjQwMCwg
MTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDY5MTIs
IDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA3NDI0
LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgNzkz
NiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDg0
NDgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA4
OTYwLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwg
OTQ3MiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAs
IDk5ODQsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAw
LCAxMDQ5NiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUs
IDAsIDExMDA4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJl
ZSwgMCwgMTE1MjAsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChG
cmVlLCAwLCAxMjAzMiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KEZyZWUsIDAsIDEyNTQ0LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgMTMwNTYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChGcmVlLCAwLCAxMzU2OCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEZyZWUsIDAsIDE0MDgwLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoRnJlZSwgMCwgMTQ1OTIsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChGcmVlLCAwLCAxNTEwNCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEZyZWUsIDAsIDE1NjE2LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYxMjgsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAyNTYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMCwgNzY4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoQWxsb2MsIDAsIDEyODAsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMCwgMTc5MiwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEFsbG9jLCAwLCAyMzA0LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDI4MTYsIDE2KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMzMyOCwgMTYpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAzODQwLCAxNiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDQzNTIsIDE2KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNDg2NCwgMTYpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA1Mzc2LCAxNiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDU4ODgsIDE2KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNjQwMCwgMTYpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA2OTEyLCAxNiksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDc0MjQsIDE2KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNzkzNiwgMTYpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA4NDQ4LCAxNiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDg5NjAsIDE2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgOTQ3Miwg
MTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA5OTg0
LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDEw
NDk2LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAs
IDExMDA4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2Ms
IDAsIDExNTIwLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDAsIDEyMDMyLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
QWxsb2MsIDAsIDEyNTQ0LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDEzMDU2LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoQWxsb2MsIDAsIDEzNTY4LCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoQWxsb2MsIDAsIDE0MDgwLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoQWxsb2MsIDAsIDE0NTkyLCAxNiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE1MTA0LCAxNiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE1NjE2LCAxNiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MTI4LCAxNiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDExMikgfSkpOworCisgICAgQUREX1RF
U1QoZG9MaW5lcmVmVGVzdCgxNiwgeyBBY3QoQWxsb2MsIDAsIDExMiwgMTAxNyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTI4MCwgNDgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDEyODAsIDQ4KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVT
VChkb0xpbmVyZWZUZXN0KDE2LCB7IEFjdChBbGxvYywgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxMjgwLCA0OCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTI4MCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1wKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChDaGVja05vQnVtcHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxMjk2LCA0NyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoQWxsb2MsIDEsIDExMikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVz
dCgxNiwgeyBBY3QoQWxsb2MsIDAsIDExMiwgMTAxNyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTEyLCAxMDE3KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxMTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KENoZWNrQnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hl
Y2tOb0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MCwgMTI4LCAxMDE2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxv
YywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChB
bGxvYywgMCwgMTEyLCAzMzkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KEZyZWUsIDAsIDExMiwgMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
U2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTEyLCAzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwg
MTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxvYywg
MCwgMTEyLCAzMzkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUs
IDAsIDI1NiwgNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5r
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMjU2LCA2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9
KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxvYywgMCwgMTEy
LCAzMzkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDU0
NCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTQ0LCA1KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisK
KyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxvYywgMCwgMTEyLCAzMzkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDU0NCwgNiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTQ0LCA1KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBB
RERfVEVTVChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxvYywgMCwgMTEyLCAzMzkpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDU0NCwgNyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTQ0LCA1KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVT
VChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxvYywgMCwgMTEyLCAzMzkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDU0NCwgOSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTQ0LCA1KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xp
bmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxvYywgMCwgMTEyLCAzMzkpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDU0NCwgMTApLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoQWxsb2MsIDAsIDU0NCwgMTApLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEFsbG9jLCAxLCAxMTIpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJl
ZlRlc3QoNDgsIHsgQWN0KEFsbG9jLCAwLCAxMTIsIDMzOSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMjU2LCAxMSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMCwgMjU2LCAxMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoQWxsb2MsIDEsIDExMikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVz
dCg0OCwgeyBBY3QoQWxsb2MsIDAsIDExMiwgMzM5KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChGcmVlLCAwLCA1NDQsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEZyZWUsIDAsIDI3NTIsIDMpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDU0NCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDEsIDExMikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCg0OCwg
eyBBY3QoQWxsb2MsIDAsIDExMiwgMzM5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChGcmVlLCAwLCA1NDQsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEZyZWUsIDAsIDI3NTIsIDcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDAsIDU0NCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDAsIDI4NDgsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFs
bG9jLCAxLCAxMTIpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoNDgsIHsgQWN0
KEFsbG9jLCAwLCAxMTIsIDMzOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgNTQ0LCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChGcmVlLCAwLCAyNzUyLCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAw
LCA1NDQsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAw
LCAyODQ4LCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MSwgMTEyKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDQ4LCB7IEFjdChBbGxv
YywgMCwgMTEyLCAzMzkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFs
bG9jLCAxLCAxMTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUs
IDAsIDU0NCwgOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwg
MCwgMjc1MiwgOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwg
MCwgNTU4NCwgOSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5r
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTQ0LCA1
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMjg0OCwg
NSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDU2MzIs
IDYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAyNTYp
IH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMjA4LCB7IEFjdChBbGxvYywgMCwg
MTYwLCA3OCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAx
LCAxNjApIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMjA4LCB7IEFjdChBbGxv
YywgMCwgMTYwLCA3OCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZy
ZWUsIDAsIDE2MCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmlu
ayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNjAp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTYwKSB9
KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDIwOCwgeyBBY3QoQWxsb2MsIDAsIDE2
MCwgNzgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAx
NjE3NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNjE3NiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAxNjApIH0pKTsK
KworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMjA4LCB7IEFjdChBbGxvYywgMCwgMTYwLCA3
OCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDE2MCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDE2MTc2KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTYxNzYpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTYwKSB9KSk7CisKKyAgICBBRERfVEVT
VChkb0xpbmVyZWZUZXN0KDIwOCwgeyBBY3QoQWxsb2MsIDAsIDE2MCwgNzgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxNjAsIDIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxNjE3NiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNjAsIDIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MTc2KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDE2MCkgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5l
cmVmVGVzdCgyMDgsIHsgQWN0KEFsbG9jLCAwLCAxNjAsIDc4KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYwLCAzKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYxNzYpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMCwgMTYwLCAzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoQ2hlY2tCdW1wcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxNjE3NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAxLCAxNjApIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3Qo
MjA4LCB7IEFjdChBbGxvYywgMCwgMTYwLCA3OCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEZyZWUsIDAsIDE2MCwgNCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEZyZWUsIDAsIDE2MTc2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDE2MCwgMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KENoZWNrQnVtcHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChB
bGxvYywgMCwgMTYxNzYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChB
bGxvYywgMSwgMTYwKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDIwOCwgeyBB
Y3QoQWxsb2MsIDAsIDE2MCwgNzgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChGcmVlLCAwLCAxNjAsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChGcmVlLCAwLCAxNjE3NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9j
LCAwLCAxNjAsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVj
a0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAs
IDE2MTc2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEs
IDE2MCkgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyMDgsIHsgQWN0KEFsbG9j
LCAwLCAxNjAsIDc4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJl
ZSwgMCwgMTYwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJl
ZSwgMCwgMTUxMzYsIDYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChT
aHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
MTYwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1w
cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNTEz
NiwgNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAx
NjApIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMjA4LCB7IEFjdChBbGxvYywg
MCwgMTYwLCA3OCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUs
IDAsIDE2MCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUs
IDAsIDE0OTI4LCA3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hy
aW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2
MCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTQ5Mjgs
IDcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTYw
KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDIwOCwgeyBBY3QoQWxsb2MsIDAs
IDE2MCwgNzgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAw
LCAxNjAsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAw
LCAxNDcyMCwgOCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmlu
ayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNjAs
IDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXBzKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE0NzIwLCA4
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDE2MCkg
fSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyMDgsIHsgQWN0KEFsbG9jLCAwLCAx
NjAsIDc4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwg
MTYwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwg
MTQ1MTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmsp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTYwLCA1
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1wcyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNDUxMiwgOSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAxNjApIH0p
KTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMjA4LCB7IEFjdChBbGxvYywgMCwgMTYw
LCA3OCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDE2
MCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDE0
MzA0LCAxMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNjAsIDUp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXBzKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE0NTEyLCA5KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDE2MCkgfSkp
OworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyMDgsIHsgQWN0KEFsbG9jLCAwLCAxNjAs
IDc4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYw
LCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTQw
OTYsIDExKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MCwgNSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTQwOTYsIDExKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDE2MCkgfSkp
OworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyMDgsIHsgQWN0KEFsbG9jLCAwLCAxNjAs
IDc4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYw
LCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTQz
MDQsIDEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MCwgNSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTQ1MTIsIDkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTYwKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTQwOTYpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTQwOTYsIDIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMzY4KSB9KSk7CisKKyAgICBB
RERfVEVTVChkb0xpbmVyZWZUZXN0KDIwOCwgeyBBY3QoQWxsb2MsIDAsIDE2MCwgNzgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxNjAsIDUpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxNDMwNCwgMTApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTYwLCA1KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1wcyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNDUxMiwgOSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAxNjApLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxNDA5NiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxNDA5NiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KENoZWNrQnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KENoZWNrTm9CdW1wcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxNDMwNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAxLCAzNjgpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3Qo
MjA4LCB7IEFjdChBbGxvYywgMCwgMTYwLCA3OCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEZyZWUsIDAsIDE2MCwgNCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWN0KEZyZWUsIDAsIDE0MzA0LCAxMCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxNjAsIDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChDaGVja0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDE0NTEyLCA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoQWxsb2MsIDEsIDE2MCkgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgy
MDgsIHsgQWN0KEFsbG9jLCAwLCAxNjAsIDc4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoRnJlZSwgMCwgMTYwLCA0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoRnJlZSwgMCwgMTQzMDQsIDEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoRnJlZSwgMCwgODQ4MCwgMyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxNjAsIDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChDaGVja0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDg0ODAsIDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChBbGxvYywgMCwgMTQ1MTIsIDkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMSwgMTYwKSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0
KDI1NiwgeyBBY3QoQWxsb2MsIDAsIDI1NiwgNjMpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChGcmVlLCAwLCAyNTYsIDYzKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoQWxsb2MsIDAsIDI1NiwgNjMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMSwgMjU2KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0
KDI1NiwgeyBBY3QoQWxsb2MsIDAsIDI1NiwgNjMpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChGcmVlLCAwLCAyNTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChBbGxvYywgMCwgMjU2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
QWxsb2MsIDEsIDI1NikgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyNTYsIHsg
QWN0KEFsbG9jLCAwLCAyNTYsIDYzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoRnJlZSwgMCwgMjU2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoRnJlZSwgMCwgNzY4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
U2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAs
IDI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA3
NjgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMjU2
KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDI1NiwgeyBBY3QoQWxsb2MsIDAs
IDI1NiwgNjMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAw
LCAyNTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA3
NjgsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCA1
Mzc2LCA3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDI1NiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA3NjgsIDUpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgNTM3NiwgNyks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAyNTYpIH0p
KTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoMjU2LCB7IEFjdChBbGxvYywgMCwgMjU2
LCA2MyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDI1
NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDc2OCwg
NSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDUzNzYs
IDcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMjU2KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDc2OCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTAyNCwgNCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA1Mzc2KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1wKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQ2hlY2tOb0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoQWxsb2MsIDAsIDU2MzIsIDYpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChBbGxvYywgMSwgMjU2KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVy
ZWZUZXN0KDI1NiwgeyBBY3QoQWxsb2MsIDAsIDI1NiwgNjMpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxNjEyOCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDI1NiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDc2OCwgNSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDUzNzYsIDcpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMCwgMjU2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoQWxsb2MsIDAsIDc2OCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KENoZWNrQnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENo
ZWNrQnVtcHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywg
MCwgMTAyNCwgNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9j
LCAwLCA1Mzc2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tC
dW1wKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQ2hlY2tCdW1wcyks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCA1NjMyLCA2
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MTI4
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDI1Nikg
fSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyNzIsIHsgQWN0KEFsbG9jLCAwLCAy
NzIsIDU5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEs
IDI3MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDI3
MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAyNzIpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgNTQ0KSB9KSk7CisKKyAg
ICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDI3MiwgeyBBY3QoQWxsb2MsIDAsIDI3MiwgNTkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMjcyKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYwNDgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTYwNDgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgNTQ0KSB9KSk7CisKKyAgICBBRERf
VEVTVChkb0xpbmVyZWZUZXN0KDI3MiwgeyBBY3QoQWxsb2MsIDAsIDI3MiwgNTkpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMjcyKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMjcyKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMTYwNDgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMjcyKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDE2MDQ4KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDU0NCkgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5l
cmVmVGVzdCgyNzIsIHsgQWN0KEFsbG9jLCAwLCAyNzIsIDU5KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDI3MiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDI3MiwgMTcpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChGcmVlLCAwLCAxMTQyNCwgMTgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChBbGxvYywgMCwgMjcyLCAxNyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxMTQyNCwgMTgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgNTQ0KSB9KSk7CisKKyAgICBBRERfVEVTVChk
b0xpbmVyZWZUZXN0KDI3MiwgeyBBY3QoQWxsb2MsIDAsIDI3MiwgNTkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMjcyKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMjcyLCAxNyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDExNDI0LCAxOCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAyNzIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChDaGVja0J1bXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChDaGVja0J1bXBzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoQWxsb2MsIDAsIDU0NCwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMCwgMTE0MjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChDaGVja0J1bXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChDaGVja05vQnVtcHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChB
bGxvYywgMCwgMTE2OTYsIDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDEsIDU0NCkgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCgyNzIs
IHsgQWN0KEFsbG9jLCAwLCAyNzIsIDU5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBY3QoQWxsb2MsIDEsIDI3MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEZyZWUsIDAsIDExNDI0LCAxOCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEZyZWUsIDAsIDY1MjgsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChGcmVlLCAwLCAyNzIsIDE3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDI3MiwgMTcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChBbGxvYywgMCwgNjUyOCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAwLCAxMTQyNCwgMTgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMSwgNTQ0KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZU
ZXN0KDgwMCwgeyBBY3QoQWxsb2MsIDAsIDM4NCwgMjApLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMzg0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBY3QoRnJlZSwgMCwgMzg0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDAsIDM4NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KEFsbG9jLCAxLCAxMTg0KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDgwMCwg
eyBBY3QoQWxsb2MsIDAsIDM4NCwgMjApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChBbGxvYywgMSwgMzg0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoRnJlZSwgMCwgMzg0LCAxMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KFNocmluayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFs
bG9jLCAwLCAzODQsIDEzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Qo
QWxsb2MsIDEsIDExODQpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoODAwLCB7
IEFjdChBbGxvYywgMCwgMzg0LCAyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0KEFsbG9jLCAxLCAzODQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFjdChGcmVlLCAwLCAzODQsIDEzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBY3QoU2hyaW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxs
b2MsIDAsIDM4NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNr
QnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrTm9CdW1w
cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAwLCAxMTg0
LCAxMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEFsbG9jLCAxLCAx
MTg0KSB9KSk7CisKKyAgICBBRERfVEVTVChkb0xpbmVyZWZUZXN0KDgwMCwgeyBBY3QoQWxsb2Ms
IDAsIDM4NCwgMjApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxv
YywgMSwgMzg0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwg
MCwgMTIzODQsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChTaHJp
bmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTIz
ODQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja05vQnVtcHMpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTMxODQsIDQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTE4NCkgfSkp
OworCisgICAgQUREX1RFU1QoZG9MaW5lcmVmVGVzdCg4MDAsIHsgQWN0KEFsbG9jLCAwLCAzODQs
IDIwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDM4
NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDEyMzg0
LCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoRnJlZSwgMCwgMzg0
LCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoU2hyaW5rKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDAsIDM4NCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTE4NCwgNCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVtcHMpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTIzODQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXApLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChDaGVja05vQnVtcHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMCwgMTMxODQsIDQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFjdChBbGxvYywgMSwgMTE4NCkgfSkpOworCisgICAgQUREX1RFU1QoZG9MaW5l
cmVmVGVzdCg4MDAsIHsgQWN0KEFsbG9jLCAwLCAzODQsIDIwKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBY3QoQWxsb2MsIDEsIDM4NCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWN0KEZyZWUsIDAsIDc1ODQsIDUpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChBbGxvYywgMCwgNzU4NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KENoZWNrQnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QWN0KENoZWNrTm9CdW1wcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KEFsbG9jLCAwLCA4Mzg0LCA0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
Y3QoQWxsb2MsIDEsIDExODQpIH0pKTsKKworICAgIEFERF9URVNUKGRvTGluZXJlZlRlc3QoODAw
LCB7IEFjdChBbGxvYywgMCwgMzg0LCAyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEFsbG9jLCAxLCAzODQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFjdChGcmVlLCAwLCAxMjM4NCwgNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQWN0KEZyZWUsIDAsIDE5ODQsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjdChTaHJpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFj
dChBbGxvYywgMCwgMTk4NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0
KENoZWNrQnVtcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNr
QnVtcHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwg
Mjc4NCwgNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0KENoZWNrQnVt
cHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTIz
ODQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja0J1bXApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChDaGVja05vQnVtcHMpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMCwgMTMxODQsIDQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdChBbGxvYywgMSwgMTE4NCkgfSkp
OworCisgICAgQUREX1RFU1QodGVzdERlY29tbWl0KCkpOworI2VuZGlmIC8vIFBBU19FTkFCTEVf
TElORVJFRgorfQorCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvUEdNVGVz
dHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9QR01U
ZXN0cy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L1BHTVRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSA8dW5pc3RkLmg+
CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNpbmNsdWRlICJUZXN0SGFybmVzcy5oIgorI2luY2x1
ZGUgInBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCIKKyNpbmNsdWRl
ICJwYXNfaGVhcC5oIgorI2luY2x1ZGUgImlzb19oZWFwLmgiCisjaW5jbHVkZSAiaXNvX2hlYXBf
Y29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2hlYXBfcmVmX2tpbmQuaCIKKworCit1c2luZyBuYW1l
c3BhY2Ugc3RkOworCituYW1lc3BhY2UgeworCit2b2lkIHRlc3RQR01TaW5nbGVBbGxvYygpIHsK
KyAgICBwYXNfaGVhcF9yZWYgaGVhcFJlZiA9IElTT19IRUFQX1JFRl9JTklUSUFMSVpFUl9XSVRI
X0FMSUdOTUVOVChnZXRwYWdlc2l6ZSgpICogMTAwLCBnZXRwYWdlc2l6ZSgpKTsKKyAgICBwYXNf
aGVhcCogaGVhcCA9IGlzb19oZWFwX3JlZl9nZXRfaGVhcCgmaGVhcFJlZik7CisgICAgcGFzX3Bo
eXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiB0cmFuc2FjdGlvbjsKKyAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uX2NvbnN0cnVjdCgmdHJhbnNhY3Rpb24pOworCisgICAgcGFzX2hl
YXBfbG9ja19sb2NrKCk7CisKKyAgICBzaXplX3QgaW5pdF9mcmVlX3ZpcnRfbWVtID0gcGFzX3By
b2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2dldF9mcmVlX3ZpcnR1YWxfbWVtb3J5KCk7CisgICAg
c2l6ZV90IGluaXRfZnJlZV93YXN0ZWRfbWVtID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFs
bG9jX2dldF9mcmVlX3dhc3RlZF9tZW1vcnkoKTsKKworICAgIHNpemVfdCBhbGxvY19zaXplID0g
MTAyNDsKKyAgICB2b2lkICogbWVtID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2Fs
bG9jYXRlKGFsbG9jX3NpemUsIGhlYXAsICZpc29faGVhcF9jb25maWcsICZ0cmFuc2FjdGlvbik7
CisgICAgQ0hFQ0sobWVtKTsKKworICAgIHNpemVfdCB1cGRhdGVkX2ZyZWVfdmlydF9tZW0gPSBw
YXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2ZyZWVfdmlydHVhbF9tZW1vcnkoKTsK
KyAgICBzaXplX3QgdXBkYXRlZF9mcmVlX3dhc3RlZF9tZW0gPSBwYXNfcHJvYmFiaWxpc3RpY19n
dWFyZF9tYWxsb2NfZ2V0X2ZyZWVfd2FzdGVkX21lbW9yeSgpOworCisgICAgQ0hFQ0tfRVFVQUwo
aW5pdF9mcmVlX3ZpcnRfbWVtIC0gKDMgKiBnZXRwYWdlc2l6ZSgpKSwgdXBkYXRlZF9mcmVlX3Zp
cnRfbWVtKTsKKyAgICBDSEVDS19FUVVBTChpbml0X2ZyZWVfd2FzdGVkX21lbSAtIChnZXRwYWdl
c2l6ZSgpIC0gYWxsb2Nfc2l6ZSksIHVwZGF0ZWRfZnJlZV93YXN0ZWRfbWVtKTsKKworICAgIHBh
c19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKG1lbSk7CisKKyAgICB1cGRh
dGVkX2ZyZWVfdmlydF9tZW0gPSBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2Zy
ZWVfdmlydHVhbF9tZW1vcnkoKTsKKyAgICB1cGRhdGVkX2ZyZWVfd2FzdGVkX21lbSA9IHBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV93YXN0ZWRfbWVtb3J5KCk7CisKKyAg
ICBDSEVDS19FUVVBTChpbml0X2ZyZWVfdmlydF9tZW0sIHVwZGF0ZWRfZnJlZV92aXJ0X21lbSk7
CisgICAgQ0hFQ0tfRVFVQUwoaW5pdF9mcmVlX3dhc3RlZF9tZW0sIHVwZGF0ZWRfZnJlZV93YXN0
ZWRfbWVtKTsKKworICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisgICAgcmV0dXJuOworfQor
CisKK3ZvaWQgdGVzdFBHTU11bHRpcGxlQWxsb2MoKSB7CisgICAgcGFzX2hlYXBfcmVmIGhlYXBS
ZWYgPSBJU09fSEVBUF9SRUZfSU5JVElBTElaRVJfV0lUSF9BTElHTk1FTlQoZ2V0cGFnZXNpemUo
KSAqIDEwMCwgZ2V0cGFnZXNpemUoKSk7CisgICAgcGFzX2hlYXAqIGhlYXAgPSBpc29faGVhcF9y
ZWZfZ2V0X2hlYXAoJmhlYXBSZWYpOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rp
b24gdHJhbnNhY3Rpb247CisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbl9jb25z
dHJ1Y3QoJnRyYW5zYWN0aW9uKTsKKworICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOworCisgICAg
c2l6ZV90IGluaXRfZnJlZV92aXJ0X21lbSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxv
Y19nZXRfZnJlZV92aXJ0dWFsX21lbW9yeSgpOworICAgIHNpemVfdCBpbml0X2ZyZWVfd2FzdGVk
X21lbSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV93YXN0ZWRfbWVt
b3J5KCk7CisKKyAgICBzaXplX3QgbnVtX2FsbG9jYXRpb25zID0gMTAwOworICAgIHZvaWQqIG1l
bV9zdG9yYWdlW251bV9hbGxvY2F0aW9uc107CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG51bV9hbGxvY2F0aW9uczsgaSsrICkgeworICAgICAgICBzaXplX3QgYWxsb2Nfc2l6ZSA9IHJh
bmRvbSgpICUgMTAwMDAwOworICAgICAgICBtZW1fc3RvcmFnZVtpXSA9IHBhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19hbGxvY2F0ZShhbGxvY19zaXplLCBoZWFwLCAmaXNvX2hlYXBfY29u
ZmlnLCAmdHJhbnNhY3Rpb24pOworICAgICAgICB2b2lkICogbWVtID0gbWVtX3N0b3JhZ2VbaV07
CisgICAgICAgIG1lbXNldChtZW0sIDB4NDIsIGFsbG9jX3NpemUpOworICAgIH0KKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX2FsbG9jYXRpb25zOyBpKysgKSB7CisgICAgICAgIHBh
c19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKG1lbV9zdG9yYWdlW2ldKTsK
KyAgICB9CisKKyAgICBzaXplX3QgdXBkYXRlZF9mcmVlX3ZpcnRfbWVtID0gcGFzX3Byb2JhYmls
aXN0aWNfZ3VhcmRfbWFsbG9jX2dldF9mcmVlX3ZpcnR1YWxfbWVtb3J5KCk7CisgICAgc2l6ZV90
IHVwZGF0ZWRfZnJlZV93YXN0ZWRfbWVtID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9j
X2dldF9mcmVlX3dhc3RlZF9tZW1vcnkoKTsKKworICAgIENIRUNLX0VRVUFMKGluaXRfZnJlZV92
aXJ0X21lbSwgdXBkYXRlZF9mcmVlX3ZpcnRfbWVtKTsKKyAgICBDSEVDS19FUVVBTChpbml0X2Zy
ZWVfd2FzdGVkX21lbSwgdXBkYXRlZF9mcmVlX3dhc3RlZF9tZW0pOworCisgICAgcGFzX2hlYXBf
bG9ja191bmxvY2soKTsKK30KKwordm9pZCB0ZXN0UEdNRXJyb3JzKCkgeworICAgIHBhc19oZWFw
X3JlZiBoZWFwUmVmID0gSVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKGdl
dHBhZ2VzaXplKCkgKiAxMDAsIGdldHBhZ2VzaXplKCkpOworICAgIHBhc19oZWFwKiBoZWFwID0g
aXNvX2hlYXBfcmVmX2dldF9oZWFwKCZoZWFwUmVmKTsKKworICAgIHBhc19waHlzaWNhbF9tZW1v
cnlfdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247CisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFu
c2FjdGlvbl9jb25zdHJ1Y3QoJnRyYW5zYWN0aW9uKTsKKworICAgIHBhc19oZWFwX2xvY2tfbG9j
aygpOworCisgICAgdm9pZCAqbWVtID0gTlVMTDsKKworICAgIC8vIFRlc3QgaW52YWxpZCBhbGxv
YyBzaXplCisgICAgbWVtID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRl
KDAsIGhlYXAsICZpc29faGVhcF9jb25maWcsICZ0cmFuc2FjdGlvbik7CisgICAgQ0hFQ0soIW1l
bSk7CisKKyAgICAvLyBUZXN0IE5VTEwgaGVhcAorICAgIG1lbSA9IHBhc19wcm9iYWJpbGlzdGlj
X2d1YXJkX21hbGxvY19hbGxvY2F0ZSgxMDI0LCBOVUxMLCAmaXNvX2hlYXBfY29uZmlnLCAmdHJh
bnNhY3Rpb24pOworICAgIENIRUNLKCFtZW0pOworCisgICAgLy8gVGVzdCBhbGxvY2F0aW5nIG1v
cmUgdGhhbiB2aXJ0dWFsIG1lbW9yeSBhdmFpbGFibGUKKyAgICBtZW0gPSBwYXNfcHJvYmFiaWxp
c3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdGUoMTAyNCAqIDEwMjQgKiAxMDI0ICsgMSwgTlVMTCwg
Jmlzb19oZWFwX2NvbmZpZywgJnRyYW5zYWN0aW9uKTsKKyAgICBDSEVDSyghbWVtKTsKKworICAg
IC8vIFRlc3QgYWxsb2NhdGluZyB3aGVuIHdhc3RlZCBtZW1vcnkgaXMgZnVsbAorICAgIHNpemVf
dCBudW1fYWxsb2NhdGlvbnMgPSAxMDAwOworICAgIHZvaWQqIG1lbV9zdG9yYWdlW251bV9hbGxv
Y2F0aW9uc107CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1fYWxsb2NhdGlvbnM7IGkr
KyApIHsKKyAgICAgICAgc2l6ZV90IGFsbG9jX3NpemUgPSAxOyAvLyBBIHNtYWxsIGFsbG9jIHNp
emUgd2FzdGVzIG1vcmUgbWVtb3J5CisgICAgICAgIG1lbV9zdG9yYWdlW2ldID0gcGFzX3Byb2Jh
YmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKGFsbG9jX3NpemUsIGhlYXAsICZpc29faGVh
cF9jb25maWcsICZ0cmFuc2FjdGlvbik7CisgICAgfQorCisgICAgbWVtID0gcGFzX3Byb2JhYmls
aXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKDEsIGhlYXAsICZpc29faGVhcF9jb25maWcsICZ0
cmFuc2FjdGlvbik7CisgICAgQ0hFQ0soIW1lbSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG51bV9hbGxvY2F0aW9uczsgaSsrICkgeworICAgICAgICBwYXNfcHJvYmFiaWxpc3RpY19n
dWFyZF9tYWxsb2NfZGVhbGxvY2F0ZShtZW1fc3RvcmFnZVtpXSk7CisgICAgfQorCisgICAgLy8g
VGVzdCBkZWFsbG9jYXRpbmcgaW52YWxpZCBtZW1vcnkgbG9jYXRpb25zCisgICAgcGFzX3Byb2Jh
YmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUoTlVMTCk7CisgICAgcGFzX3Byb2JhYmls
aXN0aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUoKHZvaWQgKikgLTEpOworICAgIHBhc19wcm9i
YWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKCh2b2lkICopIDB4NDIpOworCisgICAg
Ly8gVGVzdCBkZWFsbG9jYXRpbmcgc2FtZSBtZW1vcnkgbG9jYXRpb24gbXVsdGlwbGUgdGltZXMK
KyAgICBtZW0gPSBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdGUoMSwgaGVh
cCwgJmlzb19oZWFwX2NvbmZpZywgJnRyYW5zYWN0aW9uKTsKKyAgICBDSEVDSyhtZW0pOworCisg
ICAgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUobWVtKTsKKyAgICBw
YXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZGVhbGxvY2F0ZShtZW0pOworCisgICAgcGFz
X2hlYXBfbG9ja191bmxvY2soKTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3Zv
aWQgYWRkUEdNVGVzdHMoKSB7CisgICAgQUREX1RFU1QodGVzdFBHTVNpbmdsZUFsbG9jKCkpOwor
ICAgIEFERF9URVNUKHRlc3RQR01NdWx0aXBsZUFsbG9jKCkpOworICAgIEFERF9URVNUKHRlc3RQ
R01FcnJvcnMoKSk7Cit9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVz
dEhhcm5lc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9UZXN0SGFybmVzcy5jcHAJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Miw4ICsz
NTIsMTAgQEAgdm9pZCBhZGRJc29IZWFwUmVzZXJ2ZWRNZW1vcnlUZXN0cygpOwogdm9pZCBhZGRK
SVRIZWFwVGVzdHMoKTsKIHZvaWQgYWRkTGFyZ2VGcmVlSGVhcFRlc3RzKCk7CiB2b2lkIGFkZExh
cmdlU2hhcmluZ1Bvb2xUZXN0cygpOwordm9pZCBhZGRMaW5lQWxsb2NhdGlvblRlc3RzKCk7CiB2
b2lkIGFkZExvY2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZVRlc3RzKCk7CiB2b2lkIGFkZE1pbkhl
YXBUZXN0cygpOwordm9pZCBhZGRQR01UZXN0cygpOwogdm9pZCBhZGRSYWNlVGVzdHMoKTsKIHZv
aWQgYWRkUmVkQmxhY2tUcmVlVGVzdHMoKTsKIHZvaWQgYWRkVFNEVGVzdHMoKTsKQEAgLTQ2OSw3
ICs0NzEsNyBAQCB2b2lkIGR1bXBPYmplY3RzSW5IZWFwKHBhc19oZWFwKiBoZWFwKQogICAgIGNv
dXQgPDwgIk9iamVjdHM6IjsKICAgICBmb3JFYWNoTGl2ZU9iamVjdCgKICAgICAgICAgaGVhcCwK
LSAgICAgICAgWyZdICh2b2lkKiBvYmplY3QsIHNpemVfdCBzaXplKSAtPiBib29sIHsKKyAgICAg
ICAgWyZdICh2b2lkKiBvYmplY3QsIHNpemVfdCBzaXplLCBwYXNfb2JqZWN0X2xpdmVuZXNzX2tp
bmQpIC0+IGJvb2wgewogICAgICAgICAgICAgY291dCA8PCAiICIgPDwgb2JqZWN0OwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0pOwpAQCAtNDg5LDE0ICs0OTEsMTYgQEAgbmFt
ZXNwYWNlIHsKIGJvb2wgZm9yRWFjaExpdmVPYmplY3RBZGFwdGVyKHBhc19oZWFwKiBoZWFwLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGJlZ2luLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQgbGl2ZW5lc3NLaW5kLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQogewotICAgIGZ1bmN0aW9uPGJvb2wodm9p
ZCosIHNpemVfdCk+KiBjYWxsYmFjayA9IHJlaW50ZXJwcmV0X2Nhc3Q8ZnVuY3Rpb248Ym9vbCh2
b2lkKiwgc2l6ZV90KT4qPihhcmcpOwotICAgIHJldHVybiAoKmNhbGxiYWNrKShyZWludGVycHJl
dF9jYXN0PHZvaWQqPihiZWdpbiksIHNpemUpOworICAgIGZ1bmN0aW9uPGJvb2wodm9pZCosIHNp
emVfdCwgcGFzX29iamVjdF9saXZlbmVzc19raW5kKT4qIGNhbGxiYWNrID0KKyAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDxmdW5jdGlvbjxib29sKHZvaWQqLCBzaXplX3QsIHBhc19vYmplY3RfbGl2
ZW5lc3Nfa2luZCk+Kj4oYXJnKTsKKyAgICByZXR1cm4gKCpjYWxsYmFjaykocmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oYmVnaW4pLCBzaXplLCBsaXZlbmVzc0tpbmQpOwogfQogfQogCi12b2lkIGZv
ckVhY2hMaXZlT2JqZWN0KHBhc19oZWFwKiBoZWFwLCBmdW5jdGlvbjxib29sKHZvaWQqLCBzaXpl
X3QpPiBjYWxsYmFjaykKK3ZvaWQgZm9yRWFjaExpdmVPYmplY3QocGFzX2hlYXAqIGhlYXAsIGZ1
bmN0aW9uPGJvb2wodm9pZCosIHNpemVfdCwgcGFzX29iamVjdF9saXZlbmVzc19raW5kKT4gY2Fs
bGJhY2spCiB7CiAgICAgcGFzX2hlYXBfZm9yX2VhY2hfbGl2ZV9vYmplY3QoaGVhcCwgZm9yRWFj
aExpdmVPYmplY3RBZGFwdGVyLCAmY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwpAQCAtNjk0LDcgKzY5OCw4IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19kb192YWxpZGF0ZSA9IHRydWU7CiAjZW5kaWYKIAotICAgIC8vIFJ1biB0aGUgVGhpbmd5IHRl
c3RzIGZpcnN0IGJlY2F1c2UgdGhleSBjYXRjaCB0aGUgbW9zdCBidWdzLgorICAgIC8vIFJ1biB0
aGUgVGhpbmd5IGFuZCBMaW5lIHRlc3RzIGZpcnN0IGJlY2F1c2UgdGhleSBjYXRjaCB0aGUgbW9z
dCBidWdzIGluIHRoZSBsZWFzdCBhbW91bnQgb2YgdGltZS4KKyAgICBBRERfU1VJVEUoTGluZUFs
bG9jYXRpb24pOwogICAgIEFERF9TVUlURShUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb24p
OwogCiAgICAgLy8gUnVuIHRoZSByZXN0IG9mIHRoZSB0ZXN0cyBpbiBhbHBoYWJldGljYWwgb3Jk
ZXIuCkBAIC03MTcsNiArNzIyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQog
ICAgIEFERF9TVUlURShMYXJnZVNoYXJpbmdQb29sKTsKICAgICBBRERfU1VJVEUoTG9ja0ZyZWVS
ZWFkUHRyUHRySGFzaHRhYmxlKTsKICAgICBBRERfU1VJVEUoTWluSGVhcCk7CisgICAgQUREX1NV
SVRFKFBHTSk7CiAgICAgQUREX1NVSVRFKFJhY2UpOwogICAgIEFERF9TVUlURShSZWRCbGFja1Ry
ZWUpOwogICAgIEFERF9TVUlURShUU0QpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L1Rlc3RIYXJuZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2
ICs4NCwxOCBAQCBpbmxpbmUgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0CiAgICAg
cmV0dXJuIG91dDsKIH0KIAoraW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9z
dHJlYW0mIG91dCwgcGFzX3BhZ2Vfa2luZCBraW5kKQoreworICAgIG91dCA8PCBwYXNfcGFnZV9r
aW5kX2dldF9zdHJpbmcoa2luZCk7CisgICAgcmV0dXJuIG91dDsKK30KKworaW5saW5lIHN0ZDo6
b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG91dCwgcGFzX29iamVjdF9saXZlbmVz
c19raW5kIGtpbmQpCit7CisgICAgb3V0IDw8IHBhc19vYmplY3RfbGl2ZW5lc3Nfa2luZF9nZXRf
c3RyaW5nKGtpbmQpOworICAgIHJldHVybiBvdXQ7Cit9CisKICNkZWZpbmUgQ0hFQ0soZXhwcmVz
c2lvbikgZG8geyBcCiAgICAgICAgIGlmICgoZXhwcmVzc2lvbikpIFwKICAgICAgICAgICAgIGJy
ZWFrOyBcCkBAIC0zMDEsNyArMzEzLDcgQEAgdm9pZCBkdW1wT2JqZWN0U2V0KGNvbnN0IHN0ZDo6
c2V0PHZvaWQqPgogdm9pZCBkdW1wT2JqZWN0c0luSGVhcChwYXNfaGVhcCogaGVhcCk7CiB2b2lk
IGR1bXBPYmplY3RzSW5IZWFwcyhjb25zdCBzdGQ6OnZlY3RvcjxwYXNfaGVhcCo+JiBoZWFwcyk7
CiAKLXZvaWQgZm9yRWFjaExpdmVPYmplY3QocGFzX2hlYXAqIGhlYXAsIHN0ZDo6ZnVuY3Rpb248
Ym9vbCh2b2lkKiwgc2l6ZV90KT4gY2FsbGJhY2spOwordm9pZCBmb3JFYWNoTGl2ZU9iamVjdChw
YXNfaGVhcCogaGVhcCwgc3RkOjpmdW5jdGlvbjxib29sKHZvaWQqLCBzaXplX3QsIHBhc19vYmpl
Y3RfbGl2ZW5lc3Nfa2luZCk+IGNhbGxiYWNrKTsKIAogdm9pZCB2ZXJpZnlNaW5pbXVtT2JqZWN0
RGlzdGFuY2UoY29uc3Qgc3RkOjpzZXQ8dm9pZCo+JiBvYmplY3RzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IG1pbmltdW1EaXN0YW5jZSk7CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVz
dHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGlu
Z3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAJKHJldmlzaW9uIDI4NzA1OSkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9j
YXRpb25UZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw3ICsxNzksOCBAQCB2b2lkIHZl
cmlmeU9iamVjdFNldChjb25zdCBzZXQ8dm9pZCo+JiBlCiAgICAgZm9yIChwYXNfaGVhcCogaGVh
cCA6IGhlYXBzKSB7CiAgICAgICAgIGZvckVhY2hMaXZlT2JqZWN0KAogICAgICAgICAgICAgaGVh
cCwKLSAgICAgICAgICAgIFsmXSAodm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkgLT4gYm9vbCB7
CisgICAgICAgICAgICBbJl0gKHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUsIHBhc19vYmplY3Rf
bGl2ZW5lc3Nfa2luZCBsaXZlbmVzc0tpbmQpIC0+IGJvb2wgeworICAgICAgICAgICAgICAgIENI
RUNLX0VRVUFMKGxpdmVuZXNzS2luZCwgcGFzX2RlZmluaXRlbHlfbGl2ZV9vYmplY3Rfa2luZCk7
CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIGNvdXQg
PDwgIkZvdW5kICIgPDwgb2JqZWN0IDw8ICIgd2l0aCBzaXplICIgPDwgc2l6ZSA8PCAiXG4iOwog
ICAgICAgICAgICAgICAgIENIRUNLKGV4cGVjdGVkT2JqZWN0cy5jb3VudChvYmplY3QpKTsKQEAg
LTI1Niw3ICsyNTcsOCBAQCB2b2lkIHZlcmlmeUhlYXBFbXB0eShwYXNfaGVhcCogaGVhcCkKICAg
ICAKICAgICBmb3JFYWNoTGl2ZU9iamVjdCgKICAgICAgICAgaGVhcCwKLSAgICAgICAgWyZdICh2
b2lkKiBvYmplY3QsIHNpemVfdCBzaXplKSAtPiBib29sIHsKKyAgICAgICAgWyZdICh2b2lkKiBv
YmplY3QsIHNpemVfdCBzaXplLCBwYXNfb2JqZWN0X2xpdmVuZXNzX2tpbmQgbGl2ZW5lc3NLaW5k
KSAtPiBib29sIHsKKyAgICAgICAgICAgIENIRUNLX0VRVUFMKGxpdmVuZXNzS2luZCwgcGFzX2Rl
ZmluaXRlbHlfbGl2ZV9vYmplY3Rfa2luZCk7CiAgICAgICAgICAgICBDSEVDSyghInNob3VsZCBu
b3QgaGF2ZSBmb3VuZCBhbnkgb2JqZWN0cyIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0pOwpAQCAtNzUzLDcgKzc1NSw4IEBAIHZvaWQgdGVzdEZyZWVMaXN0UmVmaWxsU3Bh
bnModW5zaWduZWQgcHIKICAgICAgICAgb2JqZWN0U2l6ZSwKICAgICAgICAgKnBhc19oZWFwX2Nv
bmZpZ19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudCgKICAgICAgICAgICAg
ICZ0aGluZ3lfaGVhcF9jb25maWcsCi0gICAgICAgICAgICB2YXJpYW50KSk7CisgICAgICAgICAg
ICB2YXJpYW50KSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7
CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZPYmplY3RzUGVyU3BhbiA9IG51bWJlck9mT2JqZWN0cyAv
IG51bWJlck9mU3BhbnM7CiAgICAgQ0hFQ0sobnVtYmVyT2ZPYmplY3RzUGVyU3BhbiA+PSAxKTsK
ICAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHNJbkxhc3RTcGFuID0gbnVtYmVyT2ZPYmplY3Rz
IC0gbnVtYmVyT2ZPYmplY3RzUGVyU3BhbiAqIChudW1iZXJPZlNwYW5zIC0gMSk7CkBAIC0xMTgx
LDcgKzExODQsOCBAQCB2b2lkIHRlc3RTcHVyaW91c0VsaWdpYmlsaXR5KCkKICAgICB1bnNpZ25l
ZCBvYmplY3RTaXplID0gMTY7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZPYmplY3RzID0KICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cyhvYmplY3RTaXplLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISU5HWV9IRUFQX0NP
TkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVEhJTkdZX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRf
Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpOwogICAgIHVuc2lnbmVkIG51bWJlck9m
T2JqZWN0c0luRmlyc3RTcGFuID0gbnVtYmVyT2ZPYmplY3RzIC8gMjsKICAgICB1bnNpZ25lZCBu
dW1iZXJPZk9iamVjdHNJblNlY29uZFNwYW4gPSBudW1iZXJPZk9iamVjdHMgLSBudW1iZXJPZk9i
amVjdHNJbkZpcnN0U3BhbjsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>