<?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>191612</bug_id>
          
          <creation_ts>2018-11-13 17:00:07 -0800</creation_ts>
          <short_desc>Web Inspector: Pass Inspector::FrontendChannel as a reference connect/disconnect methods</short_desc>
          <delta_ts>2018-11-14 15:57:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1478226</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-13 17:00:07 -0800</bug_when>
    <thetext>Pass Inspector::FrontendChannel as a reference connect/disconnect methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478228</commentid>
    <comment_count>1</comment_count>
      <attachid>354731</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-13 17:01:13 -0800</bug_when>
    <thetext>Created attachment 354731
[PATCH] Proposed Fix (Depends on bug 191494)

Depends on bug 191494.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478569</commentid>
    <comment_count>2</comment_count>
      <attachid>354731</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-11-14 12:06:39 -0800</bug_when>
    <thetext>Comment on attachment 354731
[PATCH] Proposed Fix (Depends on bug 191494)

r=me, nice cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478587</commentid>
    <comment_count>3</comment_count>
      <attachid>354844</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-14 13:06:46 -0800</bug_when>
    <thetext>Created attachment 354844
[PATCH] For Bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478592</commentid>
    <comment_count>4</comment_count>
      <attachid>354846</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-14 13:32:17 -0800</bug_when>
    <thetext>Created attachment 354846
[PATCH] For Bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478612</commentid>
    <comment_count>5</comment_count>
      <attachid>354850</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-14 14:03:07 -0800</bug_when>
    <thetext>Created attachment 354850
[PATCH] For Bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478670</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-14 15:56:27 -0800</bug_when>
    <thetext>&lt;https://trac.webkit.org/r238206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478671</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-14 15:57:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/46079224&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354731</attachid>
            <date>2018-11-13 17:01:13 -0800</date>
            <delta_ts>2018-11-14 12:06:39 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix (Depends on bug 191494)</desc>
            <filename>reference-1.patch</filename>
            <type>text/plain</type>
            <size>33331</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAwN2MxMjMzNmVlLi5hMTk4MjczZDMxZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMTEtMTMgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNvbm5lY3Qv
