<?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>211341</bug_id>
          
          <creation_ts>2020-05-02 10:24:45 -0700</creation_ts>
          <short_desc>Add WTR::AccessibilityUIElement::attributeValueAsync to retrieve attribute values in isolated tree mode.</short_desc>
          <delta_ts>2020-05-04 07:36:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1648251</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-05-02 10:24:45 -0700</bug_when>
    <thetext>Add WTR::AccessibilityUIElement::attributeValueAsync to retrieve attribute values in isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648254</commentid>
    <comment_count>1</comment_count>
      <attachid>398290</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-05-02 11:00:47 -0700</bug_when>
    <thetext>Created attachment 398290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648275</commentid>
    <comment_count>2</comment_count>
      <attachid>398294</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-05-02 13:11:25 -0700</bug_when>
    <thetext>Created attachment 398294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648522</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-04 07:35:15 -0700</bug_when>
    <thetext>Committed r261081: &lt;https://trac.webkit.org/changeset/261081&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398294.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648524</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-04 07:36:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62844799&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398290</attachid>
            <date>2020-05-02 11:00:47 -0700</date>
            <delta_ts>2020-05-02 13:11:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211341-20200502140046.patch</filename>
            <type>text/plain</type>
            <size>30200</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmQwOGYzNGQwN2Y2YzIwNGM0NDZjMmQ2M2VjMzVmYjU0
