<?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>190360</bug_id>
          
          <creation_ts>2018-10-08 10:49:09 -0700</creation_ts>
          <short_desc>Remove WKBundleFileHandleRef</short_desc>
          <delta_ts>2018-10-08 12:59:42 -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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1467114</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-08 10:49:09 -0700</bug_when>
    <thetext>Remove WKBundleFileHandleRef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467115</commentid>
    <comment_count>1</comment_count>
      <attachid>351792</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-08 10:52:59 -0700</bug_when>
    <thetext>Created attachment 351792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467132</commentid>
    <comment_count>2</comment_count>
      <attachid>351798</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-08 11:57:07 -0700</bug_when>
    <thetext>Created attachment 351798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467157</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-08 12:58:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/r236930</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467158</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-08 12:59:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/45100932&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351792</attachid>
            <date>2018-10-08 10:52:59 -0700</date>
            <delta_ts>2018-10-08 11:57:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190360-20181008105258.patch</filename>
            <type>text/plain</type>
            <size>39674</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY5MTUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIFdLQnVu
ZGxlRmlsZUhhbmRsZVJlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkwMzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxk
IGFuZCBXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aCB3ZXJlIG9ubHkgdXNlZCBpbiBN
YWlsCisgICAgICAgIGFuZCB3ZXJlIHJlbW92ZWQgaW4gcmRhcjovL3Byb2JsZW0vNDQ5NTUxNTgK
KyAgICAgICAgSSBuZWVkIHRvIHJlbW92ZSB0aGVtIGZvciByZGFyOi8vcHJvYmxlbS8yNDU3NjE5
NAorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy9XS0RlcHJlY2F0ZWRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUdl
dEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKToKKyAgICAgICAgKFdLQnVuZGxlRmls
ZUhhbmRsZUNyZWF0ZVdpdGhQYXRoKToKKyAgICAgICAgS2VlcCB0aGUgc3ltYm9scyBpbiB0aGUg
ZnJhbWV3b3JrIHNvIHdlIGNhbiBzdGlsbCBsYXVuY2ggb2xkIG1haWwgd2l0aCBuZXcgV2ViS2l0
LgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUZpbGVIYW5kbGVSZWYuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwOgorICAgICAgICAoV0tCdW5kbGVG
cmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZpbGVI
YW5kbGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmg6CisKIDIwMTgtMTAtMDcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBUcmllZCB0byBmaXggSEFWRShMSU5LX1BSRVZJRVcpIGlPUyBidWlsZHMu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQJKHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ0NCw3ICs0NDQsNiBAQCBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAKLVdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgQG5v
LXVuaWZ5CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcCBAbm8tdW5pZnkKIApJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNp
b24gMjM2OTE1KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC00ODAsNyArNDgwLDYgQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2
aWNlRW50cnlQb2ludC5tbQogCi1XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRmlsZUhhbmRsZVJlZi5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlQmFubmVyLmNwcAogCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL21h
Yy9XS0J1bmRsZU1hYy5tbQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHJl
dmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDgsNyArMTQ4LDYgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tCdW5kbGVCYWNrRgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZURPTUNTU1N0eWxlRGVjbGFyYXRpb24qIFdLQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
QnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvblJlZjsK
LXR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlRmlsZUhhbmRsZSogV0tCdW5kbGVG
aWxlSGFuZGxlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVGcmFtZSog
V0tCdW5kbGVGcmFtZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlSGl0
VGVzdFJlc3VsdCogV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tCdW5kbGVJbnNwZWN0b3IqIFdLQnVuZGxlSW5zcGVjdG9yUmVmOwpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tEZXByZWNhdGVkRnVuY3Rpb25zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0RlcHJlY2F0ZWRGdW5jdGlv
bnMuY3BwCShyZXZpc2lvbiAyMzY5MTUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S0RlcHJlY2F0ZWRGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNSArMzUsMTAg
QEAKICNpbmNsdWRlICJXS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCi0K
LSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZU1hYy5oIgotI2Vu
ZGlmCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgogCiAvLyBEZXByZWNh
dGVkIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIGZyYW1ld29yayBv
bmNlIG5vYm9keSB1c2VzIHRoZW0uCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KIHZvaWQg
V0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCkKIHsKIH0K
QEAgLTYwLDMgKzU1LDE2IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFFUS2l0RW5hYmxlZChXS1By
ZWYKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLQnVuZGxlRmlsZUhhbmRsZSogV0tCdW5kbGVGaWxlSGFuZGxlUmVmOworSlNWYWx1ZVJlZiBX
S0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JGaWxlRm9yV29ybGQoV0tCdW5kbGVG
cmFtZVJlZiwgV0tCdW5kbGVGaWxlSGFuZGxlUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmKTsK
K0pTVmFsdWVSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldv
cmxkKFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiwgV0tCdW5kbGVTY3Jp
cHRXb3JsZFJlZikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworV0tCdW5kbGVGaWxlSGFu
ZGxlUmVmIFdLQnVuZGxlRmlsZUhhbmRsZUNyZWF0ZVdpdGhQYXRoKFdLU3RyaW5nUmVmKTsKK1dL
QnVuZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aChXS1N0
cmluZ1JlZikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjM2OTE1KQor
KysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTE0MSw4ICsxMTQxLDYgQEAKIAkJN0NCMzY1QUExRDMxREI3MDAwNzE1OENB
IC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjM2NUE4MUQzMURCNzAwMDcxNThDQSAvKiBfV0tVc2VySW5p
dGlhdGVkQWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0NCMzY1QUQxRDMxREMxMDAwNzE1OENBIC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rp
b25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NCMzY1QUMxRDMxREMxMDAwNzE1OENBIC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb25JbnRl
cm5hbC5oICovOyB9OwogCQk3Q0IzNjVCMTFEMzFERDFFMDA3MTU4Q0EgLyogQVBJVXNlckluaXRp
YXRlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NCMzY1QUYxRDMxREQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaCAq
LzsgfTsKLQkJN0NCQjgxMUQxQUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxlRmlsZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NC
QjgxMUIxQUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oICovOyB9
OwotCQk3Q0JCODEyMTFBQTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JCODExRjFB
QTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NDOTlBMzYxOEVGN0NCQzAwNDhD
OEI0IC8qIFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0M5OUEzNTE4RUY3Q0JDMDA0OEM4QjQgLyogV0tTY3Jp
cHRNZXNzYWdlSW50ZXJuYWwuaCAqLzsgfTsKIAkJN0NDQ0M4RkIxQTVGNTBGRDAwOEZCMERBIC8q
IFdlYk5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NDQ0M4RjkxQTVGNTBGRDAwOEZCMERBIC8qIFdlYk5hdmlnYXRpb25TdGF0
ZS5oICovOyB9OwogCQk3Q0QxMDJEQTE4NjY3NzA2MDBFRDQyOUQgLyogQXV0b0NvcnJlY3Rpb25D
YWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0NEMTAyRDkxODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2suaCAqLzsg
fTsKQEAgLTM1NzIsMTAgKzM1NzAsNiBAQAogCQk3Q0IzNjVBOTFEMzFEQjcwMDA3MTU4Q0EgLyog
X1dLVXNlckluaXRpYXRlZEFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IF9XS1VzZXJJbml0aWF0ZWRBY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDQjM2NUFDMUQzMURDMTAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0
aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVXNlcklu
aXRpYXRlZEFjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QjM2NUFGMUQzMUREMUUwMDcxNThDQSAvKiBBUElVc2VySW5pdGlhdGVkQWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NCQjgxMUExQUEwRjhCMTAwNkIxOTQyIC8qIElu
amVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk3Q0JCODExQjFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxl
SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0JCODExRTFBQTBG
OTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkI4MTFGMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRs
ZUZpbGVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5k
bGVGaWxlSGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzk5QTM1
MThFRjdDQkMwMDQ4QzhCNCAvKiBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2
aWdhdGlvblN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5hdmlnYXRpb25TdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0ND
OEY5MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTmF2aWdhdGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03NzUyLDggKzc3NDYsNiBAQAogCQkJCTkzNUVFQjk4MTI3NzYxNkQw
MDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLywKIAkJCQk1MUZBMkQ3
NTE1MjEyRTFFMDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwICovLAog
CQkJCTUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lv
bi5oICovLAotCQkJCTdDQkI4MTFFMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5k
bGVSZWYuY3BwICovLAotCQkJCTdDQkI4MTFGMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRsZUZp
bGVIYW5kbGVSZWYuaCAqLywKIAkJCQlCQ0QyNUYxNjExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5k
bGVGcmFtZS5jcHAgKi8sCiAJCQkJQkNEMjVGMTUxMUQ2QkRFMTAwMTY5QjBFIC8qIFdLQnVuZGxl
RnJhbWUuaCAqLywKIAkJCQlCQ0YwNDlFNDExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVGcmFt
ZVByaXZhdGUuaCAqLywKQEAgLTc4NjAsOCArNzg1Miw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk3QzRFRDMyNjFBMzExOUQ5MDA3OUJENDkgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLmNwcCAqLywKIAkJCQk3QzRFRDMyNzFBMzExOUQ5MDA3OUJENDkgLyogSW5q
ZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8sCi0JCQkJN0NCQjgxMUEx
QUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi8sCi0JCQkJ
N0NCQjgxMUIxQUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oICov
LAogCQkJCUJDNEJFRUFBMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuY3BwICovLAogCQkJCUJDNEJFRUE5MTIwQTBBNUUwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuaCAqLywKIAkJCQlCQzMzRTBEMDEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgKi8sCkBAIC04OTE1LDcgKzg5MDUsNiBAQAogCQkJCTkz
NUVFQkEyMTI3NzYxRDAwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RUVCQTQxMjc3NjFENjAwMzMyMkI4IC8qIEluamVjdGVk
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdEQzUx
MjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk3Q0JCODExRDFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ5ODYxODEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDQ3Nzg1MzE3NkZD
QzA4MDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzgxNDdENTEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5k
bGVOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTk0NTEsNyArOTQ0MCw2IEBA
CiAJCQkJOTM1RUVCOUYxMjc3NjFBQzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVFRUI5QjEyNzc2MTdDMDAzMzIyQjggLyogV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUVGQzFDRjE1MjRF
NjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJzICov
LAotCQkJCTdDQkI4MTIxMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDI1RjE3MTFENkJERTEwMDE2OUIwRSAvKiBXS0J1bmRs
ZUZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0YwNDlFNjExRkUyMEY2MDBGODZBNTggLyog
V0tCdW5kbGVGcmFtZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDk4NjJGMTI0RDE4
QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
QVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAkocmV2aXNpb24gMjM2OTE1KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2Fz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEluamVjdGVkQnVuZGxl
QmFja0ZvcndhcmRMaXN0OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOwogY2xhc3Mg
SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb247Ci1jbGFzcyBJbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbmpl
Y3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGU7CkBAIC01Niw3ICs1NSw2IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUJhY2tGb3J3
YXJkTGkKIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdFJlZiwgSW5q
ZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uUmVmLCBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYs
IEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKQotV0tfQUREX0FQSV9NQVBQSU5HKFdL
QnVuZGxlRmlsZUhhbmRsZVJlZiwgSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLQnVuZGxlRnJhbWVSZWYsIFdlYkZyYW1lKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiwgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3IpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVGaWxlSGFuZGxlUmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcAkocmV2aXNp
b24gMjM2OTE1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldLQnVuZGxl
RmlsZUhhbmRsZVJlZi5oIgotCi0jaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgi
Ci0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVHlwZUlEIFdLQnVuZGxlRmlsZUhhbmRsZUdl
dFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvQVBJKEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6
QVBJVHlwZSk7Ci19Ci0KLVdLQnVuZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5kbGVD
cmVhdGVXaXRoUGF0aChXS1N0cmluZ1JlZiBwYXRoUmVmKQotewotICAgIHJldHVybiB0b0FQSShJ
bmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmNyZWF0ZSh0b1dURlN0cmluZyhwYXRoUmVmKSkubGVh
a1JlZigpKTsKLX0KLQotV0tCdW5kbGVGaWxlSGFuZGxlUmVmIFdLQnVuZGxlRmlsZUhhbmRsZUNy
ZWF0ZVdpdGhQYXRoRm9yUGFnZShXS1N0cmluZ1JlZiBwYXRoUmVmLCBXS0J1bmRsZVBhZ2VSZWYp
Ci17Ci0gICAgcmV0dXJuIHRvQVBJKEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6Y3JlYXRlKHRv
V1RGU3RyaW5nKHBhdGhSZWYpKS5sZWFrUmVmKCkpOwotfQpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAkocmV2aXNpb24gMjM2OTE1KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJl
Zi5oCShub25leGlzdGVudCkKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
V0tCdW5kbGVGaWxlSGFuZGxlUmVmX2gKLSNkZWZpbmUgV0tCdW5kbGVGaWxlSGFuZGxlUmVmX2gK
LQotI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNh
dGVkLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tf
RVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlRmlsZUhhbmRsZUdldFR5cGVJRCgpOwotCi1XS19FWFBP
UlQgV0tCdW5kbGVGaWxlSGFuZGxlUmVmIFdLQnVuZGxlRmlsZUhhbmRsZUNyZWF0ZVdpdGhQYXRo
KFdLU3RyaW5nUmVmIHBhdGgpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChX
S0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aEZvclBhZ2UpOwotV0tfRVhQT1JUIFdLQnVu
ZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aEZvclBhZ2Uo
V0tTdHJpbmdSZWYgcGF0aCwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwotCi0jaWZkZWYgX19jcGx1
c3BsdXMKLX0KLSNlbmRpZgotCi0KLSNlbmRpZiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWZfaCAq
LwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAkocmV2aXNpb24gMjM2OTE1KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJB
UElBcnJheS5oIgogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgpAQCAtMTIzLDExICsxMjIsNiBAQCBKU1Zh
bHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhCiAgICAgcmV0dXJuIHRvSW1wbChm
cmFtZVJlZiktPmpzV3JhcHBlckZvcldvcmxkKHRvSW1wbChyYW5nZUhhbmRsZVJlZiksIHRvSW1w
bCh3b3JsZFJlZikpOwogfQogCi1KU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0
V3JhcHBlckZvckZpbGVGb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBXS0J1bmRs
ZUZpbGVIYW5kbGVSZWYgZmlsZUhhbmRsZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3Js
ZFJlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKGZyYW1lUmVmKS0+anNXcmFwcGVyRm9yV29ybGQo
dG9JbXBsKGZpbGVIYW5kbGVSZWYpLCB0b0ltcGwod29ybGRSZWYpKTsKLX0KLQogV0tTdHJpbmdS
ZWYgV0tCdW5kbGVGcmFtZUNvcHlOYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYpCiB7CiAg
ICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChmcmFtZVJlZiktPm5hbWUoKSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFt
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJKHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDcgKzU1LDYgQEAgV0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVSZWYgV0tC
dW5kbGVGcmFtZQogCiBXS19FWFBPUlQgSlNWYWx1ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNj
cmlwdFdyYXBwZXJGb3JOb2RlRm9yV29ybGQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5k
bGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQp
OwogV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVy
Rm9yUmFuZ2VGb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmIHJhbmdlSGFuZGxlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKLVdLX0VY
UE9SVCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckZpbGVG
b3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZUZpbGVIYW5kbGVSZWYgZmls
ZUhhbmRsZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiAKIFdLX0VYUE9SVCBXS0J1
bmRsZVBhZ2VSZWYgV0tCdW5kbGVGcmFtZUdldFBhZ2UoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAJ
KHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGUuaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi10eXBl
ZGVmIEhhc2hNYXA8RmlsZSosIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSo+IERPTUZpbGVIYW5k
bGVDYWNoZTsKLQotc3RhdGljIERPTUZpbGVIYW5kbGVDYWNoZSYgZG9tRmlsZUhhbmRsZUNhY2hl
KCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NRmlsZUhhbmRsZUNhY2hlPiBjYWNo
ZTsKLSAgICByZXR1cm4gY2FjaGU7Ci19Ci0KLVJlZlB0cjxJbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGU+IEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkK
LXsKLSAgICBhdXRvIGZpbGUgPSBGaWxlOjpjcmVhdGUocGF0aCk7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoZmlsZS5nZXQoKSkpOwotfQotCi1SZWZQ
dHI8SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6Omdl
dE9yQ3JlYXRlKEZpbGUqIGZpbGUpCi17Ci0gICAgaWYgKCFmaWxlKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIERPTUZpbGVIYW5kbGVDYWNoZTo6QWRkUmVzdWx0IHJlc3VsdCA9IGRv
bUZpbGVIYW5kbGVDYWNoZSgpLmFkZChmaWxlLCBudWxscHRyKTsKLSAgICBpZiAoIXJlc3VsdC5p
c05ld0VudHJ5KQotICAgICAgICByZXR1cm4gUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRs
ZT4ocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7Ci0KLSAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVG
aWxlSGFuZGxlPiBmaWxlSGFuZGxlID0gYWRvcHRSZWYobmV3IEluamVjdGVkQnVuZGxlRmlsZUhh
bmRsZSgqZmlsZSkpOwotICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBmaWxlSGFuZGxlLmdl
dCgpOwotICAgIHJldHVybiBmaWxlSGFuZGxlOwotfQotCi1JbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGU6OkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZShGaWxlJiBmaWxlKQotICAgIDogbV9maWxlKGZp
bGUpCi17Ci19Ci0KLUluamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6fkluamVjdGVkQnVuZGxlRmls
ZUhhbmRsZSgpCi17Ci0gICAgZG9tRmlsZUhhbmRsZUNhY2hlKCkucmVtb3ZlKG1fZmlsZS5wdHIo
KSk7Ci19Ci0KLUZpbGUqIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6Y29yZUZpbGUoKQotewot
ICAgIHJldHVybiBtX2ZpbGUucHRyKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZUZpbGVIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oCShyZXZpc2lvbiAy
MzY5MTUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0lu
amVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oCShub25leGlzdGVudCkKQEAgLTEsNTYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlX2gKLSNkZWZpbmUg
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlX2gKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBGaWxlOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xh
c3MgSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6QnVuZGxlRmlsZUhhbmRsZT4gewotcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlPiBjcmVhdGUoY29uc3QgV1RGOjpTdHJpbmcm
KTsKLSAgICBzdGF0aWMgUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gZ2V0T3JDcmVh
dGUoV2ViQ29yZTo6RmlsZSopOwotCi0gICAgdmlydHVhbCB+SW5qZWN0ZWRCdW5kbGVGaWxlSGFu
ZGxlKCk7Ci0KLSAgICBXZWJDb3JlOjpGaWxlKiBjb3JlRmlsZSgpOwotCi1wcml2YXRlOgotICAg
IEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlJik7Ci0KLSAgICBSZWY8V2Vi
Q29yZTo6RmlsZT4gbV9maWxlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGVfaApJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAkocmV2aXNpb24gMjM2OTE1KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJEb3du
bG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCi0jaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgpAQCAtNzM1LDE4ICs3MzQsNiBAQCBKU1Zh
bHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJCiAgICAgcmV0dXJuIHRvUmVmKGV4
ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCByYW5nZUhhbmRsZS0+Y29yZVJhbmdlKCkpKTsK
IH0KIAotSlNWYWx1ZVJlZiBXZWJGcmFtZTo6anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5k
bGVGaWxlSGFuZGxlKiBmaWxlSGFuZGxlLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3Js
ZCkKLXsKLSAgICBpZiAoIW1fY29yZUZyYW1lKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBtX2NvcmVGcmFtZS0+c2NyaXB0KCkuZ2xv
YmFsT2JqZWN0KHdvcmxkLT5jb3JlV29ybGQoKSk7Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gZ2xv
YmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsK
LSAgICByZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGZpbGVIYW5k
bGUtPmNvcmVGaWxlKCkpKTsKLX0KLQogU3RyaW5nIFdlYkZyYW1lOjpjb3VudGVyVmFsdWUoSlNP
YmplY3RSZWYgZWxlbWVudCkKIHsKICAgICBpZiAoIXRvSlMoZWxlbWVudCktPmluaGVyaXRzPEpT
RWxlbWVudD4oKnRvSlMoZWxlbWVudCktPnZtKCkpKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCShyZXZpc2lvbiAyMzY5MTUpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01
OCw3ICs1OCw2IEBAIGNsYXNzIFVSTDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIElu
amVjdGVkQnVuZGxlRmlsZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dDsKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGU7CkBAIC0xMzMsNyArMTMyLDYgQEAgcHVibGljOgogCiAgICAgSlNWYWx1ZVJl
ZiBqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUqLCBJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkKik7CiAgICAgSlNWYWx1ZVJlZiBqc1dyYXBwZXJGb3JXb3JsZChJbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwotICAg
IEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKiwg
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogCiAgICAgc3RhdGljIFN0cmluZyBjb3VudGVy
VmFsdWUoSlNPYmplY3RSZWYgZWxlbWVudCk7CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjkyNSkKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEwLTA4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IFdLQnVuZGxlRmlsZUhhbmRsZVJlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkwMzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS0J1
bmRsZUZpbGVIYW5kbGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwOiBSZW1vdmVkLgorCiAyMDE4
LTEwLTA4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVG9vbHMg
cGFydCBvZiBbWGNvZGVdIFVwZGF0ZSBzb21lIGJ1aWxkIHNldHRpbmdzIGFzIHJlY29tbWVuZGVk
IGJ5IFhjb2RlIDEwCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjM2OTE1
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM0NSw4ICszNDUsNiBAQAogCQk3QzNEQjhFNDFE
MTIxMjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzREI4RTIxRDEyMTI5QjAwQUU4Q0MzIC8q
IENvbW1hbmRCYWNrRm9yd2FyZC5tbSAqLzsgfTsKIAkJN0M0MTdGMzMxRDE5RTE0ODAwQjhFRjUz
IC8qIFdLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMg
LyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJN0M0ODZC
QTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0ODZCQTAxQUExMjU0QjAwM0Y2
RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi87IH07Ci0JCTdDNTRBNEJFMUFBMTFDQ0EwMDM4MEY3
OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0M1NEE0QkMxQUExMUNDQTAwMzgwRjc4IC8qIFdLQnVuZGxlRmls
ZUhhbmRsZS5jcHAgKi87IH07Ci0JCTdDNTRBNEMxMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRs
ZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5k
bGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJN0M4M0RFOTkxRDBBNTkwQzAwRkVCQ0YzIC8qIEF0b21p
Y1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNkYxQjQ0MjE1Q0E0MzRGMDBEMUU0QkYgLyogQXRvbWljU3RyaW5nLmNwcCAqLzsgfTsKIAkJ
N0M4M0RFOUMxRDBBNTkwQzAwRkVCQ0YzIC8qIEJsb29tRmlsdGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDAxOTMwMUFDRTlCNUMwMDFCMEEy
QSAvKiBCbG9vbUZpbHRlci5jcHAgKi87IH07CiAJCTdDODNERUEwMUQwQTU5MEMwMEZFQkNGMyAv
KiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBOTY2REExNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNr
ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgKi87IH07CkBAIC0xNjU2LDggKzE2NTQsNiBAQAog
CQk3QzNEQjhFMjFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29tbWFuZEJhY2tGb3J3YXJkLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMg
LyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdh
dGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNDg2QkEwMUFBMTI1NEIwMDNG
NkY5QiAvKiBidW5kbGUtZmlsZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJ1bmRsZS1maWxlLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QzU0QTRCQzFBQTExQ0NBMDAzODBGNzggLyog
V0tCdW5kbGVGaWxlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLQnVuZGxlRmlsZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlRmlsZUhhbmRs
ZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzZCQkQ4QTE5Q0VB
NTQzMDBDMUY1RTAgLyogQ291bnRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ291bnRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M2QkJEOEIxOUNF
QTYzMDAwQzFGNUUwIC8qIENvdW50ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvdW50ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3
NEQ0MkQxODgyMjhGMzAwRTVFRDU3IC8qIFN0cmluZ1ZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yOTg5LDggKzI5ODUsNiBAQAogCQkJCTdDRkJDQUUzMTc0MzIzOEUwMEIyQkZD
RiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovLAogCQkJCTc2RTE4MkQ5MTU0NzU1MDEwMEYxRkFE
RCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAqLywKIAkJCQk3NkUxODJEQzE1NDc1NjkxMDBG
MUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwICovLAotCQkJCTdDNTRBNEJD
MUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwICovLAotCQkJCTdDNTRB
NEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCAqLywK
IAkJCQlBMUZERkQyRTE5QzI4OEJCMDA1MTQ4QTQgLyogV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFz
aC5jcHAgKi8sCiAJCQkJN0M4OUQyQUExQTY5QjgwRDAwM0E1RkRFIC8qIFdLUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwICovLAogCQkJCTUyRDY3M0VDMUFGQjEyNjgwMEZBMTlGRSAvKiBXS1BhZ2VDb3B5
U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgKi8sCkBAIC00MDc3LDcgKzQwNzEsNiBAQAog
CQkJCTFGODM1NzFCMUQzRkZCMjMwMEUzOTY3QiAvKiBXS0JhY2tGb3J3YXJkTGlzdC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJGMUE0MTFCMTAwMDQ0
N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gaW4gU291cmNlcyAq
LywKLQkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTVDRTM1NEQ5MUU3MERBNUMwMEJFRkUzQiAvKiBXS0NvbnRl
bnRFeHRlbnNpb25TdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEODM4QjFGMUVFRjNBNUMw
MDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0gaW4gU291cmNlcyAqLywK
IAkJCQkzNzBDRTIyQTFGNTczNDM0MDBFNzQxMEIgLyogV0tDb250ZW50Vmlld1RhcmdldEZvckFj
dGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtNDIwOCw3ICs0MjAxLDYgQEAKIAkJCQk1MjBCQ0Y0
QzE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NGQkNBRTUxNzQzMjM4RjAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3NkUxODJERDE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJt
aXRFdmVudF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0M1NEE0QzExQUExMUNFNDAw
MzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLQnVu
ZGxlRmlsZUhhbmRsZS5jcHAJKHJldmlzaW9uIDIzNjkxNSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAt
MSw4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgV0tf
SEFWRV9DX1NQSQotCi0jaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlICJUZXN0LmgiCi0KLW5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKLQotc3RhdGljIGJvb2wgZG9uZTsKLXN0YXRpYyBib29sIGxvYWREb25lOwotCi1z
dGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRS
ZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgYm9keSwgY29uc3Qgdm9pZCop
Ci17Ci0gICAgaWYgKCFXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U1VDQ0VTUyIpKQotICAgICAgICBGQUlMKCk7Ci0gICAgZWxzZQotICAgICAgICBTVUNDRUVEKCk7
Ci0KLSAgICBkb25lID0gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlv
bihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqKQotewotICAgIGxvYWREb25lID0gdHJ1ZTsKLX0KLQotVEVTVChXZWJLaXQsIFdL
QnVuZGxlRmlsZUhhbmRsZSkKLXsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIldL
QnVuZGxlRmlsZUhhbmRsZVRlc3QiKSk7Ci0KLSAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudFYwIGluamVjdGVkQnVuZGxlQ2xpZW50OwotICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVD
bGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOwotICAgIGluamVjdGVkQnVu
ZGxlQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7Ci0gICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQuZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUgPSBkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZTsKLSAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250
ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7Ci0KLSAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKLQotICAgIFdLUGFnZU5hdmlnYXRpb25DbGll
bnRWMCBsb2FkZXJDbGllbnQ7Ci0gICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihs
b2FkZXJDbGllbnQpKTsKLSAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKLSAgICBs
b2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247Ci0g
ICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJD
bGllbnQuYmFzZSk7Ci0KLSAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdL
KFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJidW5kbGUtZmlsZSIsICJodG1sIikpLmdldCgp
KTsKLSAgICBVdGlsOjpydW4oJmxvYWREb25lKTsKLSAgICAKLSAgICAvLyBHZXQgcGF0aCB0byBh
IGZpbGUuCi0gICAgYXV0byB1cmxUb0ZpbGUgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKLSAgICBhdXRvIHBhdGhUb0ZpbGUgPSBhZG9wdFdL
KFdLVVJMQ29weVBhdGgodXJsVG9GaWxlLmdldCgpKSk7Ci0KLSAgICBXS0NvbnRleHRQb3N0TWVz
c2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29udGV4dC5nZXQoKSwgVXRpbDo6dG9XSygiVGVzdEZpbGUi
KS5nZXQoKSwgcGF0aFRvRmlsZS5nZXQoKSk7Ci0KLSAgICBVdGlsOjpydW4oJmRvbmUpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZgpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tCdW5kbGVGaWxlSGFuZGxlX0J1bmRsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tCdW5kbGVGaWxl
SGFuZGxlX0J1bmRsZS5jcHAJKHJldmlzaW9uIDIzNjkxNSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwCShub25leGlzdGVu
dCkKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQot
I2lmIFdLX0hBVkVfQ19TUEkKLQotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVGVzdC5oIgotCi0j
aW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgotI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZUZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlU2Ny
aXB0V29ybGQuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1zdGF0aWMgV0tCdW5k
bGVQYWdlUmVmIGxvYWRlZFBhZ2U7Ci0KLWNsYXNzIFdLQnVuZGxlRmlsZUhhbmRsZVRlc3QgOiBw
dWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKLXB1YmxpYzoKLSAgICBXS0J1bmRsZUZpbGVIYW5k
bGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQotICAgICAgICA6IEluamVjdGVk
QnVuZGxlVGVzdChpZGVudGlmaWVyKQotICAgIHsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBp
ZiAoIVdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXN0RmlsZSIp
KSB7Ci0gICAgICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygi
RkFJTCIpLmdldCgpLCBVdGlsOjp0b1dLKCJSZWNpZXZlZCBpbnZhbGlkIG1lc3NhZ2UiKS5nZXQo
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWxvYWRl
ZFBhZ2UpIHsKLSAgICAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoYnVuZGxlLCBVdGlsOjp0
b1dLKCJGQUlMIikuZ2V0KCksIFV0aWw6OnRvV0soIk5vIGxvYWRlZCBwYWdlIikuZ2V0KCkpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFdLR2V0VHlwZUlE
KG1lc3NhZ2VCb2R5KSAhPSBXS1N0cmluZ0dldFR5cGVJRCgpKSB7Ci0gICAgICAgICAgICBXS0J1
bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygiRkFJTCIpLmdldCgpLCBVdGlsOjp0
b1dLKCJNZXNzYWdlIGJvZHkgaGFzIGludmFsaWQgdHlwZSIpLmdldCgpKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1l
ID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKGxvYWRlZFBhZ2UpOwotICAgICAgICBXS0J1bmRs
ZVNjcmlwdFdvcmxkUmVmIHdvcmxkID0gV0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCk7
Ci0gICAgICAgIAotICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYgZ2xvYmFsQ29udGV4dCA9IFdL
QnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dEZvcldvcmxkKG1haW5GcmFtZSwgd29ybGQp
OwotCi0gICAgICAgIGF1dG8gZmlsZUhhbmRsZSA9IGFkb3B0V0soV0tCdW5kbGVGaWxlSGFuZGxl
Q3JlYXRlV2l0aFBhdGhGb3JQYWdlKChXS1N0cmluZ1JlZiltZXNzYWdlQm9keSwgbG9hZGVkUGFn
ZSkpOwotICAgICAgICBKU1ZhbHVlUmVmIGpzRmlsZUhhbmRsZSA9IFdLQnVuZGxlRnJhbWVHZXRK
YXZhU2NyaXB0V3JhcHBlckZvckZpbGVGb3JXb3JsZChtYWluRnJhbWUsIGZpbGVIYW5kbGUuZ2V0
KCksIHdvcmxkKTsKLQotICAgICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRl
eHRHZXRHbG9iYWxPYmplY3QoZ2xvYmFsQ29udGV4dCk7Ci0KLSAgICAgICAgSlNTdHJpbmdSZWYg
anNTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygidGVzdEZpbGUiKTsKLSAg
ICAgICAgSlNWYWx1ZVJlZiBmdW5jdGlvbiA9IEpTT2JqZWN0R2V0UHJvcGVydHkoZ2xvYmFsQ29u
dGV4dCwgZ2xvYmFsT2JqZWN0LCBqc1N0cmluZywgbnVsbHB0cik7Ci0gICAgICAgIEpTU3RyaW5n
UmVsZWFzZShqc1N0cmluZyk7Ci0gICAgICAgIAotICAgICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oZ2xvYmFsQ29udGV4dCwgKEpTT2JqZWN0UmVmKWZ1bmN0
aW9uLCBnbG9iYWxPYmplY3QsIDEsICZqc0ZpbGVIYW5kbGUsIG51bGxwdHIpOwotCi0gICAgICAg
IGlmIChKU1ZhbHVlVG9Cb29sZWFuKGdsb2JhbENvbnRleHQsIHJlc3VsdCkpCi0gICAgICAgICAg
ICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygiU1VDQ0VTUyIpLmdldCgp
LCBudWxscHRyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgV0tCdW5kbGVQb3N0TWVzc2Fn
ZShidW5kbGUsIFV0aWw6OnRvV0soIkZBSUwiKS5nZXQoKSwgVXRpbDo6dG9XSygiU2NyaXB0IGZh
aWxlZCIpLmdldCgpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVS
ZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAg
IGxvYWRlZFBhZ2UgPSBwYWdlOwotICAgIH0KLX07Ci0KLXN0YXRpYyBJbmplY3RlZEJ1bmRsZVRl
c3Q6OlJlZ2lzdGVyPFdLQnVuZGxlRmlsZUhhbmRsZVRlc3Q+IHJlZ2lzdHJhcigiV0tCdW5kbGVG
aWxlSGFuZGxlVGVzdCIpOwotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRp
Zgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351798</attachid>
            <date>2018-10-08 11:57:07 -0700</date>
            <delta_ts>2018-10-08 11:59:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190360-20181008115706.patch</filename>
            <type>text/plain</type>
            <size>37754</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY5MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIFdLQnVu
ZGxlRmlsZUhhbmRsZVJlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkwMzYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxk
IGFuZCBXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aCB3ZXJlIG9ubHkgdXNlZCBpbiBN
YWlsCisgICAgICAgIGFuZCB3ZXJlIHJlbW92ZWQgaW4gcmRhcjovL3Byb2JsZW0vNDQ5NTUxNTgK
KyAgICAgICAgSSBuZWVkIHRvIHJlbW92ZSB0aGVtIGZvciByZGFyOi8vcHJvYmxlbS8yNDU3NjE5
NAorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvV0tEZXByZWNhdGVkLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRl
ZEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBw
ZXJGb3JGaWxlRm9yV29ybGQpOgorICAgICAgICAoV0tCdW5kbGVGaWxlSGFuZGxlQ3JlYXRlV2l0
aFBhdGgpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRs
ZVJlZi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFt
ZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
L0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmg6CisKIDIwMTgtMTAtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBIYXZlIERPTVdpbmRvd1Byb3BlcnR5IGdldCBpcyBmcmFtZSBmcm9tIGl0cyBh
c3NvY2lhdGVkIERPTVdpbmRvdwpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMzY5MTUpCisr
KyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00NDQsNyArNDQ0
LDYgQEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZQogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcAogCiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGUuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00v
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgQG5vLXVuaWZ5CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQJKHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw2IEBAIFdlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAotV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwCiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVNYWMubW0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9BUElPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTc3LDcgKzE3Nyw2IEBAIHB1
YmxpYzoKICAgICAgICAgQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbSwKICAgICAgICAgQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSwKICAgICAgICAgQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLAotICAgICAgICBCdW5kbGVGaWxlSGFuZGxlLAogICAgICAgICBCdW5kbGVGcmFtZSwKICAg
ICAgICAgQnVuZGxlSGl0VGVzdFJlc3VsdCwKICAgICAgICAgQnVuZGxlSW5zcGVjdG9yLApJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tEZXByZWNhdGVkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tEZXByZWNhdGVkLmgJKHJldmlzaW9uIDIz
NjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRlZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2lmZGVmIF9NU0Nf
VkVSCisjZGVmaW5lIFdLX0NfQVBJX0RFUFJFQ0FURUQoLi4uKQogI2RlZmluZSBXS19DX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoLi4uKQogI2Vsc2UKKyNkZWZpbmUgV0tfQ19BUElf
REVQUkVDQVRFRChfbWVzc2FnZSwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9tZXNz
YWdlKSkpCiAjZGVmaW5lIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChfcmVw
bGFjZW1lbnQsIC4uLikgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlICIgI19yZXBsYWNl
bWVudCkpKQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0RlcHJl
Y2F0ZWRGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLRGVwcmVjYXRlZEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRlZEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBUElEaWN0aW9uYXJ5LmgiCiAjaW5j
bHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgorI2luY2x1ZGUgIldLQnVu
ZGxlRmlsZUhhbmRsZVJlZi5oIgorI2luY2x1ZGUgIldLQnVuZGxlRnJhbWUuaCIKICNpbmNsdWRl
ICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV0tNdXRhYmxlRGljdGlvbmFyeS5oIgog
I2luY2x1ZGUgIldLUGFnZUdyb3VwLmgiCkBAIC0zNiwxNCArMzgsOCBAQAogI2luY2x1ZGUgIldl
YlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lmgi
CiAKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZU1hYy5oIgot
I2VuZGlmCi0KIC8vIERlcHJlY2F0ZWQgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHJlbW92ZWQg
ZnJvbSB0aGUgZnJhbWV3b3JrIG9uY2Ugbm9ib2R5IHVzZXMgdGhlbS4KIAotdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKLQogdm9pZCBXS0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250
ZXh0UmVmLCBib29sKQogewogfQpAQCAtNjAsMyArNTYsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0UVRLaXRFbmFibGVkKFdLUHJlZgogewogICAgIHJldHVybiBmYWxzZTsKIH0KKworSlNWYWx1
ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JGaWxlRm9yV29ybGQoV0tC
dW5kbGVGcmFtZVJlZiwgV0tCdW5kbGVGaWxlSGFuZGxlUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxk
UmVmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitXS0J1bmRsZUZpbGVIYW5kbGVSZWYg
V0tCdW5kbGVGaWxlSGFuZGxlQ3JlYXRlV2l0aFBhdGgoV0tTdHJpbmdSZWYpCit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExNDEsNyAr
MTE0MSw2IEBACiAJCTdDQjM2NUFBMUQzMURCNzAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVk
QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0IzNjVBODFEMzFEQjcwMDA3MTU4Q0EgLyogX1dLVXNlckluaXRpYXRlZEFjdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDQjM2NUFEMUQz
MURDMTAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjM2NUFDMUQzMURDMTAw
MDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCAqLzsgfTsKIAkJN0NC
MzY1QjExRDMxREQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjM2NUFGMUQzMUREMUUw
MDcxNThDQSAvKiBBUElVc2VySW5pdGlhdGVkQWN0aW9uLmggKi87IH07Ci0JCTdDQkI4MTFEMUFB
MEY4QjEwMDZCMTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkI4MTFCMUFBMEY4QjEwMDZCMTk0
MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCAqLzsgfTsKIAkJN0NCQjgxMjExQUEwRjk3
MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQjgxMUYxQUEwRjk3MDAwNkIxOTQyIC8qIFdL
QnVuZGxlRmlsZUhhbmRsZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdDQzk5QTM2MThFRjdDQkMwMDQ4QzhCNCAvKiBXS1NjcmlwdE1lc3Nh
Z2VJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NDOTlBMzUxOEVGN0NCQzAwNDhDOEI0IC8qIFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmgg
Ki87IH07CiAJCTdDQ0NDOEZCMUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0NDOEY5
MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuaCAqLzsgfTsKQEAgLTM1NzIs
OSArMzU3MSw2IEBACiAJCTdDQjM2NUE5MUQzMURCNzAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlh
dGVkQWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dL
VXNlckluaXRpYXRlZEFjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NC
MzY1QUMxRDMxREMxMDAwNzE1OENBIC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb25JbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tVc2VySW5pdGlhdGVkQWN0aW9u
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCMzY1QUYxRDMxREQx
RTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVBJVXNlckluaXRpYXRlZEFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk3Q0JCODExQTFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVG
aWxlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVj
dGVkQnVuZGxlRmlsZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdD
QkI4MTFCMUFBMEY4QjEwMDZCMTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDQkI4MTFFMUFBMEY5NzAwMDZCMTk0MiAv
KiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NCQjgxMUYxQUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJl
Zi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUZpbGVIYW5kbGVS
ZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDOTlBMzUxOEVGN0NCQzAwNDhD
OEI0IC8qIFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDQ0NDOEY4MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTmF2aWdhdGlvblN0
YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3NTIsNyArNzc0OCw2IEBA
CiAJCQkJOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oICovLAogCQkJCTUxRkEyRDc1MTUyMTJFMUUwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdp
bmRvd0V4dGVuc2lvbi5jcHAgKi8sCiAJCQkJNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdL
QnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi8sCi0JCQkJN0NCQjgxMUUxQUEwRjk3MDAwNkIx
OTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAgKi8sCiAJCQkJN0NCQjgxMUYxQUEwRjk3
MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oICovLAogCQkJCUJDRDI1RjE2MTFE
NkJERTEwMDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1lLmNwcCAqLywKIAkJCQlCQ0QyNUYxNTExRDZC
REUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5oICovLApAQCAtNzg2MCw4ICs3ODU1LDYgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTdDNEVEMzI2MUEzMTE5RDkwMDc5QkQ0OSAvKiBJbmplY3Rl
ZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwICovLAogCQkJCTdDNEVEMzI3MUEz
MTE5RDkwMDc5QkQ0OSAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
aCAqLywKLQkJCQk3Q0JCODExQTFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxl
SGFuZGxlLmNwcCAqLywKLQkJCQk3Q0JCODExQjFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRC
dW5kbGVGaWxlSGFuZGxlLmggKi8sCiAJCQkJQkM0QkVFQUExMjBBMEE1RjAwRkJBMEM3IC8qIElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8sCiAJCQkJQkM0QkVFQTkxMjBBMEE1RTAwRkJB
MEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oICovLAogCQkJCUJDMzNFMEQwMTI0MDhF
ODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKQEAgLTg5MTUs
NyArODkwOCw2IEBACiAJCQkJOTM1RUVCQTIxMjc3NjFEMDAwMzMyMkI4IC8qIEluamVjdGVkQnVu
ZGxlQmFja0ZvcndhcmRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVFRUJBNDEyNzc2MUQ2
MDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0VFN0RDNTEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDQkI4MTFEMUFBMEY4QjEwMDZCMTk0MiAvKiBJbmpl
Y3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDk4NjE4MTI0RDEw
RTIwMEQ4MzRFMSAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0NDc3ODUzMTc2RkNDMDgwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHRNZWRpYVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODE0N0Q1MTJGNjZEMzEwMDdC
MkMzMiAvKiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAkocmV2aXNpb24gMjM2OTE1KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJ
Q2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEluamVjdGVkQnVu
ZGxlQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOwogY2xh
c3MgSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb247Ci1jbGFzcyBJbmplY3RlZEJ1bmRs
ZUZpbGVIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJ
bmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGU7CkBAIC01Niw3ICs1NSw2IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUJhY2tG
b3J3YXJkTGkKIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdFJlZiwg
SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmLCBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25S
ZWYsIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKQotV0tfQUREX0FQSV9NQVBQSU5H
KFdLQnVuZGxlRmlsZUhhbmRsZVJlZiwgSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQnVuZGxlRnJhbWVSZWYsIFdlYkZyYW1lKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiwgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3Ip
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVGaWxlSGFuZGxlUmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcAkocmV2
aXNpb24gMjM2OTE1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldLQnVu
ZGxlRmlsZUhhbmRsZVJlZi5oIgotCi0jaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxl
LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0Lmgi
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVHlwZUlEIFdLQnVuZGxlRmlsZUhhbmRs
ZUdldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvQVBJKEluamVjdGVkQnVuZGxlRmlsZUhhbmRs
ZTo6QVBJVHlwZSk7Ci19Ci0KLVdLQnVuZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5k
bGVDcmVhdGVXaXRoUGF0aChXS1N0cmluZ1JlZiBwYXRoUmVmKQotewotICAgIHJldHVybiB0b0FQ
SShJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmNyZWF0ZSh0b1dURlN0cmluZyhwYXRoUmVmKSku
bGVha1JlZigpKTsKLX0KLQotV0tCdW5kbGVGaWxlSGFuZGxlUmVmIFdLQnVuZGxlRmlsZUhhbmRs
ZUNyZWF0ZVdpdGhQYXRoRm9yUGFnZShXS1N0cmluZ1JlZiBwYXRoUmVmLCBXS0J1bmRsZVBhZ2VS
ZWYpCi17Ci0gICAgcmV0dXJuIHRvQVBJKEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6Y3JlYXRl
KHRvV1RGU3RyaW5nKHBhdGhSZWYpKS5sZWFrUmVmKCkpOwotfQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAkocmV2aXNpb24gMjM2OTE1KQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRs
ZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsNyBAQAogZXh0ZXJuICJDIiB7CiAj
ZW5kaWYKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlRmlsZUhhbmRsZUdldFR5cGVJRCgp
OwotCi1XS19FWFBPUlQgV0tCdW5kbGVGaWxlSGFuZGxlUmVmIFdLQnVuZGxlRmlsZUhhbmRsZUNy
ZWF0ZVdpdGhQYXRoKFdLU3RyaW5nUmVmIHBhdGgpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVChXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aEZvclBhZ2UpOwotV0tf
RVhQT1JUIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRo
UGF0aEZvclBhZ2UoV0tTdHJpbmdSZWYgcGF0aCwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOworV0tf
RVhQT1JUIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRo
UGF0aChXS1N0cmluZ1JlZiBwYXRoKSBXS19DX0FQSV9ERVBSRUNBVEVEKCJObyBsb25nZXIgc3Vw
cG9ydGVkIik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmNwcAkocmV2aXNpb24gMjM2OTE1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQ
SVNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5oIgpAQCAtMTIzLDExICsxMjIsNiBAQCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRK
YXZhU2NyaXB0V3JhCiAgICAgcmV0dXJuIHRvSW1wbChmcmFtZVJlZiktPmpzV3JhcHBlckZvcldv
cmxkKHRvSW1wbChyYW5nZUhhbmRsZVJlZiksIHRvSW1wbCh3b3JsZFJlZikpOwogfQogCi1KU1Zh
bHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckZpbGVGb3JXb3JsZChX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBXS0J1bmRsZUZpbGVIYW5kbGVSZWYgZmlsZUhhbmRs
ZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZFJlZikKLXsKLSAgICByZXR1cm4gdG9J
bXBsKGZyYW1lUmVmKS0+anNXcmFwcGVyRm9yV29ybGQodG9JbXBsKGZpbGVIYW5kbGVSZWYpLCB0
b0ltcGwod29ybGRSZWYpKTsKLX0KLQogV0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNvcHlOYW1l
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYpCiB7CiAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRv
SW1wbChmcmFtZVJlZiktPm5hbWUoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJ
KHJldmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1
ZGUgPFdlYktpdC9XS0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KIApA
QCAtNTUsNyArNTYsNyBAQCBXS19FWFBPUlQgV0tCdW5kbGVGcmFtZVJlZiBXS0J1bmRsZUZyYW1l
CiAKIFdLX0VYUE9SVCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBl
ckZvck5vZGVGb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgbm9kZUhhbmRsZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiBXS19FWFBP
UlQgSlNWYWx1ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JSYW5nZUZv
cldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFu
Z2VIYW5kbGUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpOwotV0tfRVhQT1JUIEpTVmFs
dWVSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBmaWxlSGFuZGxlLCBX
S0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKK1dLX0VYUE9SVCBKU1ZhbHVlUmVmIFdLQnVu
ZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckZpbGVGb3JXb3JsZChXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lLCBXS0J1bmRsZUZpbGVIYW5kbGVSZWYgZmlsZUhhbmRsZSwgV0tCdW5kbGVTY3Jp
cHRXb3JsZFJlZiB3b3JsZCkgV0tfQ19BUElfREVQUkVDQVRFRCgiTm8gbG9uZ2VyIHN1cHBvcnRl
ZCIpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQYWdlUmVmIFdLQnVuZGxlRnJhbWVHZXRQYWdlKFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZUZpbGVIYW5kbGUuY3BwCShyZXZpc2lvbiAyMzY5MTUpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5j
cHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oIgotCi0jaW5j
bHVkZSA8V2ViQ29yZS9GaWxlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotdHlwZWRlZiBIYXNoTWFwPEZpbGUqLCBJbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGUqPiBET01GaWxlSGFuZGxlQ2FjaGU7Ci0KLXN0YXRpYyBET01GaWxlSGFuZGxlQ2Fj
aGUmIGRvbUZpbGVIYW5kbGVDYWNoZSgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERP
TUZpbGVIYW5kbGVDYWNoZT4gY2FjaGU7Ci0gICAgcmV0dXJuIGNhY2hlOwotfQotCi1SZWZQdHI8
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgYXV0byBmaWxlID0gRmlsZTo6Y3JlYXRlKHBh
dGgpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKGZp
bGUuZ2V0KCkpKTsKLX0KLQotUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gSW5qZWN0
ZWRCdW5kbGVGaWxlSGFuZGxlOjpnZXRPckNyZWF0ZShGaWxlKiBmaWxlKQotewotICAgIGlmICgh
ZmlsZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBET01GaWxlSGFuZGxlQ2FjaGU6
OkFkZFJlc3VsdCByZXN1bHQgPSBkb21GaWxlSGFuZGxlQ2FjaGUoKS5hZGQoZmlsZSwgbnVsbHB0
cik7Ci0gICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgcmV0dXJuIFJlZlB0cjxJ
bmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU+KHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwotCi0gICAg
UmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gZmlsZUhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoKmZpbGUpKTsKLSAgICByZXN1bHQuaXRlcmF0b3It
PnZhbHVlID0gZmlsZUhhbmRsZS5nZXQoKTsKLSAgICByZXR1cm4gZmlsZUhhbmRsZTsKLX0KLQot
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoRmlsZSYg
ZmlsZSkKLSAgICA6IG1fZmlsZShmaWxlKQotewotfQotCi1JbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGU6On5JbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoKQotewotICAgIGRvbUZpbGVIYW5kbGVDYWNo
ZSgpLnJlbW92ZShtX2ZpbGUucHRyKCkpOwotfQotCi1GaWxlKiBJbmplY3RlZEJ1bmRsZUZpbGVI
YW5kbGU6OmNvcmVGaWxlKCkKLXsKLSAgICByZXR1cm4gbV9maWxlLnB0cigpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGUuaAkocmV2aXNpb24gMjM2OTE1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZV9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZV9oCi0KLSNpbmNs
dWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgRmlsZTsKLX0KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZpbGVIYW5kbGU+IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gY3Jl
YXRlKGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgc3RhdGljIFJlZlB0cjxJbmplY3RlZEJ1bmRs
ZUZpbGVIYW5kbGU+IGdldE9yQ3JlYXRlKFdlYkNvcmU6OkZpbGUqKTsKLQotICAgIHZpcnR1YWwg
fkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSgpOwotCi0gICAgV2ViQ29yZTo6RmlsZSogY29yZUZp
bGUoKTsKLQotcHJpdmF0ZToKLSAgICBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoV2ViQ29yZTo6
RmlsZSYpOwotCi0gICAgUmVmPFdlYkNvcmU6OkZpbGU+IG1fZmlsZTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlX2gKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAJKHJl
dmlzaW9uIDIzNjkxNSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkFQSUFy
cmF5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZv
RGF0YS5oIgotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxl
Tm9kZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKQEAg
LTczNSwxOCArNzM0LDYgQEAgSlNWYWx1ZVJlZiBXZWJGcmFtZTo6anNXcmFwcGVyRm9yV29ybGQo
SQogICAgIHJldHVybiB0b1JlZihleGVjLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgcmFuZ2VI
YW5kbGUtPmNvcmVSYW5nZSgpKSk7CiB9CiAKLUpTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBl
ckZvcldvcmxkKEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSogZmlsZUhhbmRsZSwgSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZCogd29ybGQpCi17Ci0gICAgaWYgKCFtX2NvcmVGcmFtZSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0ID0gbV9j
b3JlRnJhbWUtPnNjcmlwdCgpLmdsb2JhbE9iamVjdCh3b3JsZC0+Y29yZVdvcmxkKCkpOwotICAg
IEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotCi0gICAgSlNM
b2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0gICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBmaWxlSGFuZGxlLT5jb3JlRmlsZSgpKSk7Ci19Ci0KIFN0cmluZyBXZWJG
cmFtZTo6Y291bnRlclZhbHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCF0b0pT
KGVsZW1lbnQpLT5pbmhlcml0czxKU0VsZW1lbnQ+KCp0b0pTKGVsZW1lbnQpLT52bSgpKSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAkocmV2aXNp
b24gMjM2OTE1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNiBAQCBjbGFzcyBVUkw7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1jbGFzcyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU7CiBjbGFzcyBJbmpl
Y3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU7
CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwpAQCAtMTMzLDcgKzEzMiw2IEBAIHB1
YmxpYzoKIAogICAgIEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYg
anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZSosIEluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQqKTsKLSAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKEluamVj
dGVkQnVuZGxlRmlsZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKIAogICAg
IHN0YXRpYyBTdHJpbmcgY291bnRlclZhbHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpOwogCkluZGV4
OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMzY5MjUpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxOC0xMC0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbW92ZSBXS0J1bmRsZUZpbGVIYW5kbGVSZWYKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDM2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3Bw
OiBSZW1vdmVkLgorCiAyMDE4LTEwLTA4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgVG9vbHMgcGFydCBvZiBbWGNvZGVdIFVwZGF0ZSBzb21lIGJ1aWxkIHNldHRp
bmdzIGFzIHJlY29tbWVuZGVkIGJ5IFhjb2RlIDEwCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjM2OTE1KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM0NSw4ICszNDUs
NiBAQAogCQk3QzNEQjhFNDFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFuZEJhY2tGb3J3YXJkLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzREI4RTIx
RDEyMTI5QjAwQUU4Q0MzIC8qIENvbW1hbmRCYWNrRm9yd2FyZC5tbSAqLzsgfTsKIAkJN0M0MTdG
MzMxRDE5RTE0ODAwQjhFRjUzIC8qIFdLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzQxN0Yz
MTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5t
bSAqLzsgfTsKIAkJN0M0ODZCQTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0
ODZCQTAxQUExMjU0QjAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi87IH07Ci0JCTdDNTRB
NEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1NEE0QkMxQUExMUNDQTAwMzgw
Rjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi87IH07Ci0JCTdDNTRBNEMxMUFBMTFDRTQw
MDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAv
KiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJN0M4M0RFOTkxRDBBNTkw
QzAwRkVCQ0YzIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNkYxQjQ0MjE1Q0E0MzRGMDBEMUU0QkYgLyogQXRvbWljU3Ry
aW5nLmNwcCAqLzsgfTsKIAkJN0M4M0RFOUMxRDBBNTkwQzAwRkVCQ0YzIC8qIEJsb29tRmlsdGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDAx
OTMwMUFDRTlCNUMwMDFCMEEyQSAvKiBCbG9vbUZpbHRlci5jcHAgKi87IH07CiAJCTdDODNERUEw
MUQwQTU5MEMwMEZFQkNGMyAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBOTY2REExNDBFQ0ND
ODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgKi87IH07CkBAIC0x
NjU2LDggKzE2NTQsNiBAQAogCQk3QzNEQjhFMjFEMTIxMjlCMDBBRThDQzMgLyogQ29tbWFuZEJh
Y2tGb3J3YXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29t
bWFuZEJhY2tGb3J3YXJkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQxN0Yz
MTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0RlZmF1
bHROYXZpZ2F0aW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
NDg2QkEwMUFBMTI1NEIwMDNGNkY5QiAvKiBidW5kbGUtZmlsZS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJ1
bmRsZS1maWxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QzU0QTRCQzFB
QTExQ0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlRmlsZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZp
bGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzZCQkQ4QTE5Q0VBNTQzMDBDMUY1RTAgLyogQ291bnRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M2QkJEOEIxOUNFQTYzMDAwQzFGNUUwIC8qIENvdW50ZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvdW50ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0M3NEQ0MkQxODgyMjhGMzAwRTVFRDU3IC8qIFN0cmluZ1ZpZXcuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nVmlldy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTg5LDggKzI5ODUsNiBAQAogCQkJCTdDRkJD
QUUzMTc0MzIzOEUwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovLAogCQkJCTc2RTE4
MkQ5MTU0NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAqLywKIAkJCQk3
NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3Bw
ICovLAotCQkJCTdDNTRBNEJDMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUu
Y3BwICovLAotCQkJCTdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5k
bGVfQnVuZGxlLmNwcCAqLywKIAkJCQlBMUZERkQyRTE5QzI4OEJCMDA1MTQ4QTQgLyogV0tJbWFn
ZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHAgKi8sCiAJCQkJN0M4OUQyQUExQTY5QjgwRDAwM0E1RkRF
IC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTUyRDY3M0VDMUFGQjEyNjgwMEZB
MTlGRSAvKiBXS1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgKi8sCkBAIC00
MDc3LDcgKzQwNzEsNiBAQAogCQkJCTFGODM1NzFCMUQzRkZCMjMwMEUzOTY3QiAvKiBXS0JhY2tG
b3J3YXJkTGlzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAwMDQ0N0M0
QyAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RjJGMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRl
c3QubW0gaW4gU291cmNlcyAqLywKLQkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tC
dW5kbGVGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDRTM1NEQ5MUU3MERBNUMw
MEJFRkUzQiAvKiBXS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTJEODM4QjFGMUVFRjNBNUMwMDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzBDRTIyQTFGNTczNDM0MDBFNzQxMEIgLyogV0tDb250
ZW50Vmlld1RhcmdldEZvckFjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtNDIwOCw3ICs0MjAx
LDYgQEAKIAkJCQk1MjBCQ0Y0QzE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NGQkNBRTUxNzQzMjM4RjAwQjJCRkNGIC8qIFdpbGxM
b2FkX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NkUxODJERDE1NDc1NjkxMDBGMUZB
REQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
N0M1NEE0QzExQUExMUNFNDAwMzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9X
S0J1bmRsZUZpbGVIYW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZS5jcHAJKHJldmlzaW9uIDIzNjkxNSkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZS5jcHAJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgV0tfSEFWRV9DX1NQSQotCi0jaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlICJUZXN0LmgiCi0K
LW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotc3RhdGljIGJvb2wgZG9uZTsKLXN0YXRpYyBi
b29sIGxvYWREb25lOwotCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYg
Ym9keSwgY29uc3Qgdm9pZCopCi17Ci0gICAgaWYgKCFXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU1VDQ0VTUyIpKQotICAgICAgICBGQUlMKCk7Ci0gICAgZWxzZQot
ICAgICAgICBTVUNDRUVEKCk7Ci0KLSAgICBkb25lID0gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQg
ZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKQotewotICAgIGxvYWREb25lID0gdHJ1ZTsKLX0K
LQotVEVTVChXZWJLaXQsIFdLQnVuZGxlRmlsZUhhbmRsZSkKLXsKLSAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIldLQnVuZGxlRmlsZUhhbmRsZVRlc3QiKSk7Ci0KLSAgICBXS0NvbnRl
eHRJbmplY3RlZEJ1bmRsZUNsaWVudFYwIGluamVjdGVkQnVuZGxlQ2xpZW50OwotICAgIG1lbXNl
dCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkp
OwotICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7Ci0gICAgaW5qZWN0
ZWRCdW5kbGVDbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUgPSBkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZTsKLSAgICBXS0NvbnRleHRTZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7
Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKLQotICAgIFdL
UGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7Ci0gICAgbWVtc2V0KCZsb2FkZXJD
bGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKLSAgICBsb2FkZXJDbGllbnQuYmFzZS52
ZXJzaW9uID0gMDsKLSAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZp
bmlzaE5hdmlnYXRpb247Ci0gICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmll
dy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7Ci0KLSAgICBXS1BhZ2VMb2FkVVJMKHdlYlZp
ZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJidW5kbGUtZmls
ZSIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWREb25lKTsKLSAgICAKLSAg
ICAvLyBHZXQgcGF0aCB0byBhIGZpbGUuCi0gICAgYXV0byB1cmxUb0ZpbGUgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKLSAgICBhdXRvIHBh
dGhUb0ZpbGUgPSBhZG9wdFdLKFdLVVJMQ29weVBhdGgodXJsVG9GaWxlLmdldCgpKSk7Ci0KLSAg
ICBXS0NvbnRleHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29udGV4dC5nZXQoKSwgVXRp
bDo6dG9XSygiVGVzdEZpbGUiKS5nZXQoKSwgcGF0aFRvRmlsZS5nZXQoKSk7Ci0KLSAgICBVdGls
OjpydW4oJmRvbmUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRp
ZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tCdW5kbGVGaWxlSGFu
ZGxlX0J1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvV0tCdW5kbGVGaWxlSGFuZGxlX0J1bmRsZS5jcHAJKHJldmlzaW9uIDIzNjkxNSkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZV9CdW5k
bGUuY3BwCShub25leGlzdGVudCkKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2lmIFdLX0hBVkVfQ19TUEkKLQotI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlVGVzdC5oIgotCi0jaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhh
bmRsZVJlZi5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZyYW1lLmg+Ci0jaW5jbHVkZSA8
V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewotCi1zdGF0aWMgV0tCdW5kbGVQYWdlUmVmIGxvYWRlZFBhZ2U7Ci0KLWNsYXNzIFdLQnVuZGxl
RmlsZUhhbmRsZVRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKLXB1YmxpYzoKLSAg
ICBXS0J1bmRsZUZpbGVIYW5kbGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQot
ICAgICAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVudGlmaWVyKQotICAgIHsKLSAgICB9Ci0K
LXByaXZhdGU6Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShXS0J1bmRsZVJlZiBidW5kbGUs
IFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpIG92ZXJyaWRl
Ci0gICAgewotICAgICAgICBpZiAoIVdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJUZXN0RmlsZSIpKSB7Ci0gICAgICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1
bmRsZSwgVXRpbDo6dG9XSygiRkFJTCIpLmdldCgpLCBVdGlsOjp0b1dLKCJSZWNpZXZlZCBpbnZh
bGlkIG1lc3NhZ2UiKS5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoIWxvYWRlZFBhZ2UpIHsKLSAgICAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3Nh
Z2UoYnVuZGxlLCBVdGlsOjp0b1dLKCJGQUlMIikuZ2V0KCksIFV0aWw6OnRvV0soIk5vIGxvYWRl
ZCBwYWdlIikuZ2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSAhPSBXS1N0cmluZ0dldFR5cGVJRCgpKSB7
Ci0gICAgICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygiRkFJ
TCIpLmdldCgpLCBVdGlsOjp0b1dLKCJNZXNzYWdlIGJvZHkgaGFzIGludmFsaWQgdHlwZSIpLmdl
dCgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdLQnVuZGxl
RnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKGxvYWRlZFBhZ2Up
OwotICAgICAgICBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkID0gV0tCdW5kbGVTY3JpcHRX
b3JsZE5vcm1hbFdvcmxkKCk7Ci0gICAgICAgIAotICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYg
Z2xvYmFsQ29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dEZvcldvcmxk
KG1haW5GcmFtZSwgd29ybGQpOwotCi0gICAgICAgIGF1dG8gZmlsZUhhbmRsZSA9IGFkb3B0V0so
V0tCdW5kbGVGaWxlSGFuZGxlQ3JlYXRlV2l0aFBhdGhGb3JQYWdlKChXS1N0cmluZ1JlZiltZXNz
YWdlQm9keSwgbG9hZGVkUGFnZSkpOwotICAgICAgICBKU1ZhbHVlUmVmIGpzRmlsZUhhbmRsZSA9
IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckZpbGVGb3JXb3JsZChtYWluRnJh
bWUsIGZpbGVIYW5kbGUuZ2V0KCksIHdvcmxkKTsKLQotICAgICAgICBKU09iamVjdFJlZiBnbG9i
YWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoZ2xvYmFsQ29udGV4dCk7Ci0KLSAg
ICAgICAgSlNTdHJpbmdSZWYganNTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygidGVzdEZpbGUiKTsKLSAgICAgICAgSlNWYWx1ZVJlZiBmdW5jdGlvbiA9IEpTT2JqZWN0R2V0
UHJvcGVydHkoZ2xvYmFsQ29udGV4dCwgZ2xvYmFsT2JqZWN0LCBqc1N0cmluZywgbnVsbHB0cik7
Ci0gICAgICAgIEpTU3RyaW5nUmVsZWFzZShqc1N0cmluZyk7Ci0gICAgICAgIAotICAgICAgICBK
U1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oZ2xvYmFsQ29udGV4dCwg
KEpTT2JqZWN0UmVmKWZ1bmN0aW9uLCBnbG9iYWxPYmplY3QsIDEsICZqc0ZpbGVIYW5kbGUsIG51
bGxwdHIpOwotCi0gICAgICAgIGlmIChKU1ZhbHVlVG9Cb29sZWFuKGdsb2JhbENvbnRleHQsIHJl
c3VsdCkpCi0gICAgICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9X
SygiU1VDQ0VTUyIpLmdldCgpLCBudWxscHRyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
V0tCdW5kbGVQb3N0TWVzc2FnZShidW5kbGUsIFV0aWw6OnRvV0soIkZBSUwiKS5nZXQoKSwgVXRp
bDo6dG9XSygiU2NyaXB0IGZhaWxlZCIpLmdldCgpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpZENy
ZWF0ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkgb3ZlcnJp
ZGUKLSAgICB7Ci0gICAgICAgIGxvYWRlZFBhZ2UgPSBwYWdlOwotICAgIH0KLX07Ci0KLXN0YXRp
YyBJbmplY3RlZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVyPFdLQnVuZGxlRmlsZUhhbmRsZVRlc3Q+IHJl
Z2lzdHJhcigiV0tCdW5kbGVGaWxlSGFuZGxlVGVzdCIpOwotCi19IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCi0KLSNlbmRpZgo=
</data>
<flag name="review"
          id="369133"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>