ZGlzY29ubmVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTE2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAg
ICAoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKElu
c3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVt
b3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2Nv
YS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6
UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpzZXR1cCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6Y2xvc2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9i
YWxPYmplY3REZWJ1Z2dhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3REZWJ1
Z2dhYmxlOjpjb25uZWN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxl
OjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJs
ZS5oOgorCiAyMDE4LTExLTEyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogS2VlcCBXZWIgSW5zcGVjdG9yIHdpbmRvdyBhbGl2
ZSBhY3Jvc3MgcHJvY2VzcyBzd2FwcyAoUFNPTikgKFJlbW90ZSBJbnNwZWN0b3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuY3BwCmluZGV4IDY1Zjg1MjVhMmU4Li5kNDA4ZDM2NGYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5jcHAKQEAgLTM2LDI4ICszNiwyNCBAQCBSZWY8RnJvbnRlbmRSb3V0ZXI+IEZyb250
ZW5kUm91dGVyOjpjcmVhdGUoKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyb250ZW5kUm91
dGVyKTsKIH0KIAotdm9pZCBGcm9udGVuZFJvdXRlcjo6Y29ubmVjdEZyb250ZW5kKEZyb250ZW5k
Q2hhbm5lbCogY29ubmVjdGlvbikKK3ZvaWQgRnJvbnRlbmRSb3V0ZXI6OmNvbm5lY3RGcm9udGVu
ZChGcm9udGVuZENoYW5uZWwmIGNvbm5lY3Rpb24pCiB7Ci0gICAgQVNTRVJUX0FSRyhjb25uZWN0
aW9uLCBjb25uZWN0aW9uKTsKLQotICAgIGlmIChtX2Nvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5l
Y3Rpb24pKSB7CisgICAgaWYgKG1fY29ubmVjdGlvbnMuY29udGFpbnMoJmNvbm5lY3Rpb24pKSB7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9jb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbik7CisgICAgbV9jb25uZWN0aW9u
cy5hcHBlbmQoJmNvbm5lY3Rpb24pOwogfQogCi12b2lkIEZyb250ZW5kUm91dGVyOjpkaXNjb25u
ZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiBjb25uZWN0aW9uKQordm9pZCBGcm9udGVuZFJv
dXRlcjo6ZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYgY29ubmVjdGlvbikKIHsK
LSAgICBBU1NFUlRfQVJHKGNvbm5lY3Rpb24sIGNvbm5lY3Rpb24pOwotCi0gICAgaWYgKCFtX2Nv
bm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24pKSB7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb25z
LmNvbnRhaW5zKCZjb25uZWN0aW9uKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlRmlyc3Qo
Y29ubmVjdGlvbik7CisgICAgbV9jb25uZWN0aW9ucy5yZW1vdmVGaXJzdCgmY29ubmVjdGlvbik7
CiB9CiAKIHZvaWQgRnJvbnRlbmRSb3V0ZXI6OmRpc2Nvbm5lY3RBbGxGcm9udGVuZHMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5oCmluZGV4IGVlNjViMmYwZjkyLi4zZDNjMDQ1NTQ2MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaApAQCAtNDMsOCArNDMsOCBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBmcm9udGVu
ZENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9ucy5zaXplKCk7IH0KIAotICAgIHZv
aWQgY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVj
dEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEZy
b250ZW5kQ2hhbm5lbCYpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hh
bm5lbCYpOwogICAgIHZvaWQgZGlzY29ubmVjdEFsbEZyb250ZW5kcygpOwogCiAgICAgdm9pZCBz
ZW5kRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBkNGQ3YWExODY4Ni4uYWQ0NWY2ZjUzMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTExOSwxMCArMTE5
LDggQEAgdm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6Omdsb2JhbE9iamVj
dERlc3Ryb3llZCgpCiAgICAgbV9hZ2VudHMuZGlzY2FyZFZhbHVlcygpOwogfQogCi12b2lkIEpT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEZyb250ZW5k
Q2hhbm5lbCogZnJvbnRlbmRDaGFubmVsLCBib29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9v
bCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXI6OmNvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5lbCwgYm9v
bCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSkKIHsKLSAgICBB
U1NFUlRfQVJHKGZyb250ZW5kQ2hhbm5lbCwgZnJvbnRlbmRDaGFubmVsKTsKLQogICAgIG1faXNB
dXRvbWF0aWNJbnNwZWN0aW9uID0gaXNBdXRvbWF0aWNJbnNwZWN0aW9uOwogICAgIG1fcGF1c2VB
ZnRlckluaXRpYWxpemF0aW9uID0gaW1tZWRpYXRlbHlQYXVzZTsKIApAQCAtMTQ3LDEwICsxNDUs
OCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250
ZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbgogI2VuZGlmCiB9CiAKLXZvaWQgSlNHbG9iYWxP
YmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFu
bmVsKiBmcm9udGVuZENoYW5uZWwpCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVs
KQogewotICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwot
CiAgICAgLy8gRklYTUU6IGNoYW5nZSB0aGlzIHRvIG5vdGlmeSBhZ2VudHMgd2hpY2ggZnJvbnRl
bmQgaGFzIGRpc2Nvbm5lY3RlZCAoYnkgaWQpLgogICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RvckRlc3Ryb3llZCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDhmYjZjYmI2ZmZhLi5j
MjE4OGQ4YmM0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02
OCw4ICs2OCw4IEBAIHB1YmxpYzoKICAgICBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCYpOwogICAgIH5KU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXIoKTsKIAotICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCos
IGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpOwotICAg
IHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgY29u
bmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9u
LCBib29sIGltbWVkaWF0ZWx5UGF1c2UpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEZy
b250ZW5kQ2hhbm5lbCYpOwogCiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgKaW5kZXgg
OGFiNmQ3NmI3OWEuLjRiYmI2YTQ0ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJn
ZXQuaApAQCAtNDUsOCArNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0KCk7CiAgICAgdm9p
ZCB1cGRhdGUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCos
IGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVz
ZSA9IGZhbHNlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFu
bmVsKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYsIGJv
b2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9
IGZhbHNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVs
JikgPSAwOwogCiAgICAgdW5zaWduZWQgdGFyZ2V0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogICAgIHZvaWQgc2V0VGFyZ2V0SWRlbnRpZmllcih1bnNpZ25lZCBp
ZGVudGlmaWVyKSB7IG1faWRlbnRpZmllciA9IGlkZW50aWZpZXI7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rp
b25Ub1RhcmdldENvY29hLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW0KaW5kZXggMDliNWY2YWMx
NDAuLjRhMzQyNjk1NWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXRDb2NvYS5tbQpAQCAtMTcxLDEzICsxNzEsMTMgQEAgYm9vbCBSZW1vdGVDb25u
ZWN0aW9uVG9UYXJnZXQ6OnNldHVwKGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBib29sIGF1
dG9tYXRpY2EKICAgICAgICAgICAgICAgICBtX3RhcmdldCA9IG51bGxwdHI7CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGlzPFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ+KG1fdGFyZ2V0KSkgewogICAg
ICAgICAgICAgICAgIGF1dG8gY2FzdGVkVGFyZ2V0ID0gZG93bmNhc3Q8UmVtb3RlSW5zcGVjdGlv
blRhcmdldD4obV90YXJnZXQpOwotICAgICAgICAgICAgICAgIGNhc3RlZFRhcmdldC0+Y29ubmVj
dCh0aGlzLCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGF1dG9tYXRpY2FsbHlQYXVzZSk7CisgICAg
ICAgICAgICAgICAgY2FzdGVkVGFyZ2V0LT5jb25uZWN0KCp0aGlzLCBpc0F1dG9tYXRpY0luc3Bl
Y3Rpb24sIGF1dG9tYXRpY2FsbHlQYXVzZSk7CiAgICAgICAgICAgICAgICAgbV9jb25uZWN0ZWQg
PSB0cnVlOwogCiAgICAgICAgICAgICAgICAgUmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS51
cGRhdGVUYXJnZXRMaXN0aW5nKHRhcmdldElkZW50aWZpZXIpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChpczxSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0PihtX3RhcmdldCkpIHsKICAgICAgICAgICAg
ICAgICBhdXRvIGNhc3RlZFRhcmdldCA9IGRvd25jYXN0PFJlbW90ZUF1dG9tYXRpb25UYXJnZXQ+
KG1fdGFyZ2V0KTsKLSAgICAgICAgICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QodGhpcyk7
CisgICAgICAgICAgICAgICAgY2FzdGVkVGFyZ2V0LT5jb25uZWN0KCp0aGlzKTsKICAgICAgICAg
ICAgICAgICBtX2Nvbm5lY3RlZCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICBSZW1vdGVJbnNw
ZWN0b3I6OnNpbmdsZXRvbigpLnVwZGF0ZVRhcmdldExpc3RpbmcodGFyZ2V0SWRlbnRpZmllcik7
CkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OmNsb3Nl
KCkKICAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fdGFyZ2V0TXV0ZXgp
OwogICAgICAgICAgICAgaWYgKG1fdGFyZ2V0KSB7CiAgICAgICAgICAgICAgICAgaWYgKG1fY29u
bmVjdGVkKQotICAgICAgICAgICAgICAgICAgICBtX3RhcmdldC0+ZGlzY29ubmVjdCh0aGlzKTsK
KyAgICAgICAgICAgICAgICAgICAgbV90YXJnZXQtPmRpc2Nvbm5lY3QoKnRoaXMpOwogCiAgICAg
ICAgICAgICAgICAgbV90YXJnZXQgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVi
dWdnYWJsZS5jcHAKaW5kZXggZjA1MzYwYzFmNmQuLjM3ZDNjMjg5NjExIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdn
YWJsZS5jcHAKQEAgLTUwLDE0ICs1MCwxNCBAQCBTdHJpbmcgSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlOjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gbmFtZS5pc0VtcHR5KCkgPyAiSlNDb250ZXh0
Il9zIDogbmFtZTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNvbm5lY3Qo
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgYXV0b21hdGljSW5zcGVjdGlv
biwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6
OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwsIGJvb2wgYXV0b21hdGlj
SW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewogICAgIEpTTG9ja0hvbGRlciBs
b2NrZXIoJm1fZ2xvYmFsT2JqZWN0LnZtKCkpOwogCiAgICAgbV9nbG9iYWxPYmplY3QuaW5zcGVj
dG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwsIGF1dG9tYXRp
Y0luc3BlY3Rpb24sIGltbWVkaWF0ZWx5UGF1c2UpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkK
K3ZvaWQgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5l
bCYgZnJvbnRlbmRDaGFubmVsKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1fZ2xvYmFs
T2JqZWN0LnZtKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDA1Nzk5MDk0ZmQ2Li43Y2JjMGMy
MTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTUxLDggKzUxLDggQEAgcHVibGljOgogICAgIFN0
cmluZyBuYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNMb2NhbERlYnVnZ2VyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6
OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJv
b2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lkIGRpc2Nvbm5lY3Qo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lkIGNvbm5lY3QoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZh
bHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CisgICAgdm9pZCBkaXNj
b25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAgICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CiAKICAg
ICBib29sIGF1dG9tYXRpY0luc3BlY3Rpb25BbGxvd2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg2ZjhmYjYxNTExLi5iN2MwMmY3MWJjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTExLTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBjb25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNjEyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6Y29ubmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdCk6CisgICAgICAgICogcGFnZS9QYWdl
RGVidWdnYWJsZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclN0dWJGcm9udGVuZDo6SW5zcGVjdG9yU3R1YkZyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0dWJGcm9udGVuZDo6Y2xvc2VXaW5kb3cpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpjb25uZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdn
YWJsZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJ
bnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHk6OmNvbm5lY3RUb1dvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySW5zcGVjdG9yUHJveHk6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaDoKKwogMjAx
OC0xMS0xMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEtlZXAgV2ViIEluc3BlY3RvciB3aW5kb3cgYWxpdmUgYWNyb3NzIHBy
b2Nlc3Mgc3dhcHMgKFBTT04pIChSZW1vdGUgSW5zcGVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGU2ZDRiMDIzNWZiLi40
NGFhODFiMmE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMjU0LDkgKzI1NCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldv
CiAgICAgICAgIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQtPndpbmRvd09iamVjdENsZWFyZWQo
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoSW5zcGVj
dG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRpY0lu
c3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENo
YW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2Up
CiB7Ci0gICAgQVNTRVJUX0FSRyhmcm9udGVuZENoYW5uZWwsIGZyb250ZW5kQ2hhbm5lbCk7CiAg
ICAgQVNTRVJUKG1faW5zcGVjdG9yQ2xpZW50KTsKIAogICAgIC8vIElmIGEgZnJvbnRlbmQgaGFz
IGNvbm5lY3RlZCBlbmFibGUgdGhlIGRldmVsb3BlciBleHRyYXMgYW5kIGtlZXAgdGhlbSBlbmFi
bGVkLgpAQCAtMjg1LDcgKzI4NCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoCiAjZW5kaWYK
IH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwpCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
c2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5lbCkKIHsKICAg
ICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoZnJvbnRlbmRDaGFubmVsKTsK
IApAQCAtMzYyLDcgKzM2MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2hvdygpCiAg
ICAgaWYgKG1fZnJvbnRlbmRSb3V0ZXItPmhhc0xvY2FsRnJvbnRlbmQoKSkKICAgICAgICAgbV9p
bnNwZWN0b3JDbGllbnQtPmJyaW5nRnJvbnRlbmRUb0Zyb250KCk7CiAgICAgZWxzZSBpZiAoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCA9IG1faW5zcGVjdG9yQ2xp
ZW50LT5vcGVuTG9jYWxGcm9udGVuZCh0aGlzKSkKLSAgICAgICAgY29ubmVjdEZyb250ZW5kKGZy
b250ZW5kQ2hhbm5lbCk7CisgICAgICAgIGNvbm5lY3RGcm9udGVuZCgqZnJvbnRlbmRDaGFubmVs
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRJc1VuZGVyVGVzdChib29sIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgK
aW5kZXggOWZkZDNiNzE3NWQuLjQ5MmZjOGE0MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTkxLDggKzkxLDggQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzTG9jYWxGcm9udGVuZCgpIGNvbnN0OwogICAgIGJvb2wgaGFzUmVtb3RlRnJv
bnRlbmQoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29ubmVjdEZyb250ZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24g
PSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlLCBib29sIGlt
bWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRpc2Nvbm5lY3RBbGxGcm9udGVuZHMoKTsKIAogICAgIHZvaWQgaW5zcGVjdChO
b2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKaW5kZXggZTVjNzQ1OGYxYzguLmQyYzAyM2ZjY2MwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb25uZWN0RnJvbnRlbmQoKQogICAgIG1fZXhlY3V0aW9uU3RvcHdhdGNoLT5zdGFydCgpOwog
CiAgICAgbV9mb3J3YXJkaW5nQ2hhbm5lbCA9IHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyVG9QYWdl
RnJvbnRlbmRDaGFubmVsPihtX3dvcmtlckdsb2JhbFNjb3BlKTsKLSAgICBtX2Zyb250ZW5kUm91
dGVyLT5jb25uZWN0RnJvbnRlbmQobV9mb3J3YXJkaW5nQ2hhbm5lbC5nZXQoKSk7CisgICAgbV9m
cm9udGVuZFJvdXRlci0+Y29ubmVjdEZyb250ZW5kKCptX2ZvcndhcmRpbmdDaGFubmVsLmdldCgp
KTsKICAgICBtX2FnZW50cy5kaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoJm1fZnJvbnRlbmRS
b3V0ZXIuZ2V0KCksICZtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpKTsKIH0KIApAQCAtMTMwLDcg
KzEzMCw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250
ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAgICAgfSk7CiAKICAgICBtX2FnZW50
cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwotICAgIG1fZnJvbnRlbmRS
b3V0ZXItPmRpc2Nvbm5lY3RGcm9udGVuZChtX2ZvcndhcmRpbmdDaGFubmVsLmdldCgpKTsKKyAg
ICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoKm1fZm9yd2FyZGluZ0NoYW5u
ZWwuZ2V0KCkpOwogICAgIG1fZm9yd2FyZGluZ0NoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCmluZGV4IDMyZTRjYjdhYTU4Li5kOWNkZTRm
NWU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKQEAgLTY5LDE2ICs2
OSwxNCBAQCBib29sIFBhZ2VEZWJ1Z2dhYmxlOjpoYXNMb2NhbERlYnVnZ2VyKCkgY29uc3QKICAg
ICByZXR1cm4gbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5oYXNMb2NhbEZyb250ZW5kKCk7
CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWwqIGNoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVkaWF0
ZWx5UGF1c2UpCit2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYg
Y2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVz
ZSkKIHsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyID0gbV9w
YWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpbnNwZWN0b3JDb250cm9sbGVyLmNvbm5l
Y3RGcm9udGVuZChjaGFubmVsLCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGltbWVkaWF0ZWx5UGF1
c2UpOworICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKGNo
YW5uZWwsIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgaW1tZWRpYXRlbHlQYXVzZSk7CiB9CiAKLXZv
aWQgUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
IGNoYW5uZWwpCit2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5l
bCYgY2hhbm5lbCkKIHsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9s
bGVyID0gbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpbnNwZWN0b3JDb250cm9s
bGVyLmRpc2Nvbm5lY3RGcm9udGVuZChjaGFubmVsKTsKKyAgICBtX3BhZ2UuaW5zcGVjdG9yQ29u
dHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChjaGFubmVsKTsKIH0KIAogdm9pZCBQYWdlRGVi
dWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKaW5kZXggMTAwOTI5YmExZDguLjVjYjA1
MTEyYTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oCkBAIC00Nyw4ICs0Nyw4
IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgdXJsKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNM
b2NhbERlYnVnZ2VyKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9y
OjpGcm9udGVuZENoYW5uZWwqLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBi
b29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7Ci0gICAgdm9pZCBkaXNjb25uZWN0
KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKikgZmluYWw7CisgICAgdm9pZCBjb25uZWN0KElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBm
YWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOworICAgIHZvaWQgZGlz
Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGZpbmFsOwogICAg
IHZvaWQgc2V0SW5kaWNhdGluZyhib29sKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IDcwYjJiYTYzYzdmLi5mZDUwZGI3OTQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzM1LDcgKzMzNSw3IEBAIEluc3BlY3RvclN0dWJGcm9u
dGVuZDo6SW5zcGVjdG9yU3R1YkZyb250ZW5kKFBhZ2UmIGluc3BlY3RlZFBhZ2UsIFJlZlB0cjxE
T01XaW5kCiAgICAgQVNTRVJUX0FSRyhmcm9udGVuZFdpbmRvdywgZnJvbnRlbmRXaW5kb3cpOwog
CiAgICAgbV9mcm9udGVuZENvbnRyb2xsZXIuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQodGhp
cyk7Ci0gICAgaW5zcGVjdGVkUGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250
ZW5kKHRoaXMpOworICAgIGluc3BlY3RlZFBhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5l
Y3RGcm9udGVuZCgqdGhpcyk7CiB9CiAKIEluc3BlY3RvclN0dWJGcm9udGVuZDo6fkluc3BlY3Rv
clN0dWJGcm9udGVuZCgpCkBAIC0zNDksNyArMzQ5LDcgQEAgdm9pZCBJbnNwZWN0b3JTdHViRnJv
bnRlbmQ6OmNsb3NlV2luZG93KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9mcm9udGVuZENv
bnRyb2xsZXIuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQobnVsbHB0cik7Ci0gICAgaW5zcGVj
dGVkUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKHRoaXMp
OworICAgIGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZCgqdGhpcyk7CiAKICAgICBtX2Zyb250ZW5kV2luZG93LT5jbG9zZSgpOwogICAgIG1f
ZnJvbnRlbmRXaW5kb3cgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUu
Y3BwCmluZGV4IDU1MWUzOWE5MzczLi45YTM4MzJhNjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJEZWJ1Z2dhYmxlLmNwcApAQCAtNDIsMTIgKzQyLDEyIEBAIFNlcnZpY2VXb3JrZXJEZWJ1Z2dh
YmxlOjpTZXJ2aWNlV29ya2VyRGVidWdnYWJsZShTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkmIHNl
cnZpCiB7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmNvbm5lY3QoSW5zcGVj
dG9yOjpGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwsIGJvb2wsIGJvb2wpCit2b2lkIFNlcnZpY2VX
b3JrZXJEZWJ1Z2dhYmxlOjpjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCwgYm9vbCwg
Ym9vbCkKIHsKICAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5pbnNwZWN0b3JQcm94eSgp
LmNvbm5lY3RUb1dvcmtlcihjaGFubmVsKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyRGVidWdn
YWJsZTo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3Zv
aWQgU2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBj
aGFubmVsKQogewogICAgIG1fc2VydmljZVdvcmtlclRocmVhZFByb3h5Lmluc3BlY3RvclByb3h5
KCkuZGlzY29ubmVjdEZyb21Xb3JrZXIoY2hhbm5lbCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRl
YnVnZ2FibGUuaAppbmRleCA0YmNkMDcxN2VjMy4uNTliZmMzY2ZkN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dh
YmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlckRlYnVnZ2FibGUuaApAQCAtNDksOCArNDksOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2NvcGVVUkw7IH0KICAgICBib29sIGhhc0xv
Y2FsRGVidWdnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBj
b25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5l
Y3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwotICAg
IHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopIGZpbmFsOworICAg
IHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0
aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5h
bDsKKyAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5h
bDsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKSBmaW5hbDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9y
UHJveHkuY3BwCmluZGV4IDYzYzcyZTU4ZDJkLi41ZjBmMWVlMDJkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3Rv
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuY3BwCkBAIC01NywxOCArNTcsMTggQEAgdm9pZCBT
ZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNlcnZpY2VXb3JrZXJUZXJtaW5hdGVkKCkKICAg
ICBtX2NoYW5uZWwgPSBudWxscHRyOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQ
cm94eTo6Y29ubmVjdFRvV29ya2VyKEZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3ZvaWQgU2Vy
dmljZVdvcmtlckluc3BlY3RvclByb3h5Ojpjb25uZWN0VG9Xb3JrZXIoRnJvbnRlbmRDaGFubmVs
JiBjaGFubmVsKQogewotICAgIG1fY2hhbm5lbCA9IGNoYW5uZWw7CisgICAgbV9jaGFubmVsID0g
JmNoYW5uZWw7CiAKICAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS50aHJlYWQoKS5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSB7CiAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5pbnNwZWN0
b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKCk7CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVidWdnZXJNb2RlKCkpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6
ZGlzY29ubmVjdEZyb21Xb3JrZXIoRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsKQordm9pZCBTZXJ2
aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKEZyb250ZW5kQ2hh
bm5lbCYgY2hhbm5lbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKGNoYW5uZWwsIGNoYW5uZWwgPT0g
bV9jaGFubmVsKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNoYW5uZWwsICZjaGFubmVsID09IG1fY2hh
bm5lbCk7CiAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsKIAogICAgIG1fc2VydmljZVdvcmtlclRo
cmVhZFByb3h5LnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW10gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3Rv
clByb3h5LmgKaW5kZXggMGM3ZWJjZDEwZjEuLjZhYTg3NGUyZTExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9y
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaApAQCAtNDksOCArNDksOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNlcnZpY2VXb3JrZXJUZXJtaW5hdGVkKCk7CiAKLSAgICB2b2lkIGNvbm5lY3RUb1dv
cmtlcihJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopOwotICAgIHZvaWQgZGlzY29ubmVjdEZy
b21Xb3JrZXIoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKTsKKyAgICB2b2lkIGNvbm5lY3RU
b1dvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpOworICAgIHZvaWQgZGlzY29ubmVj
dEZyb21Xb3JrZXIoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKTsKICAgICB2b2lkIHNlbmRN
ZXNzYWdlVG9Xb3JrZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZW5kTWVzc2FnZUZyb21X
b3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0YzNjNDVjY2Vh
Li4xOWQyMzM3MzcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0xMS0xMyAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFBhc3MgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVj
dC9kaXNjb25uZWN0IG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29ubmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpkaXNjb25uZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnRlcm1pbmF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
RGVidWdnYWJsZTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEZWJ1Z2dhYmxl
OjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5k
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUluc3BlY3RvclRhcmdldDo6Y29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQ6OmRpc2Nvbm5lY3QpOgorCiAyMDE4LTExLTEzICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogS2Vl
cCBXZWIgSW5zcGVjdG9yIHdpbmRvdyBhbGl2ZSBhY3Jvc3MgcHJvY2VzcyBzd2FwcyAoUFNPTikg
KFJlbW90ZSBJbnNwZWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGE3YjE4MzFlZDg0
Li5iYmE3M2RhN2RmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTExOCwyMCArMTE4LDIw
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmRpc3BhdGNo
KG1lc3NhZ2UpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjb25uZWN0KEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlv
biwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29u
bmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRp
Y0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
aXNBdXRvbWF0aWNDb25uZWN0aW9uKTsKICAgICBVTlVTRURfUEFSQU0oaW1tZWRpYXRlbHlQYXVz
ZSk7CiAKLSAgICBtX3JlbW90ZUNoYW5uZWwgPSBjaGFubmVsOworICAgIG1fcmVtb3RlQ2hhbm5l
bCA9ICZjaGFubmVsOwogICAgIG1fZnJvbnRlbmRSb3V0ZXItPmNvbm5lY3RGcm9udGVuZChjaGFu
bmVsKTsKIAogICAgIHNldElzUGFpcmVkKHRydWUpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAgICBBU1NFUlQoY2hhbm5lbCA9PSBtX3JlbW90ZUNoYW5u
ZWwpOworICAgIEFTU0VSVCgmY2hhbm5lbCA9PSBtX3JlbW90ZUNoYW5uZWwpOwogICAgIHRlcm1p
bmF0ZSgpOwogfQogCkBAIC0xNTIsNyArMTUyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6dGVybWluYXRlKCkKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBpZiAoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBtX3JlbW90ZUNoYW5uZWwpIHsKICAg
ICAgICAgbV9yZW1vdGVDaGFubmVsID0gbnVsbHB0cjsKLSAgICAgICAgbV9mcm9udGVuZFJvdXRl
ci0+ZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOworICAgICAgICBtX2Zyb250ZW5kUm91dGVy
LT5kaXNjb25uZWN0RnJvbnRlbmQoKmNoYW5uZWwpOwogICAgIH0KIAogICAgIHNldElzUGFpcmVk
KGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaAppbmRleCA1YjIwMTU3ZjE3Yy4uYzcwMDA0NTc2Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTEzMCw4ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgLy8g
SW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0IEFQSQogICAgIFN0cmluZyBuYW1lKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWRlbnRpZmllcjsgfQogICAgIHZvaWQg
ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRl
OwotICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNB
dXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNl
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5u
ZWwqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5u
ZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5
UGF1c2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6
RnJvbnRlbmRDaGFubmVsJikgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICB2b2lkIHRlcm1pbmF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHAKaW5k
ZXggZjMyYzhkYWM2NDkuLjE2NjQxN2I3YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZURlYnVnZ2FibGUuY3BwCkBAIC02NiwxMiArNjYsMTIgQEAgYm9vbCBXZWJQYWdl
RGVidWdnYWJsZTo6aGFzTG9jYWxEZWJ1Z2dlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5p
bnNwZWN0b3JDb250cm9sbGVyKCkuaGFzTG9jYWxGcm9udGVuZCgpOwogfQogCi12b2lkIFdlYlBh
Z2VEZWJ1Z2dhYmxlOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVs
LCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9p
ZCBXZWJQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwsIGJv
b2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCiB7CiAgICAg
bV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRlbmQoY2hhbm5lbCwgaXNB
dXRvbWF0aWNDb25uZWN0aW9uLCBpbW1lZGlhdGVseVBhdXNlKTsKIH0KIAotdm9pZCBXZWJQYWdl
RGVidWdnYWJsZTo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5l
bCkKK3ZvaWQgV2ViUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBj
aGFubmVsKQogewogICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZy
b250ZW5kKGNoYW5uZWwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1
Z2dhYmxlLmgKaW5kZXggYWIyMTRiZDQ3NTQuLjlmOGRmNzAwMTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxlLmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVibGlj
OgogICAgIFN0cmluZyB1cmwoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0xvY2FsRGVidWdn
ZXIoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRp
YXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9y
OjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpG
cm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29s
IGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CisgICAgdm9pZCBkaXNjb25uZWN0KElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3Nh
Z2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBzZXRJ
bmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNzk3NDIwYzFlOTIuLmM0
YjkyYzgzY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZUluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC02MiwxMCArNjIsOCBAQCBib29sIFdlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyOjpoYXNMb2NhbEZyb250ZW5kKCkgY29uc3QKICAgICByZXR1cm4g
bV9mcm9udGVuZFJvdXRlci0+aGFzTG9jYWxGcm9udGVuZCgpOwogfQogCi12b2lkIFdlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgYm9vbCwgYm9vbCkKK3ZvaWQgV2ViUGFnZUluc3BlY3Rv
ckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYg
ZnJvbnRlbmRDaGFubmVsLCBib29sLCBib29sKQogewotICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRD
aGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwotCiAgICAgYm9vbCBjb25uZWN0aW5nRmlyc3RGcm9u
dGVuZCA9ICFtX2Zyb250ZW5kUm91dGVyLT5oYXNGcm9udGVuZHMoKTsKIAogICAgIG1fZnJvbnRl
bmRSb3V0ZXItPmNvbm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwpOwpAQCAtODEsNyArNzks
NyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZybwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwqIGZy
b250ZW5kQ2hhbm5lbCkKK3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5lbCkKIHsKICAgICBtX2Zy
b250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoZnJvbnRlbmRDaGFubmVsKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVy
LmgKaW5kZXggMmM5MWUwMjZlNTIuLjBjYWY2YTFjMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTUwLDggKzUw
LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNMb2NhbEZyb250ZW5kKCkgY29uc3Q7CiAKLSAg
ICB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wg
aXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZh
bHNlKTsKLSAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCopOworICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVs
eVBhdXNlID0gZmFsc2UpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6
RnJvbnRlbmRDaGFubmVsJik7CiAgICAgdm9pZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAK
ICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKaW5kZXggZTk1YzAwN2QyNGQuLmYyZjhmYzdjOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUs
NyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6Y2xvc2UoKQogICAgIGlmICghbV9mcm9udGVuZENvbm5l
Y3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCh0aGlzKTsKKyAgICBtX3BhZ2UtPmNv
cmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKnRoaXMp
OwogICAgIGNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5j
cHAKaW5kZXggYTc2MzQ4NGY3M2YuLmYxYmVhNTA5Yjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNw
cApAQCAtNDcsMTMgKzQ3LDEzIEBAIFN0cmluZyBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0OjppZGVu
dGlmaWVyKCkgY29uc3QKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldDo6Y29ubmVjdChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsKICAgICBpZiAobV9wYWdlLmNvcmVQ
YWdlKCkpCi0gICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
Y29ubmVjdEZyb250ZW5kKCZjaGFubmVsKTsKKyAgICAgICAgbV9wYWdlLmNvcmVQYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9CiAKIHZvaWQg
V2ViUGFnZUluc3BlY3RvclRhcmdldDo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCYgY2hhbm5lbCkKIHsKICAgICBpZiAobV9wYWdlLmNvcmVQYWdlKCkpCi0gICAgICAgIG1f
cGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5k
KCZjaGFubmVsKTsKKyAgICAgICAgbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9CiAKIHZvaWQgV2ViUGFnZUluc3Bl
Y3RvclRhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldEJhY2tlbmQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDVhMGYyMGIzNzVkLi41YzBkOTc2
YTUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4
LTExLTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVy
ZW5jZSBjb25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQubW06CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgZGVzdHJveUlu
c3BlY3RvclZpZXddKToKKwogMjAxOC0xMS0xMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEtlZXAgV2ViIEluc3BlY3RvciB3
aW5kb3cgYWxpdmUgYWNyb3NzIHByb2Nlc3Mgc3dhcHMgKFBTT04pIChSZW1vdGUgSW5zcGVjdG9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDk3YTY5NjEwOTIyLi40YTVjM2Y4ZDEyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNjU1LDcgKzY1NSw3IEBAIC0gKHZvaWQpZGVz
dHJveUluc3BlY3RvclZpZXcKICAgICBpZiAoUGFnZSogZnJvbnRlbmRQYWdlID0gX2Zyb250ZW5k
Q2xpZW50LT5mcm9udGVuZFBhZ2UoKSkKICAgICAgICAgZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQobnVsbHB0cik7CiAgICAgaWYg
KFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBbX2luc3BlY3RlZFdlYlZpZXcuZ2V0KCkgcGFnZV0pCi0g
ICAgICAgIGluc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJv
bnRlbmQoX2luc3BlY3RvckNsaWVudCk7CisgICAgICAgIGluc3BlY3RlZFBhZ2UtPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKl9pbnNwZWN0b3JDbGllbnQpOwogCiAg
ICAgW1tfaW5zcGVjdGVkV2ViVmlldy5nZXQoKSBpbnNwZWN0b3JdIHJlbGVhc2VGcm9udGVuZF07
CiAgICAgX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZyb250ZW5kKCk7Cg==
</data>
<flag name="review"
          id="371897"
          type_id="1"
          status="+"
          setter="mattbaker"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354844</attachid>
            <date>2018-11-14 13:06:46 -0800</date>
            <delta_ts>2018-11-14 13:32:17 -0800</delta_ts>
            <desc>[PATCH] For Bots</desc>
            <filename>ref-2.patch</filename>
            <type>text/plain</type>
            <size>33303</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA2OGZhMDM5YmIxLi4zZTkyZDIwOGMzMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMTEtMTQgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNvbm5lY3Qv