YmQwMDIxMi4uNmQ4MmM1MTVhYTcxY2IxZTE0YzVmNmE0ZmM1ZDI0ZWUzODJhNWNmYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDIwLTA1LTAyICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1
ZUFzeW5jIHRvIHJldHJpZXZlIGF0dHJpYnV0ZSB2YWx1ZXMgaW4gaXNvbGF0ZWQgdHJlZSBtb2Rl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMzQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gc2lt
dWxhdGUgcnVubmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBtZXRob2RzIG9uIHRo
ZSBzZWNvbmRhcnkKKyAgICAgICAgdGhyZWFkLCBXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQg
ZGlzcGF0Y2hlcyB0aG9zZSBjYWxscyB0byB0aGUgQVgKKyAgICAgICAgdGhyZWFkLiBCdXQgc29t
ZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBjYWxscyBjYW5ub3QgYmUgZnVsZmlsbGVk
CisgICAgICAgIG9uIHRoZSBzZWNvbmRhcnkgdGhyZWFkIGFuZCBpbiB0dXJuIGhhdmUgdG8gYmUg
ZGlzcGF0Y2hlZCB0byB0aGUgbWFpbgorICAgICAgICB0aHJlYWQuIFRoaXMgd2FzIGNhdXNpbmcg
YSB0aHJlYWQgbG9jayBkdXJpbmcgTGF5b3V0VGVzdHMgaW4gaXNvbGF0ZWQKKyAgICAgICAgdHJl
ZSBtb2RlIHNpbmNlIHRoZSBpbml0aWFsIGRpc3BhdGNoIHRvIHRoZSBzZWNvbmRhcnkgdGhyZWFk
IGJsb2NrcyB0aGUKKyAgICAgICAgbWFpbiB0aHJlYWQuIFRoZSBzb2x1dGlvbiBpbiB0aGlzIHBh
dGNoIGlzIHRvIGFkZCBhbiBhc3luY2hyb25vdXMKKyAgICAgICAgbWVjaGFuaXNtIHRvIHJldHJp
ZXZlIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICAgIC0gQWRkZWQgV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZUFzeW5jLgorICAgICAgICAtIE1hZGUgc2V2ZXJhbCBm
aXhlcyBjb25zaXN0aW5nIG9mIHJldGFpbmluZyB2YXJpYWJsZXMgaW4gdGhlIG1haW4KKyAgICAg
ICAgdGhyZWFkIHdob3NlIHZhbHVlcyBhcmUgY29tcHV0ZWQgb24gdGhlIHNlY29uZGFyeSB0aHJl
YWQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmV4ZWN1dGVPbkFYVGhyZWFkQW5kV2FpdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpleGVjdXRlT25NYWluVGhyZWFkKToKKyAgICAgICAgKFdUUjo6QVhU
aHJlYWQ6OmRpc3BhdGNoQmFycmllcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUpOiBSZW5hbWVkIGV4ZWN1dGVPbkFY
VGhyZWFkQW5kV2FpdC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Q29tbW9uTWFjLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbToKKyAgICAgICAgKFdUUjo6d2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJDbGFzcyk6CisgICAgICAgIChXVFI6Om1ha2VBcnJh
eVJlZkZvckFycmF5KToKKyAgICAgICAgKFdUUjo6bWFrZU9iamVjdFJlZkZvckRpY3Rpb25hcnkp
OgorICAgICAgICAoV1RSOjptYWtlVmFsdWVSZWZGb3JWYWx1ZSk6CisgICAgICAgIChXVFI6OnNl
YXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAg
ICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBzdGFydE9ic2VydmluZ10p
OgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0
aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICh3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNs
YXNzKTogTW92ZWQgdG8gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy4KKyAgICAgICAgKG1ha2VWYWx1
ZVJlZkZvclZhbHVlKTogTW92ZWQgdG8gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy4KKyAgICAgICAg
KG1ha2VBcnJheVJlZkZvckFycmF5KTogTW92ZWQgdG8gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy4K
KyAgICAgICAgKG1ha2VPYmplY3RSZWZGb3JEaWN0aW9uYXJ5KTogTW92ZWQgdG8gQWNjZXNzaWJp
bGl0eUNvbW1vbk1hYy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpzdXBwb3J0
ZWRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdUUjo6YXR0cmlidXRlVmFsdWUpOgorICAgICAgICAo
V1RSOjpzZXRBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAgIChXVFI6OmF0dHJpYnV0ZXNPZkVsZW1l
bnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbldp
dGhSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRB
dFBvaW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNo
aWxkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGls
ZHJlbkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlVmFsdWVBc3luYyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorCiAyMDIwLTA0LTMwICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgLW1hcmtlZFRl
eHRSYW5nZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRleCBkYTc1ZmU2MjBl
NzI3NjRhNThjMWJkZDNjMGFiYTcxODVhNjZjNjYyLi43YzgyOWQ2NTM3ZDExM2RlMWI5N2NlZjc2
NDE1YzRkNzY4ZjYxNTkwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApAQCAt
MTA3LDcgKzEwNyw3IEBAIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoZm9jdXNlZEVsZW1lbnQpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKQordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhUaHJl
YWRBbmRXYWl0KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICNpZiBFTkFCTEUoQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogICAgIGlmIChtX3VzZU1vY2tBWFRocmVhZCkgewpA
QCAtMTIxLDYgKzEyMSwzMCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpleGVjdXRl
T25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bgogI2VuZGlmCiAgICAg
ICAgIGZ1bmN0aW9uKCk7CiB9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1
dGVPbkFYVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyNpZiBFTkFCTEUo
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorICAgIGlmIChtX3VzZU1vY2tBWFRocmVhZCkg
eworICAgICAgICBBWFRocmVhZDo6ZGlzcGF0Y2goW2Z1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
bildIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQor
I2VuZGlmCisgICAgICAgIGZ1bmN0aW9uKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmV4ZWN1dGVPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQor
eworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBmdW5jdGlvbigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgQVhUaHJlYWQ6OmRpc3BhdGNoQmFycmllcihbZnVuY3Rp
b24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOwor
fQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQg
eSkKQEAgLTE1Nyw3ICsxODEsNyBAQCB2b2lkIEFYVGhyZWFkOjpkaXNwYXRjaChGdW5jdGlvbjx2
b2lkKCk+JiYgZnVuY3Rpb24pCiAKIHZvaWQgQVhUaHJlYWQ6OmRpc3BhdGNoQmFycmllcihGdW5j
dGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7Ci0gICAgZGlzcGF0Y2goW2Z1bmN0aW9uID0gV1RG
TW92ZShmdW5jdGlvbildKCkgbXV0YWJsZSB7CisgICAgZGlzcGF0Y2goW2Z1bmN0aW9uID0gV1RG
TW92ZShmdW5jdGlvbildICgpIG11dGFibGUgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdU
Rk1vdmUoZnVuY3Rpb24pKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aAppbmRleCA1YjY3ODExMDEyNTEzOGQ2MmJkZGI4YjMzMzM0ZjRkMjQ1MWYwMzUwLi4xYTVlMmE0
NTgyMmY5ODY4NTEzN2QyYTYwNTRkMTQ4N2VmZTlkYWUzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oCkBAIC02Nyw3ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gYWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkQXR0cmli
dXRlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZXhlY3V0ZU9uQVhUaHJlYWRJ
ZlBvc3NpYmxlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBleGVjdXRlT25BWFRocmVh
ZEFuZFdhaXQoRnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIGV4ZWN1dGVPbkFYVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBleGVjdXRlT25NYWluVGhyZWFkKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIoSlNWYWx1ZVJlZiBmdW5jdGlvbkNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKaW5kZXggMjBlYzVjN2EzMDZhNWIwOGQyYTE5ZDhhMjNkZWM3MzM1N2U0MzMyNi4uNTAyMmE1
MzljNTk3MGJiYzhmMmQ2MzAzOGMyMDgyNTllMGJkMWEzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IDogcHVibGljIEpTV3JhcHBhYmxlIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgZGlzcGF0Y2gg
dGhlIGNvcnJlc3BvbmRpbmcgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgbWV0aG9kIHRvIHRo
ZSBBWCBzZWNvbmRhcnkgdGhyZWFkIHdoZW4gYXBwcm9wcmlhdGUuCi0gICAgZnJpZW5kIE5TQXJy
YXkqIHN1cHBvcnRlZEF0dHJpYnV0ZXMoaWQpOworICAgIGZyaWVuZCBSZXRhaW5QdHI8TlNBcnJh
eT4gc3VwcG9ydGVkQXR0cmlidXRlcyhpZCk7CiAgICAgZnJpZW5kIGlkIGF0dHJpYnV0ZVZhbHVl
KGlkLCBOU1N0cmluZyAqKTsKICAgICBmcmllbmQgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZShpZCwg
TlNTdHJpbmcgKiwgaWQsIGJvb2wgc3luY2hyb25vdXMpOwogI2VuZGlmCkBAIC0xMjEsNiArMTIx
LDcgQEAgcHVibGljOgogICAgIEpTVmFsdWVSZWYgdWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1
ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0OwogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiB1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUp
IGNvbnN0OwogICAgIGJvb2wgYm9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0
ZSk7CisgICAgdm9pZCBhdHRyaWJ1dGVWYWx1ZUFzeW5jKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwg
SlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgdm9pZCBzZXRCb29sQXR0cmlidXRlVmFsdWUoSlNT
dHJpbmdSZWYgYXR0cmlidXRlLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzQXR0cmlidXRlU3Vw
cG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSk7CiAgICAgYm9vbCBpc0F0dHJpYnV0ZVNldHRh
YmxlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRs
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbAppbmRleCBlZjVhNmEwNzk2MDhmOWYwNDUxNDhmYWM5Mjg2NjA5
NjAxMWZlOTk5Li5lYmUyNGJiYjE4Y2YyMDVkNDc1YTUyOTg1MWU5ZWZiNjJlNmU0MTg5IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKQEAgLTY2LDYg
KzY2LDcgQEAKICAgICBvYmplY3QgdWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZShET01TdHJp
bmcgYXR0cik7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB1aUVsZW1lbnRBdHRyaWJ1dGVW
YWx1ZShET01TdHJpbmcgYXR0cik7ICAKICAgICBib29sZWFuIGJvb2xBdHRyaWJ1dGVWYWx1ZShE
T01TdHJpbmcgYXR0cik7CisgICAgdm9pZCBhdHRyaWJ1dGVWYWx1ZUFzeW5jKERPTVN0cmluZyBh
dHRyaWJ1dGVOYW1lLCBvYmplY3QgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBzZXRCb29s
QXR0cmlidXRlVmFsdWUoRE9NU3RyaW5nIGF0dHIsIGJvb2xlYW4gdmFsdWUpOwogICAgIGJvb2xl
YW4gaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoRE9NU3RyaW5nIGF0dHIpOwogICAgIGJvb2xlYW4gaXNB
dHRyaWJ1dGVTZXR0YWJsZShET01TdHJpbmcgYXR0cik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5
Q29tbW9uTWFjLmgKaW5kZXggMmJmOTFlMjA5MTNmZWEwYjdhOWQ4YmI5M2Q5OTA5YjdhZGU1YzYw
Yi4uMTE3NDgxYjhkYjU2ZDE5NmU0YmRkZjZmZThkYjllYzJjYWYwMjc4NSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNv
bW1vbk1hYy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlDb21tb25NYWMuaApAQCAtNDIsNyArNDIsOSBAQAogQGVuZAogCiBuYW1l
c3BhY2UgV1RSIHsKLSAgICAKKworQ2xhc3Mgd2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJD
bGFzcygpOworSlNWYWx1ZVJlZiBtYWtlVmFsdWVSZWZGb3JWYWx1ZShKU0NvbnRleHRSZWYsIGlk
IHZhbHVlKTsKIGV4dGVybiBOU0RpY3Rpb25hcnkgKnNlYXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6
ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQgKnN0YXJ0RWxlbWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIHVuc2lnbmVkIHJl
c3VsdHNMaW1pdCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQs
IGJvb2wgdmlzaWJsZU9ubHksIGJvb2wgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKIAogfTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlDb21tb25NYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tCmluZGV4IDM5YWFhMjRhOTc0MGE4
YzIzMDQ2YWI4ZjUzMmQ5ODczMWNkMjk1NWUuLjIyYmNjN2NjODk4MWZmN2VkMzExZDI0NmE3NmI0
YzA3NWUzYTJhN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQpAQCAt
MzEsNyArMzEsOSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5
Q29tbW9uTWFjLmgiCiAKKyNpbXBvcnQgIkpTV3JhcHBlci5oIgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNTdHJpbmdSZWZDRi5oPgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAKIEBpbXBs
ZW1lbnRhdGlvbiBOU1N0cmluZyAoSlNTdHJpbmdSZWZBZGRpdGlvbnMpCiAKQEAgLTQ4LDE5ICs1
MCw2OSBAQAogICAgIHJldHVybiBhZG9wdChKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpc2VsZikpOwogfQogCitAZW5kCisKIG5hbWVzcGFjZSBXVFIgewog
CitDbGFzcyB3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNsYXNzKCkKK3sKKyAgICBzdGF0
aWMgQ2xhc3MgY2xzID0gb2JqY19nZXRDbGFzcygiV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIiKTsKKyAgICBBU1NFUlQoY2xzKTsKKyAgICByZXR1cm4gY2xzOworfQorCitzdGF0aWMgSlNW
YWx1ZVJlZiBtYWtlQXJyYXlSZWZGb3JBcnJheShKU0NvbnRleHRSZWYgY29udGV4dCwgTlNBcnJh
eSAqYXJyYXkpCit7CisgICAgTlNVSW50ZWdlciBjb3VudCA9IGFycmF5LmNvdW50OworICAgIEpT
VmFsdWVSZWYgYXJndW1lbnRzW2NvdW50XTsKKworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsg
aSA8IGNvdW50OyBpKyspCisgICAgICAgIGFyZ3VtZW50c1tpXSA9IG1ha2VWYWx1ZVJlZkZvclZh
bHVlKGNvbnRleHQsIFthcnJheSBvYmplY3RBdEluZGV4OmldKTsKKworICAgIHJldHVybiBKU09i
amVjdE1ha2VBcnJheShjb250ZXh0LCBjb3VudCwgYXJndW1lbnRzLCBudWxscHRyKTsKK30KKwor
c3RhdGljIEpTVmFsdWVSZWYgbWFrZU9iamVjdFJlZkZvckRpY3Rpb25hcnkoSlNDb250ZXh0UmVm
IGNvbnRleHQsIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBKU09iamVjdFJlZiBv
YmplY3QgPSBKU09iamVjdE1ha2UoY29udGV4dCwgbnVsbHB0ciwgbnVsbHB0cik7CisKKyAgICBb
ZGljdGlvbmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6XihOU1N0cmluZyAq
a2V5LCBpZCBvYmosIEJPT0wgKikgeworICAgICAgICBpZiAoSlNWYWx1ZVJlZiBwcm9wZXJ0eVZh
bHVlID0gbWFrZVZhbHVlUmVmRm9yVmFsdWUoY29udGV4dCwgb2JqKSkKKyAgICAgICAgICAgIEpT
T2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgb2JqZWN0LCBba2V5IGNyZWF0ZUpTU3RyaW5nUmVm
XS5nZXQoKSwgcHJvcGVydHlWYWx1ZSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBudWxscHRy
KTsKKyAgICB9XTsKKworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK0pTVmFsdWVSZWYgbWFrZVZh
bHVlUmVmRm9yVmFsdWUoSlNDb250ZXh0UmVmIGNvbnRleHQsIGlkIHZhbHVlKQoreworICAgIGlm
IChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIFt2YWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0uZ2V0
KCkpOworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkgewor
ICAgICAgICBpZiAoIXN0cmNtcChbdmFsdWUgb2JqQ1R5cGVdLCBAZW5jb2RlKEJPT0wpKSkKKyAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgW3ZhbHVlIGJvb2xW
YWx1ZV0pOworICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgW3ZhbHVl
IGRvdWJsZVZhbHVlXSk7CisgICAgfQorICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczp3ZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNsYXNzKCldKQorICAgICAgICByZXR1cm4gdG9KUyhj
b250ZXh0LCBXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxQ
bGF0Zm9ybVVJRWxlbWVudD4odmFsdWUpKS5wdHIoKSk7CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIG1ha2VPYmplY3RS
ZWZGb3JEaWN0aW9uYXJ5KGNvbnRleHQsIHZhbHVlKTsKKyAgICBpZiAoW3ZhbHVlIGlzS2luZE9m
Q2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIG1ha2VBcnJheVJlZkZvckFy
cmF5KGNvbnRleHQsIHZhbHVlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogTlNEaWN0aW9u
YXJ5ICpzZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yU2VhcmNoQ3JpdGVy
aWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgKnN0YXJ0RWxl
bWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIHVuc2lnbmVkIHJlc3VsdHNMaW1pdCwgSlNWYWx1
ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHks
IGJvb2wgaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KQogewogICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9u
YXJ5XTsKLSAgICAKKwogICAgIGlmIChzdGFydEVsZW1lbnQgJiYgc3RhcnRFbGVtZW50LT5wbGF0
Zm9ybVVJRWxlbWVudCgpKQogICAgICAgICBbcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmpl
Y3Q6c3RhcnRFbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpIGZvcktleTpAIkFYU3RhcnRFbGVt
ZW50Il07Ci0gICAgCisKICAgICBbcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6KGlz
RGlyZWN0aW9uTmV4dCkgPyBAIkFYRGlyZWN0aW9uTmV4dCIgOiBAIkFYRGlyZWN0aW9uUHJldmlv
dXMiIGZvcktleTpAIkFYRGlyZWN0aW9uIl07Ci0gICAgCisKICAgICBbcGFyYW1ldGVyaXplZEF0
dHJpYnV0ZSBzZXRPYmplY3Q6QChyZXN1bHRzTGltaXQpIGZvcktleTpAIkFYUmVzdWx0c0xpbWl0
Il07Ci0gICAgCisKICAgICBpZiAoc2VhcmNoS2V5KSB7CiAgICAgICAgIGlkIHNlYXJjaEtleVBh
cmFtZXRlciA9IG5pbDsKICAgICAgICAgaWYgKEpTVmFsdWVJc1N0cmluZyhjb250ZXh0LCBzZWFy
Y2hLZXkpKSB7CkBAIC03MCwxMiArMTIyLDEyIEBAIE5TRGljdGlvbmFyeSAqc2VhcmNoUHJlZGlj
YXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRlcmlhKEpTQ29udGV4dFJlCiAg
ICAgICAgIH0gZWxzZSBpZiAoSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIHNlYXJjaEtleSkpIHsK
ICAgICAgICAgICAgIEpTT2JqZWN0UmVmIHNlYXJjaEtleUFycmF5ID0gSlNWYWx1ZVRvT2JqZWN0
KGNvbnRleHQsIHNlYXJjaEtleSwgbnVsbHB0cik7CiAgICAgICAgICAgICB1bnNpZ25lZCBzZWFy
Y2hLZXlBcnJheUxlbmd0aCA9IDA7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgYXV0byBs
ZW5ndGhQcm9wZXJ0eVN0cmluZyA9IGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJsZW5ndGgiKSk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVmIHNlYXJjaEtleUFycmF5TGVuZ3Ro
VmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHNlYXJjaEtleUFycmF5LCBsZW5n
dGhQcm9wZXJ0eVN0cmluZy5nZXQoKSwgbnVsbHB0cik7CiAgICAgICAgICAgICBpZiAoc2VhcmNo
S2V5QXJyYXlMZW5ndGhWYWx1ZSAmJiBKU1ZhbHVlSXNOdW1iZXIoY29udGV4dCwgc2VhcmNoS2V5
QXJyYXlMZW5ndGhWYWx1ZSkpCiAgICAgICAgICAgICAgICAgc2VhcmNoS2V5QXJyYXlMZW5ndGgg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIHNlYXJjaEtl
eUFycmF5TGVuZ3RoVmFsdWUsIG51bGxwdHIpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VhcmNoS2V5QXJyYXlMZW5ndGg7ICsraSkgewog
ICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYgc2VhcmNoS2V5VmFsdWUgPSBKU09iamVjdEdldFBy
b3BlcnR5QXRJbmRleChjb250ZXh0LCBzZWFyY2hLZXlBcnJheSwgaSwgbnVsbHB0cik7CiAgICAg
ICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2VhcmNoS2V5U3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCBzZWFyY2hLZXlWYWx1ZSwgbnVsbHB0cik7CkBAIC05MCwxNyArMTQyLDE2
IEBAIE5TRGljdGlvbmFyeSAqc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZv
clNlYXJjaENyaXRlcmlhKEpTQ29udGV4dFJlCiAgICAgICAgIGlmIChzZWFyY2hLZXlQYXJhbWV0
ZXIpCiAgICAgICAgICAgICBbcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6c2VhcmNo
S2V5UGFyYW1ldGVyIGZvcktleTpAIkFYU2VhcmNoS2V5Il07CiAgICAgfQotICAgIAorCiAgICAg
aWYgKHNlYXJjaFRleHQgJiYgSlNTdHJpbmdHZXRMZW5ndGgoc2VhcmNoVGV4dCkpCiAgICAgICAg
IFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEpT
U3RyaW5nUmVmOnNlYXJjaFRleHRdIGZvcktleTpAIkFYU2VhcmNoVGV4dCJdOwotICAgIAorCiAg
ICAgW3BhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgc2V0T2JqZWN0OkAodmlzaWJsZU9ubHkpIGZvcktl
eTpAIkFYVmlzaWJsZU9ubHkiXTsKLSAgICAKKwogICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRl
IHNldE9iamVjdDpAKGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSkgZm9yS2V5OkAiQVhJbW1lZGlh
dGVEZXNjZW5kYW50c09ubHkiXTsKLSAgICAKKwogICAgIHJldHVybiBwYXJhbWV0ZXJpemVkQXR0
cmlidXRlOwogfQotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXVFIKIAotQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCBkYjBlMGM0YWYxYjBkZjgz
YzZlY2FmY2IxNjRkM2Y2MTI1YWM2NmQyLi45MTNhZTBmNzVjZGI0ZWQ1ZGVkZGViOTI1ZjZjOTUw
MThkZGQxNzA0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5t
bQpAQCAtMTAwLDcgKzEwMCw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTCiAgICAgUGxhdGZv
cm1VSUVsZW1lbnQgcm9vdCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVtZW50PihXS0FjY2Vz
c2liaWxpdHlSb290T2JqZWN0KHBhZ2UpKTsKIAogICAgIFJldGFpblB0cjxpZD4gcmVzdWx0Owot
ICAgIGV4ZWN1dGVPbkFYVGhyZWFkSWZQb3NzaWJsZShbJnJvb3QsICZpZEF0dHJpYnV0ZSwgJnJl
c3VsdF0geworICAgIGV4ZWN1dGVPbkFYVGhyZWFkQW5kV2FpdChbJnJvb3QsICZpZEF0dHJpYnV0
ZSwgJnJlc3VsdF0gewogICAgICAgICByZXN1bHQgPSBmaW5kQWNjZXNzaWJsZU9iamVjdEJ5SWQo
cm9vdCwgW05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjppZEF0dHJpYnV0ZV0pOwogICAg
IH0pOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLm1tCmluZGV4IDY2YmFlNjlmNDU1NzA0ZjU3YzQzYmE4YTQzMWI3NTJmMjc2ODdjMTguLjg1
MDI2ZTZlODkyM2I0MjFlNjgxM2ZjYjA1YWRiY2Y0ODQyN2FiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC00MCw3ICs0MCw2
IEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgogI2ltcG9ydCA8SmF2
YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQnVuZGxlRnJh
bWUuaD4KLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiBAaW50ZXJmYWNlIE5TT2JqZWN0IChXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckFk
ZGl0aW9ucykKQEAgLTkwLDE5ICs4OSwxMiBAQAogICAgIEpTVmFsdWVQcm90ZWN0KGNvbnRleHQs
IG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayk7CiB9CiAKLXN0YXRpYyBDbGFzcyB3ZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNsYXNzKCkKLXsKLSAgICBzdGF0aWMgQ2xhc3MgY2xz
ID0gb2JqY19nZXRDbGFzcygiV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIiKTsKLSAgICBB
U1NFUlQoY2xzKTsKLSAgICByZXR1cm4gY2xzOwotfQotCiAtICh2b2lkKXN0YXJ0T2JzZXJ2aW5n
CiB7CiAgICAgLy8gT25jZSB3ZSBzdGFydCByZXF1ZXN0aW5nIG5vdGlmaWNhdGlvbnMsIGl0J3Mg
b24gZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgcHJvZ3JhbS4KICAgICAvLyBUaGlzIGlzIHRvIGF2
b2lkIGFueSByYWNlIGNvbmRpdGlvbnMgYmV0d2VlbiB0ZXN0cyB0dXJuaW5nIHRoaXMgZmxhZyBv
biBhbmQgb2ZmLiBJbnN0ZWFkCiAgICAgLy8gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIgY2FuIGlnbm9yZSBldmVudHMgaXQgZG9lc24ndCBjYXJlIGFib3V0LgotICAgIFt3ZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckNsYXNzKCkgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnM6WUVTXTsKKyAgICBbV1RSOjp3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckNsYXNzKCkgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6WUVT
XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5hbWU6QCJB
WERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CiB9CiAKQEAgLTExMSw0OCArMTAzLDYgQEAg
c3RhdGljIENsYXNzIHdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQ2xhc3MoKQogICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07
CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIG1ha2VWYWx1ZVJlZkZvclZhbHVlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBpZCB2YWx1ZSkKLXsKLSAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0
LCBbdmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdLmdldCgpKTsKLSAgICBpZiAoW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pIHsKLSAgICAgICAgaWYgKCFzdHJjbXAoW3ZhbHVl
IG9iakNUeXBlXSwgQGVuY29kZShCT09MKSkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VCb29sZWFuKGNvbnRleHQsIFt2YWx1ZSBib29sVmFsdWVdKTsKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIFt2YWx1ZSBkb3VibGVWYWx1ZV0pOwotICAgIH0KLSAg
ICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6d2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJD
bGFzcygpXSkKLSAgICAgICAgcmV0dXJuIHRvSlMoY29udGV4dCwgV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+KHZhbHVlKSku
cHRyKCkpOwotICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNz
XV0pCi0gICAgICAgIHJldHVybiBtYWtlT2JqZWN0UmVmRm9yRGljdGlvbmFyeShjb250ZXh0LCB2
YWx1ZSk7Ci0gICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCi0g
ICAgICAgIHJldHVybiBtYWtlQXJyYXlSZWZGb3JBcnJheShjb250ZXh0LCB2YWx1ZSk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVmIG1ha2VBcnJheVJlZkZvckFy
cmF5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBOU0FycmF5ICphcnJheSkKLXsKLSAgICBOU1VJbnRl
Z2VyIGNvdW50ID0gYXJyYXkuY291bnQ7Ci0gICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbY291bnRd
OwotCi0gICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykKLSAgICAgICAg
YXJndW1lbnRzW2ldID0gbWFrZVZhbHVlUmVmRm9yVmFsdWUoY29udGV4dCwgW2FycmF5IG9iamVj
dEF0SW5kZXg6aV0pOwotCi0gICAgcmV0dXJuIEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIGNv
dW50LCBhcmd1bWVudHMsIG51bGxwdHIpOwotfQotCi1zdGF0aWMgSlNWYWx1ZVJlZiBtYWtlT2Jq
ZWN0UmVmRm9yRGljdGlvbmFyeShKU0NvbnRleHRSZWYgY29udGV4dCwgTlNEaWN0aW9uYXJ5ICpk
aWN0aW9uYXJ5KQotewotICAgIEpTT2JqZWN0UmVmIG9iamVjdCA9IEpTT2JqZWN0TWFrZShjb250
ZXh0LCBudWxscHRyLCBudWxscHRyKTsKLQotICAgIFtkaWN0aW9uYXJ5IGVudW1lcmF0ZUtleXNB
bmRPYmplY3RzVXNpbmdCbG9jazpeKE5TU3RyaW5nICprZXksIGlkIG9iaiwgQk9PTCAqc3RvcCkK
LSAgICB7Ci0gICAgICAgIGlmIChKU1ZhbHVlUmVmIHByb3BlcnR5VmFsdWUgPSBtYWtlVmFsdWVS
ZWZGb3JWYWx1ZShjb250ZXh0LCBvYmopKQotICAgICAgICAgICAgSlNPYmplY3RTZXRQcm9wZXJ0
eShjb250ZXh0LCBvYmplY3QsIFtrZXkgY3JlYXRlSlNTdHJpbmdSZWZdLmdldCgpLCBwcm9wZXJ0
eVZhbHVlLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIG51bGxwdHIpOwotICAgIH1dOwotCi0g
ICAgcmV0dXJuIG9iamVjdDsKLX0KLQogLSAodm9pZClfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgTlNTdHJpbmcgKm5vdGlmaWNhdGlv
bk5hbWUgPSBbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAibm90aWZpY2F0
aW9uTmFtZSJdOwpAQCAtMTY3LDcgKzExNyw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG1ha2VPYmpl
Y3RSZWZGb3JEaWN0aW9uYXJ5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBOU0RpY3Rpb25hcnkKICAg
ICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4
dChtYWluRnJhbWUpOwogCiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQg
PSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0
cmluZ1JlZl0uZ2V0KCkpOwotICAgIEpTVmFsdWVSZWYgdXNlckluZm9Bcmd1bWVudCA9IG1ha2VP
YmplY3RSZWZGb3JEaWN0aW9uYXJ5KGNvbnRleHQsIHVzZXJJbmZvKTsKKyAgICBKU1ZhbHVlUmVm
IHVzZXJJbmZvQXJndW1lbnQgPSBXVFI6Om1ha2VWYWx1ZVJlZkZvclZhbHVlKGNvbnRleHQsIHVz
ZXJJbmZvKTsKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKICAgICAgICAgLy8gTGlzdGVu
ZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5m
by4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA2ZjEyMGZmM2FlOTJjZjBlYWY0N2UxZDJmMjBl
YmY1MmUwN2YwZTZkLi40MDM1ZjIzZGU5ODAwMjQ1YWJkMTViYTNjMzc5YjVlYWIzOWM2ZDlhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTExNywxMiAr
MTE3LDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFcXVhbChBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KiBvdGhlckVsZW1lbnQpCiAgICAgcmV0dXJuIHBsYXRmb3JtVUlFbGVtZW50
KCkgPT0gb3RoZXJFbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpOwogfQogCi1OU0FycmF5KiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzKGlkIGVsZW1lbnQpCitSZXRhaW5QdHI8TlNBcnJheT4gc3VwcG9y
dGVkQXR0cmlidXRlcyhpZCBlbGVtZW50KQogewotICAgIE5TQXJyYXkgKmF0dHJpYnV0ZXM7Cisg
ICAgUmV0YWluUHRyPE5TQXJyYXk+IGF0dHJpYnV0ZXM7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VY
Q0VQVElPTlMKLSAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzX2NvbnRyb2xsZXItPmV4ZWN1
dGVPbkFYVGhyZWFkSWZQb3NzaWJsZShbJmF0dHJpYnV0ZXMsICZlbGVtZW50XSB7CisgICAgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZEFuZFdh
aXQoWyZhdHRyaWJ1dGVzLCAmZWxlbWVudF0gewogICAgICAgICBhdHRyaWJ1dGVzID0gW2VsZW1l
bnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzXTsKICAgICB9KTsKICAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCkBAIC0xMzIsMjEgKzEzMiwyMSBAQCBOU0FycmF5KiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzKGlkIGVsZW1lbnQpCiAKIGlkIGF0dHJpYnV0ZVZhbHVlKGlkIGVsZW1lbnQsIE5TU3Ry
aW5nICphdHRyaWJ1dGUpCiB7Ci0gICAgaWQgdmFsdWU7CisgICAgUmV0YWluUHRyPGlkPiB2YWx1
ZTsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNfY29udHJvbGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmZWxlbWVu
dCwgJmF0dHJpYnV0ZSwgJnZhbHVlXSB7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c19j
b250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZEFuZFdhaXQoWyZlbGVtZW50LCAmYXR0cmlidXRl
LCAmdmFsdWVdIHsKICAgICAgICAgdmFsdWUgPSBbZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6YXR0cmlidXRlXTsKICAgICB9KTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
CiAKLSAgICByZXR1cm4gdmFsdWU7CisgICAgcmV0dXJuIHZhbHVlLmdldCgpOwogfQogCiB2b2lk
IHNldEF0dHJpYnV0ZVZhbHVlKGlkIGVsZW1lbnQsIE5TU3RyaW5nKiBhdHRyaWJ1dGUsIGlkIHZh
bHVlLCBib29sIHN5bmNocm9ub3VzID0gZmFsc2UpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENF
UFRJT05TCi0gICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c19jb250cm9sbGVyLT5leGVjdXRl
T25BWFRocmVhZElmUG9zc2libGUoWyZlbGVtZW50LCAmYXR0cmlidXRlLCAmdmFsdWUsICZzeW5j
aHJvbm91c10geworICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNfY29udHJvbGxlci0+ZXhl
Y3V0ZU9uQVhUaHJlYWRBbmRXYWl0KFsmZWxlbWVudCwgJmF0dHJpYnV0ZSwgJnZhbHVlLCAmc3lu
Y2hyb25vdXNdIHsKICAgICAgICAgLy8gRklYTUU6IHNob3VsZCBhbHdheXMgYmUgYXN5bmNocm9u
b3VzLCBmaXggdGVzdHMuCiAgICAgICAgIHN5bmNocm9ub3VzID8gW2VsZW1lbnQgX2FjY2Vzc2li
aWxpdHlTZXRWYWx1ZTp2YWx1ZSBmb3JBdHRyaWJ1dGU6YXR0cmlidXRlXSA6CiAgICAgICAgICAg
ICBbZWxlbWVudCBhY2Nlc3NpYmlsaXR5U2V0VmFsdWU6dmFsdWUgZm9yQXR0cmlidXRlOmF0dHJp
YnV0ZV07OzsKQEAgLTE5OCwxMCArMTk4LDEwIEBAIHN0YXRpYyBOU1N0cmluZyogZGVzY3JpcHRp
b25PZlZhbHVlKGlkIHZhbHVlT2JqZWN0LCBpZCBlbGVtZW50KQogCiBzdGF0aWMgTlNTdHJpbmcg
KmF0dHJpYnV0ZXNPZkVsZW1lbnQoaWQgYWNjZXNzaWJpbGl0eU9iamVjdCkKIHsKLSAgICBOU0Fy
cmF5KiBhdHRyaWJ1dGVzID0gc3VwcG9ydGVkQXR0cmlidXRlcyhhY2Nlc3NpYmlsaXR5T2JqZWN0
KTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gYXR0cmlidXRlcyA9IHN1cHBvcnRlZEF0dHJpYnV0
ZXMoYWNjZXNzaWJpbGl0eU9iamVjdCk7CiAKICAgICBOU011dGFibGVTdHJpbmcqIGF0dHJpYnV0
ZXNTdHJpbmcgPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ107Ci0gICAgZm9yIChOU1N0cmluZyog
YXR0cmlidXRlIGluIGF0dHJpYnV0ZXMpIHsKKyAgICBmb3IgKE5TU3RyaW5nKiBhdHRyaWJ1dGUg
aW4gYXR0cmlidXRlcy5nZXQoKSkgewogICAgICAgICAvLyBQb3NpdGlvbiBwcm92aWRlcyB1c2Vs
ZXNzIGFuZCBzY3JlZW4tc3BlY2lmaWMgaW5mb3JtYXRpb24sIHNvIHdlIGRvIG5vdAogICAgICAg
ICAvLyB3YW50IHRvIGluY2x1ZGUgaXQgZm9yIHRoZSBzYWtlIG9mIHVuaXZlcnNhbGx5IHBhc3Np
bmcgdGVzdHMuCiAgICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpAIkFYUG9z
aXRpb24iXSkKQEAgLTM3Myw3ICszNzMsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRQogewog
ICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwogICAgIFJldGFpblB0cjxOU0FycmF5PiBjaGls
ZHJlbjsKLSAgICBzX2NvbnRyb2xsZXItPmV4ZWN1dGVPbkFYVGhyZWFkSWZQb3NzaWJsZShbJmNo
aWxkcmVuLCBsb2NhdGlvbiwgbGVuZ3RoLCB0aGlzXSB7CisgICAgc19jb250cm9sbGVyLT5leGVj
dXRlT25BWFRocmVhZEFuZFdhaXQoWyZjaGlsZHJlbiwgbG9jYXRpb24sIGxlbmd0aCwgdGhpc10g
ewogICAgICAgICBjaGlsZHJlbiA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUFycmF5QXR0cmli
dXRlVmFsdWVzOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlIGluZGV4OmxvY2F0aW9u
IG1heENvdW50Omxlbmd0aF07CiAgICAgfSk7CiAgICAgZWxlbWVudFZlY3RvciA9IG1ha2VWZWN0
b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PihjaGlsZHJlbi5nZXQoKSk7CkBAIC00
MTgsMjIgKzQxOCwyMiBAQCBpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3Vu
dCgpCiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjplbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpCiB7Ci0gICAgaWQgZWxlbWVudDsKLSAg
ICBzX2NvbnRyb2xsZXItPmV4ZWN1dGVPbkFYVGhyZWFkSWZQb3NzaWJsZShbJngsICZ5LCAmZWxl
bWVudCwgdGhpc10geworICAgIFJldGFpblB0cjxpZD4gZWxlbWVudDsKKyAgICBzX2NvbnRyb2xs
ZXItPmV4ZWN1dGVPbkFYVGhyZWFkQW5kV2FpdChbJngsICZ5LCAmZWxlbWVudCwgdGhpc10gewog
ICAgICAgICBlbGVtZW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpOU01ha2VQ
b2ludCh4LCB5KV07CiAgICAgfSk7CiAKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGVsZW1l
bnQuZ2V0KCkpOwogfQogCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9m
Q2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkKIHsKICAgICB1bnNpZ25lZCBp
bmRleDsKICAgICBpZCBwbGF0Zm9ybUVsZW1lbnQgPSBlbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVu
dCgpOwotICAgIHNfY29udHJvbGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmcGxh
dGZvcm1FbGVtZW50LCAmaW5kZXgsIHRoaXNdIHsKKyAgICBzX2NvbnRyb2xsZXItPmV4ZWN1dGVP
bkFYVGhyZWFkQW5kV2FpdChbJnBsYXRmb3JtRWxlbWVudCwgJmluZGV4LCB0aGlzXSB7CiAgICAg
ICAgIGluZGV4ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5SW5kZXhPZkNoaWxkOnBsYXRmb3Jt
RWxlbWVudF07CiAgICAgfSk7CiAgICAgcmV0dXJuIGluZGV4OwpAQCAtNTExLDcgKzUxMSw3IEBA
IHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgp
IGNvbnN0CiAgICAgdW5zaWduZWQgY291bnQgPSAwOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENF
UFRJT05TCi0gICAgc19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoWyZj
b3VudCwgdGhpc10geworICAgIHNfY29udHJvbGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWRBbmRXYWl0
KFsmY291bnQsIHRoaXNdIHsKICAgICAgICAgY291bnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBcnJheUF0dHJpYnV0ZUNvdW50Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOwogICAgIH0pOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTYxMyw2ICs2
MTMsMjcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUo
SlNTdHJpbmdSZWYgYXR0cmlidXRlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZUFzeW5jKEpTU3RyaW5nUmVmIGF0dHJp
YnV0ZSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIWF0dHJpYnV0ZSB8fCAhY2Fs
bGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwor
ICAgIHNfY29udHJvbGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWQoW2F0dHJpYnV0ZSA9IHJldGFpblB0
cihbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0dHJpYnV0ZV0pLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spLCB0aGlzXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWQgdmFsdWUg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGUuZ2V0KCld
OworCisgICAgICAgIHNfY29udHJvbGxlci0+ZXhlY3V0ZU9uTWFpblRocmVhZChbdmFsdWUgPSBy
ZXRhaW5QdHIodmFsdWUpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSB7CisgICAg
ICAgICAgICBhdXRvIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOworICAgICAgICAgICAgYXV0byBj
b250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CisK
KyAgICAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzFdOworICAgICAgICAgICAgYXJndW1l
bnRzWzBdID0gbWFrZVZhbHVlUmVmRm9yVmFsdWUoY29udGV4dCwgdmFsdWUuZ2V0KCkpOworICAg
ICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2Jq
ZWN0UmVmPihjYWxsYmFjayksIDAsIDEsIGFyZ3VtZW50cywgMCk7CisgICAgICAgIH0pOworICAg
IH0pOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZXRCb29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlLCBi
b29sIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwgW05T
U3RyaW5nIHN0cmluZ1dpdGhKU1N0cmluZ1JlZjphdHRyaWJ1dGVdLCBAKHZhbHVlKSwgdHJ1ZSk7
CkBAIC0xMTc3LDE0ICsxMTk4LDE0IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4CiB7CiAgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVk
QXR0cmlidXRlID0gc2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JDcml0ZXJpYShj
b250ZXh0LCBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBzZWFyY2hTdHJpbmdzLCByZXBsYWNlbWVudFN0
cmluZywgYWN0aXZpdHkpOwotICAgIGlkIHJlc3VsdDsKLSAgICBzX2NvbnRyb2xsZXItPmV4ZWN1
dGVPbkFYVGhyZWFkSWZQb3NzaWJsZShbJnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUsICZyZXN1bHQs
IHRoaXNdIHsKKyAgICBSZXRhaW5QdHI8aWQ+IHJlc3VsdDsKKyAgICBzX2NvbnRyb2xsZXItPmV4
ZWN1dGVPbkFYVGhyZWFkQW5kV2FpdChbJnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUsICZyZXN1bHQs
IHRoaXNdIHsKICAgICAgICAgcmVzdWx0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6QCJBWFNlbGVjdFRleHRXaXRoQ3JpdGVyaWEiIGZvclBhcmFtZXRlcjpwYXJhbWV0
ZXJpemVkQXR0cmlidXRlXTsKICAgICB9KTsKLSAgICBpZiAoW3Jlc3VsdCBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKQotICAgICAgICByZXR1cm4gW3Jlc3VsdCBjcmVhdGVKU1N0cmlu
Z1JlZl07CisgICAgaWYgKFtyZXN1bHQuZ2V0KCkgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xh
c3NdXSkKKyAgICAgICAgcmV0dXJuIFtyZXN1bHQuZ2V0KCkgY3JlYXRlSlNTdHJpbmdSZWZdOwog
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZTg0NGZjZmE2NTk3MWU2NDk3NGVlZjZkZWRjMTBmYTFkMWVlNmIzNC4uYzM4
MjY1MWFjZmUzN2VmNmMwNDQxOTQ0ODNmMzY4MDg2NmMwNmYxNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIwLTA1LTAyICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1
ZUFzeW5jIHRvIHJldHJpZXZlIGF0dHJpYnV0ZSB2YWx1ZXMgaW4gaXNvbGF0ZWQgdHJlZSBtb2Rl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMzQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0
ZXN0IGV4ZXJjaXNlcyB0aGUgbmV3IFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXRyaWJ1
dGVWYWx1ZUFzeW5jIG1ldGhvZC4KKyAgICAgICAgSW5zdGVhZCBvZiB1c2luZyBzaG91bGRCZVRy
dWUgdGhhdCBkb2VzIG5vdCB3b3JrIHdpdGggbG9jYWwgdmFyaWFibGVzLAorICAgICAgICB1c2Vz
IGRlYnVnIHRvIGxvZyByZXN1bHRzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvcHJp
bWFyeS1zY3JlZW4taGVpZ2h0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9wcmltYXJ5LXNjcmVlbi1oZWlnaHQuaHRtbDoKKwogMjAyMC0wNC0zMCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBib3JkZXItcmFkaXVzIGZh
aWxzIHRvIGNsaXAgaWZyYW1lIGNvbnRlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9wcmltYXJ5LXNjcmVlbi1oZWlnaHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcHJpbWFyeS1zY3JlZW4taGVpZ2h0LWV4cGVjdGVkLnR4
dAppbmRleCBhZWU5MGUyNzBkOGJkYjNjODZkNmZkY2I2N2RlZThkYjNjODBiZTg5Li41YjQ1NDY2
ZDg5ZWJhOGUyZjVjMWM4NjhmMDRkODFmOGQ0YmE3YzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9wcmltYXJ5LXNjcmVlbi1oZWlnaHQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC1l
eHBlY3RlZC50eHQKQEAgLTQsOCArNCw4IEBAIFRoaXMgdGVzdHMgdGhlIHByaW1hcnkgc2NyZWVu
IGhlaWdodCBpcyBleHBvc2VkIHRvIEFYIEFQSSBmcm9tIHdlYiBwcm9jZXNzLgogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgc2NyZWVuSGVpZ2h0RnJvbVJvb3RFbGVtZW50ID4g
MCBpcyB0cnVlCi1QQVNTIHNjcmVlbkhlaWdodEZyb21XZWJBcmVhID4gMCBpcyB0cnVlCitUaGUg
c2NyZWVuIGhlaWdodCBmcm9tIHRoZSByb290IGVsZW1lbnQgaXMgPiAwLgorVGhlIHNjcmVlbiBo
ZWlnaHQgZnJvbSB0aGUgd2ViIGFyZWEgaXMgPiAwLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9wcmltYXJ5LXNjcmVlbi1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC5odG1sCmluZGV4IDU2ZGY4MGViYmQ0
OGNmOGIwNDc3MzhkY2ZkZTU1NDljY2ZkNmExNjQuLjgwODFkY2M4Nzc1NWE5MTE3ODhkY2E3N2Y5
ZGZmZDJhYzA3Yzc4YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3ByaW1hcnktc2NyZWVuLWhlaWdodC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC5odG1sCkBAIC0xMywxNiArMTMsMjMgQEAKIDxz
Y3JpcHQ+CiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIHByaW1hcnkgc2NyZWVuIGhl
aWdodCBpcyBleHBvc2VkIHRvIEFYIEFQSSBmcm9tIHdlYiBwcm9jZXNzLiIpOwogICAgIGlmICh3
aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAJdmFyIHJvb3RFbGVtZW50ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQ7CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB2YXIgcm9vdEVsZW1lbnQgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5yb290RWxlbWVudDsKICAgICAgICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CiAKLSAgICAgICAg
dmFyIHNjcmVlbkhlaWdodEZyb21Sb290RWxlbWVudCA9IHJvb3RFbGVtZW50Lm51bWJlckF0dHJp
YnV0ZVZhbHVlKCJfQVhQcmltYXJ5U2NyZWVuSGVpZ2h0Iik7Ci0gICAgICAgIHNob3VsZEJlVHJ1
ZSgic2NyZWVuSGVpZ2h0RnJvbVJvb3RFbGVtZW50ID4gMCIpOworICAgICAgICByb290RWxlbWVu
dC5hdHRyaWJ1dGVWYWx1ZUFzeW5jKCJfQVhQcmltYXJ5U2NyZWVuSGVpZ2h0IiwgZnVuY3Rpb24o
dmFsdWUpIHsKKyAgICAgICAgICAgIGRlYnVnKHZhbHVlID4gMCA/ICJUaGUgc2NyZWVuIGhlaWdo
dCBmcm9tIHRoZSByb290IGVsZW1lbnQgaXMgPiAwLiIKKyAgICAgICAgICAgICAgICAgIDogIlRo
ZSBzY3JlZW4gaGVpZ2h0IGZyb20gdGhlIHJvb3QgZWxlbWVudCBzaG91bGQgYmUgPiAwIGJ1dCBp
dCBpcyBub3QuIik7CisgICAgICAgIH0pOwogCi0gICAgICAgIHZhciBzY3JlZW5IZWlnaHRGcm9t
V2ViQXJlYSA9IHdlYkFyZWEubnVtYmVyQXR0cmlidXRlVmFsdWUoIl9BWFByaW1hcnlTY3JlZW5I
ZWlnaHQiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJzY3JlZW5IZWlnaHRGcm9tV2ViQXJlYSA+
IDAiKTsKLSAgICB9CisgICAgICAgIHdlYkFyZWEuYXR0cmlidXRlVmFsdWVBc3luYygiX0FYUHJp
bWFyeVNjcmVlbkhlaWdodCIsIGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICAgICAgICBkZWJ1Zyh2
YWx1ZSA+IDAgPyAiVGhlIHNjcmVlbiBoZWlnaHQgZnJvbSB0aGUgd2ViIGFyZWEgaXMgPiAwLiIK
KyAgICAgICAgICAgICAgICAgIDogIlRoZSBzY3JlZW4gaGVpZ2h0IGZyb20gdGhlIHdlYiBhcmVh
IHNob3VsZCBiZSA+IDAgYnV0IGl0IGlzIG5vdC4iKTsKIAorICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398294</attachid>
            <date>2020-05-02 13:11:25 -0700</date>
            <delta_ts>2020-05-04 07:35:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211341-20200502161123.patch</filename>
            <type>text/plain</type>
            <size>30313</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmQwOGYzNGQwN2Y2YzIwNGM0NDZjMmQ2M2VjMzVmYjU0
