<?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>43651</bug_id>
          
          <creation_ts>2010-08-06 15:48:37 -0700</creation_ts>
          <short_desc>Change all ArgumentEncoder and ArgumentDecoder references to pointers</short_desc>
          <delta_ts>2010-08-06 16:04:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261534</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-08-06 15:48:37 -0700</bug_when>
    <thetext>Change all ArgumentEncoder and ArgumentDecoder references to pointers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261535</commentid>
    <comment_count>1</comment_count>
      <attachid>63774</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-08-06 15:50:01 -0700</bug_when>
    <thetext>Created attachment 63774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261541</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-08-06 16:04:43 -0700</bug_when>
    <thetext>Committed r64877: &lt;http://trac.webkit.org/changeset/64877&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63774</attachid>
            <date>2010-08-06 15:50:01 -0700</date>
            <delta_ts>2010-08-06 16:02:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43651-20100806155000.patch</filename>
            <type>text/plain</type>
            <size>73497</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODVmMmZkMDA1MTU3YzQyZWQwNmNjY2I2YjMwYTBhNjhmNGNkYTQzYS4uYTg1OTBjYTJiN2RmMmMy
ZjY1MDNlMzc1YzQzNmIzNDdiOWQxMjI1OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0OCBAQAogMjAxMC0wOC0wNiAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBhbGwgQXJndW1lbnRFbmNvZGVyIGFu
ZCBBcmd1bWVudERlY29kZXIgcmVmZXJlbmNlcyB0byBwb2ludGVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2NTEKKworICAgICAgICAqIFBsYXRm
b3JtL0NvcmVJUEMvQXJndW1lbnRDb2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
QXJndW1lbnREZWNvZGVyLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuY3BwOgorICAgICAgICAq
IFBsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvbWFjL01hY2hQb3J0Lmg6CisgICAgICAgICogUGxhdGZvcm0vU2hhcmVkTWVtb3J5Lmg6Cisg
ICAgICAgICogUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHA6CisgICAgICAgICogU2hh
cmVkL0RyYXdpbmdBcmVhQmFzZS5jcHA6CisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhQmFz
ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1VwZGF0ZUNodW5rLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvbWFjL1VwZGF0ZUNodW5rLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NodW5rZWRVcGRh
dGVEcmF3aW5nQXJlYVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWEuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJl
YS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJhd2luZ0Fy
ZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorCisyMDEwLTA4LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KIAogICAgICAgICBE
b24ndCB0cnkgdG8gYWxsb2NhdGUgYSB2ZWN0b3IgdW5sZXNzIHdlIGtub3cgdGhlIGJ1ZmZlciBj
YW4gY29udGFpbiBpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3Vt
ZW50Q29kZXIuaCBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVyLmgKaW5k
ZXggYjA5MmRkZjlkZmYxNTI4YmJiZmY0YjY5YzdlNDM0ZmZhMjI3OTlkZC4uYmQxNWY1MTZjZmY2
NjYyZmM0ODJhY2QyNDJjZjJlMzZjZGY3NDJjOCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIuaAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
QXJndW1lbnRDb2Rlci5oCkBAIC0zNiwxMiArMzYsMTIgQEAgY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXIgewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFQmIHQpCiAgICAg
ewotICAgICAgICB0LmVuY29kZSgqZW5jb2Rlcik7CisgICAgICAgIHQuZW5jb2RlKGVuY29kZXIp
OwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFQmIHQpCiAgICAgewotICAgICAgICByZXR1cm4gVDo6ZGVjb2RlKCpkZWNvZGVyLCB0KTsK
KyAgICAgICAgcmV0dXJuIFQ6OmRlY29kZShkZWNvZGVyLCB0KTsKICAgICB9CiB9OwogCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmggYi9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmgKaW5kZXggYjU4ZjgxMTE3N2Zm
OGJlZmU2ZGQwMDBjMGExYzE2YzdmYjEwY2FjOS4uMjMxY2ExNjE1NDk4MzI1Y2NlMzI5NDdiZTNh
MGZiMTM2YWQyOWZmNiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3Vt
ZW50RGVjb2Rlci5oCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29k
ZXIuaApAQCAtNzksOCArNzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWJ1ZygpOwogCiBwcml2
YXRlOgotICAgIEFyZ3VtZW50RGVjb2Rlcihjb25zdCBBcmd1bWVudERlY29kZXImKTsKLSAgICBB
cmd1bWVudERlY29kZXImIG9wZXJhdG9yPShjb25zdCBBcmd1bWVudERlY29kZXImKTsKKyAgICBB
cmd1bWVudERlY29kZXIoY29uc3QgQXJndW1lbnREZWNvZGVyKik7CisgICAgQXJndW1lbnREZWNv
ZGVyKiBvcGVyYXRvcj0oY29uc3QgQXJndW1lbnREZWNvZGVyKik7CiAKICAgICB2b2lkIGluaXRp
YWxpemUoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSk7CiAKZGlmZiAt
LWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaCBiL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaAppbmRleCA5MWIyNDYyN2VjYjMwZWMxMjY5ODk4YTQ0
NjI5ZTQ3MWRlMmI5NzUxLi4xMTA2MWYxOTNmYjVlMjA3M2I1ZWVkZmE4NTYyMWViZjVjMDk2NDMy
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKKysrIGIv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCkBAIC0zMywxMSArMzMsMTEgQEAg
bmFtZXNwYWNlIENvcmVJUEMgewogICAgIAogY2xhc3MgQXJndW1lbnRzMCB7CiBwdWJsaWM6Ci0g
ICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29uc3QgCisgICAgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyKikgY29uc3QgCiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBBcmd1bWVudHMwJikKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgQXJndW1lbnRzMCYpCiAgICAgewogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CkBAIC02MCwxNCArNjAsMTQgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0IAorICAg
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCiAgICAgewotICAg
ICAgICBlbmNvZGVyLmVuY29kZShtX3ZhbHVlKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1f
dmFsdWUpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIEFyZ3VtZW50czE8VDE+JiByZXN1bHQpCisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzMTxUMT4mIHJlc3VsdCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShyZXN1bHQubV92YWx1ZSk7CisgICAgICAg
IHJldHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fdmFsdWUpOwogICAgIH0KICAgICAKIHBy
aXZhdGU6CkBAIC05MiwxOCArOTIsMTggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0IAorICAgIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCiAgICAgewogICAgICAgICBBcmd1
bWVudHMxPFQxPjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAgICBlbmNvZGVyLmVuY29kZShtX3Zh
bHVlKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fdmFsdWUpOwogICAgIH0KIAotICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFyZ3VtZW50czI8VDEs
IFQyPiYgcmVzdWx0KQorICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIEFyZ3VtZW50czI8VDEsIFQyPiYgcmVzdWx0KQogICAgIHsKICAgICAgICAgaWYgKCFB
cmd1bWVudHMxPFQxPjo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUocmVzdWx0
Lm1fdmFsdWUpOworICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3ZhbHVl
KTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0xMjgsMTggKzEyOCwxOCBAQCBwdWJsaWM6CiAgICAg
ewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QgCisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdCAKICAg
ICB7CiAgICAgICAgIEFyZ3VtZW50czI8VDEsIFQyPjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAg
ICBlbmNvZGVyLmVuY29kZShtX3ZhbHVlKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fdmFs
dWUpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEFyZ3VtZW50czM8VDEsIFQyLCBUMz4mIHJlc3VsdCkKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHMzPFQxLCBUMiwgVDM+JiBy
ZXN1bHQpCiAgICAgewogICAgICAgICBpZiAoIUFyZ3VtZW50czI8VDEsIFQyPjo6ZGVjb2RlKGRl
Y29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAg
ICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdmFsdWUpOworICAgICAgICByZXR1
cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3ZhbHVlKTsKICAgICB9CiAKIHByaXZhdGU6CkBA
IC0xNjQsMTggKzE2NCwxOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHMzPFQx
LCBUMiwgVDM+OjplbmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlKG1fdmFs
dWUpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV92YWx1ZSk7CiAgICAgfQogICAgIAotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFyZ3VtZW50czQ8
VDEsIFQyLCBUMywgVDQ+JiByZXN1bHQpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND4mIHJlc3VsdCkKICAg
ICB7CiAgICAgICAgIGlmICghQXJndW1lbnRzMzxUMSwgVDIsIFQzPjo6ZGVjb2RlKGRlY29kZXIs
IHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdmFsdWUpOworICAgICAgICByZXR1cm4gZGVj
b2Rlci0+ZGVjb2RlKHJlc3VsdC5tX3ZhbHVlKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0yMDAs
MTggKzIwMCwxOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHM0PFQxLCBUMiwg
VDMsIFQ0Pjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAgICBlbmNvZGVyLmVuY29kZShtX3ZhbHVl
KTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fdmFsdWUpOwogICAgIH0KICAgICAKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVudHM1PFQx
LCBUMiwgVDMsIFQ0LCBUNT4mIHJlc3VsdCkKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM1PFQxLCBUMiwgVDMsIFQ0LCBUNT4mIHJlc3Vs
dCkKICAgICB7CiAgICAgICAgIGlmICghQXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND46OmRlY29k
ZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
LSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3ZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQubV92YWx1ZSk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuY3BwIGIv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuY3BwCmluZGV4IDMyYjg3ODQ1MmNh
NjRhNDI4NzhmOTk5MDA3Y2VkMmZjNmViYWFkMDcuLmM4ZDM1ZjQ3MTVmMGI0ZDJjODlhZTYxZmY0
NzM0OTBjZmMwM2IzYjggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRh
Y2htZW50LmNwcAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHAK
QEAgLTU4LDE0ICs1OCwxNCBAQCB2b2lkIEF0dGFjaG1lbnQ6OnJlbGVhc2UoKQogfQogI2VuZGlm
CiAKLXZvaWQgQXR0YWNobWVudDo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3ZvaWQgQXR0YWNobWVudDo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyLmFkZEF0dGFjaG1lbnQoKnRoaXMpOworICAgIGVuY29kZXItPmFk
ZEF0dGFjaG1lbnQoKnRoaXMpOwogfQogCi1ib29sIEF0dGFjaG1lbnQ6OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIEF0dGFjaG1lbnQmIGF0dGFjaG1lbnQpCitib29sIEF0dGFjaG1l
bnQ6OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEF0dGFjaG1lbnQmIGF0dGFjaG1l
bnQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLnJlbW92ZUF0dGFjaG1lbnQoYXR0YWNobWVudCkpCisg
ICAgaWYgKCFkZWNvZGVyLT5yZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5oIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0F0
dGFjaG1lbnQuaAppbmRleCA2Y2FjZmZhZDQxZTNhMzgyNGRkZTNiOGI4MjBmODc2ZjAwN2E3NjQy
Li41NWEwOWM5MGUyYTVjMzkwNjQwZGUwNGI3Mjc0MWMwMjFhNmUxNTkwIDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5oCisrKyBiL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9BdHRhY2htZW50LmgKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIGJv
b2wgZGVhbGxvY2F0ZSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBNYWNoT09MTWVtb3J5VHlw
ZSk7IHJldHVybiBtX29vbE1lbW9yeS5kZWFsbG9jYXRlOyB9CiAjZW5kaWYKIAotICAgIHZvaWQg
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBBdHRhY2htZW50Jik7CisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rlcios
IEF0dGFjaG1lbnQmKTsKICAgICAKIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmggYi9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmgKaW5kZXggOWYxZmQ4ODZkMTcyNGUwNzIyM2Rh
ZmI1Y2NmZDU4Y2JiNzAyYzE4Mi4uMGZlNzkxNzY4YWMwZGIwMTQ3MDg4OThjOTM3MWYxOGM5ODEx
OTFhMCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9ydC5o
CisrKyBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBvcnQuaApAQCAtNDQsMTUg
KzQ0LDE1IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlKEF0dGFjaG1l
bnQobV9wb3J0LCBtX2Rpc3Bvc2l0aW9uKSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShBdHRh
Y2htZW50KG1fcG9ydCwgbV9kaXNwb3NpdGlvbikpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE1hY2hQb3J0JiBwKQorICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE1hY2hQb3J0JiBwKQogICAg
IHsKICAgICAgICAgQXR0YWNobWVudCBhdHRhY2htZW50OwotICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGF0dGFjaG1lbnQpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShhdHRhY2ht
ZW50KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIHAubV9w
b3J0ID0gYXR0YWNobWVudC5wb3J0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL1No
YXJlZE1lbW9yeS5oIGIvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAppbmRleCA2ODY3
NWZlOTMwM2U3MGQxNDkzYWJiYjE5ODAzOWNlN2EzMDg0MWU5Li5kNzcwOGQxOTI5MWYyMjI3Yzkx
MDdiZDA4OWE4ZjBkNzAwMDhjNzZmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5oCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTQ5LDgg
KzQ5LDggQEAgcHVibGljOgogICAgICAgICBIYW5kbGUoKTsKICAgICAgICAgfkhhbmRsZSgpOwog
Ci0gICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owot
ICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFu
ZGxlJik7CisgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNv
bnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgSGFuZGxlJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgU2hhcmVk
TWVtb3J5OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFj
LmNwcCBiL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKaW5kZXggNTRl
YWY5YmE4OWY3YTA5ZDU0NzkyMGFjMzYyZjUxYzc5NTRkYjliOS4uNGE2NWJlMzdjNmJkZjY4ZmI1
ODg3MTdiM2Y0NzI1MzRlMmM5NzU0ZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMv
U2hhcmVkTWVtb3J5TWFjLmNwcAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1v
cnlNYWMuY3BwCkBAIC00OCwyNyArNDgsMjcgQEAgU2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5k
bGUoKQogICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBtX3Bv
cnQpOwogfQogCi12b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBB
U1NFUlQobV9wb3J0KTsKICAgICBBU1NFUlQobV9zaXplKTsKICAgICAKLSAgICBlbmNvZGVyLmVu
Y29kZVVJbnQ2NChtX3NpemUpOwotICAgIGVuY29kZXIuZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0
KG1fcG9ydCwgTUFDSF9NU0dfVFlQRV9DT1BZX1NFTkQpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGVV
SW50NjQobV9zaXplKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobV9w
b3J0LCBNQUNIX01TR19UWVBFX0NPUFlfU0VORCkpOwogICAgIG1fcG9ydCA9IE1BQ0hfUE9SVF9O
VUxMOwogfQogCi1ib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKK2Jvb2wgU2hhcmVkTWVtb3J5
OjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEhhbmRs
ZSYgaGFuZGxlKQogewogICAgIEFTU0VSVCghaGFuZGxlLm1fcG9ydCk7CiAgICAgQVNTRVJUKCFo
YW5kbGUubV9zaXplKTsKIAogICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZVVJbnQ2NChzaXplKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgbWFjaFBvcnQ7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWFjaFBvcnQpKSkKKyAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQobWFjaFBvcnQpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIAogICAgIGhhbmRsZS5tX3NpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFCYXNlLmNwcCBiL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhQmFzZS5jcHAKaW5kZXggMDUzOWZjZjkwOWEzNDU4ZTUyMWRlMDVjN2Q2Yzk4MjZhODk1
NzI1Ni4uZGZiMDJjMjU5MWQ0NDNhNTk5NmJhMDQ5NzBiNGY5ZTk1ZDNiNDNmNCAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFCYXNlLmNwcAorKysgYi9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUJhc2UuY3BwCkBAIC0yNywyMCArMjcsMjAgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXZvaWQgRHJhd2luZ0FyZWFCYXNlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBEcmF3aW5nQXJlYUJhc2U6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgRHJhd2luZ0FyZWFJ
bmZvIGluZm8odHlwZSgpLCBpZCgpKTsKLSAgICBlbmNvZGVyLmVuY29kZShpbmZvKTsKKyAgICBl
bmNvZGVyLT5lbmNvZGUoaW5mbyk7CiB9CiAKLWJvb2wgRHJhd2luZ0FyZWFCYXNlOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEcmF3aW5nQXJlYUluZm8mIGluZm8p
Citib29sIERyYXdpbmdBcmVhQmFzZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgRHJhd2luZ0FyZWFJbmZvJiBpbmZvKQogewogICAgIHVpbnQzMl90IGRyYXdpbmdB
cmVhVHlwZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRyYXdpbmdBcmVhVHlwZSkpCisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoZHJhd2luZ0FyZWFUeXBlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgRHJhd2luZ0FyZWFJRCBkcmF3aW5nQXJlYUlEOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoZHJhd2luZ0FyZWFJRCkpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZHJhd2lu
Z0FyZWFJRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGluZm8udHlwZSA9IHN0YXRp
Y19jYXN0PFR5cGU+KGRyYXdpbmdBcmVhVHlwZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUJhc2UuaCBiL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhQmFzZS5oCmlu
ZGV4IDJhYzdkZGY1OTNmOWMwZWI3N2MxNmQ2NGIyNTViMjE1MmUwZDAzNzAuLjkxZWQ3ZGE1YTJm
Njk3MjE5ZDQwMjhkNmY5NjRlZDk0MTQwNzI1MjcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhQmFzZS5oCisrKyBiL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhQmFzZS5o
CkBAIC02NSw4ICs2NSw4IEBAIHB1YmxpYzoKICAgICB9OwogICAgIAogICAgIC8vIFRoZSBEcmF3
aW5nQXJlYVByb3h5IHNob3VsZCBuZXZlciBiZSBkZWNvZGVkIGl0c2VsZi4gSW5zdGVhZCwgdGhl
IERyYXdpbmdBcmVhIHNob3VsZCBiZSBkZWNvZGVkLgotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIERyYXdpbmdBcmVhSW5mbyYpOworICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERyYXdpbmdBcmVhSW5m
byYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0FyZWFCYXNlKFR5cGUgdHlwZSwgRHJhd2lu
Z0FyZWFJRCBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQu
aCBiL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmgKaW5kZXggNTA1MGVhZjFkMWRkODUwN2ZmMmUz
NzVlZWMxODkwYjg1ZDJiNmFmMC4uODA1OGNjZmVjN2Y2OGQyMWRkYWMyZWY2YmI2OTMzZjZiYWEw
ZTIwZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9XZWJLaXQy
L1NoYXJlZC9XZWJFdmVudC5oCkBAIC04MiwyMCArODIsMjAgQEAgcHJvdGVjdGVkOgogICAgIHsK
ICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNv
ZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUobV90eXBlKTsKLSAgICAg
ICAgZW5jb2Rlci5lbmNvZGUobV9tb2RpZmllcnMpOwotICAgICAgICBlbmNvZGVyLmVuY29kZSht
X3RpbWVzdGFtcCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShtX3R5cGUpOworICAgICAgICBl
bmNvZGVyLT5lbmNvZGUobV9tb2RpZmllcnMpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV90
aW1lc3RhbXApOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFdlYkV2ZW50JiB0KQorICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkV2ZW50JiB0KQogICAgIHsK
LSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fdHlwZSkpCisgICAgICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHQubV90eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0Lm1fbW9kaWZpZXJzKSkKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGUodC5tX21vZGlmaWVycykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX3RpbWVzdGFtcCkpCisgICAgICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHQubV90aW1lc3RhbXApKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTQ1LDE0ICsxNDUsMTQgQEAgcHVibGljOgog
ICAgIGZsb2F0IGRlbHRhWigpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGFaOyB9CiAgICAgaW50IGNs
aWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7IH0KIAotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAg
ICAgICBlbmNvZGVyLmVuY29kZUJ5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KHRoaXMpLCBzaXplb2YoKnRoaXMpKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlQnl0ZXMocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odGhpcyksIHNpemVvZigqdGhpcykpOwogICAg
IH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIFdlYk1vdXNlRXZlbnQmIHQpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTW91c2VFdmVudCYgdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUJ5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KCZ0KSwgc2l6ZW9mKHQpKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZUJ5dGVzKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ0KSwgc2l6ZW9mKHQpKTsKICAgICB9CiAKIHByaXZh
dGU6CkBAIC0yMDgsMTQgKzIwOCwxNCBAQCBwdWJsaWM6CiAgICAgZmxvYXQgd2hlZWxUaWNrc1ko
KSBjb25zdCB7IHJldHVybiBtX3doZWVsVGlja3NZOyB9CiAgICAgR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkoKSBjb25zdCB7IHJldHVybiAoR3JhbnVsYXJpdHkpbV9ncmFudWxhcml0eTsgfQogCi0g
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50OF90Kj4odGhpcyksIHNpemVvZigqdGhpcykpOworICAgICAgICBlbmNvZGVyLT5lbmNv
ZGVCeXRlcyhyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih0aGlzKSwgc2l6ZW9mKCp0
aGlzKSk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgV2ViV2hlZWxFdmVudCYgdCkKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJXaGVlbEV2ZW50JiB0KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlQnl0ZXMocmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4oJnQpLCBzaXplb2YodCkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVj
b2RlQnl0ZXMocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJnQpLCBzaXplb2YodCkpOwogICAg
IH0KIAogcHJpdmF0ZToKQEAgLTI2NCw0OSArMjY0LDQ5IEBAIHB1YmxpYzoKICAgICBib29sIGlz
S2V5cGFkKCkgY29uc3QgeyByZXR1cm4gbV9pc0tleXBhZDsgfQogICAgIGJvb2wgaXNTeXN0ZW1L
ZXkoKSBjb25zdCB7IHJldHVybiBtX2lzU3lzdGVtS2V5OyB9CiAKLSAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
V2ViRXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIAotICAgICAgICBlbmNvZGVyLmVuY29kZShtX3Rl
eHQpOwotICAgICAgICBlbmNvZGVyLmVuY29kZShtX3VubW9kaWZpZWRUZXh0KTsKLSAgICAgICAg
ZW5jb2Rlci5lbmNvZGUobV9rZXlJZGVudGlmaWVyKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUo
bV93aW5kb3dzVmlydHVhbEtleUNvZGUpOwotICAgICAgICBlbmNvZGVyLmVuY29kZShtX25hdGl2
ZVZpcnR1YWxLZXlDb2RlKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUobV9pc0F1dG9SZXBlYXQp
OwotICAgICAgICBlbmNvZGVyLmVuY29kZShtX2lzS2V5cGFkKTsKLSAgICAgICAgZW5jb2Rlci5l
bmNvZGUobV9pc1N5c3RlbUtleSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOwor
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV91bm1vZGlmaWVkVGV4dCk7CisgICAgICAgIGVuY29k
ZXItPmVuY29kZShtX2tleUlkZW50aWZpZXIpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV93
aW5kb3dzVmlydHVhbEtleUNvZGUpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9uYXRpdmVW
aXJ0dWFsS2V5Q29kZSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShtX2lzQXV0b1JlcGVhdCk7
CisgICAgICAgIGVuY29kZXItPmVuY29kZShtX2lzS2V5cGFkKTsKKyAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKG1faXNTeXN0ZW1LZXkpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYktleWJvYXJkRXZlbnQmIHQpCisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
V2ViS2V5Ym9hcmRFdmVudCYgdCkKICAgICB7CiAgICAgICAgIGlmICghV2ViRXZlbnQ6OmRlY29k
ZShkZWNvZGVyLCB0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBXZWJD
b3JlOjpTdHJpbmcgdGV4dDsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0ZXh0KSkKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodGV4dCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHQubV90ZXh0ID0gdGV4dDsKIAogICAgICAgICBXZWJDb3JlOjpTdHJpbmcg
dW5tb2RpZmllZFRleHQ7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodW5tb2RpZmllZFRl
eHQpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh1bm1vZGlmaWVkVGV4dCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHQubV91bm1vZGlmaWVkVGV4dCA9IHVubW9k
aWZpZWRUZXh0OwogCiAgICAgICAgIFdlYkNvcmU6OlN0cmluZyBrZXlJZGVudGlmaWVyOwotICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleUlkZW50aWZpZXIpKQorICAgICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShrZXlJZGVudGlmaWVyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgdC5tX2tleUlkZW50aWZpZXIgPSBrZXlJZGVudGlmaWVyOwogCi0gICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodC5tX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSkpCisgICAgICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHQubV93aW5kb3dzVmlydHVhbEtleUNvZGUpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQubV9uYXRpdmVW
aXJ0dWFsS2V5Q29kZSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV9uYXRpdmVW
aXJ0dWFsS2V5Q29kZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUodC5tX2lzQXV0b1JlcGVhdCkpCisgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHQubV9pc0F1dG9SZXBlYXQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHQubV9pc0tleXBhZCkpCisgICAgICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHQubV9pc0tleXBhZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodC5tX2lzU3lzdGVtS2V5KSkKKyAgICAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUodC5tX2lzU3lzdGVtS2V5KSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9T
aGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIGIvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZS5oCmluZGV4IGM0YWUyMDY3MGEzOWI0NGZmNjljOGFiNzNkYzg0OTA0MDEy
Njk4NGQuLmY1NTljMzJiNDM3YjlmNjZkZDVjMzc0MjM0MGQ1MmE0MmVhNjU4NzAgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaAorKysgYi9XZWJLaXQy
L1NoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgKQEAgLTM0LDE3ICszNCwxNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHsKLSAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAg
IHsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUodXJsKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUo
dGl0bGUpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUodXJsKTsKKyAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHRpdGxlKTsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSkK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSkKICAgICB7Ci0gICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc3RvcmUudXJsKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3Rv
cmUudXJsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdG9yZS50aXRsZSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0b3Jl
LnRpdGxlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IGIvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IDNlMzcxNzJhMTRj
YTA1ZjNkM2UxMzc5Y2IzOTRlM2EyMjRjNGViMTkuLmYwMjE1ZjkxZjI4MjE3ZjQzNzY1Yzk0ZDY4
Y2E0NjcyN2NmYzcwOGUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
U3RvcmUuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKQEAgLTM5
LDU2ICszOSw1NiBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZSB7CiAgICAgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgb3BlcmF0b3I9KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKICAgICB2
b2lkIHN3YXAoV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29k
ZXIuZW5jb2RlKGphdmFTY3JpcHRFbmFibGVkKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUobG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUocGx1Z2luc0Vu
YWJsZWQpOwotICAgICAgICBlbmNvZGVyLmVuY29kZShvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQpOwotICAgICAgICBlbmNvZGVyLmVuY29kZShsb2NhbFN0b3JhZ2VFbmFibGVkKTsK
LSAgICAgICAgZW5jb2Rlci5lbmNvZGUobWluaW11bUZvbnRTaXplKTsKLSAgICAgICAgZW5jb2Rl
ci5lbmNvZGUobWluaW11bUxvZ2ljYWxGb250U2l6ZSk7Ci0gICAgICAgIGVuY29kZXIuZW5jb2Rl
KGRlZmF1bHRGb250U2l6ZSk7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlKGRlZmF1bHRGaXhlZEZv
bnRTaXplKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUoc3RhbmRhcmRGb250RmFtaWx5KTsKLSAg
ICAgICAgZW5jb2Rlci5lbmNvZGUoY3Vyc2l2ZUZvbnRGYW1pbHkpOwotICAgICAgICBlbmNvZGVy
LmVuY29kZShmYW50YXN5Rm9udEZhbWlseSk7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlKGZpeGVk
Rm9udEZhbWlseSk7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlKHNhbnNTZXJpZkZvbnRGYW1pbHkp
OwotICAgICAgICBlbmNvZGVyLmVuY29kZShzZXJpZkZvbnRGYW1pbHkpOworICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoamF2YVNjcmlwdEVuYWJsZWQpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHBsdWdp
bnNFbmFibGVkKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShsb2NhbFN0b3JhZ2VFbmFi
bGVkKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1pbmltdW1Gb250U2l6ZSk7CisgICAgICAg
IGVuY29kZXItPmVuY29kZShtaW5pbXVtTG9naWNhbEZvbnRTaXplKTsKKyAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKGRlZmF1bHRGb250U2l6ZSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShkZWZh
dWx0Rml4ZWRGb250U2l6ZSk7CisgICAgICAgIGVuY29kZXItPmVuY29kZShzdGFuZGFyZEZvbnRG
YW1pbHkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoY3Vyc2l2ZUZvbnRGYW1pbHkpOworICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoZmFudGFzeUZvbnRGYW1pbHkpOworICAgICAgICBlbmNvZGVy
LT5lbmNvZGUoZml4ZWRGb250RmFtaWx5KTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHNhbnNT
ZXJpZkZvbnRGYW1pbHkpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc2VyaWZGb250RmFtaWx5
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzKQorICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYlByZWZlcmVuY2VzU3Rv
cmUmIHMpCiAgICAgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHMuamF2YVNjcmlwdEVu
YWJsZWQpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShzLmphdmFTY3JpcHRFbmFibGVk
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzLmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHMubG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzLnBsdWdpbnNFbmFibGVkKSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocy5wbHVnaW5zRW5hYmxlZCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocy5vZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShzLm9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocy5sb2NhbFN0b3JhZ2VFbmFibGVkKSkK
KyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocy5sb2NhbFN0b3JhZ2VFbmFibGVkKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzLm1p
bmltdW1Gb250U2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHMubWluaW11bUZv
bnRTaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzLm1pbmltdW1Mb2dpY2FsRm9udFNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShzLm1pbmltdW1Mb2dpY2FsRm9udFNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHMuZGVmYXVsdEZvbnRTaXplKSkKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocy5kZWZhdWx0Rm9udFNpemUpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHMuZGVmYXVsdEZp
eGVkRm9udFNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShzLmRlZmF1bHRGaXhl
ZEZvbnRTaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzLnN0YW5kYXJkRm9udEZhbWlseSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHMuc3RhbmRhcmRGb250RmFtaWx5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzLmN1cnNpdmVGb250RmFtaWx5KSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocy5jdXJzaXZlRm9udEZhbWlseSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocy5mYW50YXN5Rm9u
dEZhbWlseSkpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHMuZmFudGFzeUZvbnRGYW1p
bHkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHMuZml4ZWRGb250RmFtaWx5KSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocy5m
aXhlZEZvbnRGYW1pbHkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHMuc2Fuc1NlcmlmRm9udEZhbWlseSkpCisgICAgICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHMuc2Fuc1NlcmlmRm9udEZhbWlseSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocy5zZXJpZkZvbnRGYW1pbHkpKQor
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShzLnNlcmlmRm9udEZhbWlseSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdp
dCBhL1dlYktpdDIvU2hhcmVkL21hYy9VcGRhdGVDaHVuay5jcHAgYi9XZWJLaXQyL1NoYXJlZC9t
YWMvVXBkYXRlQ2h1bmsuY3BwCmluZGV4IGFkNzdhNGQ5ZTMzZWY3YzNlODhlMWJhZTk3NjlhYTZj
YWMwM2ZhYjguLmE5Mzc2ZGI0YjAyNjVhOGZmYWI5ODYwMDE4M2VhMzVmNTZlNjI5MjkgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvU2hhcmVkL21hYy9VcGRhdGVDaHVuay5jcHAKKysrIGIvV2ViS2l0Mi9T
aGFyZWQvbWFjL1VwZGF0ZUNodW5rLmNwcApAQCAtNjUsMjMgKzY1LDIzIEBAIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBVcGRhdGVDaHVuazo6Y3JlYXRlSW1hZ2UoKQogICAgIHJldHVybiBpbWFnZTsK
IH0KIAotdm9pZCBVcGRhdGVDaHVuazo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgVXBkYXRlQ2h1bms6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGUobV9yZWN0KTsK
LSAgICBlbmNvZGVyLmVuY29kZShDb3JlSVBDOjpBdHRhY2htZW50KG1fZGF0YSwgc2l6ZSgpLCBN
QUNIX01TR19WSVJUVUFMX0NPUFksIHRydWUpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9yZWN0
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6QXR0YWNobWVudChtX2RhdGEsIHNpemUo
KSwgTUFDSF9NU0dfVklSVFVBTF9DT1BZLCB0cnVlKSk7CiAgICAgCiAgICAgbV9kYXRhID0gMDsK
IH0KIAotYm9vbCBVcGRhdGVDaHVuazo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgVXBkYXRlQ2h1bmsmIGNodW5rKQorYm9vbCBVcGRhdGVDaHVuazo6ZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVXBkYXRlQ2h1bmsmIGNodW5rKQogewog
ICAgIEludFJlY3QgcmVjdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlY3QpKQorICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKHJlY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2h1
bmsubV9yZWN0ID0gcmVjdDsKICAgICAKICAgICBDb3JlSVBDOjpBdHRhY2htZW50IGF0dGFjaG1l
bnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhdHRhY2htZW50KSkKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShhdHRhY2htZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY2h1
bmsubV9zaXplID0gYXR0YWNobWVudC5zaXplKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJl
ZC9tYWMvVXBkYXRlQ2h1bmsuaCBiL1dlYktpdDIvU2hhcmVkL21hYy9VcGRhdGVDaHVuay5oCmlu
ZGV4IDcxMWM4NDgwNjMyMWY3ZjQ4ODcxYmMxNTk5NzM1ZjgxMTdkYjY2NzMuLjZkNGZjYTBiZDUy
YWM1YjIwYTQ2OGZkNDYzNzZlNTA3MzYwYWE4MTYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVk
L21hYy9VcGRhdGVDaHVuay5oCisrKyBiL1dlYktpdDIvU2hhcmVkL21hYy9VcGRhdGVDaHVuay5o
CkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBy
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gbV9yZWN0LmlzRW1wdHkoKTsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFVwZGF0ZUNodW5rJik7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIFVwZGF0ZUNodW5rJik7CiAKICAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gY3JlYXRlSW1hZ2UoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuY3BwCmluZGV4IDlkYjdkNTdlZTU3ZWU3OThiMzA0
MjdmOTY4MjFhNTJhNmIxZDdmYTIuLjE0NzYzZGViOWU2OTY4YTU0N2NhNTkwOWEwYTMwMjAxZTQ2
MTFkZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5n
QXJlYVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWFQcm94eS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWFQcm94eTo6cGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgUGxhdGZvcm1EcmF3aW5nQ28K
IAogICAgICAgICBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyPiBhcmd1bWVudHMgPSBw
YWdlLT5wcm9jZXNzKCktPmNvbm5lY3Rpb24oKS0+d2FpdEZvcihEcmF3aW5nQXJlYVByb3h5TWVz
c2FnZTo6RGlkU2V0U2l6ZSwgcGFnZS0+cGFnZUlEKCksIDAuMDQpOwogICAgICAgICBpZiAoYXJn
dW1lbnRzKQotICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2UocGFnZS0+cHJvY2VzcygpLT5j
b25uZWN0aW9uKCksIENvcmVJUEM6Ok1lc3NhZ2VJRChEcmF3aW5nQXJlYVByb3h5TWVzc2FnZTo6
RGlkU2V0U2l6ZSksICphcmd1bWVudHMuZ2V0KCkpOworICAgICAgICAgICAgZGlkUmVjZWl2ZU1l
c3NhZ2UocGFnZS0+cHJvY2VzcygpLT5jb25uZWN0aW9uKCksIENvcmVJUEM6Ok1lc3NhZ2VJRChE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZTo6RGlkU2V0U2l6ZSksIGFyZ3VtZW50cy5nZXQoKSk7CiAg
ICAgfQogCiAgICAgcGxhdGZvcm1QYWludChyZWN0LCBjb250ZXh0KTsKQEAgLTE0NCwxMiArMTQ0
LDEyIEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZShVcGRhdGVD
aHVuayogdXBkYXRlQ2h1bmspCiAgICAgcGFnZS0+cHJvY2VzcygpLT5zZW5kKERyYXdpbmdBcmVh
TWVzc2FnZTo6RGlkVXBkYXRlLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaWQoKSkpOwog
fQogCi12b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiBhcmd1bWVudHMpCit2b2lkIENodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PERyYXdpbmdBcmVhUHJveHlNZXNz
YWdlOjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2U6OlVw
ZGF0ZTogewogICAgICAgICAgICAgVXBkYXRlQ2h1bmsgdXBkYXRlQ2h1bms7Ci0gICAgICAgICAg
ICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUodXBkYXRlQ2h1bmspKQorICAgICAgICAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZSh1cGRhdGVDaHVuaykpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgICAgICB1cGRhdGUoJnVwZGF0ZUNodW5rKTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2
b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZQogICAgICAgICB9CiAgICAgICAgIGNhc2UgRHJhd2luZ0Fy
ZWFQcm94eU1lc3NhZ2U6OkRpZFNldFNpemU6IHsKICAgICAgICAgICAgIFVwZGF0ZUNodW5rIHVw
ZGF0ZUNodW5rOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91
dCh1cGRhdGVDaHVuaykpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3Jl
SVBDOjpPdXQodXBkYXRlQ2h1bmspKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIGRpZFNldFNpemUoJnVwZGF0ZUNodW5rKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQ
cm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmggYi9XZWJLaXQyL1VJUHJvY2Vz
cy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDU4Y2NhY2EwYWYwODk4NGFj
ZjNiOWY0NmM0NWY4MjgxMDRhYjU4M2UuLjY4YjBkYWI4MDE4ZmJhYjU5ZTgyZTc2MTEyOWFmY2Vh
OTMwZTIwMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdp
bmdBcmVhUHJveHkuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkoKTsKIAogICAgIC8vIFRoZSBEcmF3aW5nQXJlYVBy
b3h5IHNob3VsZCBuZXZlciBiZSBkZWNvZGVkIGl0c2VsZi4gSW5zdGVhZCwgdGhlIERyYXdpbmdB
cmVhIHNob3VsZCBiZSBkZWNvZGVkLgotICAgIHZpcnR1YWwgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHZpcnR1YWwgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
RHJhd2luZ0FyZWFQcm94eTo6ZW5jb2RlKGVuY29kZXIpOwogICAgIH0KQEAgLTcwLDcgKzcwLDcg
QEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKTsKIAogICAgIC8vIERyYXdpbmdB
cmVhUHJveHkKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJik7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGxhdGZvcm1EcmF3aW5n
Q29udGV4dCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlSXNWaXNpYmxlKGJvb2wgaXNWaXNpYmxlKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA1YTczZjQ5ZGIwZTJiMzdkMjEz
NDBhMDNkZjE5MjBlYzExOWQwNWMxLi5mMjgxMTYxODFjNTkyMzYyZjc1ZGQyOTVjNDNlNGE0YTA2
ZjQyZjA3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgK
KysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00OCw4ICs0OCw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhUHJveHkoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgUGxhdGZvcm1EcmF3aW5nQ29udGV4dCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuY3BwIGIvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCBiMjM3
NWZjMDM2M2Q1MzNmZjFhM2ZkMzAyMmI5YjhmMmY2YjAyZTdhLi44NmJiMzk0YWNiZjgyNzJjNzk1
MjRkZTNiZGJiOTFjZWU5ODFiYmVlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXll
ckJhY2tlZERyYXdpbmdBcmVhUHJveHkuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0xheWVy
QmFja2VkRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIExheWVy
QmFja2VkRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlKCkKICAgICBwYWdlLT5wcm9jZXNzKCktPmNv
bm5lY3Rpb24oKS0+c2VuZChEcmF3aW5nQXJlYU1lc3NhZ2U6OkRpZFVwZGF0ZSwgcGFnZS0+cGFn
ZUlEKCksIENvcmVJUEM6OkluKGlkKCkpKTsKIH0KIAotdm9pZCBMYXllckJhY2tlZERyYXdpbmdB
cmVhUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGFyZ3VtZW50
cykKK3ZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlSUQu
Z2V0PERyYXdpbmdBcmVhUHJveHlNZXNzYWdlOjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgRHJh
d2luZ0FyZWFQcm94eU1lc3NhZ2U6OlVwZGF0ZTogewpAQCAtMTM0LDEzICsxMzQsMTMgQEAgdm9p
ZCBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVAKICAgICB9CiB9CiAKLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5n
QXJlYVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgYXJn
dW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKQordm9pZCBMYXllckJhY2tlZERyYXdp
bmdBcmVhUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopCiB7CiAgICAgc3dpdGNoIChtZXNz
YWdlSUQuZ2V0PERyYXdpbmdBcmVhUHJveHlNZXNzYWdlOjpLaW5kPigpKSB7CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBjYXNlIERyYXdpbmdBcmVhUHJveHlNZXNz
YWdlOjpBdHRhY2hDb21wb3NpdGluZ0NvbnRleHQ6IHsKICAgICAgICAgICAgIHVpbnQzMl90IGNv
bnRleHRJRDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQo
Y29udGV4dElEKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6
Ok91dChjb250ZXh0SUQpKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBh
dHRhY2hDb21wb3NpdGluZ0NvbnRleHQoY29udGV4dElEKTsKICAgICAgICAgICAgIGJyZWFrOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5
LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaAppbmRl
eCA1YzA3MmJlMmRjYjZiYzA0NDM2NTEzNGYwMTUxMWRkMTYyM2NlNzYyLi4wODc3YzM1ZjBhNTM4
Yzk4Mzg5MGM1NDZkMjRjNWU0OTVhOGYzNTMxIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaApAQCAtNjIsOCArNjIsOCBAQCBwcml2YXRlOgog
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpOwogCiAgICAgLy8gRHJhd2luZ0FyZWFQcm94eQotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBQbGF0Zm9ybURyYXdpbmdDb250ZXh0KTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CmRpZmYgLS1naXQgYS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCmluZGV4IDQ2YjFlYjlkNzM5NzkyMjkxY2VkNjgxNGM4OTcyZmNmMGIwODI0ODkuLjgw
N2U1OTYwMmIxZGE3YWM0YjYxNjcwOTZiODlmNjc0OTFkODQ2MjggMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCkBAIC02OCwyNiArNjgsMjYgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0IAor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Qg
CiAgICAgewogICAgICAgICBBUElPYmplY3Q6OlR5cGUgdHlwZSA9IG1fcm9vdC0+dHlwZSgpOwot
ICAgICAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZSkpOworICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5cGUpKTsKICAgICAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQXJyYXk6IHsK
ICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5KiBhcnJheSA9IHN0YXRpY19jYXN0PEltbXV0YWJs
ZUFycmF5Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihhcnJheS0+c2l6ZSgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGFycmF5LT5zaXplKCkpKTsKICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYXJyYXktPnNpemUoKTsgKytpKQotICAgICAgICAgICAgICAgIGVu
Y29kZXIuZW5jb2RlKFBvc3RNZXNzYWdlRW5jb2RlcihhcnJheS0+YXQoaSkpKTsKKyAgICAgICAg
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUoUG9zdE1lc3NhZ2VFbmNvZGVyKGFycmF5LT5hdChpKSkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6
OlR5cGVTdHJpbmc6IHsKICAgICAgICAgICAgIFdlYlN0cmluZyogc3RyaW5nID0gc3RhdGljX2Nh
c3Q8V2ViU3RyaW5nKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0cmlu
Zy0+c3RyaW5nKCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0cmluZy0+c3RyaW5n
KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmpl
Y3Q6OlR5cGVQYWdlOiB7CiAgICAgICAgICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBzdGF0aWNf
Y2FzdDxXZWJQYWdlUHJveHkqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUo
cGFnZS0+cGFnZUlEKCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHBhZ2UtPnBhZ2VJ
RCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBA
IC0xMTQsMTYgKzExNCwxNiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBi
b29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBvc3RNZXNzYWdl
RGVjb2RlciYgY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgUG9zdE1lc3NhZ2VEZWNvZGVyJiBjb2RlcikKICAgICB7CiAgICAg
ICAgIHVpbnQzMl90IHR5cGU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHlwZSkpCisg
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9iamVjdDo6
VHlwZUFycmF5OiB7CiAgICAgICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHNpemUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgT3duQXJyYXlQdHI8QVBJT2JqZWN0Kj4gYXJyYXk7CkBAIC0xMzIsNyArMTMyLDcg
QEAgcHVibGljOgogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKICAgICAgICAgICAgICAgICBBUElPYmplY3QqIGVsZW1lbnQ7CiAgICAgICAgICAgICAgICAg
UG9zdE1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VDb2RlcigmZWxlbWVudCwgY29kZXIubV9jb250ZXh0
KTsKLSAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VDb2RlcikpCisg
ICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobWVzc2FnZUNvZGVyKSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGFycmF5W2ldID0g
ZWxlbWVudDsKICAgICAgICAgICAgIH0KQEAgLTE0MiwxNCArMTQyLDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVN0cmluZzogewogICAgICAgICAg
ICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5n
KSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0cmluZykpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgKihjb2Rlci5tX3Jvb3QpID0gV2ViU3Ry
aW5nOjpjcmVhdGUoc3RyaW5nKS5sZWFrUmVmKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUJ1bmRsZVBhZ2U6IHsKICAgICAgICAg
ICAgIHVpbnQ2NF90IHBhZ2VJRDsKLSAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFn
ZUlEKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhZ2VJRCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgKihjb2Rlci5tX3Jvb3QpID0gY29k
ZXIubV9jb250ZXh0LT5wcm9jZXNzKCktPndlYlBhZ2UocGFnZUlEKTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgV2ViQ29udGV4dDo6YWRkVmlzaXRlZExpbmso
TGlua0hhc2ggbGlua0hhc2gpCiAgICAgbV92aXNpdGVkTGlua1Byb3ZpZGVyLmFkZFZpc2l0ZWRM
aW5rKGxpbmtIYXNoKTsKIH0KICAgICAgICAgCi12b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgYXJndW1lbnRzKQordm9pZCBX
ZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKIHsKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8V2ViQ29udGV4dE1l
c3NhZ2U6OktpbmQ+KCkpIHsKICAgICAgICAgY2FzZSBXZWJDb250ZXh0TWVzc2FnZTo6UG9zdE1l
c3NhZ2U6IHsKQEAgLTQwNSw3ICs0MDUsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgUmVmUHRyPEFQSU9iamVjdD4KICAg
ICAgICAgICAgIEFQSU9iamVjdCogbWVzc2FnZUJvZHkgPSAwOwogICAgICAgICAgICAgUG9zdE1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VDb2RlcigmbWVzc2FnZUJvZHksIHRoaXMpOwotICAgICAgICAg
ICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2Fn
ZUNvZGVyKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91
dChtZXNzYWdlTmFtZSwgbWVzc2FnZUNvZGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdl
TmFtZSwgbWVzc2FnZUJvZHkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IGE2YWJlMjJhYzVi
NTZkMjI2NmQ4MjExNGI3YmMwOTJlN2MwY2VlNDMuLjI1NmQ4MmIzMWJhMjA2OTgwNTU1OTIwZGJl
YzJhYTRhMjc1YWZmYzIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTEwNCw3ICsxMDQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhjb25zdCBXZWJDb3JlOjpTdHJpbmcm
KTsKICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OkxpbmtIYXNoKTsKIAotICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKIAogcHJpdmF0ZToKICAgICBXZWJDb250ZXh0KFByb2Nlc3NNb2Rl
bCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYWY0YjA4OWExYzg2OTA1N2YzYjBhNWNiNzkxNjFiNmUz
NTQwZDYzNC4uNTFhYTk3MDJkMjk3MGFjMzk4MTUwNGZhMTU1OGY1MDQ0NGU3NDYzZiAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zODgsNyArMzg4LDcgQEAgV2ViRnJhbWVQcm94
eSogV2ViUGFnZVByb3h5Ojp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAogICAgIHJl
dHVybiBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKS5nZXQoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgYXJn
dW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eT4oKSkgewogICAgICAgICBtX2Ry
YXdpbmdBcmVhLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CkBAIC0zOTgsMTQgKzM5OCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogICAg
IHN3aXRjaCAobWVzc2FnZUlELmdldDxXZWJQYWdlUHJveHlNZXNzYWdlOjpLaW5kPigpKSB7CiAg
ICAgICAgIGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6RGlkQ3JlYXRlTWFpbkZyYW1lOiB7CiAg
ICAgICAgICAgICB1aW50NjRfdCBmcmFtZUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMu
ZGVjb2RlKGZyYW1lSUQpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShmcmFt
ZUlEKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBkaWRDcmVhdGVNYWlu
RnJhbWUoZnJhbWVJRCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIFdlYlBhZ2VQcm94eU1lc3NhZ2U6OkRpZENyZWF0ZVN1YkZyYW1lOiB7CiAgICAgICAgICAg
ICB1aW50NjRfdCBmcmFtZUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKGZy
YW1lSUQpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShmcmFtZUlEKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBkaWRDcmVhdGVTdWJGcmFtZShmcmFt
ZUlEKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDEzLDQyICs0MTMsNDIgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpEaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB7CiAgICAgICAgICAgICB1aW50NjRfdCBmcmFtZUlE
OwogICAgICAgICAgICAgU3RyaW5nIHVybDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRl
Y29kZShDb3JlSVBDOjpPdXQoZnJhbWVJRCwgdXJsKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3Vt
ZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCB1cmwpKSkKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHdl
YkZyYW1lKGZyYW1lSUQpLCB1cmwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTogewogICAgICAgICAgICAgdWludDY0X3QgZnJhbWVJ
RDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZShmcmFtZUlEKSkKKyAgICAgICAg
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUod2ViRnJhbWUoZnJhbWVJRCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWU6IHsKICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7Ci0gICAgICAg
ICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoZnJhbWVJRCkpCisgICAgICAgICAgICBpZiAoIWFy
Z3VtZW50cy0+ZGVjb2RlKGZyYW1lSUQpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh3ZWJGcmFtZShmcmFtZUlEKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VQcm94
eU1lc3NhZ2U6OkRpZENvbW1pdExvYWRGb3JGcmFtZTogewogICAgICAgICAgICAgdWludDY0X3Qg
ZnJhbWVJRDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZShmcmFtZUlEKSkKKyAg
ICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHdlYkZyYW1lKGZy
YW1lSUQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2Vi
UGFnZVByb3h5TWVzc2FnZTo6RGlkRmluaXNoTG9hZEZvckZyYW1lOiB7CiAgICAgICAgICAgICB1
aW50NjRfdCBmcmFtZUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKGZyYW1l
SUQpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShmcmFtZUlEKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWUod2Vi
RnJhbWUoZnJhbWVJRCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpEaWRGYWlsTG9hZEZvckZyYW1lOiB7CiAgICAgICAg
ICAgICB1aW50NjRfdCBmcmFtZUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2Rl
KGZyYW1lSUQpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShmcmFtZUlEKSkK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBkaWRGYWlsTG9hZEZvckZyYW1l
KHdlYkZyYW1lKGZyYW1lSUQpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDU2LDIxICs0NTYs
MjEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlN
ZXNzYWdlOjpEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZTogewogICAgICAgICAgICAgdWludDY0X3Qg
ZnJhbWVJRDsKICAgICAgICAgICAgIFN0cmluZyB0aXRsZTsKLSAgICAgICAgICAgIGlmICghYXJn
dW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQoZnJhbWVJRCwgdGl0bGUpKSkKKyAgICAgICAgICAg
IGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGZyYW1lSUQsIHRpdGxlKSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUod2ViRnJhbWUoZnJhbWVJRCksIHRpdGxlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6RGlkRmlyc3RMYXlvdXRGb3JG
cmFtZTogewogICAgICAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKLSAgICAgICAgICAgIGlmICgh
YXJndW1lbnRzLmRlY29kZShmcmFtZUlEKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGlk
Rmlyc3RMYXlvdXRGb3JGcmFtZSh3ZWJGcmFtZShmcmFtZUlEKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VQcm94eU1lc3NhZ2U6OkRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lOiB7CiAgICAgICAgICAgICB1aW50NjRfdCBm
cmFtZUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKGZyYW1lSUQpKQorICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShmcmFtZUlEKSkKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZSh3ZWJGcmFtZShmcmFtZUlEKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ4MCw3ICs0
ODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6RGlkQ2hhbmdlUHJvZ3Jlc3M6IHsKICAgICAg
ICAgICAgIGRvdWJsZSB2YWx1ZTsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZSh2
YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKHZhbHVlKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBkaWRDaGFuZ2VQcm9ncmVzcyh2YWx1ZSk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ5MCw3ICs0OTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViUGFnZVByb3h5TWVz
c2FnZTo6RGlkUmVjZWl2ZUV2ZW50OiB7CiAgICAgICAgICAgICB1aW50MzJfdCB0eXBlOwotICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKHR5cGUpKQorICAgICAgICAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZSh0eXBlKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICBkaWRSZWNlaXZlRXZlbnQoKFdlYkV2ZW50OjpUeXBlKXR5cGUpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICAg
ICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpUYWtlRm9jdXM6IHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBVc2UgZW51bSBoZXJlLgogICAgICAgICAgICAgYm9vbCBkaXJlY3Rpb247Ci0gICAg
ICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoZGlyZWN0aW9uKSkKKyAgICAgICAgICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUoZGlyZWN0aW9uKSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB0YWtlRm9jdXMoZGlyZWN0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTA4LDcgKzUwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNCiAgICAgICAgICAgICB1
aW50MzJfdCBuYXZpZ2F0aW9uVHlwZTsKICAgICAgICAgICAgIFN0cmluZyB1cmw7CiAgICAgICAg
ICAgICB1aW50NjRfdCBsaXN0ZW5lcklEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVj
b2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBuYXZpZ2F0aW9uVHlwZSwgdXJsLCBsaXN0ZW5lcklE
KSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFt
ZUlELCBuYXZpZ2F0aW9uVHlwZSwgdXJsLCBsaXN0ZW5lcklEKSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih3ZWJG
cmFtZShmcmFtZUlEKSwgc3RhdGljX2Nhc3Q8TmF2aWdhdGlvblR5cGU+KG5hdmlnYXRpb25UeXBl
KSwgdXJsLCBsaXN0ZW5lcklEKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTE4LDcgKzUxOCw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNCiAgICAgICAgICAgICB1aW50MzJfdCBuYXZpZ2F0
aW9uVHlwZTsKICAgICAgICAgICAgIFN0cmluZyB1cmw7CiAgICAgICAgICAgICB1aW50NjRfdCBs
aXN0ZW5lcklEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91
dChmcmFtZUlELCBuYXZpZ2F0aW9uVHlwZSwgdXJsLCBsaXN0ZW5lcklEKSkpCisgICAgICAgICAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBuYXZpZ2F0aW9u
VHlwZSwgdXJsLCBsaXN0ZW5lcklEKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHdlYkZyYW1lKGZyYW1lSUQpLCBz
dGF0aWNfY2FzdDxOYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLCB1cmwsIGxpc3RlbmVy
SUQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC01MjgsNyArNTI4LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok0KICAgICAgICAgICAgIFN0cmluZyBNSU1FVHlwZTsKICAgICAgICAgICAgIFN0
cmluZyB1cmw7CiAgICAgICAgICAgICB1aW50NjRfdCBsaXN0ZW5lcklEOwotICAgICAgICAgICAg
aWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBNSU1FVHlwZSwgdXJs
LCBsaXN0ZW5lcklEKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJ
UEM6Ok91dChmcmFtZUlELCBNSU1FVHlwZSwgdXJsLCBsaXN0ZW5lcklEKSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUod2ViRnJh
bWUoZnJhbWVJRCksIE1JTUVUeXBlLCB1cmwsIGxpc3RlbmVySUQpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC01MzYsNyArNTM2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICAgICAg
Y2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpEaWRSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWU6IHsK
ICAgICAgICAgICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAgICAgICAgICB1aW50NjRfdCBj
YWxsYmFja0lEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91
dChyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRz
LT5kZWNvZGUoQ29yZUlQQzo6T3V0KHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRpZFJ1bkphdmFTY3JpcHRJbk1haW5GcmFt
ZShyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC01NDQs
MTQgKzU0NCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogICAgICAgICBjYXNlIFdlYlBh
Z2VQcm94eU1lc3NhZ2U6OkRpZEdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uOiB7
CiAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0U3RyaW5nOwogICAgICAgICAgICAgdWludDY0X3Qg
Y2FsbGJhY2tJRDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpP
dXQocmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBkaWRHZXRSZW5kZXJUcmVlRXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpTZXRUb29s
VGlwOiB7CiAgICAgICAgICAgICBTdHJpbmcgdG9vbFRpcDsKLSAgICAgICAgICAgIGlmICghYXJn
dW1lbnRzLmRlY29kZSh0b29sVGlwKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNv
ZGUodG9vbFRpcCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgc2V0VG9v
bFRpcCh0b29sVGlwKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTU5LDcgKzU1OSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNCiAgICAgICAgIGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6
U2V0Q3Vyc29yOiB7CiAjaWYgVVNFKExBWllfTkFUSVZFX0NVUlNPUikKICAgICAgICAgICAgIEN1
cnNvciBjdXJzb3I7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoY3Vyc29yKSkK
KyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoY3Vyc29yKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBzZXRDdXJzb3IoY3Vyc29yKTsKICNlbmRpZgpAQCAt
NTc1LDE0ICs1NzUsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICAgICAgfQogICAg
ICAgICBjYXNlIFdlYlBhZ2VQcm94eU1lc3NhZ2U6OkJhY2tGb3J3YXJkQWRkSXRlbTogewogICAg
ICAgICAgICAgdWludDY0X3QgaXRlbUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVj
b2RlKENvcmVJUEM6Ok91dChpdGVtSUQpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUoQ29yZUlQQzo6T3V0KGl0ZW1JRCkpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIGFkZEl0ZW1Ub0JhY2tGb3J3YXJkTGlzdChwcm9jZXNzKCktPndlYkJhY2tGb3J3
YXJkSXRlbShpdGVtSUQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6QmFja0ZvcndhcmRHb1RvSXRlbTogewogICAgICAg
ICAgICAgdWludDY0X3QgaXRlbUlEOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2Rl
KENvcmVJUEM6Ok91dChpdGVtSUQpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KGl0ZW1JRCkpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIGdvVG9JdGVtSW5CYWNrRm9yd2FyZExpc3QocHJvY2VzcygpLT53ZWJCYWNrRm9yd2Fy
ZEl0ZW0oaXRlbUlEKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTU5Myw3ICs1OTMsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGFyZ3Vt
ZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkpCiB7CiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5PigpKSB7CiAg
ICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwpAQCAtNjA1LDE4ICs2MDUsMTggQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVAKICAgICAgICAgICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1Bh
Z2UgPSBjcmVhdGVOZXdQYWdlKCk7CiAgICAgICAgICAgICBpZiAobmV3UGFnZSkgewogICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIHRoZSByZWFsIHNpemUuCi0gICAgICAgICAgICAgICAg
cmVwbHkuZW5jb2RlKENvcmVJUEM6OkluKG5ld1BhZ2UtPnBhZ2VJRCgpLCBJbnRTaXplKDEwMCwg
MTAwKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhZ2Ut
PnBhZ2VOYW1lc3BhY2UoKS0+Y29udGV4dCgpLT5wcmVmZXJlbmNlcygpLT5zdG9yZSgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKG5ld1BhZ2UtPmRyYXdpbmdB
cmVhKCkpKSk7CisgICAgICAgICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpJbihuZXdQ
YWdlLT5wYWdlSUQoKSwgSW50U2l6ZSgxMDAsIDEwMCksIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3UGFnZS0+cGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkt
PnByZWZlcmVuY2VzKCktPnN0b3JlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKG5ld1BhZ2UtPmRyYXdpbmdBcmVhKCkpKSk7CiAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIHJlcGx5LmVuY29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oMCksIEludFNpemUoKSwgV2ViUHJlZmVyZW5jZXNTdG9yZSgpLCBEcmF3aW5n
QXJlYUJhc2U6OkRyYXdpbmdBcmVhSW5mbygpKSk7CisgICAgICAgICAgICAgICAgcmVwbHktPmVu
Y29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50NjRfdD4oMCksIEludFNpemUoKSwgV2Vi
UHJlZmVyZW5jZXNTdG9yZSgpLCBEcmF3aW5nQXJlYUJhc2U6OkRyYXdpbmdBcmVhSW5mbygpKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIFdlYlBhZ2VQcm94eU1lc3NhZ2U6OlJ1bkphdmFTY3JpcHRBbGVydDogewogICAgICAgICAg
ICAgdWludDY0X3QgZnJhbWVJRDsKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlOwotICAgICAg
ICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBtZXNzYWdl
KSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFt
ZUlELCBtZXNzYWdlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgcnVu
SmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lKGZyYW1lSUQpLCBtZXNzYWdlKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtNjI1LDExICs2MjUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVAKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgZW5jb2RlIHNvbWV0aGluZyBp
biB0aGUgY2FzZSB0aGF0IHRoZSBhcmd1bWVudHMgZG8gbm90IGRlY29kZSBjb3JyZWN0bHkuCiAg
ICAgICAgICAgICB1aW50NjRfdCBmcmFtZUlEOwogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7
Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoQ29yZUlQQzo6T3V0KGZyYW1lSUQs
IG1lc3NhZ2UpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6
T3V0KGZyYW1lSUQsIG1lc3NhZ2UpKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gcnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJhbWUoZnJhbWVJ
RCksIG1lc3NhZ2UpOwotICAgICAgICAgICAgcmVwbHkuZW5jb2RlKENvcmVJUEM6OkluKHJlc3Vs
dCkpOworICAgICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpJbihyZXN1bHQpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2ViUGFnZVByb3h5TWVz
c2FnZTo6UnVuSmF2YVNjcmlwdFByb21wdDogewpAQCAtNjM3LDQ3ICs2MzcsNDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVAKICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7CiAgICAgICAg
ICAgICBTdHJpbmcgbWVzc2FnZTsKICAgICAgICAgICAgIFN0cmluZyBkZWZhdWx0VmFsdWU7Ci0g
ICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoQ29yZUlQQzo6T3V0KGZyYW1lSUQsIG1l
c3NhZ2UsIGRlZmF1bHRWYWx1ZSkpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShDb3JlSVBDOjpPdXQoZnJhbWVJRCwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gcnVuSmF2YVNj
cmlwdFByb21wdCh3ZWJGcmFtZShmcmFtZUlEKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKTsKLSAg
ICAgICAgICAgIHJlcGx5LmVuY29kZShDb3JlSVBDOjpJbihyZXN1bHQpKTsKKyAgICAgICAgICAg
IHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4ocmVzdWx0KSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VQcm94eU1lc3NhZ2U6OkJhY2tGb3J3YXJk
Q3VycmVudEl0ZW06IHsKICAgICAgICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGN1cnJl
bnRJdGVtID0gbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCk7CiAgICAgICAgICAgICB1
aW50NjRfdCBjdXJyZW50SXRlbUlEID0gY3VycmVudEl0ZW0gPyBjdXJyZW50SXRlbS0+aXRlbUlE
KCkgOiAwOwotICAgICAgICAgICAgcmVwbHkuZW5jb2RlKENvcmVJUEM6OkluKGN1cnJlbnRJdGVt
SUQpKTsKKyAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oY3VycmVudEl0ZW1J
RCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdl
UHJveHlNZXNzYWdlOjpCYWNrRm9yd2FyZEl0ZW1BdEluZGV4OiB7CiAgICAgICAgICAgICBpbnQg
aXRlbUluZGV4OwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91
dChpdGVtSW5kZXgpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQ
Qzo6T3V0KGl0ZW1JbmRleCkpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAg
ICAgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5pdGVt
QXRJbmRleChpdGVtSW5kZXgpOwogICAgICAgICAgICAgdWludDY0X3QgaXRlbUlEID0gaXRlbSA/
IGl0ZW0tPml0ZW1JRCgpIDogMDsKLSAgICAgICAgICAgIHJlcGx5LmVuY29kZShDb3JlSVBDOjpJ
bihpdGVtSUQpKTsKKyAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oaXRlbUlE
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VQ
cm94eU1lc3NhZ2U6OkJhY2tGb3J3YXJkQmFja0xpc3RDb3VudDogewogICAgICAgICAgICAgaW50
IGJhY2tMaXN0Q291bnQgPSBtX2JhY2tGb3J3YXJkTGlzdC0+YmFja0xpc3RDb3VudCgpOwotICAg
ICAgICAgICAgcmVwbHkuZW5jb2RlKENvcmVJUEM6OkluKGJhY2tMaXN0Q291bnQpKTsKKyAgICAg
ICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oYmFja0xpc3RDb3VudCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdl
OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQ6IHsKICAgICAgICAgICAgIGludCBmb3J3YXJk
TGlzdENvdW50ID0gbV9iYWNrRm9yd2FyZExpc3QtPmZvcndhcmRMaXN0Q291bnQoKTsKLSAgICAg
ICAgICAgIHJlcGx5LmVuY29kZShDb3JlSVBDOjpJbihmb3J3YXJkTGlzdENvdW50KSk7CisgICAg
ICAgICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6OkluKGZvcndhcmRMaXN0Q291bnQpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgICAgICBjYXNlIFdlYlBhZ2VQcm94eU1lc3NhZ2U6OkRpZENoYW5nZUFjY2VsZXJh
dGVkQ29tcG9zaXRpbmc6IHsKICAgICAgICAgICAgIGJvb2wgY29tcG9zaXRpbmc7Ci0gICAgICAg
ICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoQ29yZUlQQzo6T3V0KGNvbXBvc2l0aW5nKSkpCisg
ICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChjb21wb3NpdGlu
ZykpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgZGlkQ2hhbmdlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyhjb21wb3NpdGluZyk7Ci0gICAgICAgICAgICByZXBseS5lbmNv
ZGUoKihkcmF3aW5nQXJlYSgpKSk7CisgICAgICAgICAgICByZXBseS0+ZW5jb2RlKCooZHJhd2lu
Z0FyZWEoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGIx
ZDdiMWE4OGYxZDY3MGI2OTNmYmVmMWQ5NzdlYTc0NDk0ZDhlODguLjEyOTRhZDdiYTI0MWJmYTcz
NzkzYzM5OTM1ZWMzNmYyOTVhZjJmMTEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0x
NDAsOCArMTQwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNlaXZlZFBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgV2ViRnJhbWVQcm94eSosIHVpbnQ2NF90IGxpc3RlbmVy
SUQpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciopOwogCiAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKCk7CiAgICAgdm9p
ZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZDg5ZDAyNTQ0YmI0ZTJiYmQ1OWVhOTYzOTY3ZTMzZDY5ZTAyMjE4Yi4u
OWYyMzU4ZjZkN2Y1MWMwZGJmZTkzMzRiNzcyOGIwOGQ2MjRhMTNmNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zMTUsNyArMzE1LDcgQEAgdm9pZCBXZWJQcm9jZXNz
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEMKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYkNvbnRleHQ+KCkpIHsKLSAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsICphcmd1bWVudHMpOyAgICAKKyAgICAgICAgbV9jb250
ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
ICAgIAogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMjcsNyArMzI3LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEMKICAgICBpZiAoIXBhZ2VQcm94eSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAotICAgIHBhZ2VQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCAqYXJndW1lbnRzKTsgICAgCisgICAgcGFnZVByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7ICAgIAogfQogCiB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQpAQCAtMzgw
LDcgKzM4MCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgaWYgKCFwYWdlUHJveHkp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsICphcmd1bWVudHMsICpyZXBseSk7CisgICAgcGFn
ZVByb3h5LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIHJlcGx5KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENsb3NlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggOWUyYTJlYzY4ODg3NGJjNzY2YTgyYmE3M2Q2
MThkMTU1NmY1ZjY2Zi4uYzY2ODFlOWE0MWZlY2YxNzNlNGJlN2VhNjUyMmE0ZjEwZWJiZDI2NyAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCkBAIC02MCwyNiArNjAsMjYgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0IAor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Qg
CiAgICAgewogICAgICAgICBBUElPYmplY3Q6OlR5cGUgdHlwZSA9IG1fcm9vdC0+dHlwZSgpOwot
ICAgICAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlwZSkpOworICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5cGUpKTsKICAgICAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQXJyYXk6IHsK
ICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5KiBhcnJheSA9IHN0YXRpY19jYXN0PEltbXV0YWJs
ZUFycmF5Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihhcnJheS0+c2l6ZSgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGFycmF5LT5zaXplKCkpKTsKICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYXJyYXktPnNpemUoKTsgKytpKQotICAgICAgICAgICAgICAgIGVu
Y29kZXIuZW5jb2RlKFBvc3RNZXNzYWdlRW5jb2RlcihhcnJheS0+YXQoaSkpKTsKKyAgICAgICAg
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUoUG9zdE1lc3NhZ2VFbmNvZGVyKGFycmF5LT5hdChpKSkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6
OlR5cGVTdHJpbmc6IHsKICAgICAgICAgICAgIFdlYlN0cmluZyogc3RyaW5nID0gc3RhdGljX2Nh
c3Q8V2ViU3RyaW5nKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0cmlu
Zy0+c3RyaW5nKCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0cmluZy0+c3RyaW5n
KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmpl
Y3Q6OlR5cGVCdW5kbGVQYWdlOiB7CiAgICAgICAgICAgICBXZWJQYWdlKiBwYWdlID0gc3RhdGlj
X2Nhc3Q8V2ViUGFnZSo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLmVuY29kZShwYWdl
LT5wYWdlSUQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocGFnZS0+cGFnZUlEKCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAgLTEw
NiwxNiArMTA2LDE2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wg
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUG9zdE1lc3NhZ2VEZWNv
ZGVyJiBjb2RlcikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQb3N0TWVzc2FnZURlY29kZXImIGNvZGVyKQogICAgIHsKICAgICAgICAg
dWludDMyX3QgdHlwZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBl
QXJyYXk6IHsKICAgICAgICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHNpemUpKQorICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6
ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBPd25BcnJheVB0cjxBUElPYmplY3QqPiBhcnJheTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICAgICAgICAgIEFQSU9iamVjdCogZWxlbWVudDsKICAgICAgICAgICAgICAgICBQb3N0
TWVzc2FnZURlY29kZXIgbWVzc2FnZUNvZGVyKCZlbGVtZW50KTsKLSAgICAgICAgICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VDb2RlcikpCisgICAgICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUobWVzc2FnZUNvZGVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgICAgIGFycmF5W2ldID0gZWxlbWVudDsKICAgICAgICAgICAg
IH0KQEAgLTEzNCwxNCArMTM0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBjYXNl
IEFQSU9iamVjdDo6VHlwZVN0cmluZzogewogICAgICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAg
ICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nKSkKKyAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKHN0cmluZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgKihjb2Rlci5tX3Jvb3QpID0gV2ViU3RyaW5nOjpjcmVhdGUoc3RyaW5nKS5s
ZWFrUmVmKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQ
SU9iamVjdDo6VHlwZVBhZ2U6IHsKICAgICAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRDsKLSAgICAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFnZUlEKSkKKyAgICAgICAgICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHBhZ2VJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgKihjb2Rlci5tX3Jvb3QpID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViUGFnZShw
YWdlSUQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
QVBJT2JqZWN0KiBtZXMKICAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2UodG9SZWYo
dGhpcyksIHRvUmVmKG1lc3NhZ2VOYW1lLmltcGwoKSksIHRvUmVmKG1lc3NhZ2VCb2R5KSwgbV9j
bGllbnQuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgYXJndW1lbnRzKQordm9pZCBJ
bmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PEluamVjdGVk
QnVuZGxlTWVzc2FnZTo6S2luZD4oKSkgewogICAgICAgICBjYXNlIEluamVjdGVkQnVuZGxlTWVz
c2FnZTo6UG9zdE1lc3NhZ2U6IHsKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOgogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgUmVmUHRyPEFQ
SU9iamVjdD4KICAgICAgICAgICAgIEFQSU9iamVjdCogbWVzc2FnZUJvZHkgPSAwOwogICAgICAg
ICAgICAgUG9zdE1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VDb2RlcigmbWVzc2FnZUJvZHkpOwotICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwg
bWVzc2FnZUNvZGVyKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJ
UEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZUNvZGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlTmFtZSwgbWVzc2Fn
ZUJvZHkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaAppbmRleCA4NTdhYzllZDMyMmY4YjdhMjc3MTkwZTM2MzU0YjU0ZmU5N2VhNGNk
Li4xNzk0NWE0OTAwOWNiM2Y2MWZiYTBhM2RmM2M5ZGY3MDBkNzVmZGNjIDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNzcs
NyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGVzdHJveVBhZ2UoV2ViUGFnZSopOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgQVBJT2Jq
ZWN0Kik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKIHByaXZhdGU6CiAgICAgSW5qZWN0
ZWRCdW5kbGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNwcAppbmRleCAyNGJh
ZGZmYzY2MGI3YmVmMDRlMThlNGYyMDRmMWRlMjc0MmI0NTdkLi4xYTE2MDk2NGE2Y2YyMzIzNGEw
ZjdhM2JlNzk2YmM2YjM0ZmNjZjE3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAKQEAgLTE4MCwxMCArMTgwLDEw
IEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpkaWRVcGRhdGUoKQogICAgIGRpc3Bs
YXkoKTsKIH0KIAotdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImIGFyZ3VtZW50cykKK3ZvaWQgQ2h1bmtlZFVwZGF0ZURy
YXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCiB7CiAgICAgRHJhd2luZ0FyZWFJRCB0YXJnZXREcmF3aW5nQXJlYUlEOwotICAgIGlmICgh
YXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQodGFyZ2V0RHJhd2luZ0FyZWFJRCkpKQorICAg
IGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHRhcmdldERyYXdpbmdBcmVhSUQp
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gV2UgY2FuIHN3aXRjaCBkcmF3aW5nIGFyZWFz
IG9uIHRoZSBmbHksIHNvIGlmIHRoaXMgbWVzc2FnZSB3YXMgdGFyZ2V0dGVkIGF0IGFuIG9ic29s
ZXRlIGRyYXdpbmcgYXJlYSwgaWdub3JlIGl0LgpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgQ2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6CiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PERyYXdpbmdBcmVhTWVz
c2FnZTo6S2luZD4oKSkgewogICAgICAgICBjYXNlIERyYXdpbmdBcmVhTWVzc2FnZTo6U2V0U2l6
ZTogewogICAgICAgICAgICAgSW50U2l6ZSBzaXplOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVu
dHMuZGVjb2RlKENvcmVJUEM6Ok91dChzaXplKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChzaXplKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgICAgICBzZXRTaXplKHNpemUpOwpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgQ2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6CiAKICAgICAgICAgY2FzZSBEcmF3aW5nQXJlYU1lc3NhZ2U6OlJlc3Vt
ZVBhaW50aW5nOiB7CiAgICAgICAgICAgICBib29sIGZvcmNlUmVwYWludDsKLSAgICAgICAgICAg
IGlmICghYXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQoZm9yY2VSZXBhaW50KSkpCisgICAg
ICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmb3JjZVJlcGFpbnQp
KSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJl
c3VtZVBhaW50aW5nKGZvcmNlUmVwYWludCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oCmluZGV4IDliOTM3ZDk5MmY2NmI2
YTc5YTIzODI0NDMzYzkzMjM4NjQ3ZGNkMmYuLjc2NzE5OGYyNTczZmUwMzhkNWYyZDZlOWZkYWNh
OWQzNmIyMjI1YWEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYS5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0No
dW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc3luY0NvbXBvc2l0aW5nTGF5ZXJzKCkgeyB9CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBz
Y2hlZHVsZURpc3BsYXkoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5o
CmluZGV4IDFjYTNlMjc0OGJlMzFhZThkMjRhYjk0MGY3NDRjNTljZTQ2NjRiNWUuLjVmZjNhZTVi
YTdkYzNiMzM3OTU2MzU5ZjBiZmFkMGI4MTQwNDcwMzYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHN5bmNDb21wb3NpdGluZ0xheWVycygpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAg
RHJhd2luZ0FyZWEoVHlwZSwgRHJhd2luZ0FyZWFJRCwgV2ViUGFnZSopOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHAgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcAppbmRl
eCAyMTNlZmExOWEwOTQ4MjVjY2Q4NzkxYWExZThlN2ZmOWE3OGY2MzAyLi41YzMxOWU3OThjYjdm
ZjkwYmUxZTcwNTQ2ZGJiNmM0MDAwMzI1OTc3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcApAQCAtMTQ2LDEwICsxNDYs
MTAgQEAgdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjpkaWRVcGRhdGUoKQogICAgIGRpc3Bs
YXkoKTsKIH0KIAotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiBhcmd1bWVudHMpCit2b2lkIExheWVyQmFja2VkRHJhd2lu
Z0FyZWE6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
IHsKICAgICBEcmF3aW5nQXJlYUlEIHRhcmdldERyYXdpbmdBcmVhSUQ7Ci0gICAgaWYgKCFhcmd1
bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dCh0YXJnZXREcmF3aW5nQXJlYUlEKSkpCisgICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQodGFyZ2V0RHJhd2luZ0FyZWFJRCkpKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBXZSBjYW4gc3dpdGNoIGRyYXdpbmcgYXJlYXMgb24g
dGhlIGZseSwgc28gaWYgdGhpcyBtZXNzYWdlIHdhcyB0YXJnZXR0ZWQgYXQgYW4gb2Jzb2xldGUg
ZHJhd2luZyBhcmVhLCBpZ25vcmUgaXQuCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBMYXllckJh
Y2tlZERyYXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWUKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8RHJhd2luZ0FyZWFNZXNzYWdl
OjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgRHJhd2luZ0FyZWFNZXNzYWdlOjpTZXRTaXplOiB7
CiAgICAgICAgICAgICBJbnRTaXplIHNpemU7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5k
ZWNvZGUoQ29yZUlQQzo6T3V0KHNpemUpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUoQ29yZUlQQzo6T3V0KHNpemUpKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgICAgIHNldFNpemUoc2l6ZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmgKaW5kZXggMzc0OTQyMGZiYzlhMmViNjA2MTg1
ZGM3OWQxMGM4ZDg3NjBlYzU1Mi4uNDcwNWU3MTNkOGRiNjM2NDhjNGYyNDk5YzVkMDI3Y2UzMjdm
Y2FjMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWRE
cmF3aW5nQXJlYS5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2Vk
RHJhd2luZ0FyZWEuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0Nv
bXBvc2l0aW5nTGF5ZXJzKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwogCiBwcml2YXRlOgogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDhmYzUxNmM3OTVmMWI2YTVlNmZkMGY4NTJmOGIzNzE5ODJlZDViZjguLjM0YmEyZGI3OGYw
NDY4ZTI5ODVlM2E1ZmJmZTg4MmExNzQ5OTM4NjcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC01NDIsNyArNTQyLDcgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRGVm
YXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmQK
ICAgICAgICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5
KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYT4oKSkgewogICAg
ICAgICBBU1NFUlQobV9kcmF3aW5nQXJlYSk7CkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWcKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8V2ViUGFnZU1lc3NhZ2U6
OktpbmQ+KCkpIHsKICAgICAgICAgY2FzZSBXZWJQYWdlTWVzc2FnZTo6U2V0QWN0aXZlOiB7CiAg
ICAgICAgICAgICBib29sIGFjdGl2ZTsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29k
ZShhY3RpdmUpKQorICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShhY3RpdmUpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIAogICAgICAgICAgICAgc2V0QWN0aXZl
KGFjdGl2ZSk7CkBAIC01NjEsNyArNTYxLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICAg
ICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VNZXNzYWdlOjpTZXRGb2N1c2VkOiB7CiAgICAg
ICAgICAgICBib29sIGZvY3VzZWQ7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUo
Zm9jdXNlZCkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKGZvY3VzZWQpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIAogICAgICAgICAgICAgc2V0Rm9j
dXNlZChmb2N1c2VkKTsKQEAgLTU2OSw3ICs1NjksNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
ZwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2ViUGFnZU1lc3NhZ2U6OlNldElzSW5XaW5kb3c6
IHsKICAgICAgICAgICAgIGJvb2wgaXNJbldpbmRvdzsKLSAgICAgICAgICAgIGlmICghYXJndW1l
bnRzLmRlY29kZShpc0luV2luZG93KSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNv
ZGUoaXNJbldpbmRvdykpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBzZXRJc0luV2luZG93KGlzSW5XaW5kb3cpOwpAQCAtNTc3LDE0ICs1NzcsMTQg
QEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBh
Z2VNZXNzYWdlOjpNb3VzZUV2ZW50OiB7CiAgICAgICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50
OwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKGV2ZW50KSkKKyAgICAgICAgICAg
IGlmICghYXJndW1lbnRzLT5kZWNvZGUoZXZlbnQpKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIG1vdXNlRXZlbnQoZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgV2ViUGFnZU1lc3NhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdl
OiB7CiAgICAgICAgICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlOwotICAgICAgICAgICAg
aWYgKCFhcmd1bWVudHMuZGVjb2RlKHN0b3JlKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRz
LT5kZWNvZGUoc3RvcmUpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgcHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RvcmUpOwpAQCAtNTkyLDcgKzU5Miw3
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQ
YWdlTWVzc2FnZTo6V2hlZWxFdmVudDogewogICAgICAgICAgICAgV2ViV2hlZWxFdmVudCBldmVu
dDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZShldmVudCkpCisgICAgICAgICAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKGV2ZW50KSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgICAgIHdoZWVsRXZlbnQoZXZlbnQpOwpAQCAtNjAwLDcgKzYwMCw3IEBAIHZv
aWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlTWVz
c2FnZTo6S2V5RXZlbnQ6IHsKICAgICAgICAgICAgIFdlYktleWJvYXJkRXZlbnQgZXZlbnQ7Ci0g
ICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoZXZlbnQpKQorICAgICAgICAgICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShldmVudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgICAgICBrZXlFdmVudChldmVudCk7CkBAIC02MDgsNyArNjA4LDcgQEAgdm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWcKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VNZXNzYWdlOjpM
b2FkVVJMOiB7CiAgICAgICAgICAgICBTdHJpbmcgdXJsOwotICAgICAgICAgICAgaWYgKCFhcmd1
bWVudHMuZGVjb2RlKHVybCkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKHVy
bCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBs
b2FkVVJMKHVybCk7CkBAIC02MTksNyArNjE5LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYlBhZ2VNZXNzYWdlOjpSZWxvYWQ6
IHsKICAgICAgICAgICAgIGJvb2wgcmVsb2FkRnJvbU9yaWdpbjsKLSAgICAgICAgICAgIGlmICgh
YXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQocmVsb2FkRnJvbU9yaWdpbikpKQorICAgICAg
ICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQocmVsb2FkRnJvbU9yaWdp
bikpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgcmVsb2FkKHJlbG9h
ZEZyb21PcmlnaW4pOwpAQCAtNjI3LDIxICs2MjcsMjEgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWcKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYlBhZ2VNZXNzYWdlOjpHb0ZvcndhcmQ6IHsK
ICAgICAgICAgICAgIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEOwotICAgICAgICAgICAgaWYg
KCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dChiYWNrRm9yd2FyZEl0ZW1JRCkpKQorICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQoYmFja0ZvcndhcmRJ
dGVtSUQpKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBnb0ZvcndhcmQo
YmFja0ZvcndhcmRJdGVtSUQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgV2ViUGFnZU1lc3NhZ2U6OkdvQmFjazogewogICAgICAgICAgICAgdWludDY0X3Qg
YmFja0ZvcndhcmRJdGVtSUQ7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGJhY2tGb3J3YXJkSXRlbUlEKSkpCisgICAgICAgICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChiYWNrRm9yd2FyZEl0ZW1JRCkpKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIGdvQmFjayhiYWNrRm9yd2FyZEl0ZW1JRCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICBjYXNlIFdlYlBhZ2VNZXNzYWdlOjpH
b1RvQmFja0ZvcndhcmRJdGVtOiB7CiAgICAgICAgICAgICB1aW50NjRfdCBiYWNrRm9yd2FyZEl0
ZW1JRDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQoYmFj
a0ZvcndhcmRJdGVtSUQpKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGJhY2tGb3J3YXJkSXRlbUlEKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgZ29Ub0JhY2tGb3J3YXJkSXRlbShiYWNrRm9yd2FyZEl0ZW1JRCk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC02NTAsNyArNjUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWcKICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7CiAgICAgICAgICAgICB1aW50NjRfdCBs
aXN0ZW5lcklEOwogICAgICAgICAgICAgdWludDMyX3QgcG9saWN5QWN0aW9uOwotICAgICAgICAg
ICAgaWYgKCFhcmd1bWVudHMuZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBsaXN0ZW5lcklE
LCBwb2xpY3lBY3Rpb24pKSkKKyAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeUFjdGlvbikpKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih3ZWJG
cmFtZShmcmFtZUlEKSwgbGlzdGVuZXJJRCwgKFdlYkNvcmU6OlBvbGljeUFjdGlvbilwb2xpY3lB
Y3Rpb24pOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjU4LDE0ICs2NTgsMTQgQEAgdm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWcKICAgICAgICAgY2FzZSBXZWJQYWdlTWVzc2FnZTo6UnVuSmF2YVNj
cmlwdEluTWFpbkZyYW1lOiB7CiAgICAgICAgICAgICBTdHJpbmcgc2NyaXB0OwogICAgICAgICAg
ICAgdWludDY0X3QgY2FsbGJhY2tJRDsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmRlY29k
ZShDb3JlSVBDOjpPdXQoc2NyaXB0LCBjYWxsYmFja0lEKSkpCisgICAgICAgICAgICBpZiAoIWFy
Z3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChzY3JpcHQsIGNhbGxiYWNrSUQpKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUo
c2NyaXB0LCBjYWxsYmFja0lEKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIFdlYlBhZ2VNZXNzYWdlOjpHZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRh
dGlvbjogewogICAgICAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRDsKLSAgICAgICAgICAgIGlm
ICghYXJndW1lbnRzLmRlY29kZShjYWxsYmFja0lEKSkKKyAgICAgICAgICAgIGlmICghYXJndW1l
bnRzLT5kZWNvZGUoY2FsbGJhY2tJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgZ2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oY2FsbGJhY2tJRCk7CiAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YTMxYjA4NjY2MGQ5MDFiMjljOTg0ODY1MDQ5ZDZjYWM1OWQ0YTgwNy4uNTQzMDNmNDg4YTBmZjEw
ZmVkZTM3ZWVlNTg4NjUzODgzMTM4MWQ1YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93KCk7CiAKICAgICAv
LyAtLSBDYWxsZWQgZnJvbSBXZWJQcm9jZXNzLgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAog
ICAgIC8vIC0tIEluamVjdGVkQnVuZGxlIG1ldGhvZHMKICAgICB2b2lkIGluaXRpYWxpemVJbmpl
Y3RlZEJ1bmRsZUVkaXRvckNsaWVudChXS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQqKTsKZGlmZiAt
LWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA1YzMwNTkzNjRjMDJiMGY0MWYzMjI4M2ZkNGYxZWIx
ZDNlN2U2M2RhLi4yODNhZDFmOTNkMTYzYWZmOWY0MTMwNTI5NzdiNWZlMzE4MzMwNzk3IDEwMDY0
NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXMKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0lu
amVjdGVkQnVuZGxlPigpKSB7CiAgICAgICAgIGlmICghbV9pbmplY3RlZEJ1bmRsZSkKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9pbmplY3RlZEJ1bmRsZS0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCAqYXJndW1lbnRzKTsgICAgCisgICAgICAgIG1faW5q
ZWN0ZWRCdW5kbGUtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMwNiw3ICszMDYsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
OwogICAgIAotICAgIHBhZ2UtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgKmFyZ3VtZW50cyk7ICAgIAorICAgIHBhZ2UtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpkaWRDbG9z
ZShDb3JlSVBDOjpDb25uZWN0aW9uKikK
</data>
<flag name="review"
          id="52189"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>