ZGlzY29ubmVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTE2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBNYXR0IEJha2VyLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcDoKKyAgICAgICAg
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVD
b250cm9sbGFibGVUYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL2NvY29hL1Jl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
Q29ubmVjdGlvblRvVGFyZ2V0OjpjbG9zZSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGU6OmNvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRp
c2Nvbm5lY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6
CisKIDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBLZWVwIFdlYiBJbnNwZWN0b3Igd2luZG93IGFsaXZlIGFj
cm9zcyBwcm9jZXNzIHN3YXBzIChQU09OKSAoUmVtb3RlIEluc3BlY3RvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJv
dXRlci5jcHAKaW5kZXggNjVmODUyNWEyZTguLmQ0MDhkMzY0ZjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmNwcApAQCAtMzYsMjggKzM2LDI0IEBAIFJlZjxGcm9udGVuZFJvdXRlcj4gRnJvbnRlbmRS
b3V0ZXI6OmNyZWF0ZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJvbnRlbmRSb3V0ZXIp
OwogfQogCi12b2lkIEZyb250ZW5kUm91dGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFu
bmVsKiBjb25uZWN0aW9uKQordm9pZCBGcm9udGVuZFJvdXRlcjo6Y29ubmVjdEZyb250ZW5kKEZy
b250ZW5kQ2hhbm5lbCYgY29ubmVjdGlvbikKIHsKLSAgICBBU1NFUlRfQVJHKGNvbm5lY3Rpb24s
IGNvbm5lY3Rpb24pOwotCi0gICAgaWYgKG1fY29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlv
bikpIHsKKyAgICBpZiAobV9jb25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikpIHsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX2Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uKTsKKyAgICBtX2Nvbm5lY3Rpb25zLmFw
cGVuZCgmY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgRnJvbnRlbmRSb3V0ZXI6OmRpc2Nvbm5lY3RG
cm9udGVuZChGcm9udGVuZENoYW5uZWwqIGNvbm5lY3Rpb24pCit2b2lkIEZyb250ZW5kUm91dGVy
OjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBjb25uZWN0aW9uKQogewotICAg
IEFTU0VSVF9BUkcoY29ubmVjdGlvbiwgY29ubmVjdGlvbik7Ci0KLSAgICBpZiAoIW1fY29ubmVj
dGlvbnMuY29udGFpbnMoY29ubmVjdGlvbikpIHsKKyAgICBpZiAoIW1fY29ubmVjdGlvbnMuY29u
dGFpbnMoJmNvbm5lY3Rpb24pKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9ucy5yZW1vdmVGaXJzdChjb25u
ZWN0aW9uKTsKKyAgICBtX2Nvbm5lY3Rpb25zLnJlbW92ZUZpcnN0KCZjb25uZWN0aW9uKTsKIH0K
IAogdm9pZCBGcm9udGVuZFJvdXRlcjo6ZGlzY29ubmVjdEFsbEZyb250ZW5kcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Um91dGVyLmgKaW5kZXggZWU2NWIyZjBmOTIuLjNkM2MwNDU1NDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRl
ci5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGZyb250ZW5kQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb25zLnNpemUoKTsgfQogCi0gICAgdm9pZCBj
b25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJv
bnRlbmQoRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsJik7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVs
Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lkIHNlbmRF
dmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGQ0ZDdhYTE4Njg2Li5hZDQ1ZjZmNTMwMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTE5LDEwICsxMTksOCBA
QCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Z2xvYmFsT2JqZWN0RGVz
dHJveWVkKCkKICAgICBtX2FnZW50cy5kaXNjYXJkVmFsdWVzKCk7CiB9CiAKLXZvaWQgSlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFu
bmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBib29sIGlt
bWVkaWF0ZWx5UGF1c2UpCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
Y29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsLCBib29sIGlz
QXV0b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewotICAgIEFTU0VS
VF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwotCiAgICAgbV9pc0F1dG9t
YXRpY0luc3BlY3Rpb24gPSBpc0F1dG9tYXRpY0luc3BlY3Rpb247CiAgICAgbV9wYXVzZUFmdGVy
SW5pdGlhbGl6YXRpb24gPSBpbW1lZGlhdGVseVBhdXNlOwogCkBAIC0xNDcsMTAgKzE0NSw4IEBA
IHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQo
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuCiAjZW5kaWYKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwq
IGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
OjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwpCiB7
Ci0gICAgQVNTRVJUX0FSRyhmcm9udGVuZENoYW5uZWwsIGZyb250ZW5kQ2hhbm5lbCk7Ci0KICAg
ICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgdG8gbm90aWZ5IGFnZW50cyB3aGljaCBmcm9udGVuZCBo
YXMgZGlzY29ubmVjdGVkIChieSBpZCkuCiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdElu
c3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggOGZiNmNiYjZmZmEuLmMyMTg4
ZDhiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTY4LDgg
KzY4LDggQEAgcHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcihK
U0M6OkpTR2xvYmFsT2JqZWN0Jik7CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcigpOwogCi0gICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiwgYm9v
bCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7Ci0gICAgdm9p
ZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBjb25uZWN0
RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJv
b2wgaW1tZWRpYXRlbHlQYXVzZSk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsJik7CiAKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25z
dCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaAppbmRleCA4YWI2
ZDc2Yjc5YS4uNGJiYjZhNDQ4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5o
CkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXQoKTsKICAgICB2b2lkIHVw
ZGF0ZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoRnJvbnRlbmRDaGFubmVsKiwgYm9v
bCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0g
ZmFsc2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwq
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBp
c0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFs
c2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmKSA9
IDA7CiAKICAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CiAgICAgdm9pZCBzZXRUYXJnZXRJZGVudGlmaWVyKHVuc2lnbmVkIGlkZW50
aWZpZXIpIHsgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRv
VGFyZ2V0Q29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9j
b2NvYS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQppbmRleCAwOWI1ZjZhYzE0MC4u
NGEzNDI2OTU1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldENvY29hLm1tCkBAIC0xNzEsMTMgKzE3MSwxMyBAQCBib29sIFJlbW90ZUNvbm5lY3Rp
b25Ub1RhcmdldDo6c2V0dXAoYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgYXV0b21h
dGljYQogICAgICAgICAgICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoaXM8UmVtb3RlSW5zcGVjdGlvblRhcmdldD4obV90YXJnZXQpKSB7CiAgICAgICAg
ICAgICAgICAgYXV0byBjYXN0ZWRUYXJnZXQgPSBkb3duY2FzdDxSZW1vdGVJbnNwZWN0aW9uVGFy
Z2V0PihtX3RhcmdldCk7Ci0gICAgICAgICAgICAgICAgY2FzdGVkVGFyZ2V0LT5jb25uZWN0KHRo
aXMsIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGljYWxseVBhdXNlKTsKKyAgICAgICAg
ICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QoKnRoaXMsIGlzQXV0b21hdGljSW5zcGVjdGlv
biwgYXV0b21hdGljYWxseVBhdXNlKTsKICAgICAgICAgICAgICAgICBtX2Nvbm5lY3RlZCA9IHRy
dWU7CiAKICAgICAgICAgICAgICAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpLnVwZGF0
ZVRhcmdldExpc3RpbmcodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9IGVsc2UgaWYg
KGlzPFJlbW90ZUF1dG9tYXRpb25UYXJnZXQ+KG1fdGFyZ2V0KSkgewogICAgICAgICAgICAgICAg
IGF1dG8gY2FzdGVkVGFyZ2V0ID0gZG93bmNhc3Q8UmVtb3RlQXV0b21hdGlvblRhcmdldD4obV90
YXJnZXQpOwotICAgICAgICAgICAgICAgIGNhc3RlZFRhcmdldC0+Y29ubmVjdCh0aGlzKTsKKyAg
ICAgICAgICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QoKnRoaXMpOwogICAgICAgICAgICAg
ICAgIG1fY29ubmVjdGVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIFJlbW90ZUluc3BlY3Rv
cjo6c2luZ2xldG9uKCkudXBkYXRlVGFyZ2V0TGlzdGluZyh0YXJnZXRJZGVudGlmaWVyKTsKQEAg
LTIwNiw3ICsyMDYsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6Y2xvc2UoKQog
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV90YXJnZXRNdXRleCk7CiAg
ICAgICAgICAgICBpZiAobV90YXJnZXQpIHsKICAgICAgICAgICAgICAgICBpZiAobV9jb25uZWN0
ZWQpCi0gICAgICAgICAgICAgICAgICAgIG1fdGFyZ2V0LT5kaXNjb25uZWN0KHRoaXMpOworICAg
ICAgICAgICAgICAgICAgICBtX3RhcmdldC0+ZGlzY29ubmVjdCgqdGhpcyk7CiAKICAgICAgICAg
ICAgICAgICBtX3RhcmdldCA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmNwcAppbmRleCBmMDUzNjBjMWY2ZC4uMzdkM2MyODk2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxl
LmNwcApAQCAtNTAsMTQgKzUwLDE0IEBAIFN0cmluZyBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6
Om5hbWUoKSBjb25zdAogICAgIHJldHVybiBuYW1lLmlzRW1wdHkoKSA/ICJKU0NvbnRleHQiX3Mg
OiBuYW1lOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6Y29ubmVjdChGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgYm9vbCBhdXRvbWF0aWNJbnNwZWN0aW9uLCBi
b29sIGltbWVkaWF0ZWx5UGF1c2UpCit2b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6Y29u
bmVjdChGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5lbCwgYm9vbCBhdXRvbWF0aWNJbnNw
ZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tl
cigmbV9nbG9iYWxPYmplY3Qudm0oKSk7CiAKICAgICBtX2dsb2JhbE9iamVjdC5pbnNwZWN0b3JD
b250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKGZyb250ZW5kQ2hhbm5lbCwgYXV0b21hdGljSW5z
cGVjdGlvbiwgaW1tZWRpYXRlbHlQYXVzZSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3REZWJ1
Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmVsKQordm9p
ZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBm
cm9udGVuZENoYW5uZWwpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmbV9nbG9iYWxPYmpl
Y3Qudm0oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKaW5kZXggMDU3OTkwOTRmZDYuLjdjYmMwYzIxNzFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dERlYnVnZ2FibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdERlYnVnZ2FibGUuaApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IG5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0xvY2FsRGVidWdnZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJv
bnRlbmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBp
bW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwotICAgIHZvaWQgZGlzY29ubmVjdChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopIGZpbmFsOworICAgIHZvaWQgY29ubmVjdChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2Us
IGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKKyAgICB2b2lkIGRpc2Nvbm5l
Y3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
TWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKIAogICAgIGJv
b2wgYXV0b21hdGljSW5zcGVjdGlvbkFsbG93ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZGIyN2UzODM3YTAuLjdhY2UyMWFmY2E3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRl
bmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNvbm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE2MTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBNYXR0IEJha2VyLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyOjpzaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
OgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25u
ZWN0RnJvbnRlbmQpOgorICAgICAgICAqIHBhZ2UvUGFnZURlYnVnZ2FibGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZURlYnVnZ2FibGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIHBhZ2UvUGFnZURlYnVnZ2Fi
bGUuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JTdHViRnJvbnRlbmQ6Okluc3BlY3RvclN0dWJGcm9udGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OmNsb3NlV2luZG93KToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6Y29ubmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6ZGlzY29ubmVjdCk6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9y
UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5
Ojpjb25uZWN0VG9Xb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckluc3Bl
Y3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5Lmg6CisKIDIwMTgtMTEtMTQg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBLZWVwIFdlYiBJbnNwZWN0b3Igd2luZG93IGFsaXZlIGFjcm9zcyBwcm9jZXNzIHN3
YXBzIChQU09OKSAoUmVtb3RlIEluc3BlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBlNmQ0YjAyMzVmYi4uNDRhYTgxYjJh
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTI1NCw5ICsyNTQsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENs
ZWFyV2luZG93T2JqZWN0SW5Xb3JsZChGcmFtZSYgZnJhbWUsIERPTVdyYXBwZXJXbwogICAgICAg
ICBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50LT53aW5kb3dPYmplY3RDbGVhcmVkKCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJv
bnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9u
LCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5l
Y3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsLCBi
b29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewotICAg
IEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwogICAgIEFTU0VS
VChtX2luc3BlY3RvckNsaWVudCk7CiAKICAgICAvLyBJZiBhIGZyb250ZW5kIGhhcyBjb25uZWN0
ZWQgZW5hYmxlIHRoZSBkZXZlbG9wZXIgZXh0cmFzIGFuZCBrZWVwIHRoZW0gZW5hYmxlZC4KQEAg
LTI4NSw3ICsyODQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVu
ZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaAogI2VuZGlmCiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5l
bCogZnJvbnRlbmRDaGFubmVsKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0
RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwpCiB7CiAgICAgbV9mcm9u
dGVuZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKGZyb250ZW5kQ2hhbm5lbCk7CiAKQEAgLTM2
Miw3ICszNjEsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3coKQogICAgIGlmICht
X2Zyb250ZW5kUm91dGVyLT5oYXNMb2NhbEZyb250ZW5kKCkpCiAgICAgICAgIG1faW5zcGVjdG9y
Q2xpZW50LT5icmluZ0Zyb250ZW5kVG9Gcm9udCgpOwogICAgIGVsc2UgaWYgKEluc3BlY3Rvcjo6
RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwgPSBtX2luc3BlY3RvckNsaWVudC0+b3Bl
bkxvY2FsRnJvbnRlbmQodGhpcykpCi0gICAgICAgIGNvbm5lY3RGcm9udGVuZChmcm9udGVuZENo
YW5uZWwpOworICAgICAgICBjb25uZWN0RnJvbnRlbmQoKmZyb250ZW5kQ2hhbm5lbCk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0SXNVbmRlclRlc3QoYm9vbCB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDlm
ZGQzYjcxNzVkLi40OTJmYzhhNDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC05MSw4ICs5MSw4IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc0xvY2FsRnJvbnRlbmQoKSBjb25zdDsKICAgICBib29sIGhhc1JlbW90ZUZyb250ZW5kKCkg
Y29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2Us
IGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVs
eVBhdXNlID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzY29ubmVjdEZyb250
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lkIGluc3BlY3QoTm9kZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IGU1Yzc0NThmMWM4Li5kMmMwMjNmY2NjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEZyb250ZW5kKCkKICAgICBtX2V4ZWN1dGlvblN0b3B3YXRjaC0+c3RhcnQoKTsKIAogICAgIG1f
Zm9yd2FyZGluZ0NoYW5uZWwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclRvUGFnZUZyb250ZW5k
Q2hhbm5lbD4obV93b3JrZXJHbG9iYWxTY29wZSk7Ci0gICAgbV9mcm9udGVuZFJvdXRlci0+Y29u
bmVjdEZyb250ZW5kKG1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0KCkpOworICAgIG1fZnJvbnRlbmRS
b3V0ZXItPmNvbm5lY3RGcm9udGVuZCgqbV9mb3J3YXJkaW5nQ2hhbm5lbC5nZXQoKSk7CiAgICAg
bV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKCZtX2Zyb250ZW5kUm91dGVyLmdl
dCgpLCAmbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiB9CiAKQEAgLTEzMCw3ICsxMzAsNyBA
QCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChJbnNw
ZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcgogICAgIH0pOwogCiAgICAgbV9hZ2VudHMud2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKLSAgICBtX2Zyb250ZW5kUm91dGVyLT5k
aXNjb25uZWN0RnJvbnRlbmQobV9mb3J3YXJkaW5nQ2hhbm5lbC5nZXQoKSk7CisgICAgbV9mcm9u
dGVuZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKCptX2ZvcndhcmRpbmdDaGFubmVsLmdldCgp
KTsKICAgICBtX2ZvcndhcmRpbmdDaGFubmVsID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAppbmRleCAzMmU0Y2I3YWE1OC4uZDljZGU0ZjVlOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCkBAIC02OSwxNiArNjksMTQgQEAg
Ym9vbCBQYWdlRGVidWdnYWJsZTo6aGFzTG9jYWxEZWJ1Z2dlcigpIGNvbnN0CiAgICAgcmV0dXJu
IG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuaGFzTG9jYWxGcm9udGVuZCgpOwogfQogCi12
b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBj
aGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNl
KQordm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWws
IGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCiB7Ci0g
ICAgSW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlciA9IG1fcGFnZS5pbnNw
ZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaW5zcGVjdG9yQ29udHJvbGxlci5jb25uZWN0RnJvbnRl
bmQoY2hhbm5lbCwgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBpbW1lZGlhdGVseVBhdXNlKTsKKyAg
ICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZChjaGFubmVsLCBp
c0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGltbWVkaWF0ZWx5UGF1c2UpOwogfQogCi12b2lkIFBhZ2VE
ZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVs
KQordm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5u
ZWwpCiB7Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlciA9IG1f
cGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaW5zcGVjdG9yQ29udHJvbGxlci5kaXNj
b25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CisgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIo
KS5kaXNjb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2FibGU6
OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oCmluZGV4IDEwMDkyOWJhMWQ4Li41Y2IwNTExMmE4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaApAQCAtNDcsOCArNDcsOCBAQCBwdWJs
aWM6CiAgICAgU3RyaW5nIHVybCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaGFzTG9jYWxEZWJ1
Z2dlcigpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRl
bmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1l
ZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwotICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCopIGZpbmFsOworICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6
OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJv
b2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKKyAgICB2b2lkIGRpc2Nvbm5lY3Qo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoTWVz
c2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIHNl
dEluZGljYXRpbmcoYm9vbCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA4YTMyMDUxNTVkNC4uOWM5YjRmZWQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6Oklu
c3BlY3RvclN0dWJGcm9udGVuZChQYWdlJiBpbnNwZWN0ZWRQYWdlLCBSZWZQdHI8RE9NV2luZAog
ICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRXaW5kb3csIGZyb250ZW5kV2luZG93KTsKIAogICAgIG1f
ZnJvbnRlbmRDb250cm9sbGVyLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KHRoaXMpOwotICAg
IGluc3BlY3RlZFBhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZCh0aGlz
KTsKKyAgICBpbnNwZWN0ZWRQYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRl
bmQoKnRoaXMpOwogfQogCiBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6On5JbnNwZWN0b3JTdHViRnJv
bnRlbmQoKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R1YkZyb250ZW5kOjpj
bG9zZVdpbmRvdygpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZnJvbnRlbmRDb250cm9sbGVy
LnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KG51bGxwdHIpOwotICAgIGluc3BlY3RlZFBhZ2Uo
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCh0aGlzKTsKKyAgICBp
bnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQo
KnRoaXMpOwogCiAgICAgbV9mcm9udGVuZFdpbmRvdy0+Y2xvc2UoKTsKICAgICBtX2Zyb250ZW5k
V2luZG93ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmNwcAppbmRl
eCA1NTFlMzlhOTM3My4uOWEzODMyYTYyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdn
YWJsZS5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6U2Vy
dmljZVdvcmtlckRlYnVnZ2FibGUoU2VydmljZVdvcmtlclRocmVhZFByb3h5JiBzZXJ2aQogewog
fQogCi12b2lkIFNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJv
bnRlbmRDaGFubmVsKiBjaGFubmVsLCBib29sLCBib29sKQordm9pZCBTZXJ2aWNlV29ya2VyRGVi
dWdnYWJsZTo6Y29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwsIGJvb2wsIGJvb2wpCiB7
CiAgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJveHkoKS5jb25uZWN0
VG9Xb3JrZXIoY2hhbm5lbCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmRp
c2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpCit2b2lkIFNlcnZp
Y2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkK
IHsKICAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5pbnNwZWN0b3JQcm94eSgpLmRpc2Nv
bm5lY3RGcm9tV29ya2VyKGNoYW5uZWwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxl
LmgKaW5kZXggNGJjZDA3MTdlYzMuLjU5YmZjM2NmZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJE
ZWJ1Z2dhYmxlLmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogICAgIFN0cmluZyB1cmwoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3Njb3BlVVJMOyB9CiAgICAgYm9vbCBoYXNMb2NhbERlYnVn
Z2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgY29ubmVjdChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0g
ZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lkIGRp
c2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lkIGNv
bm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVj
dGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CisgICAg
dm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAgICAg
dm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmlu
YWw7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNw
cAppbmRleCA2M2M3MmU1OGQyZC4uNWYwZjFlZTAyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtNTcsMTggKzU3LDE4IEBAIHZvaWQgU2VydmljZVdv
cmtlckluc3BlY3RvclByb3h5OjpzZXJ2aWNlV29ya2VyVGVybWluYXRlZCgpCiAgICAgbV9jaGFu
bmVsID0gbnVsbHB0cjsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OmNv
bm5lY3RUb1dvcmtlcihGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpCit2b2lkIFNlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eTo6Y29ubmVjdFRvV29ya2VyKEZyb250ZW5kQ2hhbm5lbCYgY2hhbm5l
bCkKIHsKLSAgICBtX2NoYW5uZWwgPSBjaGFubmVsOworICAgIG1fY2hhbm5lbCA9ICZjaGFubmVs
OwogCiAgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkudGhyZWFkKCkucnVuTG9vcCgpLnBv
c3RUYXNrRm9yTW9kZShbXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewogICAg
ICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuaW5zcGVjdG9yQ29udHJv
bGxlcigpLmNvbm5lY3RGcm9udGVuZCgpOwogICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlYnVnZ2Vy
TW9kZSgpKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OmRpc2Nvbm5l
Y3RGcm9tV29ya2VyKEZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3ZvaWQgU2VydmljZVdvcmtl
ckluc3BlY3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9udGVuZENoYW5uZWwmIGNo
YW5uZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjaGFubmVsLCBjaGFubmVsID09IG1fY2hhbm5l
bCk7CisgICAgQVNTRVJUX1VOVVNFRChjaGFubmVsLCAmY2hhbm5lbCA9PSBtX2NoYW5uZWwpOwog
ICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS50aHJlYWQoKS5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtdIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5o
CmluZGV4IDBjN2ViY2QxMGYxLi42YWE4NzRlMmUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckluc3BlY3RvclByb3h5LmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXJ2aWNlV29ya2VyVGVybWluYXRlZCgpOwogCi0gICAgdm9pZCBjb25uZWN0VG9Xb3JrZXIoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKTsKLSAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2Vy
KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBjb25uZWN0VG9Xb3JrZXIo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tV29y
a2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRv
V29ya2VyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9G
cm9udGVuZChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwZDM5NmQ1OTZmMy4uZWE0Y2Vk
OWY5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgtMTEtMTMgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQYXNz
IEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNvbm5lY3QvZGlzY29u
bmVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTE2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmNvbm5lY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp0ZXJtaW5hdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VEZWJ1Z2dhYmxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZURlYnVnZ2Fi
bGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlRGVidWdnYWJsZTo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3I6OmNsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJ
bnNwZWN0b3JUYXJnZXQ6OmNvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0OjpkaXNjb25uZWN0KToKKwogMjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvbGxvdy11cDog
S2VlcCBEaXNhYmxpbmcgUHJvY2VzcyBTd2FwIGZvciBMb2NhbCBXZWIgSW5zcGVjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCmluZGV4IGE3YjE4MzFlZDg0Li5iYmE3M2RhN2RmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAKQEAgLTExOCwyMCArMTE4LDIwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2UpOwogfQogCi12b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBj
aGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNl
KQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCYgY2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRp
YXRlbHlQYXVzZSkKIHsKICAgICBVTlVTRURfUEFSQU0oaXNBdXRvbWF0aWNDb25uZWN0aW9uKTsK
ICAgICBVTlVTRURfUEFSQU0oaW1tZWRpYXRlbHlQYXVzZSk7CiAKLSAgICBtX3JlbW90ZUNoYW5u
ZWwgPSBjaGFubmVsOworICAgIG1fcmVtb3RlQ2hhbm5lbCA9ICZjaGFubmVsOwogICAgIG1fZnJv
bnRlbmRSb3V0ZXItPmNvbm5lY3RGcm9udGVuZChjaGFubmVsKTsKIAogICAgIHNldElzUGFpcmVk
KHRydWUpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaXNjb25uZWN0KEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAg
ICBBU1NFUlQoY2hhbm5lbCA9PSBtX3JlbW90ZUNoYW5uZWwpOworICAgIEFTU0VSVCgmY2hhbm5l
bCA9PSBtX3JlbW90ZUNoYW5uZWwpOwogICAgIHRlcm1pbmF0ZSgpOwogfQogCkBAIC0xNTIsNyAr
MTUyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGVybWluYXRlKCkKICNpZiBFTkFC
TEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBpZiAoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
IGNoYW5uZWwgPSBtX3JlbW90ZUNoYW5uZWwpIHsKICAgICAgICAgbV9yZW1vdGVDaGFubmVsID0g
bnVsbHB0cjsKLSAgICAgICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKGNo
YW5uZWwpOworICAgICAgICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoKmNo
YW5uZWwpOwogICAgIH0KIAogICAgIHNldElzUGFpcmVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aAppbmRleCA1YjIwMTU3ZjE3Yy4uYzcwMDA0NTc2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAg
LTEzMCw4ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0
aW9uVGFyZ2V0IEFQSQogICAgIFN0cmluZyBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zZXNzaW9uSWRlbnRpZmllcjsgfQogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOwotICAgIHZvaWQgY29ubmVjdChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFs
c2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
c2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBvdmVycmlkZTsKKyAgICB2b2lk
IGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29u
bmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgb3ZlcnJp
ZGU7CiAjZW5kaWYKICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggZjMyYzhkYWM2NDkuLjE2NjQxN2I3
YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJs
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuY3Bw
CkBAIC02NiwxMiArNjYsMTIgQEAgYm9vbCBXZWJQYWdlRGVidWdnYWJsZTo6aGFzTG9jYWxEZWJ1
Z2dlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuaGFz
TG9jYWxGcm9udGVuZCgpOwogfQogCi12b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVj
dGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6Y29u
bmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9u
LCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCiB7CiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5jb25uZWN0RnJvbnRlbmQoY2hhbm5lbCwgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBpbW1l
ZGlhdGVseVBhdXNlKTsKIH0KIAotdm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3ZvaWQgV2ViUGFnZURlYnVnZ2Fi
bGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBjaGFubmVsKQogewogICAgIG1fcGFnZS5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxlLmgKaW5kZXggYWIyMTRiZDQ3
NTQuLjlmOGRmNzAwMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlRGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1
Z2dhYmxlLmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVibGljOgogICAgIFN0cmluZyB1cmwoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGhhc0xvY2FsRGVidWdnZXIoKSBjb25zdCBmaW5hbDsKIAotICAg
IHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0
aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5h
bDsKLSAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5h
bDsKKyAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlz
QXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxz
ZSkgZmluYWw7CisgICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVs
JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKaW5kZXggNzk3NDIwYzFlOTIuLmM0YjkyYzgzY2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CkBAIC02MiwxMCArNjIsOCBAQCBib29sIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpoYXNM
b2NhbEZyb250ZW5kKCkgY29uc3QKICAgICByZXR1cm4gbV9mcm9udGVuZFJvdXRlci0+aGFzTG9j
YWxGcm9udGVuZCgpOwogfQogCi12b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwg
Ym9vbCwgYm9vbCkKK3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9u
dGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsLCBib29sLCBi
b29sKQogewotICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwp
OwotCiAgICAgYm9vbCBjb25uZWN0aW5nRmlyc3RGcm9udGVuZCA9ICFtX2Zyb250ZW5kUm91dGVy
LT5oYXNGcm9udGVuZHMoKTsKIAogICAgIG1fZnJvbnRlbmRSb3V0ZXItPmNvbm5lY3RGcm9udGVu
ZChmcm9udGVuZENoYW5uZWwpOwpAQCAtODEsNyArNzksNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
IGZybwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgV2Vi
UGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5u
ZWwmIGZyb250ZW5kQ2hhbm5lbCkKIHsKICAgICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0
RnJvbnRlbmQoZnJvbnRlbmRDaGFubmVsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMmM5MWUwMjZlNTIuLjBj
YWY2YTFjMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5z
cGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTUwLDggKzUwLDggQEAgcHVibGljOgogCiAgICAgYm9v
bCBoYXNMb2NhbEZyb250ZW5kKCkgY29uc3Q7CiAKLSAgICB2b2lkIGNvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uID0g
ZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKTsKLSAgICB2b2lkIGRpc2Nvbm5l
Y3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgY29ubmVj
dEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0lu
c3BlY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpOworICAgIHZv
aWQgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAgICAg
dm9pZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lkIGRpc3BhdGNoTWVzc2Fn
ZUZyb21Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggYjMyNzM3YTRkNjYu
LjJkYWE2MzZjZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6
Y2xvc2UoKQogICAgIGlmICghbV9mcm9udGVuZENvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5l
Y3RGcm9udGVuZCh0aGlzKTsKKyAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRy
b2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoKnRoaXMpOwogICAgIGNsb3NlRnJvbnRlbmRDb25u
ZWN0aW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHAKaW5kZXggYTc2MzQ4NGY3M2YuLmYx
YmVhNTA5Yjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBAIFN0
cmluZyBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0OjppZGVudGlmaWVyKCkgY29uc3QKIHZvaWQgV2Vi
UGFnZUluc3BlY3RvclRhcmdldDo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYg
Y2hhbm5lbCkKIHsKICAgICBpZiAobV9wYWdlLmNvcmVQYWdlKCkpCi0gICAgICAgIG1fcGFnZS5j
b3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKCZjaGFubmVs
KTsKKyAgICAgICAgbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25u
ZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9CiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldDo6
ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsKICAgICBp
ZiAobV9wYWdlLmNvcmVQYWdlKCkpCi0gICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0
b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCZjaGFubmVsKTsKKyAgICAgICAgbV9w
YWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQo
Y2hhbm5lbCk7CiB9CiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldDo6c2VuZE1lc3NhZ2VU
b1RhcmdldEJhY2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IDc4YWEwZWZmZDk1Li40NTY3ODgzYzg4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTExLTE0ICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUGFzcyBJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBjb25uZWN0L2Rpc2Nvbm5lY3Qg
bWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkxNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVj
dG9yV2luZG93Q29udHJvbGxlciBkZXN0cm95SW5zcGVjdG9yVmlld10pOgorCiAyMDE4LTExLTE0
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogS2VlcCBXZWIgSW5zcGVjdG9yIHdpbmRvdyBhbGl2ZSBhY3Jvc3MgcHJvY2VzcyBz
d2FwcyAoUFNPTikgKFJlbW90ZSBJbnNwZWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5k
ZXggOTdhNjk2MTA5MjIuLjRhNWMzZjhkMTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCkBA
IC02NTUsNyArNjU1LDcgQEAgLSAodm9pZClkZXN0cm95SW5zcGVjdG9yVmlldwogICAgIGlmIChQ
YWdlKiBmcm9udGVuZFBhZ2UgPSBfZnJvbnRlbmRDbGllbnQtPmZyb250ZW5kUGFnZSgpKQogICAg
ICAgICBmcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9u
dGVuZENsaWVudChudWxscHRyKTsKICAgICBpZiAoUGFnZSogaW5zcGVjdGVkUGFnZSA9IFtfaW5z
cGVjdGVkV2ViVmlldy5nZXQoKSBwYWdlXSkKLSAgICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChfaW5zcGVjdG9yQ2xpZW50KTsKKyAg
ICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZCgqX2luc3BlY3RvckNsaWVudCk7CiAKICAgICBbW19pbnNwZWN0ZWRXZWJWaWV3LmdldCgp
IGluc3BlY3Rvcl0gcmVsZWFzZUZyb250ZW5kXTsKICAgICBfaW5zcGVjdG9yQ2xpZW50LT5yZWxl
YXNlRnJvbnRlbmQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354846</attachid>
            <date>2018-11-14 13:32:17 -0800</date>
            <delta_ts>2018-11-14 14:03:07 -0800</delta_ts>
            <desc>[PATCH] For Bots</desc>
            <filename>ref-3.patch</filename>
            <type>text/plain</type>
            <size>34909</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA2OGZhMDM5YmIxLi5hNmI2ODgzZjcxNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgtMTEtMTQgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNvbm5lY3Qv