YmQwMDIxMi4uNmQ4MmM1MTVhYTcxY2IxZTE0YzVmNmE0ZmM1ZDI0ZWUzODJhNWNmYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDIwLTA1LTAyICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1
ZUFzeW5jIHRvIHJldHJpZXZlIGF0dHJpYnV0ZSB2YWx1ZXMgaW4gaXNvbGF0ZWQgdHJlZSBtb2Rl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMzQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gc2lt
dWxhdGUgcnVubmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBtZXRob2RzIG9uIHRo
ZSBzZWNvbmRhcnkKKyAgICAgICAgdGhyZWFkLCBXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQg
ZGlzcGF0Y2hlcyB0aG9zZSBjYWxscyB0byB0aGUgQVgKKyAgICAgICAgdGhyZWFkLiBCdXQgc29t
ZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBjYWxscyBjYW5ub3QgYmUgZnVsZmlsbGVk
CisgICAgICAgIG9uIHRoZSBzZWNvbmRhcnkgdGhyZWFkIGFuZCBpbiB0dXJuIGhhdmUgdG8gYmUg
ZGlzcGF0Y2hlZCB0byB0aGUgbWFpbgorICAgICAgICB0aHJlYWQuIFRoaXMgd2FzIGNhdXNpbmcg
YSB0aHJlYWQgbG9jayBkdXJpbmcgTGF5b3V0VGVzdHMgaW4gaXNvbGF0ZWQKKyAgICAgICAgdHJl
ZSBtb2RlIHNpbmNlIHRoZSBpbml0aWFsIGRpc3BhdGNoIHRvIHRoZSBzZWNvbmRhcnkgdGhyZWFk
IGJsb2NrcyB0aGUKKyAgICAgICAgbWFpbiB0aHJlYWQuIFRoZSBzb2x1dGlvbiBpbiB0aGlzIHBh
dGNoIGlzIHRvIGFkZCBhbiBhc3luY2hyb25vdXMKKyAgICAgICAgbWVjaGFuaXNtIHRvIHJldHJp
ZXZlIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICAgIC0gQWRkZWQgV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZUFzeW5jLgorICAgICAgICAtIE1hZGUgc2V2ZXJhbCBm
aXhlcyBjb25zaXN0aW5nIG9mIHJldGFpbmluZyB2YXJpYWJsZXMgaW4gdGhlIG1haW4KKyAgICAg
ICAgdGhyZWFkIHdob3NlIHZhbHVlcyBhcmUgY29tcHV0ZWQgb24gdGhlIHNlY29uZGFyeSB0aHJl
YWQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmV4ZWN1dGVPbkFYVGhyZWFkQW5kV2FpdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpleGVjdXRlT25NYWluVGhyZWFkKToKKyAgICAgICAgKFdUUjo6QVhU
aHJlYWQ6OmRpc3BhdGNoQmFycmllcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUpOiBSZW5hbWVkIGV4ZWN1dGVPbkFY
VGhyZWFkQW5kV2FpdC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Q29tbW9uTWFjLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbToKKyAgICAgICAgKFdUUjo6d2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJDbGFzcyk6CisgICAgICAgIChXVFI6Om1ha2VBcnJh
eVJlZkZvckFycmF5KToKKyAgICAgICAgKFdUUjo6bWFrZU9iamVjdFJlZkZvckRpY3Rpb25hcnkp
OgorICAgICAgICAoV1RSOjptYWtlVmFsdWVSZWZGb3JWYWx1ZSk6CisgICAgICAgIChXVFI6OnNl
YXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJpYSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAg
ICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBzdGFydE9ic2VydmluZ10p
OgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0
aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICh3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNs
YXNzKTogTW92ZWQgdG8gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy4KKyAgICAgICAgKG1ha2VWYWx1
ZVJlZkZvclZhbHVlKTogTW92ZWQgdG8gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy4KKyAgICAgICAg
KG1ha2VBcnJheVJlZkZvckFycmF5KTogTW92ZWQgdG8gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy4K
KyAgICAgICAgKG1ha2VPYmplY3RSZWZGb3JEaWN0aW9uYXJ5KTogTW92ZWQgdG8gQWNjZXNzaWJp
bGl0eUNvbW1vbk1hYy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpzdXBwb3J0
ZWRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdUUjo6YXR0cmlidXRlVmFsdWUpOgorICAgICAgICAo
V1RSOjpzZXRBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAgIChXVFI6OmF0dHJpYnV0ZXNPZkVsZW1l
bnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbldp
dGhSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRB
dFBvaW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNo
aWxkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGls
ZHJlbkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlVmFsdWVBc3luYyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgorCiAyMDIwLTA0LTMwICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgLW1hcmtlZFRl
eHRSYW5nZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRleCBkYTc1ZmU2MjBl
NzI3NjRhNThjMWJkZDNjMGFiYTcxODVhNjZjNjYyLi43YzgyOWQ2NTM3ZDExM2RlMWI5N2NlZjc2
NDE1YzRkNzY4ZjYxNTkwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApAQCAt
MTA3LDcgKzEwNyw3IEBAIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoZm9jdXNlZEVsZW1lbnQpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKQordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhUaHJl
YWRBbmRXYWl0KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICNpZiBFTkFCTEUoQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogICAgIGlmIChtX3VzZU1vY2tBWFRocmVhZCkgewpA
QCAtMTIxLDYgKzEyMSwzMCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpleGVjdXRl
T25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bgogI2VuZGlmCiAgICAg
ICAgIGZ1bmN0aW9uKCk7CiB9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1
dGVPbkFYVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKK3sKKyNpZiBFTkFCTEUo
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorICAgIGlmIChtX3VzZU1vY2tBWFRocmVhZCkg
eworICAgICAgICBBWFRocmVhZDo6ZGlzcGF0Y2goW2Z1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
bildIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQor
I2VuZGlmCisgICAgICAgIGZ1bmN0aW9uKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmV4ZWN1dGVPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQor
eworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBmdW5jdGlvbigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgQVhUaHJlYWQ6OmRpc3BhdGNoQmFycmllcihbZnVuY3Rp
b24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0geworICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOwor
fQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQg
eSkKQEAgLTE1Nyw3ICsxODEsNyBAQCB2b2lkIEFYVGhyZWFkOjpkaXNwYXRjaChGdW5jdGlvbjx2
b2lkKCk+JiYgZnVuY3Rpb24pCiAKIHZvaWQgQVhUaHJlYWQ6OmRpc3BhdGNoQmFycmllcihGdW5j
dGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7Ci0gICAgZGlzcGF0Y2goW2Z1bmN0aW9uID0gV1RG
TW92ZShmdW5jdGlvbildKCkgbXV0YWJsZSB7CisgICAgZGlzcGF0Y2goW2Z1bmN0aW9uID0gV1RG
TW92ZShmdW5jdGlvbildICgpIG11dGFibGUgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdU
Rk1vdmUoZnVuY3Rpb24pKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aAppbmRleCA1YjY3ODExMDEyNTEzOGQ2MmJkZGI4YjMzMzM0ZjRkMjQ1MWYwMzUwLi4xYTVlMmE0
NTgyMmY5ODY4NTEzN2QyYTYwNTRkMTQ4N2VmZTlkYWUzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oCkBAIC02Nyw3ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gYWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkQXR0cmli
dXRlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZXhlY3V0ZU9uQVhUaHJlYWRJ
ZlBvc3NpYmxlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBleGVjdXRlT25BWFRocmVh
ZEFuZFdhaXQoRnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIGV4ZWN1dGVPbkFYVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBleGVjdXRlT25NYWluVGhyZWFkKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIoSlNWYWx1ZVJlZiBmdW5jdGlvbkNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKaW5kZXggMjBlYzVjN2EzMDZhNWIwOGQyYTE5ZDhhMjNkZWM3MzM1N2U0MzMyNi4uODdjZWI1
Zjc4MGI0NTExNmJlYTY1NDBhYjY1YzZiYTY4ZjVmNzZhZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IDogcHVibGljIEpTV3JhcHBhYmxlIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRoYXQgZGlzcGF0Y2gg
dGhlIGNvcnJlc3BvbmRpbmcgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgbWV0aG9kIHRvIHRo
ZSBBWCBzZWNvbmRhcnkgdGhyZWFkIHdoZW4gYXBwcm9wcmlhdGUuCi0gICAgZnJpZW5kIE5TQXJy
YXkqIHN1cHBvcnRlZEF0dHJpYnV0ZXMoaWQpOworICAgIGZyaWVuZCBSZXRhaW5QdHI8TlNBcnJh
eT4gc3VwcG9ydGVkQXR0cmlidXRlcyhpZCk7CiAgICAgZnJpZW5kIGlkIGF0dHJpYnV0ZVZhbHVl
KGlkLCBOU1N0cmluZyAqKTsKICAgICBmcmllbmQgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZShpZCwg
TlNTdHJpbmcgKiwgaWQsIGJvb2wgc3luY2hyb25vdXMpOwogI2VuZGlmCkBAIC0xMjEsNiArMTIx
LDExIEBAIHB1YmxpYzoKICAgICBKU1ZhbHVlUmVmIHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKSBjb25zdDsKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gdWlFbGVtZW50QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRl
KSBjb25zdDsKICAgICBib29sIGJvb2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1
dGUpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIGF0dHJpYnV0ZVZhbHVlQXN5bmMoSlNT
dHJpbmdSZWYgYXR0cmlidXRlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKyNlbHNlCisgICAgdm9p
ZCBhdHRyaWJ1dGVWYWx1ZUFzeW5jKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwgSlNWYWx1ZVJlZiBj
YWxsYmFjaykgeyB9CisjZW5kaWYKICAgICB2b2lkIHNldEJvb2xBdHRyaWJ1dGVWYWx1ZShKU1N0
cmluZ1JlZiBhdHRyaWJ1dGUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNBdHRyaWJ1dGVTdXBw
b3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKTsKICAgICBib29sIGlzQXR0cmlidXRlU2V0dGFi
bGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGVmNWE2YTA3OTYwOGY5ZjA0NTE0OGZhYzkyODY2MDk2
MDExZmU5OTkuLmViZTI0YmJiMThjZjIwNWQ0NzVhNTI5ODUxZTllZmI2MmU2ZTQxODkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAtNjYsNiAr
NjYsNyBAQAogICAgIG9iamVjdCB1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlKERPTVN0cmlu
ZyBhdHRyKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHVpRWxlbWVudEF0dHJpYnV0ZVZh
bHVlKERPTVN0cmluZyBhdHRyKTsgIAogICAgIGJvb2xlYW4gYm9vbEF0dHJpYnV0ZVZhbHVlKERP
TVN0cmluZyBhdHRyKTsKKyAgICB2b2lkIGF0dHJpYnV0ZVZhbHVlQXN5bmMoRE9NU3RyaW5nIGF0
dHJpYnV0ZU5hbWUsIG9iamVjdCBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIHNldEJvb2xB
dHRyaWJ1dGVWYWx1ZShET01TdHJpbmcgYXR0ciwgYm9vbGVhbiB2YWx1ZSk7CiAgICAgYm9vbGVh
biBpc0F0dHJpYnV0ZVN1cHBvcnRlZChET01TdHJpbmcgYXR0cik7CiAgICAgYm9vbGVhbiBpc0F0
dHJpYnV0ZVNldHRhYmxlKERPTVN0cmluZyBhdHRyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlD
b21tb25NYWMuaAppbmRleCAyYmY5MWUyMDkxM2ZlYTBiN2E5ZDhiYjkzZDk5MDliN2FkZTVjNjBi
Li4xMTc0ODFiOGRiNTZkMTk2ZTRiZGRmNmZlOGRiOWVjMmNhZjAyNzg1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29t
bW9uTWFjLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5oCkBAIC00Miw3ICs0Miw5IEBACiBAZW5kCiAKIG5hbWVz
cGFjZSBXVFIgewotICAgIAorCitDbGFzcyB3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNs
YXNzKCk7CitKU1ZhbHVlUmVmIG1ha2VWYWx1ZVJlZkZvclZhbHVlKEpTQ29udGV4dFJlZiwgaWQg
dmFsdWUpOwogZXh0ZXJuIE5TRGljdGlvbmFyeSAqc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRlcmlhKEpTQ29udGV4dFJlZiwgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCAqc3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgdW5zaWduZWQgcmVz
dWx0c0xpbWl0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwg
Ym9vbCB2aXNpYmxlT25seSwgYm9vbCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpOwogCiB9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eUNvbW1vbk1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW0KaW5kZXggMzlhYWEyNGE5NzQwYThj
MjMwNDZhYjhmNTMyZDk4NzMxY2QyOTU1ZS4uMjJiY2M3Y2M4OTgxZmY3ZWQzMTFkMjQ2YTc2YjRj
MDc1ZTNhMmE3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tCkBAIC0z
MSw3ICszMSw5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlD
b21tb25NYWMuaCIKIAorI2ltcG9ydCAiSlNXcmFwcGVyLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9KU1N0cmluZ1JlZkNGLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KIAogQGltcGxl
bWVudGF0aW9uIE5TU3RyaW5nIChKU1N0cmluZ1JlZkFkZGl0aW9ucykKIApAQCAtNDgsMTkgKzUw
LDY5IEBACiAgICAgcmV0dXJuIGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChfX2Jy
aWRnZSBDRlN0cmluZ1JlZilzZWxmKSk7CiB9CiAKK0BlbmQKKwogbmFtZXNwYWNlIFdUUiB7CiAK
K0NsYXNzIHdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQ2xhc3MoKQoreworICAgIHN0YXRp
YyBDbGFzcyBjbHMgPSBvYmpjX2dldENsYXNzKCJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ciIpOworICAgIEFTU0VSVChjbHMpOworICAgIHJldHVybiBjbHM7Cit9CisKK3N0YXRpYyBKU1Zh
bHVlUmVmIG1ha2VBcnJheVJlZkZvckFycmF5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBOU0FycmF5
ICphcnJheSkKK3sKKyAgICBOU1VJbnRlZ2VyIGNvdW50ID0gYXJyYXkuY291bnQ7CisgICAgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbY291bnRdOworCisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBp
IDwgY291bnQ7IGkrKykKKyAgICAgICAgYXJndW1lbnRzW2ldID0gbWFrZVZhbHVlUmVmRm9yVmFs
dWUoY29udGV4dCwgW2FycmF5IG9iamVjdEF0SW5kZXg6aV0pOworCisgICAgcmV0dXJuIEpTT2Jq
ZWN0TWFrZUFycmF5KGNvbnRleHQsIGNvdW50LCBhcmd1bWVudHMsIG51bGxwdHIpOworfQorCitz
dGF0aWMgSlNWYWx1ZVJlZiBtYWtlT2JqZWN0UmVmRm9yRGljdGlvbmFyeShKU0NvbnRleHRSZWYg
Y29udGV4dCwgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEpTT2JqZWN0UmVmIG9i
amVjdCA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBudWxscHRyLCBudWxscHRyKTsKKworICAgIFtk
aWN0aW9uYXJ5IGVudW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9jazpeKE5TU3RyaW5nICpr
ZXksIGlkIG9iaiwgQk9PTCAqKSB7CisgICAgICAgIGlmIChKU1ZhbHVlUmVmIHByb3BlcnR5VmFs
dWUgPSBtYWtlVmFsdWVSZWZGb3JWYWx1ZShjb250ZXh0LCBvYmopKQorICAgICAgICAgICAgSlNP
YmplY3RTZXRQcm9wZXJ0eShjb250ZXh0LCBvYmplY3QsIFtrZXkgY3JlYXRlSlNTdHJpbmdSZWZd
LmdldCgpLCBwcm9wZXJ0eVZhbHVlLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIG51bGxwdHIp
OworICAgIH1dOworCisgICAgcmV0dXJuIG9iamVjdDsKK30KKworSlNWYWx1ZVJlZiBtYWtlVmFs
dWVSZWZGb3JWYWx1ZShKU0NvbnRleHRSZWYgY29udGV4dCwgaWQgdmFsdWUpCit7CisgICAgaWYg
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgW3ZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXS5nZXQo
KSk7CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSB7Cisg
ICAgICAgIGlmICghc3RyY21wKFt2YWx1ZSBvYmpDVHlwZV0sIEBlbmNvZGUoQk9PTCkpKQorICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBbdmFsdWUgYm9vbFZh
bHVlXSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBbdmFsdWUg
ZG91YmxlVmFsdWVdKTsKKyAgICB9CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOndlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQ2xhc3MoKV0pCisgICAgICAgIHJldHVybiB0b0pTKGNv
bnRleHQsIFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PFBs
YXRmb3JtVUlFbGVtZW50Pih2YWx1ZSkpLnB0cigpKTsKKyAgICBpZiAoW3ZhbHVlIGlzS2luZE9m
Q2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICByZXR1cm4gbWFrZU9iamVjdFJl
ZkZvckRpY3Rpb25hcnkoY29udGV4dCwgdmFsdWUpOworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZD
bGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICByZXR1cm4gbWFrZUFycmF5UmVmRm9yQXJy
YXkoY29udGV4dCwgdmFsdWUpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBOU0RpY3Rpb25h
cnkgKnNlYXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJp
YShKU0NvbnRleHRSZWYgY29udGV4dCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCAqc3RhcnRFbGVt
ZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgdW5zaWduZWQgcmVzdWx0c0xpbWl0LCBKU1ZhbHVl
UmVmIHNlYXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSwg
Ym9vbCBpbW1lZGlhdGVEZXNjZW5kYW50c09ubHkpCiB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFy
eSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25h
cnldOwotICAgIAorCiAgICAgaWYgKHN0YXJ0RWxlbWVudCAmJiBzdGFydEVsZW1lbnQtPnBsYXRm
b3JtVUlFbGVtZW50KCkpCiAgICAgICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVj
dDpzdGFydEVsZW1lbnQtPnBsYXRmb3JtVUlFbGVtZW50KCkgZm9yS2V5OkAiQVhTdGFydEVsZW1l
bnQiXTsKLSAgICAKKwogICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDooaXNE
aXJlY3Rpb25OZXh0KSA/IEAiQVhEaXJlY3Rpb25OZXh0IiA6IEAiQVhEaXJlY3Rpb25QcmV2aW91
cyIgZm9yS2V5OkAiQVhEaXJlY3Rpb24iXTsKLSAgICAKKwogICAgIFtwYXJhbWV0ZXJpemVkQXR0
cmlidXRlIHNldE9iamVjdDpAKHJlc3VsdHNMaW1pdCkgZm9yS2V5OkAiQVhSZXN1bHRzTGltaXQi
XTsKLSAgICAKKwogICAgIGlmIChzZWFyY2hLZXkpIHsKICAgICAgICAgaWQgc2VhcmNoS2V5UGFy
YW1ldGVyID0gbmlsOwogICAgICAgICBpZiAoSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIHNlYXJj
aEtleSkpIHsKQEAgLTcwLDEyICsxMjIsMTIgQEAgTlNEaWN0aW9uYXJ5ICpzZWFyY2hQcmVkaWNh
dGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yU2VhcmNoQ3JpdGVyaWEoSlNDb250ZXh0UmUKICAg
ICAgICAgfSBlbHNlIGlmIChKU1ZhbHVlSXNPYmplY3QoY29udGV4dCwgc2VhcmNoS2V5KSkgewog
ICAgICAgICAgICAgSlNPYmplY3RSZWYgc2VhcmNoS2V5QXJyYXkgPSBKU1ZhbHVlVG9PYmplY3Qo
Y29udGV4dCwgc2VhcmNoS2V5LCBudWxscHRyKTsKICAgICAgICAgICAgIHVuc2lnbmVkIHNlYXJj
aEtleUFycmF5TGVuZ3RoID0gMDsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBhdXRvIGxl
bmd0aFByb3BlcnR5U3RyaW5nID0gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
Imxlbmd0aCIpKTsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgc2VhcmNoS2V5QXJyYXlMZW5ndGhW
YWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgc2VhcmNoS2V5QXJyYXksIGxlbmd0
aFByb3BlcnR5U3RyaW5nLmdldCgpLCBudWxscHRyKTsKICAgICAgICAgICAgIGlmIChzZWFyY2hL
ZXlBcnJheUxlbmd0aFZhbHVlICYmIEpTVmFsdWVJc051bWJlcihjb250ZXh0LCBzZWFyY2hLZXlB
cnJheUxlbmd0aFZhbHVlKSkKICAgICAgICAgICAgICAgICBzZWFyY2hLZXlBcnJheUxlbmd0aCA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgc2VhcmNoS2V5
QXJyYXlMZW5ndGhWYWx1ZSwgbnVsbHB0cikpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWFyY2hLZXlBcnJheUxlbmd0aDsgKytpKSB7CiAg
ICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiBzZWFyY2hLZXlWYWx1ZSA9IEpTT2JqZWN0R2V0UHJv
cGVydHlBdEluZGV4KGNvbnRleHQsIHNlYXJjaEtleUFycmF5LCBpLCBudWxscHRyKTsKICAgICAg
ICAgICAgICAgICBKU1N0cmluZ1JlZiBzZWFyY2hLZXlTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIHNlYXJjaEtleVZhbHVlLCBudWxscHRyKTsKQEAgLTkwLDE3ICsxNDIsMTYg
QEAgTlNEaWN0aW9uYXJ5ICpzZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9y
U2VhcmNoQ3JpdGVyaWEoSlNDb250ZXh0UmUKICAgICAgICAgaWYgKHNlYXJjaEtleVBhcmFtZXRl
cikKICAgICAgICAgICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpzZWFyY2hL
ZXlQYXJhbWV0ZXIgZm9yS2V5OkAiQVhTZWFyY2hLZXkiXTsKICAgICB9Ci0gICAgCisKICAgICBp
ZiAoc2VhcmNoVGV4dCAmJiBKU1N0cmluZ0dldExlbmd0aChzZWFyY2hUZXh0KSkKICAgICAgICAg
W3BhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgc2V0T2JqZWN0OltOU1N0cmluZyBzdHJpbmdXaXRoSlNT
dHJpbmdSZWY6c2VhcmNoVGV4dF0gZm9yS2V5OkAiQVhTZWFyY2hUZXh0Il07Ci0gICAgCisKICAg
ICBbcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6QCh2aXNpYmxlT25seSkgZm9yS2V5
OkAiQVhWaXNpYmxlT25seSJdOwotICAgIAorCiAgICAgW3BhcmFtZXRlcml6ZWRBdHRyaWJ1dGUg
c2V0T2JqZWN0OkAoaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KSBmb3JLZXk6QCJBWEltbWVkaWF0
ZURlc2NlbmRhbnRzT25seSJdOwotICAgIAorCiAgICAgcmV0dXJuIHBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGU7CiB9Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdUUgogCi1AZW5kCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCmluZGV4IGRiMGUwYzRhZjFiMGRmODNj
NmVjYWZjYjE2NGQzZjYxMjVhYzY2ZDIuLjkxM2FlMGY3NWNkYjRlZDVkZWRkZWI5MjVmNmM5NTAx
OGRkZDE3MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1t
CkBAIC0xMDAsNyArMTAwLDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlMKICAgICBQbGF0Zm9y
bVVJRWxlbWVudCByb290ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+KFdLQWNjZXNz
aWJpbGl0eVJvb3RPYmplY3QocGFnZSkpOwogCiAgICAgUmV0YWluUHRyPGlkPiByZXN1bHQ7Ci0g
ICAgZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmcm9vdCwgJmlkQXR0cmlidXRlLCAmcmVz
dWx0XSB7CisgICAgZXhlY3V0ZU9uQVhUaHJlYWRBbmRXYWl0KFsmcm9vdCwgJmlkQXR0cmlidXRl
LCAmcmVzdWx0XSB7CiAgICAgICAgIHJlc3VsdCA9IGZpbmRBY2Nlc3NpYmxlT2JqZWN0QnlJZChy
b290LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmlkQXR0cmlidXRlXSk7CiAgICAg
fSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KaW5kZXggNjZiYWU2OWY0NTU3MDRmNTdjNDNiYThhNDMxYjc1MmYyNzY4N2MxOC4uODUw
MjZlNmU4OTIzYjQyMWU2ODEzZmNiMDVhZGJjZjQ4NDI3YWIzZiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTQwLDcgKzQwLDYg
QEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmLmg+CiAjaW1wb3J0IDxKYXZh
U2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tCdW5kbGVGcmFt
ZS5oPgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQWRk
aXRpb25zKQpAQCAtOTAsMTkgKzg5LDEyIEBACiAgICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCwg
bV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKTsKIH0KIAotc3RhdGljIENsYXNzIHdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQ2xhc3MoKQotewotICAgIHN0YXRpYyBDbGFzcyBjbHMg
PSBvYmpjX2dldENsYXNzKCJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciIpOwotICAgIEFT
U0VSVChjbHMpOwotICAgIHJldHVybiBjbHM7Ci19Ci0KIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmcK
IHsKICAgICAvLyBPbmNlIHdlIHN0YXJ0IHJlcXVlc3Rpbmcgbm90aWZpY2F0aW9ucywgaXQncyBv
biBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBwcm9ncmFtLgogICAgIC8vIFRoaXMgaXMgdG8gYXZv
aWQgYW55IHJhY2UgY29uZGl0aW9ucyBiZXR3ZWVuIHRlc3RzIHR1cm5pbmcgdGhpcyBmbGFnIG9u
IGFuZCBvZmYuIEluc3RlYWQKICAgICAvLyBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ciBjYW4gaWdub3JlIGV2ZW50cyBpdCBkb2Vzbid0IGNhcmUgYWJvdXQuCi0gICAgW3dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQ2xhc3MoKSBhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uczpZRVNdOworICAgIFtXVFI6OndlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQ2xhc3MoKSBhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczpZRVNd
OwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX25vdGlmaWNhdGlvblJlY2VpdmVkOikgbmFtZTpAIkFY
RFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKIH0KIApAQCAtMTExLDQ4ICsxMDMsNiBAQCBz
dGF0aWMgQ2xhc3Mgd2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJDbGFzcygpCiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsK
IH0KIAotc3RhdGljIEpTVmFsdWVSZWYgbWFrZVZhbHVlUmVmRm9yVmFsdWUoSlNDb250ZXh0UmVm
IGNvbnRleHQsIGlkIHZhbHVlKQotewotICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNT
dHJpbmcgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQs
IFt2YWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0uZ2V0KCkpOwotICAgIGlmIChbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkgewotICAgICAgICBpZiAoIXN0cmNtcChbdmFsdWUg
b2JqQ1R5cGVdLCBAZW5jb2RlKEJPT0wpKSkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFr
ZUJvb2xlYW4oY29udGV4dCwgW3ZhbHVlIGJvb2xWYWx1ZV0pOwotICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgW3ZhbHVlIGRvdWJsZVZhbHVlXSk7Ci0gICAgfQotICAg
IGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczp3ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckNs
YXNzKCldKQotICAgICAgICByZXR1cm4gdG9KUyhjb250ZXh0LCBXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4odmFsdWUpKS5w
dHIoKSk7Ci0gICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3Nd
XSkKLSAgICAgICAgcmV0dXJuIG1ha2VPYmplY3RSZWZGb3JEaWN0aW9uYXJ5KGNvbnRleHQsIHZh
bHVlKTsKLSAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKLSAg
ICAgICAgcmV0dXJuIG1ha2VBcnJheVJlZkZvckFycmF5KGNvbnRleHQsIHZhbHVlKTsKLSAgICBy
ZXR1cm4gbnVsbHB0cjsKLX0KLQotc3RhdGljIEpTVmFsdWVSZWYgbWFrZUFycmF5UmVmRm9yQXJy
YXkoSlNDb250ZXh0UmVmIGNvbnRleHQsIE5TQXJyYXkgKmFycmF5KQotewotICAgIE5TVUludGVn
ZXIgY291bnQgPSBhcnJheS5jb3VudDsKLSAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tjb3VudF07
Ci0KLSAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotICAgICAgICBh
cmd1bWVudHNbaV0gPSBtYWtlVmFsdWVSZWZGb3JWYWx1ZShjb250ZXh0LCBbYXJyYXkgb2JqZWN0
QXRJbmRleDppXSk7Ci0KLSAgICByZXR1cm4gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4dCwgY291
bnQsIGFyZ3VtZW50cywgbnVsbHB0cik7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVlUmVmIG1ha2VPYmpl
Y3RSZWZGb3JEaWN0aW9uYXJ5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBOU0RpY3Rpb25hcnkgKmRp
Y3Rpb25hcnkpCi17Ci0gICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNPYmplY3RNYWtlKGNvbnRl
eHQsIG51bGxwdHIsIG51bGxwdHIpOwotCi0gICAgW2RpY3Rpb25hcnkgZW51bWVyYXRlS2V5c0Fu
ZE9iamVjdHNVc2luZ0Jsb2NrOl4oTlNTdHJpbmcgKmtleSwgaWQgb2JqLCBCT09MICpzdG9wKQot
ICAgIHsKLSAgICAgICAgaWYgKEpTVmFsdWVSZWYgcHJvcGVydHlWYWx1ZSA9IG1ha2VWYWx1ZVJl
ZkZvclZhbHVlKGNvbnRleHQsIG9iaikpCi0gICAgICAgICAgICBKU09iamVjdFNldFByb3BlcnR5
KGNvbnRleHQsIG9iamVjdCwgW2tleSBjcmVhdGVKU1N0cmluZ1JlZl0uZ2V0KCksIHByb3BlcnR5
VmFsdWUsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgbnVsbHB0cik7Ci0gICAgfV07Ci0KLSAg
ICByZXR1cm4gb2JqZWN0OwotfQotCiAtICh2b2lkKV9ub3RpZmljYXRpb25SZWNlaXZlZDooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBOU1N0cmluZyAqbm90aWZpY2F0aW9u
TmFtZSA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QCJub3RpZmljYXRp
b25OYW1lIl07CkBAIC0xNjcsNyArMTE3LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgbWFrZU9iamVj
dFJlZkZvckRpY3Rpb25hcnkoSlNDb250ZXh0UmVmIGNvbnRleHQsIE5TRGljdGlvbmFyeQogICAg
IEpTQ29udGV4dFJlZiBjb250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0
KG1haW5GcmFtZSk7CiAKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9
IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpTU3Ry
aW5nUmVmXS5nZXQoKSk7Ci0gICAgSlNWYWx1ZVJlZiB1c2VySW5mb0FyZ3VtZW50ID0gbWFrZU9i
amVjdFJlZkZvckRpY3Rpb25hcnkoY29udGV4dCwgdXNlckluZm8pOworICAgIEpTVmFsdWVSZWYg
dXNlckluZm9Bcmd1bWVudCA9IFdUUjo6bWFrZVZhbHVlUmVmRm9yVmFsdWUoY29udGV4dCwgdXNl
ckluZm8pOwogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewogICAgICAgICAvLyBMaXN0ZW5l
ciBmb3Igb25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZv
LgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IDZmMTIwZmYzYWU5MmNmMGVhZjQ3ZTFkMmYyMGVi
ZjUyZTA3ZjBlNmQuLjQwMzVmMjNkZTk4MDAyNDVhYmQxNWJhM2MzNzliNWVhYjM5YzZkOWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMTE3LDEyICsx
MTcsMTIgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFsKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQqIG90aGVyRWxlbWVudCkKICAgICByZXR1cm4gcGxhdGZvcm1VSUVsZW1lbnQo
KSA9PSBvdGhlckVsZW1lbnQtPnBsYXRmb3JtVUlFbGVtZW50KCk7CiB9CiAKLU5TQXJyYXkqIHN1
cHBvcnRlZEF0dHJpYnV0ZXMoaWQgZWxlbWVudCkKK1JldGFpblB0cjxOU0FycmF5PiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzKGlkIGVsZW1lbnQpCiB7Ci0gICAgTlNBcnJheSAqYXR0cmlidXRlczsKKyAg
ICBSZXRhaW5QdHI8TlNBcnJheT4gYXR0cmlidXRlczsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUwotICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNfY29udHJvbGxlci0+ZXhlY3V0
ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmYXR0cmlidXRlcywgJmVsZW1lbnRdIHsKKyAgICBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzX2NvbnRyb2xsZXItPmV4ZWN1dGVPbkFYVGhyZWFkQW5kV2Fp
dChbJmF0dHJpYnV0ZXMsICZlbGVtZW50XSB7CiAgICAgICAgIGF0dHJpYnV0ZXMgPSBbZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdOwogICAgIH0pOwogICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKQEAgLTEzMiwyMSArMTMyLDIxIEBAIE5TQXJyYXkqIHN1cHBvcnRlZEF0dHJp
YnV0ZXMoaWQgZWxlbWVudCkKIAogaWQgYXR0cmlidXRlVmFsdWUoaWQgZWxlbWVudCwgTlNTdHJp
bmcgKmF0dHJpYnV0ZSkKIHsKLSAgICBpZCB2YWx1ZTsKKyAgICBSZXRhaW5QdHI8aWQ+IHZhbHVl
OwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoWyZlbGVtZW50
LCAmYXR0cmlidXRlLCAmdmFsdWVdIHsKKyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzX2Nv
bnRyb2xsZXItPmV4ZWN1dGVPbkFYVGhyZWFkQW5kV2FpdChbJmVsZW1lbnQsICZhdHRyaWJ1dGUs
ICZ2YWx1ZV0gewogICAgICAgICB2YWx1ZSA9IFtlbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTphdHRyaWJ1dGVdOwogICAgIH0pOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMK
IAotICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1cm4gdmFsdWUuZ2V0KCk7CiB9CiAKIHZvaWQg
c2V0QXR0cmlidXRlVmFsdWUoaWQgZWxlbWVudCwgTlNTdHJpbmcqIGF0dHJpYnV0ZSwgaWQgdmFs
dWUsIGJvb2wgc3luY2hyb25vdXMgPSBmYWxzZSkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQ
VElPTlMKLSAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzX2NvbnRyb2xsZXItPmV4ZWN1dGVP
bkFYVGhyZWFkSWZQb3NzaWJsZShbJmVsZW1lbnQsICZhdHRyaWJ1dGUsICZ2YWx1ZSwgJnN5bmNo
cm9ub3VzXSB7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c19jb250cm9sbGVyLT5leGVj
dXRlT25BWFRocmVhZEFuZFdhaXQoWyZlbGVtZW50LCAmYXR0cmlidXRlLCAmdmFsdWUsICZzeW5j
aHJvbm91c10gewogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIGFsd2F5cyBiZSBhc3luY2hyb25v
dXMsIGZpeCB0ZXN0cy4KICAgICAgICAgc3luY2hyb25vdXMgPyBbZWxlbWVudCBfYWNjZXNzaWJp
bGl0eVNldFZhbHVlOnZhbHVlIGZvckF0dHJpYnV0ZTphdHRyaWJ1dGVdIDoKICAgICAgICAgICAg
IFtlbGVtZW50IGFjY2Vzc2liaWxpdHlTZXRWYWx1ZTp2YWx1ZSBmb3JBdHRyaWJ1dGU6YXR0cmli
dXRlXTs7OwpAQCAtMTk4LDEwICsxOTgsMTAgQEAgc3RhdGljIE5TU3RyaW5nKiBkZXNjcmlwdGlv
bk9mVmFsdWUoaWQgdmFsdWVPYmplY3QsIGlkIGVsZW1lbnQpCiAKIHN0YXRpYyBOU1N0cmluZyAq
YXR0cmlidXRlc09mRWxlbWVudChpZCBhY2Nlc3NpYmlsaXR5T2JqZWN0KQogewotICAgIE5TQXJy
YXkqIGF0dHJpYnV0ZXMgPSBzdXBwb3J0ZWRBdHRyaWJ1dGVzKGFjY2Vzc2liaWxpdHlPYmplY3Qp
OworICAgIFJldGFpblB0cjxOU0FycmF5PiBhdHRyaWJ1dGVzID0gc3VwcG9ydGVkQXR0cmlidXRl
cyhhY2Nlc3NpYmlsaXR5T2JqZWN0KTsKIAogICAgIE5TTXV0YWJsZVN0cmluZyogYXR0cmlidXRl
c1N0cmluZyA9IFtOU011dGFibGVTdHJpbmcgc3RyaW5nXTsKLSAgICBmb3IgKE5TU3RyaW5nKiBh
dHRyaWJ1dGUgaW4gYXR0cmlidXRlcykgeworICAgIGZvciAoTlNTdHJpbmcqIGF0dHJpYnV0ZSBp
biBhdHRyaWJ1dGVzLmdldCgpKSB7CiAgICAgICAgIC8vIFBvc2l0aW9uIHByb3ZpZGVzIHVzZWxl
c3MgYW5kIHNjcmVlbi1zcGVjaWZpYyBpbmZvcm1hdGlvbiwgc28gd2UgZG8gbm90CiAgICAgICAg
IC8vIHdhbnQgdG8gaW5jbHVkZSBpdCBmb3IgdGhlIHNha2Ugb2YgdW5pdmVyc2FsbHkgcGFzc2lu
ZyB0ZXN0cy4KICAgICAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhQb3Np
dGlvbiJdKQpAQCAtMzczLDcgKzM3Myw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFCiB7CiAg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGNoaWxk
cmVuOwotICAgIHNfY29udHJvbGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmY2hp
bGRyZW4sIGxvY2F0aW9uLCBsZW5ndGgsIHRoaXNdIHsKKyAgICBzX2NvbnRyb2xsZXItPmV4ZWN1
dGVPbkFYVGhyZWFkQW5kV2FpdChbJmNoaWxkcmVuLCBsb2NhdGlvbiwgbGVuZ3RoLCB0aGlzXSB7
CiAgICAgICAgIGNoaWxkcmVuID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1
dGVWYWx1ZXM6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGUgaW5kZXg6bG9jYXRpb24g
bWF4Q291bnQ6bGVuZ3RoXTsKICAgICB9KTsKICAgICBlbGVtZW50VmVjdG9yID0gbWFrZVZlY3Rv
cjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KGNoaWxkcmVuLmdldCgpKTsKQEAgLTQx
OCwyMiArNDE4LDIyIEBAIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50
KCkKIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQgeSkKIHsKLSAgICBpZCBlbGVtZW50OwotICAg
IHNfY29udHJvbGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmeCwgJnksICZlbGVt
ZW50LCB0aGlzXSB7CisgICAgUmV0YWluUHRyPGlkPiBlbGVtZW50OworICAgIHNfY29udHJvbGxl
ci0+ZXhlY3V0ZU9uQVhUaHJlYWRBbmRXYWl0KFsmeCwgJnksICZlbGVtZW50LCB0aGlzXSB7CiAg
ICAgICAgIGVsZW1lbnQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlIaXRUZXN0Ok5TTWFrZVBv
aW50KHgsIHkpXTsKICAgICB9KTsKIAogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoZWxlbWVu
dC5nZXQoKSk7CiB9CiAKIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4T2ZD
aGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KQogewogICAgIHVuc2lnbmVkIGlu
ZGV4OwogICAgIGlkIHBsYXRmb3JtRWxlbWVudCA9IGVsZW1lbnQtPnBsYXRmb3JtVUlFbGVtZW50
KCk7Ci0gICAgc19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoWyZwbGF0
Zm9ybUVsZW1lbnQsICZpbmRleCwgdGhpc10geworICAgIHNfY29udHJvbGxlci0+ZXhlY3V0ZU9u
QVhUaHJlYWRBbmRXYWl0KFsmcGxhdGZvcm1FbGVtZW50LCAmaW5kZXgsIHRoaXNdIHsKICAgICAg
ICAgaW5kZXggPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlJbmRleE9mQ2hpbGQ6cGxhdGZvcm1F
bGVtZW50XTsKICAgICB9KTsKICAgICByZXR1cm4gaW5kZXg7CkBAIC01MTEsNyArNTExLDcgQEAg
dW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkg
Y29uc3QKICAgICB1bnNpZ25lZCBjb3VudCA9IDA7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQ
VElPTlMKLSAgICBzX2NvbnRyb2xsZXItPmV4ZWN1dGVPbkFYVGhyZWFkSWZQb3NzaWJsZShbJmNv
dW50LCB0aGlzXSB7CisgICAgc19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZEFuZFdhaXQo
WyZjb3VudCwgdGhpc10gewogICAgICAgICBjb3VudCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUFycmF5QXR0cmlidXRlQ291bnQ6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJp
YnV0ZV07CiAgICAgfSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwpAQCAtNjEzLDYgKzYx
MywyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZVZhbHVlQXN5bmMoSlNTdHJpbmdSZWYgYXR0cmli
dXRlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIGlmICghYXR0cmlidXRlIHx8ICFjYWxs
YmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisg
ICAgc19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZChbYXR0cmlidXRlID0gcmV0YWluUHRy
KFtOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6YXR0cmlidXRlXSksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayksIHRoaXNdICgpIG11dGFibGUgeworICAgICAgICBpZCB2YWx1ZSA9
IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZS5nZXQoKV07
CisKKyAgICAgICAgc19jb250cm9sbGVyLT5leGVjdXRlT25NYWluVGhyZWFkKFt2YWx1ZSA9IHJl
dGFpblB0cih2YWx1ZSksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIHsKKyAgICAg
ICAgICAgIGF1dG8gbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CisgICAgICAgICAgICBhdXRvIGNv
bnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKKwor
ICAgICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMV07CisgICAgICAgICAgICBhcmd1bWVu
dHNbMF0gPSBtYWtlVmFsdWVSZWZGb3JWYWx1ZShjb250ZXh0LCB2YWx1ZS5nZXQoKSk7CisgICAg
ICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmpl
Y3RSZWY+KGNhbGxiYWNrKSwgMCwgMSwgYXJndW1lbnRzLCAwKTsKKyAgICAgICAgfSk7CisgICAg
fSk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCiB2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNldEJvb2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUsIGJv
b2wgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBbTlNT
dHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmF0dHJpYnV0ZV0sIEAodmFsdWUpLCB0cnVlKTsK
QEAgLTExNzcsMTQgKzExOTgsMTQgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEoSlNDb250ZXgKIHsKICAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGUgPSBzZWxlY3RUZXh0UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKGNv
bnRleHQsIGFtYmlndWl0eVJlc29sdXRpb24sIHNlYXJjaFN0cmluZ3MsIHJlcGxhY2VtZW50U3Ry
aW5nLCBhY3Rpdml0eSk7Ci0gICAgaWQgcmVzdWx0OwotICAgIHNfY29udHJvbGxlci0+ZXhlY3V0
ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKFsmcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSwgJnJlc3VsdCwg
dGhpc10geworICAgIFJldGFpblB0cjxpZD4gcmVzdWx0OworICAgIHNfY29udHJvbGxlci0+ZXhl
Y3V0ZU9uQVhUaHJlYWRBbmRXYWl0KFsmcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSwgJnJlc3VsdCwg
dGhpc10gewogICAgICAgICByZXN1bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpAIkFYU2VsZWN0VGV4dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1ldGVyOnBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGVdOwogICAgIH0pOwotICAgIGlmIChbcmVzdWx0IGlzS2luZE9mQ2xhc3M6
W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBbcmVzdWx0IGNyZWF0ZUpTU3RyaW5n
UmVmXTsKKyAgICBpZiAoW3Jlc3VsdC5nZXQoKSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFz
c11dKQorICAgICAgICByZXR1cm4gW3Jlc3VsdC5nZXQoKSBjcmVhdGVKU1N0cmluZ1JlZl07CiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBlODQ0ZmNmYTY1OTcxZTY0OTc0ZWVmNmRlZGMxMGZhMWQxZWU2YjM0Li5jMzgy
NjUxYWNmZTM3ZWY2YzA0NDE5NDQ4M2YzNjgwODY2YzA2ZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjAtMDUtMDIgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZVZhbHVl
QXN5bmMgdG8gcmV0cmlldmUgYXR0cmlidXRlIHZhbHVlcyBpbiBpc29sYXRlZCB0cmVlIG1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEzNDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRl
c3QgZXhlcmNpc2VzIHRoZSBuZXcgV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHJpYnV0
ZVZhbHVlQXN5bmMgbWV0aG9kLgorICAgICAgICBJbnN0ZWFkIG9mIHVzaW5nIHNob3VsZEJlVHJ1
ZSB0aGF0IGRvZXMgbm90IHdvcmsgd2l0aCBsb2NhbCB2YXJpYWJsZXMsCisgICAgICAgIHVzZXMg
ZGVidWcgdG8gbG9nIHJlc3VsdHMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9wcmlt
YXJ5LXNjcmVlbi1oZWlnaHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC5odG1sOgorCiAyMDIwLTA0LTMwICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGJvcmRlci1yYWRpdXMgZmFp
bHMgdG8gY2xpcCBpZnJhbWUgY29udGVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9wcmltYXJ5LXNjcmVlbi1oZWlnaHQtZXhwZWN0ZWQudHh0
CmluZGV4IGFlZTkwZTI3MGQ4YmRiM2M4NmQ2ZmRjYjY3ZGVlOGRiM2M4MGJlODkuLjViNDU0NjZk
ODllYmE4ZTJmNWMxYzg2OGYwNGQ4MWY4ZDRiYTdjM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcHJpbWFyeS1zY3JlZW4taGVpZ2h0LWV4
cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgVGhpcyB0ZXN0cyB0aGUgcHJpbWFyeSBzY3JlZW4g
aGVpZ2h0IGlzIGV4cG9zZWQgdG8gQVggQVBJIGZyb20gd2ViIHByb2Nlc3MuCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBzY3JlZW5IZWlnaHRGcm9tUm9vdEVsZW1lbnQgPiAw
IGlzIHRydWUKLVBBU1Mgc2NyZWVuSGVpZ2h0RnJvbVdlYkFyZWEgPiAwIGlzIHRydWUKK1RoZSBz
Y3JlZW4gaGVpZ2h0IGZyb20gdGhlIHJvb3QgZWxlbWVudCBpcyA+IDAuCitUaGUgc2NyZWVuIGhl
aWdodCBmcm9tIHRoZSB3ZWIgYXJlYSBpcyA+IDAuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3ByaW1hcnktc2NyZWVuLWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvcHJpbWFyeS1zY3JlZW4taGVpZ2h0Lmh0bWwKaW5kZXggNTZkZjgwZWJiZDQ4
Y2Y4YjA0NzczOGRjZmRlNTU0OWNjZmQ2YTE2NC4uODA4MWRjYzg3NzU1YTkxMTc4OGRjYTc3Zjlk
ZmZkMmFjMDdjNzhiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
cHJpbWFyeS1zY3JlZW4taGVpZ2h0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvcHJpbWFyeS1zY3JlZW4taGVpZ2h0Lmh0bWwKQEAgLTEzLDE2ICsxMywyMyBAQAogPHNj
cmlwdD4KICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgcHJpbWFyeSBzY3JlZW4gaGVp
Z2h0IGlzIGV4cG9zZWQgdG8gQVggQVBJIGZyb20gd2ViIHByb2Nlc3MuIik7CiAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgIAl2YXIgcm9vdEVsZW1lbnQgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudDsKKyAgICAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHZhciByb290RWxlbWVudCA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLnJvb3RFbGVtZW50OwogICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKIAotICAgICAgICB2
YXIgc2NyZWVuSGVpZ2h0RnJvbVJvb3RFbGVtZW50ID0gcm9vdEVsZW1lbnQubnVtYmVyQXR0cmli
dXRlVmFsdWUoIl9BWFByaW1hcnlTY3JlZW5IZWlnaHQiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVl
KCJzY3JlZW5IZWlnaHRGcm9tUm9vdEVsZW1lbnQgPiAwIik7CisgICAgICAgIHJvb3RFbGVtZW50
LmF0dHJpYnV0ZVZhbHVlQXN5bmMoIl9BWFByaW1hcnlTY3JlZW5IZWlnaHQiLCBmdW5jdGlvbih2
YWx1ZSkgeworICAgICAgICAgICAgZGVidWcodmFsdWUgPiAwID8gIlRoZSBzY3JlZW4gaGVpZ2h0
IGZyb20gdGhlIHJvb3QgZWxlbWVudCBpcyA+IDAuIgorICAgICAgICAgICAgICAgICAgOiAiVGhl
IHNjcmVlbiBoZWlnaHQgZnJvbSB0aGUgcm9vdCBlbGVtZW50IHNob3VsZCBiZSA+IDAgYnV0IGl0
IGlzIG5vdC4iKTsKKyAgICAgICAgfSk7CiAKLSAgICAgICAgdmFyIHNjcmVlbkhlaWdodEZyb21X
ZWJBcmVhID0gd2ViQXJlYS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgiX0FYUHJpbWFyeVNjcmVlbkhl
aWdodCIpOwotICAgICAgICBzaG91bGRCZVRydWUoInNjcmVlbkhlaWdodEZyb21XZWJBcmVhID4g
MCIpOwotICAgIH0KKyAgICAgICAgd2ViQXJlYS5hdHRyaWJ1dGVWYWx1ZUFzeW5jKCJfQVhQcmlt
YXJ5U2NyZWVuSGVpZ2h0IiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAgIGRlYnVnKHZh
bHVlID4gMCA/ICJUaGUgc2NyZWVuIGhlaWdodCBmcm9tIHRoZSB3ZWIgYXJlYSBpcyA+IDAuIgor
ICAgICAgICAgICAgICAgICAgOiAiVGhlIHNjcmVlbiBoZWlnaHQgZnJvbSB0aGUgd2ViIGFyZWEg
c2hvdWxkIGJlID4gMCBidXQgaXQgaXMgbm90LiIpOwogCisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgfQogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>