<?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>35563</bug_id>
          
          <creation_ts>2010-03-01 23:34:10 -0800</creation_ts>
          <short_desc>Refactor named getter function signature to be in line with indexing getter signature</short_desc>
          <delta_ts>2010-03-02 00:20:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194958</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-01 23:34:10 -0800</bug_when>
    <thetext>Refactor named getter function signature to be in line with indexing getter signature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194965</commentid>
    <comment_count>1</comment_count>
      <attachid>49785</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-01 23:58:49 -0800</bug_when>
    <thetext>Created attachment 49785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194969</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 00:03:29 -0800</bug_when>
    <thetext>Attachment 49785 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptGlue/UserObjectImp.cpp:117:  Declaration has space between type name and * in UserObjectImp *thisObj  [whitespace/declaration] [3]
Total errors found: 1 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194970</commentid>
    <comment_count>3</comment_count>
      <attachid>49785</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-03-02 00:04:34 -0800</bug_when>
    <thetext>Comment on attachment 49785
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194972</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-02 00:20:58 -0800</bug_when>
    <thetext>Committed r55401: &lt;http://trac.webkit.org/changeset/55401&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49785</attachid>
            <date>2010-03-01 23:58:49 -0800</date>
            <delta_ts>2010-03-02 00:04:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35563-20100301235848.patch</filename>
            <type>text/plain</type>
            <size>66832</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IGFkYjViNjAuLjBjMzM0Y2Qg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtODYsOSArODYsOSBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChFeGVjU3RhdGUq