ZGlzY29ubmVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTE2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBNYXR0IEJha2VyLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcDoKKyAgICAgICAg
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVD
b250cm9sbGFibGVUYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL2NvY29hL1Jl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
Q29ubmVjdGlvblRvVGFyZ2V0OjpjbG9zZSk6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9n
bGliL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldEdsaWIuY3BwOgorICAgICAgICAoSW5zcGVjdG9y
OjpSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKToKKyAgICAgICAgKEluc3BlY3Rvcjo6
UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpjbG9zZSk6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdERl
YnVnZ2FibGU6OmNvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmg6CisKIDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBLZWVwIFdlYiBJbnNwZWN0b3Igd2luZG93IGFs
aXZlIGFjcm9zcyBwcm9jZXNzIHN3YXBzIChQU09OKSAoUmVtb3RlIEluc3BlY3RvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5jcHAKaW5kZXggNjVmODUyNWEyZTguLmQ0MDhkMzY0ZjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmNwcApAQCAtMzYsMjggKzM2LDI0IEBAIFJlZjxGcm9udGVuZFJvdXRlcj4gRnJv
bnRlbmRSb3V0ZXI6OmNyZWF0ZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJvbnRlbmRS
b3V0ZXIpOwogfQogCi12b2lkIEZyb250ZW5kUm91dGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsKiBjb25uZWN0aW9uKQordm9pZCBGcm9udGVuZFJvdXRlcjo6Y29ubmVjdEZyb250
ZW5kKEZyb250ZW5kQ2hhbm5lbCYgY29ubmVjdGlvbikKIHsKLSAgICBBU1NFUlRfQVJHKGNvbm5l
Y3Rpb24sIGNvbm5lY3Rpb24pOwotCi0gICAgaWYgKG1fY29ubmVjdGlvbnMuY29udGFpbnMoY29u
bmVjdGlvbikpIHsKKyAgICBpZiAobV9jb25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikp
IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uKTsKKyAgICBtX2Nvbm5lY3Rp
b25zLmFwcGVuZCgmY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgRnJvbnRlbmRSb3V0ZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwqIGNvbm5lY3Rpb24pCit2b2lkIEZyb250ZW5k
Um91dGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBjb25uZWN0aW9uKQog
ewotICAgIEFTU0VSVF9BUkcoY29ubmVjdGlvbiwgY29ubmVjdGlvbik7Ci0KLSAgICBpZiAoIW1f
Y29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbikpIHsKKyAgICBpZiAoIW1fY29ubmVjdGlv
bnMuY29udGFpbnMoJmNvbm5lY3Rpb24pKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9ucy5yZW1vdmVGaXJz
dChjb25uZWN0aW9uKTsKKyAgICBtX2Nvbm5lY3Rpb25zLnJlbW92ZUZpcnN0KCZjb25uZWN0aW9u
KTsKIH0KIAogdm9pZCBGcm9udGVuZFJvdXRlcjo6ZGlzY29ubmVjdEFsbEZyb250ZW5kcygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmgKaW5kZXggZWU2NWIyZjBmOTIuLjNkM2MwNDU1NDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGZyb250
ZW5kQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb25zLnNpemUoKTsgfQogCi0gICAg
dm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQo
RnJvbnRlbmRDaGFubmVsJik7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRD
aGFubmVsJik7CiAgICAgdm9pZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lk
IHNlbmRFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGQ0ZDdhYTE4Njg2Li5hZDQ1ZjZmNTMwMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTE5LDEwICsx
MTksOCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Z2xvYmFsT2Jq
ZWN0RGVzdHJveWVkKCkKICAgICBtX2FnZW50cy5kaXNjYXJkVmFsdWVzKCk7CiB9CiAKLXZvaWQg
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBi
b29sIGltbWVkaWF0ZWx5UGF1c2UpCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsLCBi
b29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewotICAg
IEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwotCiAgICAgbV9p
c0F1dG9tYXRpY0luc3BlY3Rpb24gPSBpc0F1dG9tYXRpY0luc3BlY3Rpb247CiAgICAgbV9wYXVz
ZUFmdGVySW5pdGlhbGl6YXRpb24gPSBpbW1lZGlhdGVseVBhdXNlOwogCkBAIC0xNDcsMTAgKzE0
NSw4IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJv
bnRlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuCiAjZW5kaWYKIH0KIAotdm9pZCBKU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENo
YW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5u
ZWwpCiB7Ci0gICAgQVNTRVJUX0FSRyhmcm9udGVuZENoYW5uZWwsIGZyb250ZW5kQ2hhbm5lbCk7
Ci0KICAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgdG8gbm90aWZ5IGFnZW50cyB3aGljaCBmcm9u
dGVuZCBoYXMgZGlzY29ubmVjdGVkIChieSBpZCkuCiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggOGZiNmNiYjZmZmEu
LmMyMTg4ZDhiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAg
LTY4LDggKzY4LDggQEAgcHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcihKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcigpOwogCi0gICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVs
KiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7Ci0g
ICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBj
b25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rp
b24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQo
RnJvbnRlbmRDaGFubmVsJik7CiAKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVu
ZChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaAppbmRl
eCA4YWI2ZDc2Yjc5YS4uNGJiYjZhNDQ4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRh
cmdldC5oCkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXQoKTsKICAgICB2
b2lkIHVwZGF0ZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoRnJvbnRlbmRDaGFubmVs
KiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBh
dXNlID0gZmFsc2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChGcm9udGVuZENo
YW5uZWwqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiwg
Ym9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNl
ID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChGcm9udGVuZENoYW5u
ZWwmKSA9IDA7CiAKICAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgdm9pZCBzZXRUYXJnZXRJZGVudGlmaWVyKHVuc2lnbmVk
IGlkZW50aWZpZXIpIHsgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0Q29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQppbmRleCAwOWI1ZjZh
YzE0MC4uNGEzNDI2OTU1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5l
Y3Rpb25Ub1RhcmdldENvY29hLm1tCkBAIC0xNzEsMTMgKzE3MSwxMyBAQCBib29sIFJlbW90ZUNv
bm5lY3Rpb25Ub1RhcmdldDo6c2V0dXAoYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wg
YXV0b21hdGljYQogICAgICAgICAgICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoaXM8UmVtb3RlSW5zcGVjdGlvblRhcmdldD4obV90YXJnZXQpKSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBjYXN0ZWRUYXJnZXQgPSBkb3duY2FzdDxSZW1vdGVJbnNwZWN0
aW9uVGFyZ2V0PihtX3RhcmdldCk7Ci0gICAgICAgICAgICAgICAgY2FzdGVkVGFyZ2V0LT5jb25u
ZWN0KHRoaXMsIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGljYWxseVBhdXNlKTsKKyAg
ICAgICAgICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QoKnRoaXMsIGlzQXV0b21hdGljSW5z
cGVjdGlvbiwgYXV0b21hdGljYWxseVBhdXNlKTsKICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rl
ZCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigp
LnVwZGF0ZVRhcmdldExpc3RpbmcodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKGlzPFJlbW90ZUF1dG9tYXRpb25UYXJnZXQ+KG1fdGFyZ2V0KSkgewogICAgICAgICAg
ICAgICAgIGF1dG8gY2FzdGVkVGFyZ2V0ID0gZG93bmNhc3Q8UmVtb3RlQXV0b21hdGlvblRhcmdl
dD4obV90YXJnZXQpOwotICAgICAgICAgICAgICAgIGNhc3RlZFRhcmdldC0+Y29ubmVjdCh0aGlz
KTsKKyAgICAgICAgICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QoKnRoaXMpOwogICAgICAg
ICAgICAgICAgIG1fY29ubmVjdGVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIFJlbW90ZUlu
c3BlY3Rvcjo6c2luZ2xldG9uKCkudXBkYXRlVGFyZ2V0TGlzdGluZyh0YXJnZXRJZGVudGlmaWVy
KTsKQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6Y2xv
c2UoKQogICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV90YXJnZXRNdXRl
eCk7CiAgICAgICAgICAgICBpZiAobV90YXJnZXQpIHsKICAgICAgICAgICAgICAgICBpZiAobV9j
b25uZWN0ZWQpCi0gICAgICAgICAgICAgICAgICAgIG1fdGFyZ2V0LT5kaXNjb25uZWN0KHRoaXMp
OworICAgICAgICAgICAgICAgICAgICBtX3RhcmdldC0+ZGlzY29ubmVjdCgqdGhpcyk7CiAKICAg
ICAgICAgICAgICAgICBtX3RhcmdldCA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldEdsaWIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRHbGliLmNwcAppbmRleCBj
NjZiNTU5OTFkMS4uMTNlMzkzMGIzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0R2xpYi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVD
b25uZWN0aW9uVG9UYXJnZXRHbGliLmNwcApAQCAtNTYsMTMgKzU2LDEzIEBAIGJvb2wgUmVtb3Rl
Q29ubmVjdGlvblRvVGFyZ2V0OjpzZXR1cChib29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9v
bCBhdXRvbWF0aWNhCiAgICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYg
KGlzPFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ+KG1fdGFyZ2V0KSkgewogICAgICAgICBhdXRvIHRh
cmdldCA9IGRvd25jYXN0PFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ+KG1fdGFyZ2V0KTsKLSAgICAg
ICAgdGFyZ2V0LT5jb25uZWN0KHRoaXMsIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGlj
YWxseVBhdXNlKTsKKyAgICAgICAgdGFyZ2V0LT5jb25uZWN0KCp0aGlzLCBpc0F1dG9tYXRpY0lu
c3BlY3Rpb24sIGF1dG9tYXRpY2FsbHlQYXVzZSk7CiAgICAgICAgIG1fY29ubmVjdGVkID0gdHJ1
ZTsKIAogICAgICAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpLnVwZGF0ZVRhcmdldExp
c3RpbmcodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgfSBlbHNlIGlmIChpczxSZW1vdGVBdXRvbWF0
aW9uVGFyZ2V0PihtX3RhcmdldCkpIHsKICAgICAgICAgYXV0byB0YXJnZXQgPSBkb3duY2FzdDxS
ZW1vdGVBdXRvbWF0aW9uVGFyZ2V0PihtX3RhcmdldCk7Ci0gICAgICAgIHRhcmdldC0+Y29ubmVj
dCh0aGlzKTsKKyAgICAgICAgdGFyZ2V0LT5jb25uZWN0KCp0aGlzKTsKICAgICAgICAgbV9jb25u
ZWN0ZWQgPSB0cnVlOwogCiAgICAgICAgIFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkudXBk
YXRlVGFyZ2V0TGlzdGluZyh0YXJnZXRJZGVudGlmaWVyKTsKQEAgLTkzLDcgKzkzLDcgQEAgdm9p
ZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OmNsb3NlKCkKICAgICB1bnNpZ25lZCB0YXJnZXRJ
ZGVudGlmaWVyID0gbV90YXJnZXQtPnRhcmdldElkZW50aWZpZXIoKTsKIAogICAgIGlmIChtX2Nv
bm5lY3RlZCkKLSAgICAgICAgbV90YXJnZXQtPmRpc2Nvbm5lY3QodGhpcyk7CisgICAgICAgIG1f
dGFyZ2V0LT5kaXNjb25uZWN0KCp0aGlzKTsKIAogICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggZjA1MzYwYzFmNmQuLjM3ZDNjMjg5NjExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZS5jcHAKQEAgLTUwLDE0ICs1MCwxNCBAQCBTdHJpbmcgSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlOjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gbmFtZS5pc0VtcHR5KCkgPyAiSlND
b250ZXh0Il9zIDogbmFtZTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNv
bm5lY3QoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgYXV0b21hdGljSW5z
cGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBKU0dsb2JhbE9iamVjdERlYnVn
Z2FibGU6OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwsIGJvb2wgYXV0
b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewogICAgIEpTTG9ja0hv
bGRlciBsb2NrZXIoJm1fZ2xvYmFsT2JqZWN0LnZtKCkpOwogCiAgICAgbV9nbG9iYWxPYmplY3Qu
aW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwsIGF1
dG9tYXRpY0luc3BlY3Rpb24sIGltbWVkaWF0ZWx5UGF1c2UpOwogfQogCi12b2lkIEpTR2xvYmFs
T2JqZWN0RGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hh
bm5lbCkKK3ZvaWQgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5k
Q2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1f
Z2xvYmFsT2JqZWN0LnZtKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDA1Nzk5MDk0ZmQ2Li43
Y2JjMGMyMTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTUxLDggKzUxLDggQEAgcHVibGljOgog
ICAgIFN0cmluZyBuYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNMb2NhbERlYnVnZ2Vy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgY29ubmVjdChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFs
c2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lkIGRpc2Nv
bm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lkIGNvbm5l
Y3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlv
biA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CisgICAgdm9p
ZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAgICAgdm9p
ZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7
CiAKICAgICBib29sIGF1dG9tYXRpY0luc3BlY3Rpb25BbGxvd2VkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRiMjdlMzgzN2EwLi43YWNlMjFhZmNhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTExLTE0ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUGFzcyBJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBjb25uZWN0L2Rpc2Nvbm5lY3QgbWV0
aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlcjo6c2hvdyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBwYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R1YkZyb250ZW5kOjpJbnNwZWN0b3JTdHViRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R1YkZyb250ZW5kOjpjbG9zZVdpbmRvdyk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmNvbm5l
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eTo6Y29ubmVjdFRvV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJbnNwZWN0b3JQcm94eTo6ZGlzY29ubmVjdEZyb21Xb3JrZXIpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorCiAy
MDE4LTExLTE0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogS2VlcCBXZWIgSW5zcGVjdG9yIHdpbmRvdyBhbGl2ZSBhY3Jvc3Mg
cHJvY2VzcyBzd2FwcyAoUFNPTikgKFJlbW90ZSBJbnNwZWN0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZTZkNGIwMjM1ZmIu
LjQ0YWE4MWIyYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCkBAIC0yNTQsOSArMjU0LDggQEAgdm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUmIGZyYW1lLCBET01XcmFwcGVy
V28KICAgICAgICAgbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudC0+d2luZG93T2JqZWN0Q2xlYXJl
ZCgpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmVsLCBib29sIGlzQXV0b21hdGlj
SW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjpjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGZyb250ZW5k
Q2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVz
ZSkKIHsKLSAgICBBU1NFUlRfQVJHKGZyb250ZW5kQ2hhbm5lbCwgZnJvbnRlbmRDaGFubmVsKTsK
ICAgICBBU1NFUlQobV9pbnNwZWN0b3JDbGllbnQpOwogCiAgICAgLy8gSWYgYSBmcm9udGVuZCBo
YXMgY29ubmVjdGVkIGVuYWJsZSB0aGUgZGV2ZWxvcGVyIGV4dHJhcyBhbmQga2VlcCB0aGVtIGVu
YWJsZWQuCkBAIC0yODUsNyArMjg0LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2gKICNlbmRp
ZgogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKQogewog
ICAgIG1fZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwp
OwogCkBAIC0zNjIsNyArMzYxLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93KCkK
ICAgICBpZiAobV9mcm9udGVuZFJvdXRlci0+aGFzTG9jYWxGcm9udGVuZCgpKQogICAgICAgICBt
X2luc3BlY3RvckNsaWVudC0+YnJpbmdGcm9udGVuZFRvRnJvbnQoKTsKICAgICBlbHNlIGlmIChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmVsID0gbV9pbnNwZWN0b3JD
bGllbnQtPm9wZW5Mb2NhbEZyb250ZW5kKHRoaXMpKQotICAgICAgICBjb25uZWN0RnJvbnRlbmQo
ZnJvbnRlbmRDaGFubmVsKTsKKyAgICAgICAgY29ubmVjdEZyb250ZW5kKCpmcm9udGVuZENoYW5u
ZWwpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldElzVW5kZXJUZXN0KGJvb2wg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAppbmRleCA5ZmRkM2I3MTc1ZC4uNDkyZmM4YTQwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtOTEsOCArOTEsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNMb2NhbEZyb250ZW5kKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNSZW1vdGVG
cm9udGVuZCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb25uZWN0RnJvbnRl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqLCBib29sIGlzQXV0b21hdGljSW5zcGVjdGlv
biA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2UsIGJvb2wg
aW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2Nv
bm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlzY29ubmVjdEFsbEZyb250ZW5kcygpOwogCiAgICAgdm9pZCBpbnNwZWN0
KE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBlNWM3NDU4ZjFjOC4uZDJjMDIzZmNjYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmNvbm5lY3RGcm9udGVuZCgpCiAgICAgbV9leGVjdXRpb25TdG9wd2F0Y2gtPnN0YXJ0KCk7
CiAKICAgICBtX2ZvcndhcmRpbmdDaGFubmVsID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJUb1Bh
Z2VGcm9udGVuZENoYW5uZWw+KG1fd29ya2VyR2xvYmFsU2NvcGUpOwotICAgIG1fZnJvbnRlbmRS
b3V0ZXItPmNvbm5lY3RGcm9udGVuZChtX2ZvcndhcmRpbmdDaGFubmVsLmdldCgpKTsKKyAgICBt
X2Zyb250ZW5kUm91dGVyLT5jb25uZWN0RnJvbnRlbmQoKm1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0
KCkpOwogICAgIG1fYWdlbnRzLmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZCgmbV9mcm9udGVu
ZFJvdXRlci5nZXQoKSwgJm1fYmFja2VuZERpc3BhdGNoZXIuZ2V0KCkpOwogfQogCkBAIC0xMzAs
NyArMTMwLDcgQEAgdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJv
bnRlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHIKICAgICB9KTsKIAogICAgIG1fYWdl
bnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7Ci0gICAgbV9mcm9udGVu
ZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKG1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0KCkpOwor
ICAgIG1fZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RGcm9udGVuZCgqbV9mb3J3YXJkaW5nQ2hh
bm5lbC5nZXQoKSk7CiAgICAgbV9mb3J3YXJkaW5nQ2hhbm5lbCA9IG51bGxwdHI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggMzJlNGNiN2FhNTguLmQ5Y2Rl
NGY1ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcApAQCAtNjksMTYg
KzY5LDE0IEBAIGJvb2wgUGFnZURlYnVnZ2FibGU6Omhhc0xvY2FsRGVidWdnZXIoKSBjb25zdAog
ICAgIHJldHVybiBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmhhc0xvY2FsRnJvbnRlbmQo
KTsKIH0KIAotdm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCogY2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRp
YXRlbHlQYXVzZSkKK3ZvaWQgUGFnZURlYnVnZ2FibGU6OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVs
JiBjaGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBh
dXNlKQogewotICAgIEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIgPSBt
X3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGluc3BlY3RvckNvbnRyb2xsZXIuY29u
bmVjdEZyb250ZW5kKGNoYW5uZWwsIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgaW1tZWRpYXRlbHlQ
YXVzZSk7CisgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRlbmQo
Y2hhbm5lbCwgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBpbW1lZGlhdGVseVBhdXNlKTsKIH0KIAot
dm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5l
bCogY2hhbm5lbCkKK3ZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFu
bmVsJiBjaGFubmVsKQogewotICAgIEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRy
b2xsZXIgPSBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGluc3BlY3RvckNvbnRy
b2xsZXIuZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOworICAgIG1fcGFnZS5pbnNwZWN0b3JD
b250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwogfQogCiB2b2lkIFBhZ2VE
ZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaAppbmRleCAxMDA5MjliYTFkOC4uNWNi
MDUxMTJhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKQEAgLTQ3LDggKzQ3
LDggQEAgcHVibGljOgogICAgIFN0cmluZyB1cmwoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhh
c0xvY2FsRGVidWdnZXIoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgY29ubmVjdChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2Us
IGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lkIGRpc2Nvbm5l
Y3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lkIGNvbm5lY3Qo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9
IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CisgICAgdm9pZCBk
aXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CiAg
ICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggOGEzMjA1MTU1ZDQuLjljOWI0ZmVkOTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzUsNyArMzM1LDcgQEAgSW5zcGVjdG9yU3R1YkZy
b250ZW5kOjpJbnNwZWN0b3JTdHViRnJvbnRlbmQoUGFnZSYgaW5zcGVjdGVkUGFnZSwgUmVmUHRy
PERPTVdpbmQKICAgICBBU1NFUlRfQVJHKGZyb250ZW5kV2luZG93LCBmcm9udGVuZFdpbmRvdyk7
CiAKICAgICBtX2Zyb250ZW5kQ29udHJvbGxlci5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0
aGlzKTsKLSAgICBpbnNwZWN0ZWRQYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJv
bnRlbmQodGhpcyk7CisgICAgaW5zcGVjdGVkUGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuY29u
bmVjdEZyb250ZW5kKCp0aGlzKTsKIH0KIAogSW5zcGVjdG9yU3R1YkZyb250ZW5kOjp+SW5zcGVj
dG9yU3R1YkZyb250ZW5kKCkKQEAgLTM0OSw3ICszNDksNyBAQCB2b2lkIEluc3BlY3RvclN0dWJG
cm9udGVuZDo6Y2xvc2VXaW5kb3coKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2Zyb250ZW5k
Q29udHJvbGxlci5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChudWxscHRyKTsKLSAgICBpbnNw
ZWN0ZWRQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQodGhp
cyk7CisgICAgaW5zcGVjdGVkUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVj
dEZyb250ZW5kKCp0aGlzKTsKIAogICAgIG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKCk7CiAgICAg
bV9mcm9udGVuZFdpbmRvdyA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJs
ZS5jcHAKaW5kZXggNTUxZTM5YTkzNzMuLjlhMzgzMmE2MjJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckRlYnVnZ2FibGUuY3BwCkBAIC00MiwxMiArNDIsMTIgQEAgU2VydmljZVdvcmtlckRlYnVn
Z2FibGU6OlNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlKFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSYg
c2VydmkKIHsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6Y29ubmVjdChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCwgYm9vbCwgYm9vbCkKK3ZvaWQgU2Vydmlj
ZVdvcmtlckRlYnVnZ2FibGU6OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBjaGFubmVsLCBib29s
LCBib29sKQogewogICAgIG1fc2VydmljZVdvcmtlclRocmVhZFByb3h5Lmluc3BlY3RvclByb3h5
KCkuY29ubmVjdFRvV29ya2VyKGNoYW5uZWwpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlOjpkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsKQor
dm9pZCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwm
IGNoYW5uZWwpCiB7CiAgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJv
eHkoKS5kaXNjb25uZWN0RnJvbVdvcmtlcihjaGFubmVsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RGVidWdnYWJsZS5oCmluZGV4IDRiY2QwNzE3ZWMzLi41OWJmYzNjZmQ3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVn
Z2FibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5oCkBAIC00OSw4ICs0OSw4IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zY29wZVVSTDsgfQogICAgIGJvb2wgaGFz
TG9jYWxEZWJ1Z2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lk
IGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqLCBib29sIGlzQXV0b21hdGljQ29u
bmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7Ci0g
ICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKikgZmluYWw7Cisg
ICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9t
YXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZp
bmFsOworICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpIGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0
b3JQcm94eS5jcHAKaW5kZXggNjNjNzJlNThkMmQuLjVmMGYxZWUwMmRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTU3LDE4ICs1NywxOCBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6c2VydmljZVdvcmtlclRlcm1pbmF0ZWQoKQog
ICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3BlY3Rv
clByb3h5Ojpjb25uZWN0VG9Xb3JrZXIoRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsKQordm9pZCBT
ZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OmNvbm5lY3RUb1dvcmtlcihGcm9udGVuZENoYW5u
ZWwmIGNoYW5uZWwpCiB7Ci0gICAgbV9jaGFubmVsID0gY2hhbm5lbDsKKyAgICBtX2NoYW5uZWwg
PSAmY2hhbm5lbDsKIAogICAgIG1fc2VydmljZVdvcmtlclRocmVhZFByb3h5LnRocmVhZCgpLnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIHsKICAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRlbmQoKTsKICAgICB9LCBXb3JrZXJSdW5Mb29w
OjpkZWJ1Z2dlck1vZGUoKSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5
OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpCit2b2lkIFNl
cnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6ZGlzY29ubmVjdEZyb21Xb3JrZXIoRnJvbnRlbmRD
aGFubmVsJiBjaGFubmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQoY2hhbm5lbCwgY2hhbm5lbCA9
PSBtX2NoYW5uZWwpOworICAgIEFTU0VSVF9VTlVTRUQoY2hhbm5lbCwgJmNoYW5uZWwgPT0gbV9j
aGFubmVsKTsKICAgICBtX2NoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9zZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkudGhyZWFkKCkucnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHkuaAppbmRleCAwYzdlYmNkMTBmMS4uNmFhODc0ZTJlMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0
b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oCkBAIC00OSw4ICs0OSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2VydmljZVdvcmtlclRlcm1pbmF0ZWQoKTsKIAotICAgIHZvaWQgY29ubmVjdFRv
V29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25uZWN0
RnJvbVdvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgY29ubmVj
dFRvV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CisgICAgdm9pZCBkaXNjb25u
ZWN0RnJvbVdvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpOwogICAgIHZvaWQgc2Vu
ZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNlbmRNZXNzYWdlRnJv
bVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMGQzOTZkNTk2
ZjMuLmVhNGNlZDlmOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTExLTEzICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBjb25u
ZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkxNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpjb25uZWN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRpc2Nvbm5lY3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGVybWluYXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VEZWJ1Z2dhYmxlOjpjb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZURlYnVnZ2Fi
bGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29u
bmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpjbG9zZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Ojpjb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUluc3BlY3RvclRhcmdldDo6ZGlzY29ubmVjdCk6CisKIDIwMTgtMTEtMTQgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
b2xsb3ctdXA6IEtlZXAgRGlzYWJsaW5nIFByb2Nlc3MgU3dhcCBmb3IgTG9jYWwgV2ViIEluc3Bl
Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBhN2IxODMxZWQ4NC4uYmJhNzNkYTdkZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0xMTgsMjAgKzExOCwyMCBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5kaXNwYXRjaChtZXNzYWdlKTsKIH0K
IAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCogY2hhbm5lbCwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRp
YXRlbHlQYXVzZSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNvbm5lY3QoSW5zcGVjdG9y
OjpGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBi
b29sIGltbWVkaWF0ZWx5UGF1c2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGlzQXV0b21hdGljQ29u
bmVjdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKGltbWVkaWF0ZWx5UGF1c2UpOwogCi0gICAgbV9y
ZW1vdGVDaGFubmVsID0gY2hhbm5lbDsKKyAgICBtX3JlbW90ZUNoYW5uZWwgPSAmY2hhbm5lbDsK
ICAgICBtX2Zyb250ZW5kUm91dGVyLT5jb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiAKICAgICBz
ZXRJc1BhaXJlZCh0cnVlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzY29u
bmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3ZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OmRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGNoYW5u
ZWwpCiB7Ci0gICAgQVNTRVJUKGNoYW5uZWwgPT0gbV9yZW1vdGVDaGFubmVsKTsKKyAgICBBU1NF
UlQoJmNoYW5uZWwgPT0gbV9yZW1vdGVDaGFubmVsKTsKICAgICB0ZXJtaW5hdGUoKTsKIH0KIApA
QCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnRlcm1pbmF0ZSgp
CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgaWYgKEluc3BlY3Rvcjo6RnJvbnRl
bmRDaGFubmVsKiBjaGFubmVsID0gbV9yZW1vdGVDaGFubmVsKSB7CiAgICAgICAgIG1fcmVtb3Rl
Q2hhbm5lbCA9IG51bGxwdHI7Ci0gICAgICAgIG1fZnJvbnRlbmRSb3V0ZXItPmRpc2Nvbm5lY3RG
cm9udGVuZChjaGFubmVsKTsKKyAgICAgICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29ubmVjdEZy
b250ZW5kKCpjaGFubmVsKTsKICAgICB9CiAKICAgICBzZXRJc1BhaXJlZChmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmgKaW5kZXggNWIyMDE1N2YxN2MuLmM3MDAwNDU3NmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oCkBAIC0xMzAsOCArMTMwLDggQEAgcHVibGljOgogICAgIC8vIEluc3BlY3Rvcjo6UmVt
b3RlQXV0b21hdGlvblRhcmdldCBBUEkKICAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2Vzc2lvbklkZW50aWZpZXI7IH0KICAgICB2b2lkIGRpc3BhdGNoTWVzc2Fn
ZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBvdmVycmlkZTsKLSAgICB2b2lkIGNv
bm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqLCBib29sIGlzQXV0b21hdGljQ29ubmVj
dGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1
dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2Up
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5l
bCYpIG92ZXJyaWRlOwogI2VuZGlmCiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuY3BwCmluZGV4IGYzMmM4ZGFjNjQ5
Li4xNjY0MTdiN2JhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZURlYnVnZ2FibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1
Z2dhYmxlLmNwcApAQCAtNjYsMTIgKzY2LDEyIEBAIGJvb2wgV2ViUGFnZURlYnVnZ2FibGU6Omhh
c0xvY2FsRGVidWdnZXIoKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UuaW5zcGVjdG9yQ29udHJv
bGxlcigpLmhhc0xvY2FsRnJvbnRlbmQoKTsKIH0KIAotdm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6
Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCwgYm9vbCBpc0F1dG9t
YXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSkKK3ZvaWQgV2ViUGFnZURlYnVn
Z2FibGU6OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBjaGFubmVsLCBib29sIGlzQXV0b21hdGlj
Q29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewogICAgIG1fcGFnZS5pbnNwZWN0
b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKGNoYW5uZWwsIGlzQXV0b21hdGljQ29ubmVj
dGlvbiwgaW1tZWRpYXRlbHlQYXVzZSk7CiB9CiAKLXZvaWQgV2ViUGFnZURlYnVnZ2FibGU6OmRp
c2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpCit2b2lkIFdlYlBh
Z2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsKICAg
ICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZChjaGFubmVs
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dh
YmxlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5oCmluZGV4
IGFiMjE0YmQ0NzU0Li45ZjhkZjcwMDE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlRGVidWdnYWJsZS5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
dXJsKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNMb2NhbERlYnVnZ2VyKCkgY29uc3QgZmlu
YWw7CiAKLSAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqLCBib29s
IGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBm
YWxzZSkgZmluYWw7Ci0gICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsKikgZmluYWw7CisgICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVs
JiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBh
dXNlID0gZmFsc2UpIGZpbmFsOworICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250
ZW5kQ2hhbm5lbCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpIGZpbmFsOwogICAgIHZvaWQgc2V0SW5kaWNhdGluZyhib29s
KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDc5NzQyMGMxZTkyLi5jNGI5MmM4M2NmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtNjIsMTAgKzYyLDggQEAgYm9vbCBXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlcjo6aGFzTG9jYWxGcm9udGVuZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJvbnRlbmRSb3V0
ZXItPmhhc0xvY2FsRnJvbnRlbmQoKTsKIH0KIAotdm9pZCBXZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBmcm9udGVu
ZENoYW5uZWwsIGJvb2wsIGJvb2wpCit2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpj
b25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5l
bCwgYm9vbCwgYm9vbCkKIHsKLSAgICBBU1NFUlRfQVJHKGZyb250ZW5kQ2hhbm5lbCwgZnJvbnRl
bmRDaGFubmVsKTsKLQogICAgIGJvb2wgY29ubmVjdGluZ0ZpcnN0RnJvbnRlbmQgPSAhbV9mcm9u
dGVuZFJvdXRlci0+aGFzRnJvbnRlbmRzKCk7CiAKICAgICBtX2Zyb250ZW5kUm91dGVyLT5jb25u
ZWN0RnJvbnRlbmQoZnJvbnRlbmRDaGFubmVsKTsKQEAgLTgxLDcgKzc5LDcgQEAgdm9pZCBXZWJQ
YWdlSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRl
bmRDaGFubmVsKiBmcm8KICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9s
bGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwp
Cit2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJv
bnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwpCiB7CiAgICAgbV9mcm9udGVuZFJvdXRlci0+
ZGlzY29ubmVjdEZyb250ZW5kKGZyb250ZW5kQ2hhbm5lbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDJjOTFl
MDI2ZTUyLi4wY2FmNmExYzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaGFzTG9jYWxGcm9udGVuZCgpIGNvbnN0OwogCi0gICAgdm9pZCBjb25uZWN0
RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqLCBib29sIGlzQXV0b21hdGljSW5z
cGVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSk7Ci0gICAgdm9p
ZCBkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKTsKKyAgICB2
b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNB
dXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNl
KTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5l
bCYpOwogICAgIHZvaWQgZGlzY29ubmVjdEFsbEZyb250ZW5kcygpOwogCiAgICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGIz
MjczN2E0ZDY2Li4yZGFhNjM2Y2Y3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3I6OmNsb3NlKCkKICAgICBpZiAoIW1fZnJvbnRlbmRDb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5kaXNjb25uZWN0RnJvbnRlbmQodGhpcyk7CisgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNw
ZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKCp0aGlzKTsKICAgICBjbG9zZUZy
b250ZW5kQ29ubmVjdGlvbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXQuY3BwCmluZGV4IGE3NjM0
ODRmNzNmLi5mMWJlYTUwOWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHAKQEAgLTQ3LDEzICs0
NywxMyBAQCBTdHJpbmcgV2ViUGFnZUluc3BlY3RvclRhcmdldDo6aWRlbnRpZmllcigpIGNvbnN0
CiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXQ6OmNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVu
ZENoYW5uZWwmIGNoYW5uZWwpCiB7CiAgICAgaWYgKG1fcGFnZS5jb3JlUGFnZSgpKQotICAgICAg
ICBtX3BhZ2UuY29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVu
ZCgmY2hhbm5lbCk7CisgICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9s
bGVyKCkuY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwogfQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0
b3JUYXJnZXQ6OmRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwp
CiB7CiAgICAgaWYgKG1fcGFnZS5jb3JlUGFnZSgpKQotICAgICAgICBtX3BhZ2UuY29yZVBhZ2Uo
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgmY2hhbm5lbCk7Cisg
ICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVj
dEZyb250ZW5kKGNoYW5uZWwpOwogfQogCiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXQ6OnNl
bmRNZXNzYWdlVG9UYXJnZXRCYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCA3OGFhMGVmZmQ5NS4uNDU2Nzg4M2M4ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0xMS0xNCAgSm9zZXBo
IFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFBhc3MgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVuY2UgY29ubmVjdC9k
aXNjb25uZWN0IG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hdHQgQmFrZXIuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAgICgt
W1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgZGVzdHJveUluc3BlY3RvclZpZXddKToKKwog
MjAxOC0xMS0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEtlZXAgV2ViIEluc3BlY3RvciB3aW5kb3cgYWxpdmUgYWNyb3Nz
IHByb2Nlc3Mgc3dhcHMgKFBTT04pIChSZW1vdGUgSW5zcGVjdG9yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Lm1tCmluZGV4IDk3YTY5NjEwOTIyLi40YTVjM2Y4ZDEyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5tbQpAQCAtNjU1LDcgKzY1NSw3IEBAIC0gKHZvaWQpZGVzdHJveUluc3BlY3RvclZpZXcK
ICAgICBpZiAoUGFnZSogZnJvbnRlbmRQYWdlID0gX2Zyb250ZW5kQ2xpZW50LT5mcm9udGVuZFBh
Z2UoKSkKICAgICAgICAgZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQobnVsbHB0cik7CiAgICAgaWYgKFBhZ2UqIGluc3BlY3RlZFBh
Z2UgPSBbX2luc3BlY3RlZFdlYlZpZXcuZ2V0KCkgcGFnZV0pCi0gICAgICAgIGluc3BlY3RlZFBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoX2luc3BlY3RvckNs
aWVudCk7CisgICAgICAgIGluc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNj
b25uZWN0RnJvbnRlbmQoKl9pbnNwZWN0b3JDbGllbnQpOwogCiAgICAgW1tfaW5zcGVjdGVkV2Vi
Vmlldy5nZXQoKSBpbnNwZWN0b3JdIHJlbGVhc2VGcm9udGVuZF07CiAgICAgX2luc3BlY3RvckNs
aWVudC0+cmVsZWFzZUZyb250ZW5kKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354850</attachid>
            <date>2018-11-14 14:03:07 -0800</date>
            <delta_ts>2018-11-14 14:03:07 -0800</delta_ts>
            <desc>[PATCH] For Bots</desc>
            <filename>ref4.patch</filename>
            <type>text/plain</type>
            <size>36337</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA2OGZhMDM5YmIxLi5hNmI2ODgzZjcxNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgtMTEtMTQgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNvbm5lY3Qv