LCBKU09iamVjdCogZnVuY3Rpb25PYmplY3QsIEpTVmFsdWUgdGhpc1ZhbHVlLCBjb25zdCBBcmdM
aXN0Jik7CiAgICAgc3RhdGljIEpTT2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0YXRlKiwgSlNPYmpl
Y3QqIGNvbnN0cnVjdG9yLCBjb25zdCBBcmdMaXN0Jik7CiAgICAKLSAgICBzdGF0aWMgSlNWYWx1
ZSBzdGF0aWNWYWx1ZUdldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3Qg
UHJvcGVydHlTbG90Jik7Ci0gICAgc3RhdGljIEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotICAg
IHN0YXRpYyBKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBzdGF0aWNWYWx1
ZUdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CisgICAgc3Rh
dGljIEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29u
c3QgSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNT
dGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKIAogICAgIHN0cnVjdCBKU0NhbGxi
YWNrT2JqZWN0RGF0YSB7CiAgICAgICAgIEpTQ2FsbGJhY2tPYmplY3REYXRhKHZvaWQqIHByaXZh
dGVEYXRhLCBKU0NsYXNzUmVmIGpzQ2xhc3MpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA0YjI4YTk5Li42YzgzZWI0IDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTUxNiw5ICs1
MTYsOSBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmluaGVyaXRzKEpTQ2xhc3NSZWYg
YykgY29uc3QKIH0KIAogdGVtcGxhdGUgPGNsYXNzIEJhc2U+Ci1KU1ZhbHVlIEpTQ2FsbGJhY2tP
YmplY3Q8QmFzZT46OnN0YXRpY1ZhbHVlR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVl
IEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OnN0YXRpY1ZhbHVlR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewot
ICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHNsb3Quc2xv
dEJhc2UoKSk7CisgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9IGFzQ2FsbGJhY2tPYmpl
Y3Qoc2xvdEJhc2UpOwogICAgIAogICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlz
T2JqKTsKICAgICBSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IHByb3BlcnR5TmFtZVJlZjsKQEAgLTU0
Nyw5ICs1NDcsOSBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OnN0YXRpY1ZhbHVl
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogfQogCiB0ZW1wbGF0ZSA8Y2xh
c3MgQmFzZT4KLUpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6c3RhdGljRnVuY3Rpb25H
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNv
bnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6
c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNDYWxsYmFja09iamVjdCog
dGhpc09iaiA9IGFzQ2FsbGJhY2tPYmplY3Qoc2xvdC5zbG90QmFzZSgpKTsKKyAgICBKU0NhbGxi
YWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdChzbG90QmFzZSk7CiAgICAgCiAg
ICAgLy8gQ2hlY2sgZm9yIGNhY2hlZCBvciBvdmVycmlkZSBwcm9wZXJ0eS4KICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdDIodGhpc09iaik7CkBAIC01NzIsOSArNTcyLDkgQEAgSlNWYWx1ZSBKU0NhbGxi
YWNrT2JqZWN0PEJhc2U+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW4KIH0KIAogdGVtcGxhdGUgPGNsYXNzIEJhc2U+Ci1KU1ZhbHVlIEpTQ2FsbGJhY2tP
YmplY3Q8QmFzZT46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVlIEpT
Q2FsbGJhY2tPYmplY3Q8QmFzZT46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIEpT
Q2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHNsb3Quc2xvdEJhc2Uo
KSk7CisgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9IGFzQ2FsbGJhY2tPYmplY3Qoc2xv
dEJhc2UpOwogICAgIAogICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzT2JqKTsK
ICAgICBSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IHByb3BlcnR5TmFtZVJlZjsKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRl
eCA1Yjc3NTllLi5jNDEyNDM3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
KysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzEgQEAKIDIwMTAtMDMt
MDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBuYW1lZCBnZXR0ZXIgZnVuY3Rp
b24gc2lnbmF0dXJlIHRvIGJlIGluIGxpbmUgd2l0aCBpbmRleGluZyBnZXR0ZXIgc2lnbmF0dXJl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTU2Mwor
CisgICAgICAgIFRoaXMgcmVtb3ZlcyB0aGUgUHJvcGVydHlTbG90IGFyZ3VtZW50IGZyb20gZ2V0
dGVyIGZ1bmN0aW9ucywgYW5kIG1ha2VzIHRoZW0gZGlyZWN0bHkKKyAgICAgICAgcGFzcyB0aGUg
c2xvdCBiYXNlLiAgVGhpcyBtYWtlcyB0aGUgc2VtYW50aWNzIGZvciB0aGUgZnVuY3Rpb25zIG1h
dGNoIHRoYXQgb2YgdGhlCisgICAgICAgIGluZGV4aW5nIGdldHRlcnMuCisKKyAgICAgICAgT24g
dGhlIGRvd24gc2lkZSwgdGhpcyBtZWFucyB0aGF0IHdlIGNhbiBubyBsb25nZXIgc2ltcGx5IHVz
ZSBhIHByb3h5IGZ1bmN0aW9uIGZvcgorICAgICAgICBKUyBnZXR0ZXJzLCBzbyB3ZSBub3cgYWRk
IGFub3RoZXIgbWFya2VyIHZhbHVlIHRvIGluZGljYXRlIHRoYXQgYSBnZXR0ZXIgaXMgcHJlc2Vu
dAorICAgICAgICBhbmQgYnJhbmNoIGFjY29yZGluZ2x5LgorCisgICAgICAgIEFnYWluc3QgYWxs
IHJhdGlvbmFsaXR5IHN1bnNwaWRlciByZXBvcnRzIHRoaXMgYXMgYSBwZXJmIHdpbiwgYnV0IGkg
c3VzcGVjdCBpdCdzIGp1c3Qgbm9pc2UuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAg
IChKU0M6Ojo6c3RhdGljVmFsdWVHZXR0ZXIpOgorICAgICAgICAoSlNDOjo6OnN0YXRpY0Z1bmN0
aW9uR2V0dGVyKToKKyAgICAgICAgKEpTQzo6OjpjYWxsYmFja0dldHRlcik6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjphcmd1bWVudHNHZXR0ZXIpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlv
bjo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAg
ICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6bnVtYmVy
Q29uc3RydWN0b3JOYU5WYWx1ZSk6CisgICAgICAgIChKU0M6Om51bWJlckNvbnN0cnVjdG9yTmVn
SW5maW5pdHkpOgorICAgICAgICAoSlNDOjpudW1iZXJDb25zdHJ1Y3RvclBvc0luZmluaXR5KToK
KyAgICAgICAgKEpTQzo6bnVtYmVyQ29uc3RydWN0b3JNYXhWYWx1ZSk6CisgICAgICAgIChKU0M6
Om51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlT
bG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpmdW5jdGlvbkdldHRlcik6Cisg
ICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlT
bG90OjpnZXRWYWx1ZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0R2V0dGVyU2xv
dCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0Q2FjaGVhYmxlR2V0dGVyU2xvdCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyMik6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyk6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCk6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNSk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyNik6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyk6CisgICAg
ICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk6CisgICAgICAgIChKU0M6OnJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyOSk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9ySW5w
dXQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk6CisgICAgICAg
IChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKToKKyAgICAgICAgKEpTQzo6cmVnRXhw
Q29uc3RydWN0b3JMYXN0UGFyZW4pOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxl
ZnRDb250ZXh0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cmVn
RXhwT2JqZWN0R2xvYmFsKToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0SWdub3JlQ2FzZSk6
CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdE11bHRpbGluZSk6CisgICAgICAgIChKU0M6OnJl
Z0V4cE9iamVjdFNvdXJjZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdExhc3RJbmRleCk6
CisKKzIwMTAtMDMtMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwogICAgICAg
ICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KIAogICAgICAgICBQcm9wZXJ0eVNsb3Q6
OmdldFZhbHVlKEV4ZWNTdGF0ZSwgdW5zaWduZWQpIHVubmVjZXNzYXJpbHkgY29udmVydHMgaW5k
ZXggdG8gYW4gSWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IGUwMDc2
OGMuLmY3MDRmMzEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTM1OCw2ICszNTgs
NyBAQCBfX1pOM1dURjlkYXlJblllYXJFZGkKIF9fWk5LM0pTQzEwSlNGdW5jdGlvbjIzaXNIb3N0
RnVuY3Rpb25Ob25JbmxpbmVFdgogX19aTkszSlNDMTFJbnRlcnByZXRlcjE0cmV0cmlldmVDYWxs
ZXJFUE5TXzlFeGVjU3RhdGVFUE5TXzE2SW50ZXJuYWxGdW5jdGlvbkUKIF9fWk5LM0pTQzExSW50
ZXJwcmV0ZXIxOHJldHJpZXZlTGFzdENhbGxlckVQTlNfOUV4ZWNTdGF0ZUVSaVJsUk5TXzdVU3Ry
aW5nRVJOU183SlNWYWx1ZUUKK19fWk5LM0pTQzEyUHJvcGVydHlTbG90MTRmdW5jdGlvbkdldHRl
ckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzE0SlNHbG9iYWxPYmplY3QxNGlzRHluYW1pY1Nj
b3BlRXYKIF9fWk5LM0pTQzE2SW50ZXJuYWxGdW5jdGlvbjljbGFzc0luZm9FdgogX19aTkszSlND
MTZKU1ZhcmlhYmxlT2JqZWN0MTZpc1ZhcmlhYmxlT2JqZWN0RXYKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCAyMmZkYWFmLi44NWU4YmJhIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xMzksOSArMTM5LDkgQEAgYm9vbCBKU0Fj
dGl2YXRpb246OmlzRHluYW1pY1Njb3BlKCkgY29uc3QKICAgICByZXR1cm4gZCgpLT5mdW5jdGlv
bkV4ZWN1dGFibGUtPnVzZXNFdmFsKCk7CiB9CiAKLUpTVmFsdWUgSlNBY3RpdmF0aW9uOjphcmd1
bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJv
cGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSBKU0FjdGl2YXRpb246OmFyZ3VtZW50c0dldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewot
ICAgIEpTQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IGFzQWN0aXZhdGlvbihzbG90LnNsb3RCYXNl
KCkpOworICAgIEpTQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IGFzQWN0aXZhdGlvbihzbG90QmFz
ZSk7CiAKICAgICBpZiAoYWN0aXZhdGlvbi0+ZCgpLT5mdW5jdGlvbkV4ZWN1dGFibGUtPnVzZXNB
cmd1bWVudHMoKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IDc2MWJlZTQuLjkxYzk2MGMgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtODksNyArODksNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIFJlZlB0cjxGdW5jdGlvbkV4ZWN1dGFibGU+IGZ1bmN0aW9uRXhlY3V0YWJs
ZTsKICAgICAgICAgfTsKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBKU1ZhbHVlIGFyZ3VtZW50
c0dldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHN0YXRpYyBKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBK
U1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIE5FVkVSX0lOTElORSBQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYyBnZXRBcmd1bWVudHNHZXR0ZXIoKTsKIAogICAgICAgICBKU0Fj
dGl2YXRpb25EYXRhKiBkKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9u
RGF0YSo+KEpTVmFyaWFibGVPYmplY3Q6OmQpOyB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAppbmRleCBkMjEzYjRhLi5iOGNhNTk0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAKQEAgLTEyMiwyMyArMTIyLDIzIEBAIEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2Fs
bChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdGhpc1ZhbHVlLCBjb25zdCBBcmdMaXN0JiBhcmdz
CiAgICAgcmV0dXJuIGV4ZWMtPmludGVycHJldGVyKCktPmV4ZWN1dGUoanNFeGVjdXRhYmxlKCks
IGV4ZWMsIHRoaXMsIHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhlYyksIGFyZ3MsIHNjb3BlQ2hh
aW4oKS5ub2RlKCksIGV4ZWMtPmV4Y2VwdGlvblNsb3QoKSk7CiB9CiAKLUpTVmFsdWUgSlNGdW5j
dGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYs
IGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRz
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmll
ciYpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGFzRnVuY3Rpb24oc2xvdC5zbG90QmFz
ZSgpKTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0gYXNGdW5jdGlvbihzbG90QmFzZSk7CiAg
ICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsKICAgICByZXR1cm4gZXhlYy0+
aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVBcmd1bWVudHMoZXhlYywgdGhpc09iaik7CiB9CiAKLUpT
VmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgSlNGdW5jdGlvbjo6
Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRl
bnRpZmllciYpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGFzRnVuY3Rpb24oc2xvdC5z
bG90QmFzZSgpKTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0gYXNGdW5jdGlvbihzbG90QmFz
ZSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsKICAgICByZXR1cm4g
ZXhlYy0+aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVDYWxsZXIoZXhlYywgdGhpc09iaik7CiB9CiAK
LUpTVmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgSlNGdW5jdGlv
bjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3Qg
SWRlbnRpZmllciYpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGFzRnVuY3Rpb24oc2xv
dC5zbG90QmFzZSgpKTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0gYXNGdW5jdGlvbihzbG90
QmFzZSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsKICAgICByZXR1
cm4ganNOdW1iZXIoZXhlYywgdGhpc09iai0+anNFeGVjdXRhYmxlKCktPnBhcmFtZXRlckNvdW50
KCkpOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA4Y2Q0YjUxLi5hZmEy
NGE4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtOTAsOSArOTAsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvKCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0KIAotICAgICAgICBzdGF0aWMgSlNWYWx1ZSBh
cmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3Bl
cnR5U2xvdCYpOwotICAgICAgICBzdGF0aWMgSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotICAgICAgICBzdGF0
aWMgSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNv
bnN0IFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgSlNWYWx1ZSBhcmd1bWVudHNHZXR0
ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOworICAgICAgICBzdGF0
aWMgSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRp
ZmllciYpOworICAgICAgICBzdGF0aWMgSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwg
SlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwogCiAgICAgICAgIFJlZlB0cjxFeGVjdXRhYmxl
QmFzZT4gbV9leGVjdXRhYmxlOwogICAgICAgICBTY29wZUNoYWluJiBzY29wZUNoYWluKCkKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggY2M2YzUx
ZC4uY2Y1NDlhZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTI5LDExICsyOSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNT
X0ZJVFNfSU5fQ0VMTChOdW1iZXJDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBKU1ZhbHVlIG51bWJl
ckNvbnN0cnVjdG9yTmFOVmFsdWUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0
IFByb3BlcnR5U2xvdCYpOwotc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JOZWdJbmZp
bml0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7
Ci1zdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25zdHJ1Y3RvclBvc0luZmluaXR5KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLXN0YXRpYyBKU1ZhbHVl
IG51bWJlckNvbnN0cnVjdG9yTWF4VmFsdWUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IGNvbnN0IFByb3BlcnR5U2xvdCYpOwotc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JN
aW5WYWx1ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90
Jik7CitzdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25zdHJ1Y3Rvck5hTlZhbHVlKEV4ZWNTdGF0ZSos
IEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKK3N0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0
cnVjdG9yTmVnSW5maW5pdHkoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYp
Oworc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JQb3NJbmZpbml0eShFeGVjU3RhdGUq
LCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CitzdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25z
dHJ1Y3Rvck1heFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsK
K3N0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApAQCAtNzMs
MjcgKzczLDI3IEBAIGJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpCiAgICAgcmV0dXJuIGdldFN0YXRp
Y1ZhbHVlRGVzY3JpcHRvcjxOdW1iZXJDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhl
YywgRXhlY1N0YXRlOjpudW1iZXJUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JOYU5WYWx1ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKQor
c3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JOYU5WYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBqc05hTihleGVjKTsK
IH0KIAotc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JOZWdJbmZpbml0eShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKQorc3RhdGlj
IEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JOZWdJbmZpbml0eShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBqc051bWJlcihleGVjLCAt
SW5mKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JQb3NJbmZpbml0eShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKQor
c3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JQb3NJbmZpbml0eShFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBqc051bWJlcihl
eGVjLCBJbmYpOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25zdHJ1Y3Rvck1heFZhbHVl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYp
CitzdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25zdHJ1Y3Rvck1heFZhbHVlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgcmV0dXJuIGpzTnVtYmVyKGV4
ZWMsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4KTsKIH0KIAotc3RhdGljIEpTVmFsdWUgbnVtYmVy
Q29uc3RydWN0b3JNaW5WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBj
b25zdCBQcm9wZXJ0eVNsb3QmKQorc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JNaW5W
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKQogewogICAg
IHJldHVybiBqc051bWJlcihleGVjLCA1RS0zMjQpOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eVNsb3QuY3BwCmluZGV4IDhiNmNlYjkuLjIzMDZhMTEgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKQEAgLTI2LDE5ICsyNiwxOSBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFs
dWUgUHJvcGVydHlTbG90OjpmdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7
CiAgICAgLy8gUHJldmVudCBnZXR0ZXIgZnVuY3Rpb25zIGZyb20gb2JzZXJ2aW5nIGV4ZWN1dGlv
biBpZiBhbiBleGNlcHRpb24gaXMgcGVuZGluZy4KICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBleGVjLT5leGNlcHRpb24oKTsKIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gc2xvdC5tX2RhdGEuZ2V0dGVyRnVuYy0+
Z2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gbV9kYXRhLmdl
dHRlckZ1bmMtPmdldENhbGxEYXRhKGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2Fs
bFR5cGVIb3N0KQotICAgICAgICByZXR1cm4gY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKGV4ZWMs
IHNsb3QubV9kYXRhLmdldHRlckZ1bmMsIHNsb3QudGhpc1ZhbHVlKCksIGV4ZWMtPmVtcHR5TGlz
dCgpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbihleGVjLCBtX2Rh
dGEuZ2V0dGVyRnVuYywgdGhpc1ZhbHVlKCksIGV4ZWMtPmVtcHR5TGlzdCgpKTsKICAgICBBU1NF
UlQoY2FsbFR5cGUgPT0gQ2FsbFR5cGVKUyk7CiAgICAgLy8gRklYTUU6IENhbiB0aGlzIGJlIGRv
bmUgbW9yZSBlZmZpY2llbnRseSB1c2luZyB0aGUgY2FsbERhdGE/Ci0gICAgcmV0dXJuIGFzRnVu
Y3Rpb24oc2xvdC5tX2RhdGEuZ2V0dGVyRnVuYyktPmNhbGwoZXhlYywgc2xvdC50aGlzVmFsdWUo
KSwgZXhlYy0+ZW1wdHlMaXN0KCkpOworICAgIHJldHVybiBhc0Z1bmN0aW9uKG1fZGF0YS5nZXR0
ZXJGdW5jKS0+Y2FsbChleGVjLCB0aGlzVmFsdWUoKSwgZXhlYy0+ZW1wdHlMaXN0KCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlTbG90LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmlu
ZGV4IGQwYTNiMDEuLmE5ZDViMGEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlTbG90LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3Qu
aApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNkZWZpbmUgSlNDX1ZBTFVFX1NM
T1RfTUFSS0VSIDAKICNkZWZpbmUgSlNDX1JFR0lTVEVSX1NMT1RfTUFSS0VSIHJlaW50ZXJwcmV0
X2Nhc3Q8R2V0VmFsdWVGdW5jPigxKQogI2RlZmluZSBJTkRFWF9HRVRURVJfTUFSS0VSIHJlaW50
ZXJwcmV0X2Nhc3Q8R2V0VmFsdWVGdW5jPigyKQorI2RlZmluZSBHRVRURVJfRlVOQ1RJT05fTUFS
S0VSIHJlaW50ZXJwcmV0X2Nhc3Q8R2V0VmFsdWVGdW5jPigzKQogCiAgICAgY2xhc3MgUHJvcGVy
dHlTbG90IHsKICAgICBwdWJsaWM6CkBAIC01Miw3ICs1Myw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgY2xlYXJWYWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgdHlwZWRlZiBK
U1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29u
c3QgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHR5cGVkZWYgSlNWYWx1ZSAoKkdldFZhbHVlRnVu
YykoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpOwogICAg
ICAgICB0eXBlZGVmIEpTVmFsdWUgKCpHZXRJbmRleFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBzbG90QmFzZSwgdW5zaWduZWQpOwogCiAgICAgICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CkBAIC02
Myw3ICs2NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIHJldHVybiAoKm1f
ZGF0YS5yZWdpc3RlclNsb3QpLmpzVmFsdWUoKTsKICAgICAgICAgICAgIGlmIChtX2dldFZhbHVl
ID09IElOREVYX0dFVFRFUl9NQVJLRVIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZ2V0SW5k
ZXhWYWx1ZShleGVjLCBzbG90QmFzZSgpLCBpbmRleCgpKTsKLSAgICAgICAgICAgIHJldHVybiBt
X2dldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSwgKnRoaXMpOworICAgICAgICAgICAgaWYgKG1f
Z2V0VmFsdWUgPT0gR0VUVEVSX0ZVTkNUSU9OX01BUktFUikKKyAgICAgICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb25HZXR0ZXIoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gbV9nZXRWYWx1ZShl
eGVjLCBzbG90QmFzZSgpLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB9CiAKICAgICAgICAgSlNW
YWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29u
c3QKQEAgLTc0LDcgKzc3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuICgqbV9kYXRhLnJlZ2lzdGVyU2xvdCkuanNWYWx1ZSgpOwogICAgICAgICAgICAgaWYgKG1f
Z2V0VmFsdWUgPT0gSU5ERVhfR0VUVEVSX01BUktFUikKICAgICAgICAgICAgICAgICByZXR1cm4g
bV9nZXRJbmRleFZhbHVlKGV4ZWMsIG1fc2xvdEJhc2UsIG1fZGF0YS5pbmRleCk7Ci0gICAgICAg
ICAgICByZXR1cm4gbV9nZXRWYWx1ZShleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3Bl
cnR5TmFtZSksICp0aGlzKTsKKyAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEdFVFRFUl9G
VU5DVElPTl9NQVJLRVIpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uR2V0dGVyKGV4
ZWMpOworICAgICAgICAgICAgcmV0dXJuIG1fZ2V0VmFsdWUoZXhlYywgc2xvdEJhc2UoKSwgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpKTsKICAgICAgICAgfQogCiAgICAgICAg
IGJvb2wgaXNHZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2lzR2V0dGVyOyB9CkBAIC0xNTYsNyAr
MTYxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChn
ZXR0ZXJGdW5jKTsKICAgICAgICAgICAgIG1fdGhpc1ZhbHVlID0gbV9zbG90QmFzZTsKLSAgICAg
ICAgICAgIG1fZ2V0VmFsdWUgPSBmdW5jdGlvbkdldHRlcjsKKyAgICAgICAgICAgIG1fZ2V0VmFs
dWUgPSBHRVRURVJfRlVOQ1RJT05fTUFSS0VSOwogICAgICAgICAgICAgbV9kYXRhLmdldHRlckZ1
bmMgPSBnZXR0ZXJGdW5jOwogICAgICAgICAgICAgbV9pc0dldHRlciA9IHRydWU7CiAgICAgICAg
IH0KQEAgLTE2NCw3ICsxNjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRD
YWNoZWFibGVHZXR0ZXJTbG90KEpTVmFsdWUgc2xvdEJhc2UsIEpTT2JqZWN0KiBnZXR0ZXJGdW5j
LCB1bnNpZ25lZCBvZmZzZXQpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChnZXR0ZXJG
dW5jKTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBmdW5jdGlvbkdldHRlcjsKKyAgICAgICAg
ICAgIG1fZ2V0VmFsdWUgPSBHRVRURVJfRlVOQ1RJT05fTUFSS0VSOwogICAgICAgICAgICAgbV90
aGlzVmFsdWUgPSBtX3Nsb3RCYXNlOwogICAgICAgICAgICAgbV9zbG90QmFzZSA9IHNsb3RCYXNl
OwogICAgICAgICAgICAgbV9kYXRhLmdldHRlckZ1bmMgPSBnZXR0ZXJGdW5jOwpAQCAtMjE3LDcg
KzIyMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTVmFsdWUgdGhpc1ZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV90aGlzVmFsdWU7IH0KICAgICBwcml2YXRlOgotICAgICAgICBzdGF0
aWMgSlNWYWx1ZSBmdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
Y29uc3QgUHJvcGVydHlTbG90Jik7CisgICAgICAgIEpTVmFsdWUgZnVuY3Rpb25HZXR0ZXIoRXhl
Y1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgR2V0VmFsdWVGdW5jIG1fZ2V0VmFsdWU7CiAgICAg
ICAgIEdldEluZGV4VmFsdWVGdW5jIG1fZ2V0SW5kZXhWYWx1ZTsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWRhZWQ5NC4uYzBjZmMzNyAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1LDIx
ICszNSwyMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVy
dHlTbG90Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci1zdGF0aWMg
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJv
cGVydHlTbG90Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLXN0
YXRpYyBKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLXN0YXRpYyBKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29u
c3QgUHJvcGVydHlTbG90Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwot
c3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLXN0YXRpYyBKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3Qg
UHJvcGVydHlTbG90Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotc3Rh
dGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLXN0YXRpYyBKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJv
cGVydHlTbG90Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotc3RhdGlj
IEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKK3N0YXRpYyBKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOworc3Rh
dGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSwgY29uc3QgSWRlbnRpZmllciYpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JM
YXN0TWF0Y2goRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOworc3RhdGlj
IEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
Y29uc3QgSWRlbnRpZmllciYpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0
Q29udGV4dChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CitzdGF0aWMg
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJik7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjEoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOworc3RhdGljIEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0
IElkZW50aWZpZXImKTsKK3N0YXRpYyBKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CitzdGF0aWMgSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRp
ZmllciYpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0
ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKK3N0YXRpYyBKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7
CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiwgSlNW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI4KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKK3N0YXRp
YyBKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBj
b25zdCBJZGVudGlmaWVyJik7CiAKIHN0YXRpYyB2b2lkIHNldFJlZ0V4cENvbnN0cnVjdG9ySW5w
dXQoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlKTsKIHN0YXRpYyB2b2lkIHNldFJlZ0V4
cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSk7CkBA
IC0xOTUsNzkgKzE5NSw3OSBAQCBib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaQogICAgIHJldHVybiBn
ZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8UmVnRXhwQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rp
b24+KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjEoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVy
dHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1
cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMs
IDEpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3Jl
ZihleGVjLCAxKTsKIH0KIAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQor
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBDb25z
dHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMsIDIpOworICAgIHJldHVy
biBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAyKTsKIH0K
IAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjMoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNs
b3RCYXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMsIDMpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0
cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAzKTsKIH0KIAotSlNWYWx1ZSByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwg
Y29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikK
IHsKLSAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRC
YWNrcmVmKGV4ZWMsIDQpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNl
KS0+Z2V0QmFja3JlZihleGVjLCA0KTsKIH0KIAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlT
bG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4g
YXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMsIDUp
OworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihl
eGVjLCA1KTsKIH0KIAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1
Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMsIDYpOworICAgIHJldHVybiBh
c1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA2KTsKIH0KIAot
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJ
ZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RC
YXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMsIDcpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVj
dG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA3KTsKIH0KIAotSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29u
c3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsK
LSAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRCYWNr
cmVmKGV4ZWMsIDgpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+
Z2V0QmFja3JlZihleGVjLCA4KTsKIH0KIAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90
JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNS
ZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRCYWNrcmVmKGV4ZWMsIDkpOwor
ICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVj
LCA5KTsKIH0KIAotSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IGNvbnN0IElkZW50aWZpZXImKQogewotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBhc1JlZ0V4
cENvbnN0cnVjdG9yKHNsb3Quc2xvdEJhc2UoKSktPmlucHV0KCkpOworICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+aW5wdXQoKSk7CiB9CiAK
LUpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRp
ZmllciYpCiB7Ci0gICAgcmV0dXJuIGpzQm9vbGVhbihhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3Qu
c2xvdEJhc2UoKSktPm11bHRpbGluZSgpKTsKKyAgICByZXR1cm4ganNCb29sZWFuKGFzUmVnRXhw
Q29uc3RydWN0b3Ioc2xvdEJhc2UpLT5tdWx0aWxpbmUoKSk7CiB9CiAKLUpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwg
Y29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RN
YXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXIm
KQogewotICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3Quc2xvdEJhc2UoKSktPmdl
dEJhY2tyZWYoZXhlYywgMCk7CisgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJh
c2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDApOwogfQogCi1KU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TGFzdFBhcmVuKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3Bl
cnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICBy
ZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRMYXN0UGFyZW4o
ZXhlYyk7CisgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRMYXN0
UGFyZW4oZXhlYyk7CiB9CiAKLUpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNS
ZWdFeHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRMZWZ0Q29udGV4dChleGVjKTsK
KyAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldExlZnRDb250ZXh0
KGV4ZWMpOwogfQogCi1KU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkK
K0pTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1cm4gYXNSZWdF
eHBDb25zdHJ1Y3RvcihzbG90LnNsb3RCYXNlKCkpLT5nZXRSaWdodENvbnRleHQoZXhlYyk7Cisg
ICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRSaWdodENvbnRleHQo
ZXhlYyk7CiB9CiAKIHZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1dChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4
IDQyYmZjZWYuLjM3NThlNTMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAKQEAgLTMwLDExICszMCwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEpTVmFs
dWUgcmVnRXhwT2JqZWN0R2xvYmFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25z
dCBQcm9wZXJ0eVNsb3QmKTsKLXN0YXRpYyBKU1ZhbHVlIHJlZ0V4cE9iamVjdElnbm9yZUNhc2Uo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotc3Rh
dGljIEpTVmFsdWUgcmVnRXhwT2JqZWN0TXVsdGlsaW5lKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLXN0YXRpYyBKU1ZhbHVlIHJlZ0V4cE9iamVj
dFNvdXJjZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90
Jik7Ci1zdGF0aWMgSlNWYWx1ZSByZWdFeHBPYmplY3RMYXN0SW5kZXgoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOworc3RhdGljIEpTVmFsdWUgcmVn
RXhwT2JqZWN0R2xvYmFsKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsK
K3N0YXRpYyBKU1ZhbHVlIHJlZ0V4cE9iamVjdElnbm9yZUNhc2UoRXhlY1N0YXRlKiwgSlNWYWx1
ZSwgY29uc3QgSWRlbnRpZmllciYpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwT2JqZWN0TXVsdGls
aW5lKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKK3N0YXRpYyBKU1Zh
bHVlIHJlZ0V4cE9iamVjdFNvdXJjZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJik7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBPYmplY3RMYXN0SW5kZXgoRXhlY1N0YXRlKiwg
SlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwogc3RhdGljIHZvaWQgc2V0UmVnRXhwT2JqZWN0
TGFzdEluZGV4KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpAQCAtNzcsMjkgKzc3LDI5IEBAIGJvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAgICAg
cmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxSZWdFeHBPYmplY3QsIEpTT2JqZWN0Pihl
eGVjLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCi1KU1ZhbHVlIHJlZ0V4cE9iamVjdEdsb2JhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSByZWdF
eHBPYmplY3RHbG9iYWwoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRp
ZmllciYpCiB7Ci0gICAgcmV0dXJuIGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdChzbG90LnNsb3RC
YXNlKCkpLT5yZWdFeHAoKS0+Z2xvYmFsKCkpOworICAgIHJldHVybiBqc0Jvb2xlYW4oYXNSZWdF
eHBPYmplY3Qoc2xvdEJhc2UpLT5yZWdFeHAoKS0+Z2xvYmFsKCkpOwogfQogCi1KU1ZhbHVlIHJl
Z0V4cE9iamVjdElnbm9yZUNhc2UoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0
IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgcmVnRXhwT2JqZWN0SWdub3JlQ2FzZShFeGVj
U3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKLSAgICByZXR1
cm4ganNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSktPnJlZ0V4cCgpLT5p
Z25vcmVDYXNlKCkpOworICAgIHJldHVybiBqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3Qoc2xvdEJh
c2UpLT5yZWdFeHAoKS0+aWdub3JlQ2FzZSgpKTsKIH0KICAKLUpTVmFsdWUgcmVnRXhwT2JqZWN0
TXVsdGlsaW5lKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCitKU1ZhbHVlIHJlZ0V4cE9iamVjdE11bHRpbGluZShFeGVjU3RhdGUqLCBKU1Zh
bHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsgICAgICAgICAgICAKLSAgICByZXR1
cm4ganNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSktPnJlZ0V4cCgpLT5t
dWx0aWxpbmUoKSk7CisgICAgcmV0dXJuIGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdChzbG90QmFz
ZSktPnJlZ0V4cCgpLT5tdWx0aWxpbmUoKSk7CiB9CiAKLUpTVmFsdWUgcmVnRXhwT2JqZWN0U291
cmNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xv
dCYgc2xvdCkKK0pTVmFsdWUgcmVnRXhwT2JqZWN0U291cmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7Ci0gICAgcmV0dXJuIGpzU3RyaW5n
KGV4ZWMsIGFzUmVnRXhwT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSktPnJlZ0V4cCgpLT5wYXR0ZXJu
KCkpOworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBhc1JlZ0V4cE9iamVjdChzbG90QmFzZSkt
PnJlZ0V4cCgpLT5wYXR0ZXJuKCkpOwogfQogCi1KU1ZhbHVlIHJlZ0V4cE9iamVjdExhc3RJbmRl
eChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCitKU1ZhbHVlIHJlZ0V4cE9iamVjdExhc3RJbmRleChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewotICAgIHJldHVybiBqc051bWJl
cihleGVjLCBhc1JlZ0V4cE9iamVjdChzbG90LnNsb3RCYXNlKCkpLT5sYXN0SW5kZXgoKSk7Cisg
ICAgcmV0dXJuIGpzTnVtYmVyKGV4ZWMsIGFzUmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+bGFzdElu
ZGV4KCkpOwogfQogCiB2b2lkIFJlZ0V4cE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9KYXZhU2Ny
aXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggZGY4YjNlYy4uMmI4ZTAzMiAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEwLTAzLTAxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0
b3IgbmFtZWQgZ2V0dGVyIGZ1bmN0aW9uIHNpZ25hdHVyZSB0byBiZSBpbiBsaW5lIHdpdGggaW5k
ZXhpbmcgZ2V0dGVyIHNpZ25hdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzU1NjMKKworICAgICAgICBGaXggbWV0aG9kIHNpZ25hdHVyZSBhbmQg
dXBkYXRlIGNvZGUgYXMgYXBwcm9wcmlhdGUKKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3Bw
OgorICAgICAgICAoVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcik6CisgICAgICAgICog
VXNlck9iamVjdEltcC5oOgorCiAyMDEwLTAyLTA5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmNwcAppbmRleCAxZmJiOTgyLi5jMTg4Zjc1IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2Jq
ZWN0SW1wLmNwcApAQCAtMTEyLDkgKzExMiw5IEBAIHZvaWQgVXNlck9iamVjdEltcDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wCiAg
ICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CiB9CiAKLUpTVmFsdWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYg
c2xvdCkKK0pTVmFsdWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihFeGVjU3RhdGUq
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0g
ICAgVXNlck9iamVjdEltcCAqdGhpc09iaiA9IHN0YXRpY19jYXN0PFVzZXJPYmplY3RJbXAgKj4o
YXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CisgICAgVXNlck9iamVjdEltcCAqdGhpc09iaiA9
IHN0YXRpY19jYXN0PFVzZXJPYmplY3RJbXAgKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICAv
LyBnZXRPd25Qcm9wZXJ0eVNsb3Qgc2hvdWxkIGhhdmUgZ3VhcmRlZCBhZ2FpbnN0IGEgbnVsbCBm
SlNVc2VyT2JqZWN0LgogICAgIGFzc2VydCh0aGlzT2JqLT5mSlNVc2VyT2JqZWN0KTsKICAgICAK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCA2Zjg1N2Y5Li5lNDRjNDBlIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgc3RhdGljIEpTVmFsdWUgdXNlck9iamVjdEdldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBK
U1ZhbHVlIHVzZXJPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKTsKIAogICAgIEpTVXNlck9iamVjdCogZkpTVXNlck9iamVjdDsK
IH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDM4M2Q2NzkuLmNlMTEyZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzQgQEAKIDIwMTAtMDMtMDEgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZWZhY3RvciBuYW1lZCBnZXR0ZXIgZnVuY3Rpb24gc2lnbmF0dXJl
IHRvIGJlIGluIGxpbmUgd2l0aCBpbmRleGluZyBnZXR0ZXIgc2lnbmF0dXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTU2MworCisgICAgICAgIEZp
eCB1cCBXZWJDb3JlIHRvIHVzZSB0aGUgbmV3IG5hbWVkIGdldHRlciBmdW5jdGlvbiBzaWduYXR1
cmUsIHVwZGF0ZSB0aGUKKyAgICAgICAgY29kZWdlbmVyYXRvciB0byB0aGUgbmV3IGNhbGxpbmcg
Y29udmVudGlvbiwgYW5kIGZpeCB0aGUgY3VzdG9tIGJpbmRpbmdzLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9iamVjdFRvU3RyaW5n
RnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjaGlsZEZyYW1lR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVkSXRlbUdldHRlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNEYXRhR3JpZENvbHVtbkxpc3Q6Om5hbWVHZXR0ZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZUdldHRlcik6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0hUTUxDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0hUTUxEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVu
dDo6bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRm9ybUVsZW1lbnQ6Om5hbWVHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVHZXR0ZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpub25DYWNoaW5nU3RhdGljQmFja0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNGb3J3YXJkRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6bm9uQ2FjaGluZ1N0YXRpY0dvRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2Fj
aGluZ1N0YXRpY1JlcGxhY2VGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpub25D
YWNoaW5nU3RhdGljUmVsb2FkRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6bm9u
Q2FjaGluZ1N0YXRpY0Fzc2lnbkZ1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU01pbWVUeXBlQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNaW1lVHlw
ZUFycmF5OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1h
cEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU05vZGVMaXN0OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1BsdWdpbkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUGx1Z2luQXJy
YXk6Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUGx1Z2luOjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cnVudGltZU9iamVjdFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3Jh
Z2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTdG9yYWdlOjpuYW1lR2V0dGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTU3R5bGVTaGVldExpc3Q6Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0
dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9i
amVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVu
dGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGlt
ZU9iamVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKworMjAxMC0wMy0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCiAgICAg
ICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgogCiAgICAgICAgIFByb3BlcnR5U2xv
dDo6Z2V0VmFsdWUoRXhlY1N0YXRlLCB1bnNpZ25lZCkgdW5uZWNlc3NhcmlseSBjb252ZXJ0cyBp
bmRleCB0byBhbiBJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
U3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKaW5kZXggNGExMzdkMy4uZmFkN2FiYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNw
cApAQCAtMTQyLDkgKzE0Miw5IEBAIGJvb2wgSlNDU1NTdHlsZURlY2xhcmF0aW9uOjpjYW5HZXRJ
dGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgQ1NTU3R5bGVEZWNsYXJhdGlvbiosCiAKIC8vIEZJWE1F
OiBZb3UgY2FuIGdldCB0aGVzZSBwcm9wZXJ0aWVzLCBhbmQgc2V0IHRoZW0gKHNlZSBwdXREZWxl
Z2F0ZSBiZWxvdyksCiAvLyBidXQgeW91IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gZW51bWVyYXRl
IHRoZW0uCi1KU1ZhbHVlIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6bmFtZUdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlT
bG90JiBzbG90KQorSlNWYWx1ZSBKU0NTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCiB7Ci0gICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiB0aGlzT2JqID0gc3RhdGljX2Nh
c3Q8SlNDU1NTdHlsZURlY2xhcmF0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Cisg
ICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNDU1NTdHls
ZURlY2xhcmF0aW9uKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKIAogICAgIC8vIFNldCB1cCBwaXhl
bE9yUG9zIGJvb2xlYW4gdG8gaGFuZGxlIHRoZSBmYWN0IHRoYXQKICAgICAvLyBwaXhlbFRvcCBy
ZXR1cm5zICJDU1MgVG9wIiBhcyBudW1iZXIgdmFsdWUgaW4gdW5pdCBwaXhlbHMKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCAyNGUxNzZlLi45ZWY2NDU4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC03NjksNyArNzY5LDcgQEAgS1VSTCBjb21wbGV0
ZVVSTChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCiAgICAgcmV0
dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOwogfQogCi1KU1Zh
bHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYpCitKU1ZhbHVlIG9i
amVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIG5ldyAoZXhlYykgTmF0
aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJv
dG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgcHJvcGVydHlOYW1lLCBvYmplY3RQcm90b0Z1
bmNUb1N0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA2MmQ3MWQ0
Li45NTgwNzE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTQwNCw3ICs0MDQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tRnJhbWUo
SlNDOjpFeGVjU3RhdGUqLCBGcmFtZSosIFN0cmluZyYgbWVzc2FnZSk7CiAgICAgYm9vbCBzaG91
bGRBbGxvd05hdmlnYXRpb24oSlNDOjpFeGVjU3RhdGUqLCBGcmFtZSopOwogICAgIHZvaWQgcHJp
bnRFcnJvck1lc3NhZ2VGb3JGcmFtZShGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0g
ICAgSlNDOjpKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKKyAgICBKU0M6OkpTVmFsdWUgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRl
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwogCiAgICAgRnJhbWUqIHRvTGV4aWNhbEZyYW1lKEpTQzo6RXhlY1N0YXRl
Kik7CiAgICAgRnJhbWUqIHRvRHluYW1pY0ZyYW1lKEpTQzo6RXhlY1N0YXRlKik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGNjNWMyYmQuLmM3MTc2MWMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0xMjQsMTQg
KzEyNCwxNCBAQCB2b2lkIEpTRE9NV2luZG93OjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJr
U3RhY2spCiB9CiAKIHRlbXBsYXRlPE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBpbnQg
bGVuZ3RoPgotSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xv
dCYpCitKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCBsZW5ndGgsIHByb3Bl
cnR5TmFtZSwgbmF0aXZlRnVuY3Rpb24pOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBjaGlsZEZyYW1l
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitzdGF0aWMgSlNWYWx1ZSBjaGlsZEZyYW1lR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKQogewotICAgIHJldHVybiB0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NV2lu
ZG93Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgp
LT5jaGlsZChBdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSktPmRvbVdpbmRvdygpKTsKKyAgICBy
ZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvdyo+KGFzT2JqZWN0KHNsb3RC
YXNlKSktPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZChBdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSktPmRvbVdpbmRvdygpKTsKIH0KIAogc3RhdGljIEpTVmFsdWUgaW5kZXhHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCB1bnNpZ25lZCBpbmRleCkKQEAgLTEz
OSw5ICsxMzksOSBAQCBzdGF0aWMgSlNWYWx1ZSBpbmRleEdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgc2xvdEJhc2UsIHVuc2lnbmVkIGluZGV4KQogICAgIHJldHVybiB0b0pTKGV4ZWMs
IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKS0+aW1wbCgpLT5m
cmFtZSgpLT50cmVlKCktPmNoaWxkKGluZGV4KS0+ZG9tV2luZG93KCkpOwogfQogCi1zdGF0aWMg
SlNWYWx1ZSBuYW1lZEl0ZW1HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK3N0YXRpYyBKU1ZhbHVl
IG5hbWVkSXRlbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNP
YmogPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvdyo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkp
OworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2Jq
LT5pbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCk7CiAKICAgICBBU1NFUlQodGhpc09iai0+YWxs
b3dzQWNjZXNzRnJvbShleGVjKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGF0YUdyaWRDb2x1bW5MaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRh
R3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCmluZGV4IDkxYjNkMTUuLjlhNjk4MmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwCkBA
IC00Myw5ICs0Myw5IEBAIGJvb2wgSlNEYXRhR3JpZENvbHVtbkxpc3Q6OmNhbkdldEl0ZW1zRm9y
TmFtZShFeGVjU3RhdGUqLCBEYXRhR3JpZENvbHVtbkxpc3QqIGltCiAgICAgcmV0dXJuIGltcGwt
Pml0ZW1XaXRoTmFtZShwcm9wZXJ0eU5hbWUpOwogfQogCi1KU1ZhbHVlIEpTRGF0YUdyaWRDb2x1
bW5MaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVlIEpTRGF0YUdyaWRD
b2x1bW5MaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIEpTRGF0YUdyaWRDb2x1bW5M
aXN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNEYXRhR3JpZENvbHVtbkxpc3QqPihhc09iamVj
dChzbG90LnNsb3RCYXNlKCkpKTsKKyAgICBKU0RhdGFHcmlkQ29sdW1uTGlzdCogdGhpc09iaiA9
IHN0YXRpY19jYXN0PEpTRGF0YUdyaWRDb2x1bW5MaXN0Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsK
ICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+
aW1wbCgpLT5pdGVtV2l0aE5hbWUocHJvcGVydHlOYW1lKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IGZkMWRkMTEu
LjA2YjNjZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVj
dGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0
aW9uQ3VzdG9tLmNwcApAQCAtMTEyLDkgKzExMiw5IEBAIGJvb2wgSlNIVE1MQWxsQ29sbGVjdGlv
bjo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIEhUTUxBbGxDb2xsZWN0aW9uKiBjb2xs
CiAgICAgcmV0dXJuICFuYW1lZEl0ZW1zLmlzRW1wdHkoKTsKIH0KIAotSlNWYWx1ZSBKU0hUTUxB
bGxDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVlIEpTSFRN
TEFsbENvbGxlY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNIVE1MQWxsQ29s
bGVjdGlvbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTSFRNTEFsbENvbGxlY3Rpb24qPihhc09i
amVjdChzbG90LnNsb3RCYXNlKCkpKTsKKyAgICBKU0hUTUxBbGxDb2xsZWN0aW9uKiB0aGlzT2Jq
ID0gc3RhdGljX2Nhc3Q8SlNIVE1MQWxsQ29sbGVjdGlvbio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7
CiAgICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpc09iaiwgcHJvcGVydHlOYW1lKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAK
aW5kZXggYmE2MTkyMi4uNzM3MjhlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TENvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC0xMDksOSArMTA5LDkgQEAgYm9vbCBKU0hUTUxDb2xs
ZWN0aW9uOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgSFRNTENvbGxlY3Rpb24qIGNv
bGxlY3Rpb24KICAgICByZXR1cm4gIW5hbWVkSXRlbXMuaXNFbXB0eSgpOwogfQogCi1KU1ZhbHVl
IEpTSFRNTENvbGxlY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUg
SlNIVE1MQ29sbGVjdGlvbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xv
dEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0hUTUxDb2xs
ZWN0aW9uKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNIVE1MQ29sbGVjdGlvbio+KGFzT2JqZWN0
KHNsb3Quc2xvdEJhc2UoKSkpOworICAgIEpTSFRNTENvbGxlY3Rpb24qIHRoaXNPYmogPSBzdGF0
aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICByZXR1
cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUpOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDdmZGUwMDIu
LjQxMGM1NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRD
dXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20u
Y3BwCkBAIC01NSw5ICs1NSw5IEBAIGJvb2wgSlNIVE1MRG9jdW1lbnQ6OmNhbkdldEl0ZW1zRm9y
TmFtZShFeGVjU3RhdGUqLCBIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zCiAgICAgcmV0dXJu
IGF0b21pY1Byb3BlcnR5TmFtZSAmJiAoZG9jdW1lbnQtPmhhc05hbWVkSXRlbShhdG9taWNQcm9w
ZXJ0eU5hbWUpIHx8IGRvY3VtZW50LT5oYXNFeHRyYU5hbWVkSXRlbShhdG9taWNQcm9wZXJ0eU5h
bWUpKTsKIH0KIAotSlNWYWx1ZSBKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiBzbG90KQorSlNWYWx1ZSBKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsK
LSAgICBKU0hUTUxEb2N1bWVudCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTSFRNTERvY3VtZW50
Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CisgICAgSlNIVE1MRG9jdW1lbnQqIHRoaXNP
YmogPSBzdGF0aWNfY2FzdDxKU0hUTUxEb2N1bWVudCo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAg
ICAgSFRNTERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KHRo
aXNPYmotPmltcGwoKSk7CiAKICAgICBTdHJpbmcgbmFtZSA9IHByb3BlcnR5TmFtZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggYzM2
NGMxNC4uMzZkZGZiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3Jt
RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxl
bWVudEN1c3RvbS5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgYm9vbCBKU0hUTUxGb3JtRWxlbWVudDo6
Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY28K
ICAgICByZXR1cm4gbmFtZWRJdGVtcy5zaXplKCk7CiB9CiAKLUpTVmFsdWUgSlNIVE1MRm9ybUVs
ZW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgSlNIVE1MRm9ybUVs
ZW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNIVE1MRWxlbWVudCoganNGb3Jt
ID0gc3RhdGljX2Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKTsKKyAgICBKU0hUTUxFbGVtZW50KiBqc0Zvcm0gPSBzdGF0aWNfY2FzdDxKU0hUTUxGb3Jt
RWxlbWVudCo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3Jt
ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oanNGb3JtLT5pbXBsKCkpOwogCiAgICAg
VmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggNjg3NjlkNi4uNDg0
YzM1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1l
bnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRFbGVt
ZW50Q3VzdG9tLmNwcApAQCAtNDcsOSArNDcsOSBAQCBib29sIEpTSFRNTEZyYW1lU2V0RWxlbWVu
dDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIEhUTUxGcmFtZVNldEVsZW1lbnQqCiAg
ICAgcmV0dXJuIGZyYW1lICYmIGZyYW1lLT5oYXNUYWdOYW1lKGZyYW1lVGFnKTsKIH0KIAotSlNW
YWx1ZSBKU0hUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkK
K0pTVmFsdWUgSlNIVE1MRnJhbWVTZXRFbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewot
ICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU0hUTUxFbGVtZW50Kj4o
YXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CisgICAgSlNIVE1MRWxlbWVudCogdGhpc09iaiA9
IHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIEhU
TUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPih0aGlzT2JqLT5p
bXBsKCkpOwogCiAgICAgTm9kZSogZnJhbWUgPSBlbGVtZW50LT5jaGlsZHJlbigpLT5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0
b3J5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcApp
bmRleCBmZmY3NDdmLi5jMDMxYjMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SGlzdG9yeUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0
b20uY3BwCkBAIC0zOCwxNyArMzgsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljQmFja0Z1bmN0
aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBjb25zdCBQcm9wZXJ0eVNsb3QmKQorc3RhdGljIEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Jh
Y2tGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gbmV3IChleGVjKSBOYXRpdmVGdW5jdGlv
bldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSgpLCAwLCBwcm9wZXJ0eU5hbWUsIGpzSGlzdG9yeVByb3RvdHlwZUZ1bmN0
aW9uQmFjayk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGb3J3YXJkRnVu
Y3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIGNvbnN0IFByb3BlcnR5U2xvdCYpCitzdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGlj
Rm9yd2FyZEZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBuZXcgKGV4ZWMpIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlKCksIDAsIHByb3BlcnR5TmFtZSwganNIaXN0b3J5UHJvdG90eXBl
RnVuY3Rpb25Gb3J3YXJkKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0dv
RnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYpCitzdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljR29GdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gbmV3IChleGVjKSBOYXRpdmVGdW5j
dGlvbldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm90b3R5cGVG
dW5jdGlvblN0cnVjdHVyZSgpLCAxLCBwcm9wZXJ0eU5hbWUsIGpzSGlzdG9yeVByb3RvdHlwZUZ1
bmN0aW9uR28pOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9u
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKaW5k
ZXggODU5OTI0Mi4uYTNlMmJhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0
b20uY3BwCkBAIC0zOSwxNyArMzksMTcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljUmVwbGFjZUZ1
bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmKQorc3RhdGljIEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRp
Y1JlcGxhY2VGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm90b3R5
cGVGdW5jdGlvblN0cnVjdHVyZSgpLCAxLCBwcm9wZXJ0eU5hbWUsIGpzTG9jYXRpb25Qcm90b3R5
cGVGdW5jdGlvblJlcGxhY2UpOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGlj
UmVsb2FkRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYpCitzdGF0aWMgSlNWYWx1ZSBub25DYWNo
aW5nU3RhdGljUmVsb2FkRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIG5ldyAoZXhlYykg
TmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMCwgcHJvcGVydHlOYW1lLCBqc0xvY2F0aW9u
UHJvdG90eXBlRnVuY3Rpb25SZWxvYWQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5n
U3RhdGljQXNzaWduRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYpCitzdGF0aWMgSlNWYWx1ZSBu
b25DYWNoaW5nU3RhdGljQXNzaWduRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIG5ldyAo
ZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgMSwgcHJvcGVydHlOYW1lLCBqc0xv
Y2F0aW9uUHJvdG90eXBlRnVuY3Rpb25Bc3NpZ24pOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01pbWVUeXBlQXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01pbWVUeXBlQXJyYXlDdXN0b20uY3BwCmluZGV4IGM5MGRhZGQuLmM0YjMxODkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaW1lVHlwZUFycmF5Q3VzdG9tLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKQEAgLTMzLDkg
KzMzLDkgQEAgYm9vbCBKU01pbWVUeXBlQXJyYXk6OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3Rh
dGUqLCBNaW1lVHlwZUFycmF5KiBtaW1lVHlwZUFycmEKICAgICByZXR1cm4gbWltZVR5cGVBcnJh
eS0+Y2FuR2V0SXRlbXNGb3JOYW1lKHByb3BlcnR5TmFtZSk7CiB9CiAKLUpTVmFsdWUgSlNNaW1l
VHlwZUFycmF5OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVlIEpTTWltZVR5
cGVBcnJheTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU01pbWVUeXBlQXJyYXkqIHRo
aXNPYmogPSBzdGF0aWNfY2FzdDxKU01pbWVUeXBlQXJyYXkqPihhc09iamVjdChzbG90LnNsb3RC
YXNlKCkpKTsKKyAgICBKU01pbWVUeXBlQXJyYXkqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU01p
bWVUeXBlQXJyYXkqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIHJldHVybiB0b0pTKGV4ZWMs
IHRoaXNPYmotPmltcGwoKS0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZSkpOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IGQxYmJlZWMuLjEz
ZjM2MjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
CkBAIC00MCw5ICs0MCw5IEBAIGJvb2wgSlNOYW1lZE5vZGVNYXA6OmNhbkdldEl0ZW1zRm9yTmFt
ZShFeGVjU3RhdGUqLCBOYW1lZE5vZGVNYXAqIGltcGwsIGNvbnN0IElkCiAgICAgcmV0dXJuIGlt
cGwtPmdldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWUpOwogfQogCi1KU1ZhbHVlIEpTTmFtZWROb2Rl
TWFwOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVlIEpTTmFtZWROb2RlTWFw
OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIEpTTmFtZWROb2RlTWFwKiB0aGlzT2JqID0g
c3RhdGljX2Nhc3Q8SlNOYW1lZE5vZGVNYXAqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsK
KyAgICBKU05hbWVkTm9kZU1hcCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTmFtZWROb2RlTWFw
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5p
bXBsKCktPmdldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKaW5kZXggMjgyMWQwMS4uM2Y3ZDA4YiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCkBAIC01Niw5ICs1Niw5IEBAIGJvb2wg
SlNOb2RlTGlzdDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIE5vZGVMaXN0KiBpbXBs
LCBjb25zdCBJZGVudGlmaWVyCiAgICAgcmV0dXJuIGltcGwtPml0ZW1XaXRoTmFtZShwcm9wZXJ0
eU5hbWUpOwogfQogCi1KU1ZhbHVlIEpTTm9kZUxpc3Q6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYg
c2xvdCkKK0pTVmFsdWUgSlNOb2RlTGlzdDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U05vZGVMaXN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNOb2RlTGlzdCo+KGFzT2JqZWN0KHNs
b3Quc2xvdEJhc2UoKSkpOworICAgIEpTTm9kZUxpc3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxK
U05vZGVMaXN0Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICByZXR1cm4gdG9KUyhleGVjLCB0
aGlzT2JqLT5pbXBsKCktPml0ZW1XaXRoTmFtZShwcm9wZXJ0eU5hbWUpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkFycmF5Q3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNQbHVnaW5BcnJheUN1c3RvbS5jcHAKaW5kZXggODFkNDI5NS4uOWUw
YzNmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkFycmF5Q3VzdG9t
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0b20uY3BwCkBA
IC0zMyw5ICszMyw5IEBAIGJvb2wgSlNQbHVnaW5BcnJheTo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4
ZWNTdGF0ZSosIFBsdWdpbkFycmF5KiBwbHVnaW5BcnJheSwgY29uCiAgICAgcmV0dXJuIHBsdWdp
bkFycmF5LT5jYW5HZXRJdGVtc0Zvck5hbWUocHJvcGVydHlOYW1lKTsKIH0KIAotSlNWYWx1ZSBK
U1BsdWdpbkFycmF5OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitKU1ZhbHVlIEpTUGx1
Z2luQXJyYXk6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNQbHVnaW5BcnJheSogdGhp
c09iaiA9IHN0YXRpY19jYXN0PEpTUGx1Z2luQXJyYXkqPihhc09iamVjdChzbG90LnNsb3RCYXNl
KCkpKTsKKyAgICBKU1BsdWdpbkFycmF5KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNQbHVnaW5B
cnJheSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09i
ai0+aW1wbCgpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1BsdWdpbkN1c3RvbS5jcHAKaW5kZXggNTU1ZGQ5ZS4uYjI5ZTU4MyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1BsdWdpbkN1c3RvbS5jcHAKQEAgLTMyLDkgKzMyLDkgQEAgYm9vbCBKU1BsdWdp
bjo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIFBsdWdpbiogcGx1Z2luLCBjb25zdCBJ
ZGVudGlmaWVyJgogICAgIHJldHVybiBwbHVnaW4tPmNhbkdldEl0ZW1zRm9yTmFtZShwcm9wZXJ0
eU5hbWUpOwogfQogCi1KU1ZhbHVlIEpTUGx1Z2luOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCitKU1ZhbHVlIEpTUGx1Z2luOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIEpTUGx1
Z2luKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNQbHVnaW4qPihhc09iamVjdChzbG90LnNsb3RC
YXNlKCkpKTsKKyAgICBKU1BsdWdpbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTUGx1Z2luKj4o
YXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBs
KCktPm5hbWVkSXRlbShwcm9wZXJ0eU5hbWUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IGQ5MDU3ZGUuLmIyMGI5YTcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAKQEAgLTU3LDkgKzU3LDkgQEAgc3RhdGljIFJ1bnRpbWVPYmplY3QqIGdldFJ1bnRpbWVPYmpl
Y3QoRXhlY1N0YXRlKiBleGVjLCBOb2RlKiBub2RlKQogICAgIHJldHVybiBpbnN0YW5jZS0+Y3Jl
YXRlUnVudGltZU9iamVjdChleGVjKTsKIH0KIAotSlNWYWx1ZSBydW50aW1lT2JqZWN0UHJvcGVy
dHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgcnVudGltZU9iamVjdFByb3BlcnR5
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQogewotICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmogPSBzdGF0aWNf
Y2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CisgICAgSlNI
VE1MRWxlbWVudCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVj
dChzbG90QmFzZSkpOwogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TEVsZW1lbnQqPih0aGlzT2JqLT5pbXBsKCkpOwogICAgIFJ1bnRpbWVPYmplY3QqIHJ1bnRpbWVP
YmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4ZWMsIGVsZW1lbnQpOwogICAgIGlmICghcnVudGlt
ZU9iamVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5oCmluZGV4IGQyZmNhYTMuLjczNmFjZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgLy8gUnVudGltZSBvYmplY3Qgc3VwcG9ydCBjb2RlIGZvciBKU0hUTUxBcHBs
ZXRFbGVtZW50LCBKU0hUTUxFbWJlZEVsZW1lbnQgYW5kIEpTSFRNTE9iamVjdEVsZW1lbnQuCiAg
ICAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKE5vZGUqKTsKIAotICAg
IEpTQzo6SlNWYWx1ZSBydW50aW1lT2JqZWN0UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBjb25zdCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAg
IEpTQzo6SlNWYWx1ZSBydW50aW1lT2JqZWN0UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogICAgIGJvb2wgcnVudGlt
ZU9iamVjdEN1c3RvbUdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCopOwogICAg
IGJvb2wgcnVudGltZU9iamVjdEN1c3RvbUdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbVB1dChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSFRNTEVs
ZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3Jh
Z2VDdXN0b20uY3BwCmluZGV4IDNjZmUyMmUuLjYzYTM4ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU3RvcmFnZUN1c3RvbS5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgYm9vbCBKU1N0b3JhZ2U6OmNh
bkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBTdG9yYWdlKiBpbXBsLCBjb25zdCBJZGVudGlm
aWVyJgogICAgIHJldHVybiBpbXBsLT5jb250YWlucyhwcm9wZXJ0eU5hbWUpOwogfQogCi1KU1Zh
bHVlIEpTU3RvcmFnZTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSBKU1N0
b3JhZ2U6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNTdG9yYWdlKiB0aGlzT2JqID0g
c3RhdGljX2Nhc3Q8SlNTdG9yYWdlKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CisgICAg
SlNTdG9yYWdlKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNTdG9yYWdlKj4oYXNPYmplY3Qoc2xv
dEJhc2UpKTsKICAgICByZXR1cm4ganNTdHJpbmdPck51bGwoZXhlYywgdGhpc09iai0+aW1wbCgp
LT5nZXRJdGVtKHByb3BlcnR5TmFtZSkpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAppbmRleCA3YmY5Mzg5Li44NzNmMjExIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAKQEAgLTUyLDkg
KzUyLDkgQEAgYm9vbCBKU1N0eWxlU2hlZXRMaXN0OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0
YXRlKiwgU3R5bGVTaGVldExpc3QqIHN0eWxlU2hlZXQKICAgICByZXR1cm4gc3R5bGVTaGVldExp
c3QtPmdldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWUpOwogfQogCi1KU1ZhbHVlIEpTU3R5bGVTaGVl
dExpc3Q6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgSlNTdHlsZVNoZWV0
TGlzdDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1N0eWxlU2hlZXRMaXN0KiB0aGlz
T2JqID0gc3RhdGljX2Nhc3Q8SlNTdHlsZVNoZWV0TGlzdCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJh
c2UoKSkpOworICAgIEpTU3R5bGVTaGVldExpc3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU1N0
eWxlU2hlZXRMaXN0Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICBIVE1MU3R5bGVFbGVtZW50
KiBlbGVtZW50ID0gdGhpc09iai0+aW1wbCgpLT5nZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lKTsK
ICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIHRvSlMoZXhlYywgZWxlbWVudC0+c2hl
ZXQoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA0ODVlMWJiLi4zZmEwZjZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTc2MSw3ICs3NjEsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTmFtZUdldHRlciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn0p
IHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInByaXZhdGU6XG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBjYW5HZXRJdGVtc0Zvck5hbWUo
SlNDOjpFeGVjU3RhdGUqLCAkaW1wbENsYXNzTmFtZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYp
O1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBuYW1lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
Y29uc3QgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbmFtZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7XG4iKTsKICAgICB9CiAKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CkBAIC04NjIsNyArODYyLDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIi8vIEF0dHJpYnV0
ZXNcblxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0
dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VO
YW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lKSAuICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8gPyAi
Q29uc3RydWN0b3IiIDogIiIpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpT
Qzo6SlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBjb25zdCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7XG4iKTsKICAgICAgICAgICAgIHVu
bGVzcyAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAvcmVhZG9ubHkvKSB7CiAgICAgICAgICAgICAgICAg
bXkgJHNldHRlciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAidm9pZCAke3NldHRlcn0oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTtcbiIpOwpAQCAtODcxLDcg
Kzg3MSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAKICAgICAgICAgaWYgKCEoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0gfHwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkpIHsKICAgICAg
ICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3Ii
OwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSAke2dldHRl
cn0oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBjb25zdCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlND
OjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJik7XG4iKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtODc5LDcgKzg3
OSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIv
LyBDb25zdGFudHNcblxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRh
Tm9kZS0+Y29uc3RhbnRzfSkgewogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50
ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjb25zdGFudC0+bmFtZSk7
Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlICR7Z2V0dGVy
fShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIGNvbnN0IEpTQzo6UHJv
cGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6
OkpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OklkZW50aWZpZXImKTtcbiIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMjg5LDkgKzEy
ODksOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIik7CiAgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVl
ICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTVmFsdWUgJHtnZXRGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpXG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05h
bWUqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CiAKICAgICAgICAgICAg
ICAgICBteSAkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiA9ICIiOwogICAgICAgICAg
ICAgICAgIGlmICghJHBvZFR5cGUgYW5kICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5
cGUoJGltcGxDbGFzc05hbWUpIG9yICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS8pKSB7
CkBAIC0xNDA1LDkgKzE0MDUsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgaWYgKCEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVj
dG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0
b3IifSkpIHsKICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5hbWUgPSAi
anMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xv
dClcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSAke2Nv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IGNvbnN0IElkZW50aWZpZXImKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2Ns
YXNzTmFtZX0qIGRvbU9iamVjdCA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChz
bG90LnNsb3RCYXNlKCkpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KGFzT2JqZWN0KHNsb3RCYXNlKSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gJHtjbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3RvcihleGVjLCBkb21P
YmplY3QtPmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuIik7CiAgICAgICAgICAgICB9CkBAIC0xNzA0LDcgKzE3MDQsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAk
aW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjb25zdGFudC0+bmFt
ZSk7CiAKICAgICAgICAgICAgICMgRklYTUU6IHRoaXMgY2FzdHMgaW50byBpbnQgdG8gbWF0Y2gg
b3VyIHByZXZpb3VzIGJlaGF2aW9yIHdoaWNoIHR1cm5lZCAweEZGRkZGRkZGIGluIC0xIGZvciBO
b2RlRmlsdGVyLlNIT1dfQUxMCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFs
dWUgJHtnZXR0ZXJ9KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFBy
b3BlcnR5U2xvdCYpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1
ZSAke2dldHRlcn0oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJilc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBqc051bWJlcihleGVjLCBzdGF0aWNfY2Fz
dDxpbnQ+KCIgLiAkY29uc3RhbnQtPnZhbHVlIC4gIikpO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIn1cblxuIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IDcx
MjgxM2YuLjZiODA1OWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
Y3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC01MCw5ICs1MCw5
IEBAIFJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpCiAgICAgZGVsZXRlIGdldENvbmNyZXRl
QXJyYXkoKTsKIH0KIAotSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitK
U1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7Ci0gICAgUnVudGltZUFycmF5KiB0aGlz
T2JqID0gc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgp
KSk7CisgICAgUnVudGltZUFycmF5KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICByZXR1cm4ganNOdW1iZXIoZXhlYywgdGhpc09i
ai0+Z2V0TGVuZ3RoKCkpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmggYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggMDIwMGIxOC4u
ZTMwMTI2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBi
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8
IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICBzdGF0aWMgSlNWYWx1ZSBsZW5ndGhHZXR0
ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwor
ICAgIHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25z
dCBJZGVudGlmaWVyJik7CiAgICAgc3RhdGljIEpTVmFsdWUgaW5kZXhHZXR0ZXIoRXhlY1N0YXRl
KiwgSlNWYWx1ZSwgdW5zaWduZWQpOwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cAppbmRleCAyYWY5Mzg2Li5jYmU2NGM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX21ldGhvZC5jcHAKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBA
IC01Miw5ICs1Miw5IEBAIFJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgQmluZGluZ3M6CiB7CiB9CiAKLUpTVmFsdWUg
UnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgUnVudGltZU1ldGhvZDo6
bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRl
bnRpZmllciYpCiB7Ci0gICAgUnVudGltZU1ldGhvZCogdGhpc09iaiA9IHN0YXRpY19jYXN0PFJ1
bnRpbWVNZXRob2QqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsKKyAgICBSdW50aW1lTWV0
aG9kKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8UnVudGltZU1ldGhvZCo+KGFzT2JqZWN0KHNsb3RC
YXNlKSk7CiAKICAgICAvLyBJY2shICBUaGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBtZXRob2Qg
d2l0aCB0aGlzIG5hbWUuICBBcmJpdHJhcmlseQogICAgIC8vIGp1c3QgcGljayB0aGUgZmlyc3Qg
bWV0aG9kLiAgVGhlIGZ1bmRhbWVudGFsIHByb2JsZW0gaGVyZSBpcyB0aGF0IApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmgKaW5kZXggMWE3MWU5My4uOWM4MGJhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBJbnRlcm5h
bEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFnczsKLSAgICBzdGF0aWMgSlNWYWx1ZSBsZW5ndGhHZXR0
ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwor
ICAgIHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25z
dCBJZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0
YShDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
Y3BwIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGVlODFmMmMuLjgz
YWFlNzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysg
Yi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTY2LDkgKzY2LDkgQEAgdm9p
ZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gMDsKIH0KIAot
SlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBz
bG90KQorSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKIHsKLSAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8UnVudGltZU9i
amVjdCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOworICAgIFJ1bnRpbWVPYmplY3QqIHRo
aXNPYmogPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsK
ICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0YW5jZTsKIAog
ICAgIGlmICghaW5zdGFuY2UpCkBAIC04NCw5ICs4NCw5IEBAIEpTVmFsdWUgUnVudGltZU9iamVj
dDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVs
ZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlTbG90JiBzbG90KQorSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKIHsgICAgCi0gICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IHN0YXRp
Y19jYXN0PFJ1bnRpbWVPYmplY3QqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsKKyAgICBS
dW50aW1lT2JqZWN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmot
Pm1faW5zdGFuY2U7CiAKICAgICBpZiAoIWluc3RhbmNlKQpAQCAtMTAzLDkgKzEwMyw5IEBAIEpT
VmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSBS
dW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK0pTVmFsdWUgUnVu
dGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFz
ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIFJ1bnRpbWVPYmplY3Qq
IHRoaXNPYmogPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oYXNPYmplY3Qoc2xvdC5zbG90
QmFzZSgpKSk7CisgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PFJ1bnRp
bWVPYmplY3QqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5z
dGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCmluZGV4IDUwNDlkMGUuLmI3MzVlMzYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaApAQCAtNzIsOSArNzIsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1
YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9
CiAgICAgCi0gICAgc3RhdGljIEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotICAgIHN0YXRpYyBK
U1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQ
cm9wZXJ0eVNsb3QmKTsKLSAgICBzdGF0aWMgSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBK
U1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXImKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUqLCBK
U1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CisgICAgc3RhdGljIEpTVmFsdWUgbWV0aG9kR2V0
dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImKTsKIAogICAgIFJlZlB0
cjxJbnN0YW5jZT4gbV9pbnN0YW5jZTsKIH07Cg==
</data>
<flag name="review"
          id="32757"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>