ZGlzY29ubmVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTE2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBNYXR0IEJha2VyLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcDoKKyAgICAgICAg
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVD
b250cm9sbGFibGVUYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL2NvY29hL1Jl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3Rl
Q29ubmVjdGlvblRvVGFyZ2V0OjpjbG9zZSk6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9n
bGliL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldEdsaWIuY3BwOgorICAgICAgICAoSW5zcGVjdG9y
OjpSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKToKKyAgICAgICAgKEluc3BlY3Rvcjo6
UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpjbG9zZSk6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdERl
YnVnZ2FibGU6OmNvbm5lY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGU6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlLmg6CisKIDIwMTgtMTEtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBLZWVwIFdlYiBJbnNwZWN0b3Igd2luZG93IGFs
aXZlIGFjcm9zcyBwcm9jZXNzIHN3YXBzIChQU09OKSAoUmVtb3RlIEluc3BlY3RvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5jcHAKaW5kZXggNjVmODUyNWEyZTguLmQ0MDhkMzY0ZjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmNwcApAQCAtMzYsMjggKzM2LDI0IEBAIFJlZjxGcm9udGVuZFJvdXRlcj4gRnJv
bnRlbmRSb3V0ZXI6OmNyZWF0ZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJvbnRlbmRS
b3V0ZXIpOwogfQogCi12b2lkIEZyb250ZW5kUm91dGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsKiBjb25uZWN0aW9uKQordm9pZCBGcm9udGVuZFJvdXRlcjo6Y29ubmVjdEZyb250
ZW5kKEZyb250ZW5kQ2hhbm5lbCYgY29ubmVjdGlvbikKIHsKLSAgICBBU1NFUlRfQVJHKGNvbm5l
Y3Rpb24sIGNvbm5lY3Rpb24pOwotCi0gICAgaWYgKG1fY29ubmVjdGlvbnMuY29udGFpbnMoY29u
bmVjdGlvbikpIHsKKyAgICBpZiAobV9jb25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikp
IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uKTsKKyAgICBtX2Nvbm5lY3Rp
b25zLmFwcGVuZCgmY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgRnJvbnRlbmRSb3V0ZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwqIGNvbm5lY3Rpb24pCit2b2lkIEZyb250ZW5k
Um91dGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBjb25uZWN0aW9uKQog
ewotICAgIEFTU0VSVF9BUkcoY29ubmVjdGlvbiwgY29ubmVjdGlvbik7Ci0KLSAgICBpZiAoIW1f
Y29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbikpIHsKKyAgICBpZiAoIW1fY29ubmVjdGlv
bnMuY29udGFpbnMoJmNvbm5lY3Rpb24pKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9ucy5yZW1vdmVGaXJz
dChjb25uZWN0aW9uKTsKKyAgICBtX2Nvbm5lY3Rpb25zLnJlbW92ZUZpcnN0KCZjb25uZWN0aW9u
KTsKIH0KIAogdm9pZCBGcm9udGVuZFJvdXRlcjo6ZGlzY29ubmVjdEFsbEZyb250ZW5kcygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmgKaW5kZXggZWU2NWIyZjBmOTIuLjNkM2MwNDU1NDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGZyb250
ZW5kQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb25zLnNpemUoKTsgfQogCi0gICAg
dm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7Ci0gICAgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQo
RnJvbnRlbmRDaGFubmVsJik7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRD
aGFubmVsJik7CiAgICAgdm9pZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lk
IHNlbmRFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGQ0ZDdhYTE4Njg2Li5hZDQ1ZjZmNTMwMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTE5LDEwICsx
MTksOCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Z2xvYmFsT2Jq
ZWN0RGVzdHJveWVkKCkKICAgICBtX2FnZW50cy5kaXNjYXJkVmFsdWVzKCk7CiB9CiAKLXZvaWQg
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoRnJvbnRl
bmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uLCBi
b29sIGltbWVkaWF0ZWx5UGF1c2UpCit2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsLCBi
b29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewotICAg
IEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwotCiAgICAgbV9p
c0F1dG9tYXRpY0luc3BlY3Rpb24gPSBpc0F1dG9tYXRpY0luc3BlY3Rpb247CiAgICAgbV9wYXVz
ZUFmdGVySW5pdGlhbGl6YXRpb24gPSBpbW1lZGlhdGVseVBhdXNlOwogCkBAIC0xNDcsMTAgKzE0
NSw4IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJv
bnRlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuCiAjZW5kaWYKIH0KIAotdm9pZCBKU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENo
YW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250
cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5u
ZWwpCiB7Ci0gICAgQVNTRVJUX0FSRyhmcm9udGVuZENoYW5uZWwsIGZyb250ZW5kQ2hhbm5lbCk7
Ci0KICAgICAvLyBGSVhNRTogY2hhbmdlIHRoaXMgdG8gbm90aWZ5IGFnZW50cyB3aGljaCBmcm9u
dGVuZCBoYXMgZGlzY29ubmVjdGVkIChieSBpZCkuCiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdG9yRGVzdHJveWVkKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggOGZiNmNiYjZmZmEu
LmMyMTg4ZDhiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAg
LTY4LDggKzY4LDggQEAgcHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcihKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CiAgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcigpOwogCi0gICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVs
KiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7Ci0g
ICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBj
b25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rp
b24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQo
RnJvbnRlbmRDaGFubmVsJik7CiAKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVu
ZChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaAppbmRl
eCA4YWI2ZDc2Yjc5YS4uNGJiYjZhNDQ4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRh
cmdldC5oCkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXQoKTsKICAgICB2
b2lkIHVwZGF0ZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoRnJvbnRlbmRDaGFubmVs
KiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBh
dXNlID0gZmFsc2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChGcm9udGVuZENo
YW5uZWwqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiwg
Ym9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNl
ID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdChGcm9udGVuZENoYW5u
ZWwmKSA9IDA7CiAKICAgICB1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgdm9pZCBzZXRUYXJnZXRJZGVudGlmaWVyKHVuc2lnbmVk
IGlkZW50aWZpZXIpIHsgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0Q29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQppbmRleCAwOWI1ZjZh
YzE0MC4uNGEzNDI2OTU1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5l
Y3Rpb25Ub1RhcmdldENvY29hLm1tCkBAIC0xNzEsMTMgKzE3MSwxMyBAQCBib29sIFJlbW90ZUNv
bm5lY3Rpb25Ub1RhcmdldDo6c2V0dXAoYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wg
YXV0b21hdGljYQogICAgICAgICAgICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoaXM8UmVtb3RlSW5zcGVjdGlvblRhcmdldD4obV90YXJnZXQpKSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBjYXN0ZWRUYXJnZXQgPSBkb3duY2FzdDxSZW1vdGVJbnNwZWN0
aW9uVGFyZ2V0PihtX3RhcmdldCk7Ci0gICAgICAgICAgICAgICAgY2FzdGVkVGFyZ2V0LT5jb25u
ZWN0KHRoaXMsIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGljYWxseVBhdXNlKTsKKyAg
ICAgICAgICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QoKnRoaXMsIGlzQXV0b21hdGljSW5z
cGVjdGlvbiwgYXV0b21hdGljYWxseVBhdXNlKTsKICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rl
ZCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigp
LnVwZGF0ZVRhcmdldExpc3RpbmcodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKGlzPFJlbW90ZUF1dG9tYXRpb25UYXJnZXQ+KG1fdGFyZ2V0KSkgewogICAgICAgICAg
ICAgICAgIGF1dG8gY2FzdGVkVGFyZ2V0ID0gZG93bmNhc3Q8UmVtb3RlQXV0b21hdGlvblRhcmdl
dD4obV90YXJnZXQpOwotICAgICAgICAgICAgICAgIGNhc3RlZFRhcmdldC0+Y29ubmVjdCh0aGlz
KTsKKyAgICAgICAgICAgICAgICBjYXN0ZWRUYXJnZXQtPmNvbm5lY3QoKnRoaXMpOwogICAgICAg
ICAgICAgICAgIG1fY29ubmVjdGVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIFJlbW90ZUlu
c3BlY3Rvcjo6c2luZ2xldG9uKCkudXBkYXRlVGFyZ2V0TGlzdGluZyh0YXJnZXRJZGVudGlmaWVy
KTsKQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6Y2xv
c2UoKQogICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV90YXJnZXRNdXRl
eCk7CiAgICAgICAgICAgICBpZiAobV90YXJnZXQpIHsKICAgICAgICAgICAgICAgICBpZiAobV9j
b25uZWN0ZWQpCi0gICAgICAgICAgICAgICAgICAgIG1fdGFyZ2V0LT5kaXNjb25uZWN0KHRoaXMp
OworICAgICAgICAgICAgICAgICAgICBtX3RhcmdldC0+ZGlzY29ubmVjdCgqdGhpcyk7CiAKICAg
ICAgICAgICAgICAgICBtX3RhcmdldCA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldEdsaWIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRHbGliLmNwcAppbmRleCBj
NjZiNTU5OTFkMS4uMTNlMzkzMGIzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0R2xpYi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVD
b25uZWN0aW9uVG9UYXJnZXRHbGliLmNwcApAQCAtNTYsMTMgKzU2LDEzIEBAIGJvb2wgUmVtb3Rl
Q29ubmVjdGlvblRvVGFyZ2V0OjpzZXR1cChib29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9v
bCBhdXRvbWF0aWNhCiAgICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYg
KGlzPFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ+KG1fdGFyZ2V0KSkgewogICAgICAgICBhdXRvIHRh
cmdldCA9IGRvd25jYXN0PFJlbW90ZUluc3BlY3Rpb25UYXJnZXQ+KG1fdGFyZ2V0KTsKLSAgICAg
ICAgdGFyZ2V0LT5jb25uZWN0KHRoaXMsIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYXV0b21hdGlj
YWxseVBhdXNlKTsKKyAgICAgICAgdGFyZ2V0LT5jb25uZWN0KCp0aGlzLCBpc0F1dG9tYXRpY0lu
c3BlY3Rpb24sIGF1dG9tYXRpY2FsbHlQYXVzZSk7CiAgICAgICAgIG1fY29ubmVjdGVkID0gdHJ1
ZTsKIAogICAgICAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpLnVwZGF0ZVRhcmdldExp
c3RpbmcodGFyZ2V0SWRlbnRpZmllcik7CiAgICAgfSBlbHNlIGlmIChpczxSZW1vdGVBdXRvbWF0
aW9uVGFyZ2V0PihtX3RhcmdldCkpIHsKICAgICAgICAgYXV0byB0YXJnZXQgPSBkb3duY2FzdDxS
ZW1vdGVBdXRvbWF0aW9uVGFyZ2V0PihtX3RhcmdldCk7Ci0gICAgICAgIHRhcmdldC0+Y29ubmVj
dCh0aGlzKTsKKyAgICAgICAgdGFyZ2V0LT5jb25uZWN0KCp0aGlzKTsKICAgICAgICAgbV9jb25u
ZWN0ZWQgPSB0cnVlOwogCiAgICAgICAgIFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkudXBk
YXRlVGFyZ2V0TGlzdGluZyh0YXJnZXRJZGVudGlmaWVyKTsKQEAgLTkzLDcgKzkzLDcgQEAgdm9p
ZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OmNsb3NlKCkKICAgICB1bnNpZ25lZCB0YXJnZXRJ
ZGVudGlmaWVyID0gbV90YXJnZXQtPnRhcmdldElkZW50aWZpZXIoKTsKIAogICAgIGlmIChtX2Nv
bm5lY3RlZCkKLSAgICAgICAgbV90YXJnZXQtPmRpc2Nvbm5lY3QodGhpcyk7CisgICAgICAgIG1f
dGFyZ2V0LT5kaXNjb25uZWN0KCp0aGlzKTsKIAogICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggZjA1MzYwYzFmNmQuLjM3ZDNjMjg5NjExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RGVidWdnYWJsZS5jcHAKQEAgLTUwLDE0ICs1MCwxNCBAQCBTdHJpbmcgSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlOjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gbmFtZS5pc0VtcHR5KCkgPyAiSlND
b250ZXh0Il9zIDogbmFtZTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmNv
bm5lY3QoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgYXV0b21hdGljSW5z
cGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBKU0dsb2JhbE9iamVjdERlYnVn
Z2FibGU6OmNvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwsIGJvb2wgYXV0
b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQogewogICAgIEpTTG9ja0hv
bGRlciBsb2NrZXIoJm1fZ2xvYmFsT2JqZWN0LnZtKCkpOwogCiAgICAgbV9nbG9iYWxPYmplY3Qu
aW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZChmcm9udGVuZENoYW5uZWwsIGF1
dG9tYXRpY0luc3BlY3Rpb24sIGltbWVkaWF0ZWx5UGF1c2UpOwogfQogCi12b2lkIEpTR2xvYmFs
T2JqZWN0RGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hh
bm5lbCkKK3ZvaWQgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5k
Q2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1f
Z2xvYmFsT2JqZWN0LnZtKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDA1Nzk5MDk0ZmQ2Li43
Y2JjMGMyMTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTUxLDggKzUxLDggQEAgcHVibGljOgog
ICAgIFN0cmluZyBuYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNMb2NhbERlYnVnZ2Vy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgY29ubmVjdChJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFs
c2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lkIGRpc2Nv
bm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lkIGNvbm5l
Y3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlv
biA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CisgICAgdm9p
ZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAgICAgdm9p
ZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7
CiAKICAgICBib29sIGF1dG9tYXRpY0luc3BlY3Rpb25BbGxvd2VkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVmMDE1MjY2ZDc0Li4xYjExMDY5NTQyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTExLTE0ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUGFzcyBJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBjb25uZWN0L2Rpc2Nvbm5lY3QgbWV0
aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlcjo6c2hvdyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25u
ZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBwYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R1YkZyb250ZW5kOjpJbnNwZWN0b3JTdHViRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R1YkZyb250ZW5kOjpjbG9zZVdpbmRvdyk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmNvbm5l
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVnZ2FibGU6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eTo6Y29ubmVjdFRvV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJbnNwZWN0b3JQcm94eTo6ZGlzY29ubmVjdEZyb21Xb3JrZXIpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorCiAy
MDE4LTExLTE0ICBTdGVwaGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAg
ICAgICBbV2luXSBDb21waWxlIFNlcnZpY2UgV29ya2VyIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBlNmQ0YjAyMzVm
Yi4uNDRhYTgxYjJhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKQEAgLTI1NCw5ICsyNTQsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChGcmFtZSYgZnJhbWUsIERPTVdyYXBw
ZXJXbwogICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50LT53aW5kb3dPYmplY3RDbGVh
cmVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIGJvb2wgaXNBdXRvbWF0
aWNJbnNwZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCit2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvbnRl
bmRDaGFubmVsLCBib29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBh
dXNlKQogewotICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwp
OwogICAgIEFTU0VSVChtX2luc3BlY3RvckNsaWVudCk7CiAKICAgICAvLyBJZiBhIGZyb250ZW5k
IGhhcyBjb25uZWN0ZWQgZW5hYmxlIHRoZSBkZXZlbG9wZXIgZXh0cmFzIGFuZCBrZWVwIHRoZW0g
ZW5hYmxlZC4KQEAgLTI4NSw3ICsyODQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNv
bm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaAogI2Vu
ZGlmCiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKEZy
b250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmVsKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwpCiB7
CiAgICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKGZyb250ZW5kQ2hhbm5l
bCk7CiAKQEAgLTM2Miw3ICszNjEsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3co
KQogICAgIGlmIChtX2Zyb250ZW5kUm91dGVyLT5oYXNMb2NhbEZyb250ZW5kKCkpCiAgICAgICAg
IG1faW5zcGVjdG9yQ2xpZW50LT5icmluZ0Zyb250ZW5kVG9Gcm9udCgpOwogICAgIGVsc2UgaWYg
KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwgPSBtX2luc3BlY3Rv
ckNsaWVudC0+b3BlbkxvY2FsRnJvbnRlbmQodGhpcykpCi0gICAgICAgIGNvbm5lY3RGcm9udGVu
ZChmcm9udGVuZENoYW5uZWwpOworICAgICAgICBjb25uZWN0RnJvbnRlbmQoKmZyb250ZW5kQ2hh
bm5lbCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0SXNVbmRlclRlc3QoYm9v
bCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IDlmZGQzYjcxNzVkLi40OTJmYzhhNDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC05MSw4ICs5MSw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc0xvY2FsRnJvbnRlbmQoKSBjb25zdDsKICAgICBib29sIGhhc1JlbW90
ZUZyb250ZW5kKCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbm5lY3RGcm9u
dGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0
aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5l
bCopOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6
RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZSwgYm9v
bCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlz
Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaXNjb25uZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lkIGluc3Bl
Y3QoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGU1Yzc0NThmMWM4Li5kMmMwMjNmY2NjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICBtX2V4ZWN1dGlvblN0b3B3YXRjaC0+c3RhcnQo
KTsKIAogICAgIG1fZm9yd2FyZGluZ0NoYW5uZWwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclRv
UGFnZUZyb250ZW5kQ2hhbm5lbD4obV93b3JrZXJHbG9iYWxTY29wZSk7Ci0gICAgbV9mcm9udGVu
ZFJvdXRlci0+Y29ubmVjdEZyb250ZW5kKG1fZm9yd2FyZGluZ0NoYW5uZWwuZ2V0KCkpOworICAg
IG1fZnJvbnRlbmRSb3V0ZXItPmNvbm5lY3RGcm9udGVuZCgqbV9mb3J3YXJkaW5nQ2hhbm5lbC5n
ZXQoKSk7CiAgICAgbV9hZ2VudHMuZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKCZtX2Zyb250
ZW5kUm91dGVyLmdldCgpLCAmbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKSk7CiB9CiAKQEAgLTEz
MCw3ICsxMzAsNyBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RG
cm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcgogICAgIH0pOwogCiAgICAgbV9h
Z2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKLSAgICBtX2Zyb250
ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQobV9mb3J3YXJkaW5nQ2hhbm5lbC5nZXQoKSk7
CisgICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKCptX2ZvcndhcmRpbmdD
aGFubmVsLmdldCgpKTsKICAgICBtX2ZvcndhcmRpbmdDaGFubmVsID0gbnVsbHB0cjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAppbmRleCAzMmU0Y2I3YWE1OC4uZDlj
ZGU0ZjVlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwCkBAIC02OSwx
NiArNjksMTQgQEAgYm9vbCBQYWdlRGVidWdnYWJsZTo6aGFzTG9jYWxEZWJ1Z2dlcigpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuaGFzTG9jYWxGcm9udGVu
ZCgpOwogfQogCi12b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRl
bmRDaGFubmVsKiBjaGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1l
ZGlhdGVseVBhdXNlKQordm9pZCBQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChGcm9udGVuZENoYW5u
ZWwmIGNoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5
UGF1c2UpCiB7Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlciA9
IG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaW5zcGVjdG9yQ29udHJvbGxlci5j
b25uZWN0RnJvbnRlbmQoY2hhbm5lbCwgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBpbW1lZGlhdGVs
eVBhdXNlKTsKKyAgICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVu
ZChjaGFubmVsLCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGltbWVkaWF0ZWx5UGF1c2UpOwogfQog
Ci12b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsKiBjaGFubmVsKQordm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENo
YW5uZWwmIGNoYW5uZWwpCiB7Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29u
dHJvbGxlciA9IG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaW5zcGVjdG9yQ29u
dHJvbGxlci5kaXNjb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CisgICAgbV9wYWdlLmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9CiAKIHZvaWQgUGFn
ZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oCmluZGV4IDEwMDkyOWJhMWQ4Li41
Y2IwNTExMmE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaApAQCAtNDcsOCAr
NDcsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHVybCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aGFzTG9jYWxEZWJ1Z2dlcigpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBjb25uZWN0KEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsKiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxz
ZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwotICAgIHZvaWQgZGlzY29u
bmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopIGZpbmFsOworICAgIHZvaWQgY29ubmVj
dChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9u
ID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKKyAgICB2b2lk
IGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsK
ICAgICB2b2lkIHNldEluZGljYXRpbmcoYm9vbCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCA4YTMyMDUxNTVkNC4uOWM5YjRmZWQ5MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCBJbnNwZWN0b3JTdHVi
RnJvbnRlbmQ6Okluc3BlY3RvclN0dWJGcm9udGVuZChQYWdlJiBpbnNwZWN0ZWRQYWdlLCBSZWZQ
dHI8RE9NV2luZAogICAgIEFTU0VSVF9BUkcoZnJvbnRlbmRXaW5kb3csIGZyb250ZW5kV2luZG93
KTsKIAogICAgIG1fZnJvbnRlbmRDb250cm9sbGVyLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50
KHRoaXMpOwotICAgIGluc3BlY3RlZFBhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RG
cm9udGVuZCh0aGlzKTsKKyAgICBpbnNwZWN0ZWRQYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5j
b25uZWN0RnJvbnRlbmQoKnRoaXMpOwogfQogCiBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6On5JbnNw
ZWN0b3JTdHViRnJvbnRlbmQoKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R1
YkZyb250ZW5kOjpjbG9zZVdpbmRvdygpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZnJvbnRl
bmRDb250cm9sbGVyLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KG51bGxwdHIpOwotICAgIGlu
c3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCh0
aGlzKTsKKyAgICBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25u
ZWN0RnJvbnRlbmQoKnRoaXMpOwogCiAgICAgbV9mcm9udGVuZFdpbmRvdy0+Y2xvc2UoKTsKICAg
ICBtX2Zyb250ZW5kV2luZG93ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dh
YmxlLmNwcAppbmRleCA1NTFlMzlhOTM3My4uOWEzODMyYTYyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyRGVidWdnYWJsZS5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCBTZXJ2aWNlV29ya2VyRGVi
dWdnYWJsZTo6U2VydmljZVdvcmtlckRlYnVnZ2FibGUoU2VydmljZVdvcmtlclRocmVhZFByb3h5
JiBzZXJ2aQogewogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpjb25uZWN0KElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsLCBib29sLCBib29sKQordm9pZCBTZXJ2
aWNlV29ya2VyRGVidWdnYWJsZTo6Y29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwsIGJv
b2wsIGJvb2wpCiB7CiAgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJv
eHkoKS5jb25uZWN0VG9Xb3JrZXIoY2hhbm5lbCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckRl
YnVnZ2FibGU6OmRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwp
Cit2b2lkIFNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5l
bCYgY2hhbm5lbCkKIHsKICAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5pbnNwZWN0b3JQ
cm94eSgpLmRpc2Nvbm5lY3RGcm9tV29ya2VyKGNoYW5uZWwpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJEZWJ1Z2dhYmxlLmgKaW5kZXggNGJjZDA3MTdlYzMuLjU5YmZjM2NmZDdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVi
dWdnYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogICAgIFN0
cmluZyB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Njb3BlVVJMOyB9CiAgICAgYm9vbCBo
YXNMb2NhbERlYnVnZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZv
aWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWND
b25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsK
LSAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsK
KyAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0
b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkg
ZmluYWw7CisgICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikg
ZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgZmluYWw7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3Bl
Y3RvclByb3h5LmNwcAppbmRleCA2M2M3MmU1OGQyZC4uNWYwZjFlZTAyZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtNTcsMTggKzU3LDE4IEBAIHZv
aWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZXJ2aWNlV29ya2VyVGVybWluYXRlZCgp
CiAgICAgbV9jaGFubmVsID0gbnVsbHB0cjsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHk6OmNvbm5lY3RUb1dvcmtlcihGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpCit2b2lk
IFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6Y29ubmVjdFRvV29ya2VyKEZyb250ZW5kQ2hh
bm5lbCYgY2hhbm5lbCkKIHsKLSAgICBtX2NoYW5uZWwgPSBjaGFubmVsOworICAgIG1fY2hhbm5l
bCA9ICZjaGFubmVsOwogCiAgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkudGhyZWFkKCku
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCkgewogICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuaW5z
cGVjdG9yQ29udHJvbGxlcigpLmNvbm5lY3RGcm9udGVuZCgpOwogICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlYnVnZ2VyTW9kZSgpKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJv
eHk6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKEZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3ZvaWQg
U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9udGVu
ZENoYW5uZWwmIGNoYW5uZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjaGFubmVsLCBjaGFubmVs
ID09IG1fY2hhbm5lbCk7CisgICAgQVNTRVJUX1VOVVNFRChjaGFubmVsLCAmY2hhbm5lbCA9PSBt
X2NoYW5uZWwpOwogICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX3NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS50aHJlYWQoKS5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtdIChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eS5oCmluZGV4IDBjN2ViY2QxMGYxLi42YWE4NzRlMmUxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3Bl
Y3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyVGVybWluYXRlZCgpOwogCi0gICAgdm9pZCBjb25uZWN0
VG9Xb3JrZXIoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKTsKLSAgICB2b2lkIGRpc2Nvbm5l
Y3RGcm9tV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBjb25u
ZWN0VG9Xb3JrZXIoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKTsKKyAgICB2b2lkIGRpc2Nv
bm5lY3RGcm9tV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAgICAgdm9pZCBz
ZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VG
cm9tV29ya2VyVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhYWU0YTYw
N2UzMy4uNjkwMmZmZGI5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgtMTEtMTMg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBQYXNzIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsIGFzIGEgcmVmZXJlbmNlIGNv
bm5lY3QvZGlzY29ubmVjdCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTE2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmNvbm5lY3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp0ZXJtaW5hdGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZURlYnVnZ2FibGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlRGVidWdn
YWJsZTo6ZGlzY29ubmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9u
dGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNj
b25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OmNsb3NlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VJbnNwZWN0b3JUYXJnZXQ6OmNvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0OjpkaXNjb25uZWN0KToKKwogMjAxOC0xMS0xNCAgSm9zZXBo
IFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0
ZW1wdGVkIHdpbmNhaXJvIGJ1aWxkIGZpeCBhZnRlciAyMzgxOTIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
Y3BwCmluZGV4IGE3YjE4MzFlZDg0Li5iYmE3M2RhN2RmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5j
cHAKQEAgLTExOCwyMCArMTE4LDIwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpc3Bh
dGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2UpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBjaGFubmVsLCBib29s
IGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hh
bm5lbCwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSkK
IHsKICAgICBVTlVTRURfUEFSQU0oaXNBdXRvbWF0aWNDb25uZWN0aW9uKTsKICAgICBVTlVTRURf
UEFSQU0oaW1tZWRpYXRlbHlQYXVzZSk7CiAKLSAgICBtX3JlbW90ZUNoYW5uZWwgPSBjaGFubmVs
OworICAgIG1fcmVtb3RlQ2hhbm5lbCA9ICZjaGFubmVsOwogICAgIG1fZnJvbnRlbmRSb3V0ZXIt
PmNvbm5lY3RGcm9udGVuZChjaGFubmVsKTsKIAogICAgIHNldElzUGFpcmVkKHRydWUpOwogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRl
bmRDaGFubmVsKiBjaGFubmVsKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVj
dChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsKLSAgICBBU1NFUlQoY2hh
bm5lbCA9PSBtX3JlbW90ZUNoYW5uZWwpOworICAgIEFTU0VSVCgmY2hhbm5lbCA9PSBtX3JlbW90
ZUNoYW5uZWwpOwogICAgIHRlcm1pbmF0ZSgpOwogfQogCkBAIC0xNTIsNyArMTUyLDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGVybWluYXRlKCkKICNpZiBFTkFCTEUoUkVNT1RFX0lO
U1BFQ1RPUikKICAgICBpZiAoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBt
X3JlbW90ZUNoYW5uZWwpIHsKICAgICAgICAgbV9yZW1vdGVDaGFubmVsID0gbnVsbHB0cjsKLSAg
ICAgICAgbV9mcm9udGVuZFJvdXRlci0+ZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOworICAg
ICAgICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoKmNoYW5uZWwpOwogICAg
IH0KIAogICAgIHNldElzUGFpcmVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAppbmRleCA1YjIw
MTU3ZjE3Yy4uYzcwMDA0NTc2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTEzMCw4ICsxMzAs
OCBAQCBwdWJsaWM6CiAgICAgLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0IEFQ
SQogICAgIFN0cmluZyBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWRl
bnRpZmllcjsgfQogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIG92ZXJyaWRlOwotICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250
ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1t
ZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Nvbm5lY3QoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbm5lY3QoSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZh
bHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgb3ZlcnJpZGU7CiAjZW5kaWYK
ICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlRGVidWdnYWJsZS5jcHAKaW5kZXggZjMyYzhkYWM2NDkuLjE2NjQxN2I3YmE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuY3BwCkBAIC02NiwxMiAr
NjYsMTIgQEAgYm9vbCBXZWJQYWdlRGVidWdnYWJsZTo6aGFzTG9jYWxEZWJ1Z2dlcigpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuaGFzTG9jYWxGcm9udGVu
ZCgpOwogfQogCi12b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxlOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJv
bnRlbmRDaGFubmVsKiBjaGFubmVsLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBp
bW1lZGlhdGVseVBhdXNlKQordm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6Y29ubmVjdChGcm9udGVu
ZENoYW5uZWwmIGNoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVk
aWF0ZWx5UGF1c2UpCiB7CiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0
RnJvbnRlbmQoY2hhbm5lbCwgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBpbW1lZGlhdGVseVBhdXNl
KTsKIH0KIAotdm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbCogY2hhbm5lbCkKK3ZvaWQgV2ViUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5l
Y3QoRnJvbnRlbmRDaGFubmVsJiBjaGFubmVsKQogewogICAgIG1fcGFnZS5pbnNwZWN0b3JDb250
cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxlLmgKaW5kZXggYWIyMTRiZDQ3NTQuLjlmOGRmNzAw
MTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlRGVidWdnYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VEZWJ1Z2dhYmxlLmgKQEAg
LTQ3LDggKzQ3LDggQEAgcHVibGljOgogICAgIFN0cmluZyB1cmwoKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIGhhc0xvY2FsRGVidWdnZXIoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgY29ubmVj
dChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9u
ID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKLSAgICB2b2lk
IGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBmaW5hbDsKKyAgICB2b2lk
IGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29u
bmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7Cisg
ICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7CiAg
ICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
ZmluYWw7CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
aW5kZXggNzk3NDIwYzFlOTIuLmM0YjkyYzgzY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC02MiwxMCAr
NjIsOCBAQCBib29sIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpoYXNMb2NhbEZyb250ZW5k
KCkgY29uc3QKICAgICByZXR1cm4gbV9mcm9udGVuZFJvdXRlci0+aGFzTG9jYWxGcm9udGVuZCgp
OwogfQogCi12b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgYm9vbCwgYm9vbCkK
K3ZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsLCBib29sLCBib29sKQogewotICAg
IEFTU0VSVF9BUkcoZnJvbnRlbmRDaGFubmVsLCBmcm9udGVuZENoYW5uZWwpOwotCiAgICAgYm9v
bCBjb25uZWN0aW5nRmlyc3RGcm9udGVuZCA9ICFtX2Zyb250ZW5kUm91dGVyLT5oYXNGcm9udGVu
ZHMoKTsKIAogICAgIG1fZnJvbnRlbmRSb3V0ZXItPmNvbm5lY3RGcm9udGVuZChmcm9udGVuZENo
YW5uZWwpOwpAQCAtODEsNyArNzksNyBAQCB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZybwogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVu
ZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCkKK3ZvaWQgV2ViUGFnZUluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwmIGZyb250ZW5k
Q2hhbm5lbCkKIHsKICAgICBtX2Zyb250ZW5kUm91dGVyLT5kaXNjb25uZWN0RnJvbnRlbmQoZnJv
bnRlbmRDaGFubmVsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMmM5MWUwMjZlNTIuLjBjYWY2YTFjMjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JDb250
cm9sbGVyLmgKQEAgLTUwLDggKzUwLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNMb2NhbEZy
b250ZW5kKCkgY29uc3Q7CiAKLSAgICB2b2lkIGNvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbCosIGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2UsIGJvb2wg
aW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKTsKLSAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKElu
c3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBm
YWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpOworICAgIHZvaWQgZGlzY29ubmVj
dEZyb250ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAgICAgdm9pZCBkaXNjb25u
ZWN0QWxsRnJvbnRlbmRzKCk7CiAKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVu
ZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggYjMyNzM3YTRkNjYuLjJkYWE2MzZjZjc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6Y2xvc2UoKQogICAg
IGlmICghbV9mcm9udGVuZENvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFn
ZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCh0
aGlzKTsKKyAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNj
b25uZWN0RnJvbnRlbmQoKnRoaXMpOwogICAgIGNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJ
bnNwZWN0b3JUYXJnZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZUluc3BlY3RvclRhcmdldC5jcHAKaW5kZXggYTc2MzQ4NGY3M2YuLmYxYmVhNTA5Yjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0LmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBAIFN0cmluZyBXZWJQYWdl
SW5zcGVjdG9yVGFyZ2V0OjppZGVudGlmaWVyKCkgY29uc3QKIHZvaWQgV2ViUGFnZUluc3BlY3Rv
clRhcmdldDo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsK
ICAgICBpZiAobV9wYWdlLmNvcmVQYWdlKCkpCi0gICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuY29ubmVjdEZyb250ZW5kKCZjaGFubmVsKTsKKyAgICAgICAg
bV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5jb25uZWN0RnJvbnRlbmQo
Y2hhbm5lbCk7CiB9CiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldDo6ZGlzY29ubmVjdChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKIHsKICAgICBpZiAobV9wYWdlLmNv
cmVQYWdlKCkpCi0gICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVy
KCkuZGlzY29ubmVjdEZyb250ZW5kKCZjaGFubmVsKTsKKyAgICAgICAgbV9wYWdlLmNvcmVQYWdl
KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9
CiAKIHZvaWQgV2ViUGFnZUluc3BlY3RvclRhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldEJhY2tl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IDc4YWEwZWZmZDk1Li40NTY3ODgzYzg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE4LTExLTE0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUGFzcyBJbnNwZWN0b3I6OkZyb250
ZW5kQ2hhbm5lbCBhcyBhIHJlZmVyZW5jZSBjb25uZWN0L2Rpc2Nvbm5lY3QgbWV0aG9kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNjEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29u
dHJvbGxlciBkZXN0cm95SW5zcGVjdG9yVmlld10pOgorCiAyMDE4LTExLTE0ICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogS2Vl
cCBXZWIgSW5zcGVjdG9yIHdpbmRvdyBhbGl2ZSBhY3Jvc3MgcHJvY2VzcyBzd2FwcyAoUFNPTikg
KFJlbW90ZSBJbnNwZWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTdhNjk2MTA5
MjIuLjRhNWMzZjhkMTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCkBAIC02NTUsNyArNjU1
LDcgQEAgLSAodm9pZClkZXN0cm95SW5zcGVjdG9yVmlldwogICAgIGlmIChQYWdlKiBmcm9udGVu
ZFBhZ2UgPSBfZnJvbnRlbmRDbGllbnQtPmZyb250ZW5kUGFnZSgpKQogICAgICAgICBmcm9udGVu
ZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChu
dWxscHRyKTsKICAgICBpZiAoUGFnZSogaW5zcGVjdGVkUGFnZSA9IFtfaW5zcGVjdGVkV2ViVmll
dy5nZXQoKSBwYWdlXSkKLSAgICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLmRpc2Nvbm5lY3RGcm9udGVuZChfaW5zcGVjdG9yQ2xpZW50KTsKKyAgICAgICAgaW5zcGVj
dGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVuZCgqX2luc3Bl
Y3RvckNsaWVudCk7CiAKICAgICBbW19pbnNwZWN0ZWRXZWJWaWV3LmdldCgpIGluc3BlY3Rvcl0g
cmVsZWFzZUZyb250ZW5kXTsKICAgICBfaW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRlbmQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAyYjNlMGFmZTVjYy4uMTM4ZTYzNGUw
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0x
MS0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFBhc3MgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwgYXMgYSByZWZlcmVu
Y2UgY29ubmVjdC9kaXNjb25uZWN0IG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hdHQg
QmFrZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JW
aWV3KToKKwogMjAxOC0xMS0xMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29t
PgogCiAgICAgICAgIFNoaXBwZWQgUE5HcyBpbmNsdWRlIGJhZCBwcm9maWxlczogaUNDUDoga25v
d24gaW5jb3JyZWN0IHNSR0IgcHJvZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXgg
MDhjNjgzZWMzODguLmY4ZjBhNDZjNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAg
LTQyMiw3ICs0MjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95
SW5zcGVjdG9yVmlldygpCiAgICAgaWYgKFBhZ2UqIGZyb250ZW5kUGFnZSA9IHRoaXMtPmZyb250
ZW5kUGFnZSgpKQogICAgICAgICBmcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5z
ZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChudWxscHRyKTsKICAgICBpZiAoUGFnZSogaW5zcGVj
dGVkUGFnZSA9IG1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpKQotICAgICAgICBpbnNwZWN0ZWRQ
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKG1faW5zcGVjdG9y
Q2xpZW50KTsKKyAgICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c2Nvbm5lY3RGcm9udGVuZCgqbV9pbnNwZWN0b3JDbGllbnQpOwogCiAgICAgbV9pbnNwZWN0b3JD
bGllbnQtPnJlbGVhc2VGcm9udGVuZCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>