<?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>175312</bug_id>
          
          <creation_ts>2017-08-08 00:11:22 -0700</creation_ts>
          <short_desc>Reinstate active flag for iterators</short_desc>
          <delta_ts>2017-08-09 06:05:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anne van Kesteren">annevk</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1336394</commentid>
    <comment_count>0</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2017-08-08 00:11:22 -0700</bug_when>
    <thetext>Change to standard: https://github.com/whatwg/dom/pull/359

Tests: https://github.com/w3c/web-platform-tests/pull/5651</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336591</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-08 12:23:44 -0700</bug_when>
    <thetext>http://w3c-test.org/dom/traversal/NodeIterator.html
http://w3c-test.org/dom/traversal/TreeWalker.html

&quot;Recursive Filters need to throw&quot; check is failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336644</commentid>
    <comment_count>2</comment_count>
      <attachid>317616</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-08 14:36:21 -0700</bug_when>
    <thetext>Created attachment 317616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336690</commentid>
    <comment_count>3</comment_count>
      <attachid>317630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-08 15:30:01 -0700</bug_when>
    <thetext>Created attachment 317630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336695</commentid>
    <comment_count>4</comment_count>
      <attachid>317632</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-08 15:34:00 -0700</bug_when>
    <thetext>Created attachment 317632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336932</commentid>
    <comment_count>5</comment_count>
      <attachid>317632</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-09 06:04:43 -0700</bug_when>
    <thetext>Comment on attachment 317632
Patch

Clearing flags on attachment: 317632

Committed r220453: &lt;http://trac.webkit.org/changeset/220453&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336933</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-09 06:04:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336934</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-09 06:05:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/33798308&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317616</attachid>
            <date>2017-08-08 14:36:21 -0700</date>
            <delta_ts>2017-08-08 15:04:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175312-20170808143620.patch</filename>
            <type>text/plain</type>
            <size>20840</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3NWM0YzY4NjcxMWJl
ODE0MWM2ZjBmMGVkN2VhNmYzNTk2MWVjZi4uMTdkZDdhMjVhOTYyZDE0NDUzODg0YjZjYzc1YmMw
MDU0NWQ1OGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVpbnN0YXRlIGFjdGl2ZSBm
bGFnIGZvciBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NTMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vZGVJdGVyYXRvciAvIFRyZWVXYWxrZXIgc2hvdWxkIG5vIGxvbmdlciBhbGxv
dyByZWN1cnNpdmUgZmlsdGVycworICAgICAgICBhZnRlciB0aGUgZm9sbG93aW5nIGNoYW5nZSB0
byB0aGUgRE9NIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL3do
YXR3Zy9kb20vcHVsbC8zNTkKKworICAgICAgICBUaGlzIHBhdGNoIGFsaWducyBvdXIgYmVoYXZp
b3Igd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB1cGRhdGVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6Om5leHROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKToKKyAgICAgICAgKiBkb20vVHJh
dmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVy
YXRvckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9k
ZSk6CisgICAgICAgICogZG9tL1RyYXZlcnNhbC5oOgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2Vy
LmNwcDoKKwogMjAxNy0wOC0wOCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlIGZhc3Qgc2VlayBsb2dpYyB0byBwcmV2ZW50IHBpbmctcG9uZ2luZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKaW5kZXggOGZjMjE1MWJkY2NhMDVkMDAxMjll
YjdjY2Q5YTRmNmVhYzg2MmFmOC4uYzc3YTUxYjc5Zjg4YzQzNjExN2FhMDk2NmZlY2YwZDUwYzk0
NGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKQEAgLTk3LDEzICs5NywxMSBA
QCBFeGNlcHRpb25PcjxSZWZQdHI8Tm9kZT4+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoKQogICAg
ICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9SRUpFQ1QgaXMgdGhl
IHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBwcm92aXNpb25hbFJl
c3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwogCi0gICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1
bHQgPSBhY2NlcHROb2RlKCpwcm92aXNpb25hbFJlc3VsdCk7Ci0gICAgICAgIGlmIChjYWxsYmFj
a1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0g
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9Owor
ICAgICAgICBhdXRvIGZpbHRlclJlc3VsdCA9IGFjY2VwdE5vZGUoKnByb3Zpc2lvbmFsUmVzdWx0
KTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIEFTU0VS
VChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsK
LQotICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CisgICAgICAgIGJvb2wg
bm9kZVdhc0FjY2VwdGVkID0gZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRl
cjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewogICAgICAg
ICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAgICAgcmVz
dWx0ID0gV1RGTW92ZShwcm92aXNpb25hbFJlc3VsdCk7CkBAIC0xMjYsMTMgKzEyNCwxMSBAQCBF
eGNlcHRpb25PcjxSZWZQdHI8Tm9kZT4+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKCkKICAg
ICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRo
ZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxS
ZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVz
dWx0ID0gYWNjZXB0Tm9kZSgqcHJvdmlzaW9uYWxSZXN1bHQpOwotICAgICAgICBpZiAoY2FsbGJh
Y2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQot
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsK
LQotICAgICAgICBBU1NFUlQoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0
VHlwZTo6U3VjY2Vzcyk7CisgICAgICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgq
cHJvdmlzaW9uYWxSZXN1bHQpOworICAgICAgICBpZiAoZmlsdGVyUmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAKLSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBjYWxsYmFja1Jlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOworICAgICAgICBib29s
IG5vZGVXYXNBY2NlcHRlZCA9IGZpbHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0
ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0ZWQpIHsKICAgICAg
ICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAgICAgICAgICAgIHJl
c3VsdCA9IFdURk1vdmUocHJvdmlzaW9uYWxSZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNw
cAppbmRleCAzMjA5ZTUyOGM5YTlkNzMwMzA1N2ZmNjE4ZTVjMGFkZTQzNmUzODFmLi5mZGY3MGM5
ZDcyOTMzOTc0MDFjZmFmYzliMmVlMGVlYTExMjMwMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2Fs
LmNwcApAQCAtMjUsMjggKzI1LDM5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VHJhdmVyc2FsLmgiCiAKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgogI2luY2x1ZGUgIk5v
ZGUuaCIKICNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3Bl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJh
dG9yQmFzZShOb2RlJiByb290Tm9kZSwgdW5zaWduZWQgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVG
aWx0ZXI+JiYgbm9kZUZpbHRlcikKICAgICA6IG1fcm9vdChyb290Tm9kZSkKLSAgICAsIG1fd2hh
dFRvU2hvdyh3aGF0VG9TaG93KQogICAgICwgbV9maWx0ZXIoV1RGTW92ZShub2RlRmlsdGVyKSkK
KyAgICAsIG1fd2hhdFRvU2hvdyh3aGF0VG9TaG93KQogewogfQogCi1DYWxsYmFja1Jlc3VsdDx1
bnNpZ25lZCBzaG9ydD4gTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlJiBub2RlKSBj
b25zdAorLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtZmlsdGVy
CitFeGNlcHRpb25Pcjx1bnNpZ25lZCBzaG9ydD4gTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9k
ZShOb2RlJiBub2RlKQogeworICAgIGlmIChtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiUmVjdXJzaXZlIGZpbHRl
cnMgYXJlIG5vdCBhbGxvd2VkIikgfTsKKwogICAgIC8vIFRoZSBiaXQgdHdpZGRsaW5nIGhlcmUg
aXMgZG9uZSB0byBtYXAgRE9NIG5vZGUgdHlwZXMsIHdoaWNoIGFyZSBnaXZlbiBhcyBpbnRlZ2Vy
cyBmcm9tCiAgICAgLy8gMSB0aHJvdWdoIDE0LCB0byB3aGF0VG9TaG93IGJpdCBtYXNrcy4KICAg
ICBpZiAoISgoKDEgPDwgKG5vZGUubm9kZVR5cGUoKSAtIDEpKSAmIG1fd2hhdFRvU2hvdykpKQog
ICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVA7CisKICAgICBpZiAoIW1fZmls
dGVyKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKIAotICAgIHJl
dHVybiBtX2ZpbHRlci0+YWNjZXB0Tm9kZShub2RlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBp
c0FjdGl2ZShtX2lzQWN0aXZlLCB0cnVlKTsKKyAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gbV9m
aWx0ZXItPmFjY2VwdE5vZGUobm9kZSk7CisgICAgaWYgKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9
PSBDYWxsYmFja1Jlc3VsdFR5cGU6OkV4Y2VwdGlvblRocm93bikKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAgICByZXR1cm4gY2FsbGJhY2tS
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmF2ZXJzYWwuaAppbmRleCA5NmYyZmVmNDBlYmMxNGY3M2Q1NmUxNGIzNGQ2Y2Y2
Y2MxNGY5NjhkLi42NWM2YmE1MTZmMGFmNTE5MDA3MzhkNWVmNGZjYTE4MjQ3OGY0NDk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyYXZlcnNhbC5oCkBAIC0yNCw3ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiQ2FsbGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsMTIgKzQy
LDEzIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE5vZGVJdGVyYXRvckJhc2UoTm9kZSYs
IHVuc2lnbmVkIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKLSAgICBDYWxsYmFj
a1Jlc3VsdDx1bnNpZ25lZCBzaG9ydD4gYWNjZXB0Tm9kZShOb2RlJikgY29uc3Q7CisgICAgRXhj
ZXB0aW9uT3I8dW5zaWduZWQgc2hvcnQ+IGFjY2VwdE5vZGUoTm9kZSYpOwogCiBwcml2YXRlOgog
ICAgIFJlZjxOb2RlPiBtX3Jvb3Q7Ci0gICAgdW5zaWduZWQgbV93aGF0VG9TaG93OwogICAgIFJl
ZlB0cjxOb2RlRmlsdGVyPiBtX2ZpbHRlcjsKKyAgICB1bnNpZ25lZCBtX3doYXRUb1Nob3c7Cisg
ICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAppbmRleCBlODUxZTg3ZWMxNDFlNmY1Y2Y2M2Uw
MTA4ZjZkNDlhOWQ0ZDFkMTQ1Li40ZGRjZDQ4NWRhOTMxNGZkNmVhMzE5OTgwYjMwMTZhNjRmMGQw
MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCkBAIC01NSwxNCArNTUsMTEgQEAgRXhj
ZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OnBhcmVudE5vZGUoKQogICAgICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBhdXRvIGNhbGxiYWNr
UmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50
eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworICAgICAgICBh
dXRvIGZpbHRlclJlc3VsdCA9IGFjY2VwdE5vZGUoKm5vZGUpOworICAgICAgICBpZiAoZmlsdGVy
UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICAgICAgQVNTRVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUo
KSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOwotCi0gICAgICAgIGF1dG8gYWNjZXB0
Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAg
ICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAg
ICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVS
X0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZU5vbk51
bGwoKSk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpAQCAtNzEsMTQgKzY4LDExIEBAIEV4
Y2VwdGlvbk9yPE5vZGUqPiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKIEV4Y2VwdGlvbk9yPE5v
ZGUqPiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBu
b2RlID0gbV9jdXJyZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBhdXRvIGNh
bGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jl
c3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0g
ICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBl
OjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2Rl
KTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8g
YWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwot
ICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChmaWx0
ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZU5v
bk51bGwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbV9jdXJyZW50LnB0cigpOwpAQCAtMTA4
LDE0ICsxMDIsMTEgQEAgRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OmZpcnN0Q2hpbGQo
KQogRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6Omxhc3RDaGlsZCgpCiB7CiAgICAgZm9y
IChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+bGFzdENoaWxkKCk7IG5vZGU7ICkgewot
ICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAg
IGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRp
b25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRp
b25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2Fs
bGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBh
Y2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwog
Ci0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpOwotICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKKyAgICAg
ICAgc3dpdGNoIChmaWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSkgewogICAgICAgICAgICAgY2Fz
ZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9
IG5vZGUucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbV9jdXJyZW50
LnB0cigpOwpAQCAtMTUxLDM0ICsxNDIsMjggQEAgdGVtcGxhdGU8VHJlZVdhbGtlcjo6U2libGlu
Z1RyYXZlcnNhbFR5cGUgdHlwZT4gRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OnQKICAg
ICBhdXRvIGlzTmV4dCA9IHR5cGUgPT0gU2libGluZ1RyYXZlcnNhbFR5cGU6Ok5leHQ7CiAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IGlzTmV4
dCA/IG5vZGUtPm5leHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91c1NpYmxpbmcoKTsgc2libGlu
ZzsgKSB7Ci0gICAgICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqc2li
bGluZyk7Ci0gICAgICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNr
UmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisgICAgICAgICAgICBhdXRvIGZpbHRl
clJlc3VsdCA9IGFjY2VwdE5vZGUoKnNpYmxpbmcpOworICAgICAgICAgICAgaWYgKGZpbHRlclJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyUmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgICAgICAgICAgQVNTRVJUKGNhbGxiYWNrUmVzdWx0
LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOwotCi0gICAgICAgICAgICBh
dXRvIGFjY2VwdE5vZGVSZXN1bHQgPSBjYWxsYmFja1Jlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KTsKLSAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRF
Ul9BQ0NFUFQpIHsKKyAgICAgICAgICAgIGlmIChmaWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSA9
PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50
ID0gc2libGluZy5yZWxlYXNlTm9uTnVsbCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBtX2N1
cnJlbnQucHRyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBub2RlID0gc2libGluZzsK
ICAgICAgICAgICAgIHNpYmxpbmcgPSBpc05leHQgPyBzaWJsaW5nLT5maXJzdENoaWxkKCkgOiBz
aWJsaW5nLT5sYXN0Q2hpbGQoKTsKLSAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QgfHwgIXNpYmxpbmcpCisgICAgICAgICAgICBpZiAo
ZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCB8
fCAhc2libGluZykKICAgICAgICAgICAgICAgICBzaWJsaW5nID0gaXNOZXh0ID8gbm9kZS0+bmV4
dFNpYmxpbmcoKSA6IG5vZGUtPnByZXZpb3VzU2libGluZygpOwogICAgICAgICB9CiAgICAgICAg
IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSB8fCBub2RlID09
ICZyb290KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBhdXRvIGNh
bGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jl
c3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0g
ICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBl
OjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2Rl
KTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8g
YWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwot
ICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBU
KQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6
RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KQEAg
LTIwMCwyOSArMTg1LDIzIEBAIEV4Y2VwdGlvbk9yPE5vZGUqPiBUcmVlV2Fsa2VyOjpwcmV2aW91
c05vZGUoKQogICAgICAgICB3aGlsZSAoTm9kZSogcHJldmlvdXNTaWJsaW5nID0gbm9kZS0+cHJl
dmlvdXNTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIG5vZGUgPSBwcmV2aW91c1NpYmxpbmc7CiAK
LSAgICAgICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKLSAg
ICAgICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBl
OjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4
aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAgICAgICAgICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0g
YWNjZXB0Tm9kZSgqbm9kZSk7CisgICAgICAgICAgICBpZiAoZmlsdGVyUmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwogCi0gICAgICAgICAgICBBU1NFUlQoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENh
bGxiYWNrUmVzdWx0VHlwZTo6U3VjY2Vzcyk7Ci0KLSAgICAgICAgICAgIGF1dG8gYWNjZXB0Tm9k
ZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICAg
ICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKKyAg
ICAgICAgICAgIGlmIChmaWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfUkVKRUNUKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgd2hp
bGUgKE5vZGUqIGxhc3RDaGlsZCA9IG5vZGUtPmxhc3RDaGlsZCgpKSB7CiAgICAgICAgICAgICAg
ICAgbm9kZSA9IGxhc3RDaGlsZDsKIAotICAgICAgICAgICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1
bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2tSZXN1
bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9
OwotCi0gICAgICAgICAgICAgICAgQVNTRVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxs
YmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOworICAgICAgICAgICAgICAgIGF1dG8gZmlsdGVyUmVz
dWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKGZpbHRlclJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICAgICAgICAgICAgICBhY2NlcHROb2RlUmVzdWx0
ID0gY2FsbGJhY2tSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgICAgICAgICAgICAg
aWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKKyAgICAg
ICAgICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6
RklMVEVSX1JFSkVDVCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUKSB7CisgICAgICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0g
Tm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkgewogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9
IG5vZGUucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbV9jdXJyZW50
LnB0cigpOwogICAgICAgICAgICAgfQpAQCAtMjM0LDE0ICsyMTMsMTEgQEAgRXhjZXB0aW9uT3I8
Tm9kZSo+IFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZSgpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVudDsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVz
dWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBl
KCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFT
U0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNz
KTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAg
ICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBm
aWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9k
ZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAg
ICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpAQCAtMjU0LDMxICsyMzAsMjUgQEAgQ2hp
bGRyZW46CiAgICAgd2hpbGUgKE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCkp
IHsKICAgICAgICAgbm9kZSA9IGZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgYXV0byBjYWxsYmFja1Jl
c3VsdCA9IGFjY2VwdE5vZGUoKm5vZGUpOwotICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlw
ZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAgICAgICAgYXV0
byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkg
PT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKLQotICAgICAgICBhdXRvIGFjY2VwdE5v
ZGVSZXN1bHQgPSBjYWxsYmFja1Jlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAg
aWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKKyAgICAg
ICAgaWYgKGZpbHRlclJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKLSAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6
RklMVEVSX1JFSkVDVCkKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgd2hpbGUgKE5vZGUqIG5leHRTaWJsaW5nID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5n
Q2hpbGRyZW4oKm5vZGUsICZyb290KCkpKSB7CiAgICAgICAgIG5vZGUgPSBuZXh0U2libGluZzsK
IAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAg
ICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNl
cHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNl
cHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0g
Q2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQg
PSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmls
dGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVl
KCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRD
dXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgICAgIGlmIChhY2NlcHROb2RlUmVz
dWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0
LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVApCiAgICAgICAgICAgICBn
b3RvIENoaWxkcmVuOwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDg5YWUyYzZlNjE1OTJhY2JlM2I2ZDNjYTcxNDA1ZGQ2Y2M3ZmQx
MzUuLjAxOGRlZmQ4NmFhMDhjZTEyNGFlNGQ5NWI1MzIxYTU0NDAyMTkzYzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA4LTA4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVpbnN0YXRlIGFjdGl2ZSBmbGFn
IGZvciBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NTMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc3luYyBXUFQgdGVzdHMgZnJvbSB1cHN0cmVhbSB0byBnYWluIHRlc3QgY292ZXJh
Z2UuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2RlSXRl
cmF0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJh
dmVyc2FsL05vZGVJdGVyYXRvci5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbDoKKwogMjAxNy0wOC0wNyAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG1v
c3Qgb2YgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVnaXN0cmF0aW9uLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVy
c2FsL05vZGVJdGVyYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4
dAppbmRleCAyNmI3YzZhNzEyYjhmZjBkZmEwZjUzYmI2ZDBkZmY0NjJmMzkzZWE2Li42ZDc5NDU3
NDllZDNlYTZjOTgwZTU0YzM3YjI3OTRlNjk3NmM1ZjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dApAQCAtNCw2
ICs0LDcgQEAgUEFTUyBjcmVhdGVOb2RlSXRlcmF0b3IoKSBwYXJhbWV0ZXIgZGVmYXVsdHMKIFBB
U1MgY3JlYXRlTm9kZUl0ZXJhdG9yKCkgd2l0aCBudWxsIGFzIGFyZ3VtZW50cyAKIFBBU1MgY3Jl
YXRlTm9kZUl0ZXJhdG9yKCkgd2l0aCB1bmRlZmluZWQgYXMgYXJndW1lbnRzIAogUEFTUyBQcm9w
YWdhdGUgZXhjZXB0aW9uIGZyb20gZmlsdGVyIGZ1bmN0aW9uIAorUEFTUyBSZWN1cnNpdmUgZmls
dGVycyBuZWVkIHRvIHRocm93IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0sIDAsIG51bGwpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRv
ci5odG1sCmluZGV4IDBmNjE4ZWZiNGQ3YTRjMGNiYmY3MTA5Yjk2NWQyMDg3MTczMjIxY2YuLjY3
Nzg1OGQyYTUxYzAzZGUxZjEyMGE5NzY3OTc0MGUwMGZkYjZhZjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2Rl
SXRlcmF0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLmh0bWwKQEAgLTUyLDYgKzUyLDIzIEBA
IHRlc3QoZnVuY3Rpb24oKSB7CiAgIGFzc2VydF90aHJvd3Moe25hbWU6ICJmYWlsZWQifSwgZnVu
Y3Rpb24oKSB7IGl0ZXIubmV4dE5vZGUoKSB9KTsKIH0sICJQcm9wYWdhdGUgZXhjZXB0aW9uIGZy
b20gZmlsdGVyIGZ1bmN0aW9uIik7CiAKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBkZXB0aCA9
IDA7CisgIHZhciBpdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQUxMLAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgaWYgKGl0ZXIucmVm
ZXJlbmNlTm9kZSAhPSBkb2N1bWVudCAmJiBkZXB0aCA9PSAwKSB7CisgICAgICAgIGRlcHRoKys7
CisgICAgICAgIGl0ZXIubmV4dE5vZGUoKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBOb2RlRmls
dGVyLkZJTFRFUl9BQ0NFUFQ7CisgICAgfSk7CisgIGl0ZXIubmV4dE5vZGUoKTsKKyAgaXRlci5u
ZXh0Tm9kZSgpOworICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9u
KCkgeyBpdGVyLm5leHROb2RlKCkgfSk7CisgIGRlcHRoLS07CisgIGFzc2VydF90aHJvd3MoIklu
dmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IGl0ZXIucHJldmlvdXNOb2RlKCkgfSk7Cit9
LCAiUmVjdXJzaXZlIGZpbHRlcnMgbmVlZCB0byB0aHJvdyIpOworCiBmdW5jdGlvbiB0ZXN0SXRl
cmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgZmlsdGVyKSB7CiAgIHZhciBpdGVyID0gZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIGZpbHRlcik7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZl
cnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApp
bmRleCBmMjZhYWU4NGUzMTRhZGQ3MjZmMmQ0NmZjYzQwMWVjMjQxZGQ2MDljLi5kZGJmZDczN2Iz
OGRlNzUwOTIyYjQ3NjFiMWZlYjA3NDFjODdmYWRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBA
QAogCitQQVNTIFJlY3Vyc2l2ZSBmaWx0ZXJzIG5lZWQgdG8gdGhyb3cgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIG51bGwpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVy
c2FsL1RyZWVXYWxrZXIuaHRtbAppbmRleCBlMGUyODVhNzc5ZGIzYTEyYjI5MTllNjdhZmQwNGEx
MDUyMjY4NmZhLi4yNTcwYzlhMjAwNjgyZmYzODQ0ZDExNjMwOGRhMTNjNGJkYmU1ZmZmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90
cmF2ZXJzYWwvVHJlZVdhbGtlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLmh0bWwKQEAgLTExLDYg
KzExLDMyIEBACiAKIC8vIFRPRE8gLnByZXZpb3VzTm9kZSwgLm5leHROb2RlCiAKK3Rlc3QoZnVu
Y3Rpb24oKSB7CisgIHZhciBkZXB0aCA9IDA7CisgIHZhciB3YWxrZXIgPSBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQUxMLAorICAgIGZ1bmN0aW9u
KCkgeworICAgICAgaWYgKGRlcHRoID09IDApIHsKKyAgICAgICAgZGVwdGgrKzsKKyAgICAgICAg
d2Fsa2VyLmZpcnN0Q2hpbGQoKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJ
TFRFUl9BQ0NFUFQ7CisgICAgfSk7CisgIHdhbGtlci5jdXJyZW50Tm9kZSA9IGRvY3VtZW50LmJv
ZHk7CisgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHdh
bGtlci5wYXJlbnROb2RlKCkgfSk7CisgIGRlcHRoLS07CisgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHdhbGtlci5maXJzdENoaWxkKCkgfSk7CisgIGRl
cHRoLS07CisgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7
IHdhbGtlci5sYXN0Q2hpbGQoKSB9KTsKKyAgZGVwdGgtLTsKKyAgYXNzZXJ0X3Rocm93cygiSW52
YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgd2Fsa2VyLnByZXZpb3VzU2libGluZygpIH0p
OworICBkZXB0aC0tOworICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0
aW9uKCkgeyB3YWxrZXIubmV4dFNpYmxpbmcoKSB9KTsKKyAgZGVwdGgtLTsKKyAgYXNzZXJ0X3Ro
cm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgd2Fsa2VyLnByZXZpb3VzTm9k
ZSgpIH0pOworICBkZXB0aC0tOworICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIs
IGZ1bmN0aW9uKCkgeyB3YWxrZXIubmV4dE5vZGUoKSB9KTsKK30sICJSZWN1cnNpdmUgZmlsdGVy
cyBuZWVkIHRvIHRocm93Iik7CisKIGZ1bmN0aW9uIGZpbHRlck5vZGUobm9kZSwgd2hhdFRvU2hv
dywgZmlsdGVyKSB7CiAgICAgLy8gIklmIGFjdGl2ZSBmbGFnIGlzIHNldCB0aHJvdyBhbiAiSW52
YWxpZFN0YXRlRXJyb3IiLiIKICAgICAvLyBJZ25vcmUgYWN0aXZlIGZsYWcgZm9yIHRoZXNlIHRl
c3RzLCB3ZSBhcmVuJ3QgY2FsbGluZyByZWN1cnNpdmVseQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317630</attachid>
            <date>2017-08-08 15:30:01 -0700</date>
            <delta_ts>2017-08-08 15:33:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175312-20170808153001.patch</filename>
            <type>text/plain</type>
            <size>21801</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3NWM0YzY4NjcxMWJl
ODE0MWM2ZjBmMGVkN2VhNmYzNTk2MWVjZi4uMTdkZDdhMjVhOTYyZDE0NDUzODg0YjZjYzc1YmMw
MDU0NWQ1OGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVpbnN0YXRlIGFjdGl2ZSBm
bGFnIGZvciBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NTMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vZGVJdGVyYXRvciAvIFRyZWVXYWxrZXIgc2hvdWxkIG5vIGxvbmdlciBhbGxv
dyByZWN1cnNpdmUgZmlsdGVycworICAgICAgICBhZnRlciB0aGUgZm9sbG93aW5nIGNoYW5nZSB0
byB0aGUgRE9NIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL3do
YXR3Zy9kb20vcHVsbC8zNTkKKworICAgICAgICBUaGlzIHBhdGNoIGFsaWducyBvdXIgYmVoYXZp
b3Igd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB1cGRhdGVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6Om5leHROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKToKKyAgICAgICAgKiBkb20vVHJh
dmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVy
YXRvckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9k
ZSk6CisgICAgICAgICogZG9tL1RyYXZlcnNhbC5oOgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2Vy
LmNwcDoKKwogMjAxNy0wOC0wOCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlIGZhc3Qgc2VlayBsb2dpYyB0byBwcmV2ZW50IHBpbmctcG9uZ2luZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKaW5kZXggOGZjMjE1MWJkY2NhMDVkMDAxMjll
YjdjY2Q5YTRmNmVhYzg2MmFmOC4uNDVkODYwYmE4NmY0OTAzNjYxOThiZmU4NDY0ZjFjMjY1MTJl
OWI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKQEAgLTk3LDEzICs5NywxMyBA
QCBFeGNlcHRpb25PcjxSZWZQdHI8Tm9kZT4+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoKQogICAg
ICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9SRUpFQ1QgaXMgdGhl
IHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBwcm92aXNpb25hbFJl
c3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwogCi0gICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1
bHQgPSBhY2NlcHROb2RlKCpwcm92aXNpb25hbFJlc3VsdCk7Ci0gICAgICAgIGlmIChjYWxsYmFj
a1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0g
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9Owot
Ci0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRU
eXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpw
cm92aXNpb25hbFJlc3VsdCk7CisgICAgICAgIGlmIChmaWx0ZXJSZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgIG1fY2FuZGlkYXRlTm9kZS5jbGVhcigpOworICAgICAgICAgICAg
cmV0dXJuIGZpbHRlclJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KIAotICAg
ICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CisgICAgICAgIGJvb2wgbm9kZVdh
c0FjY2VwdGVkID0gZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklM
VEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewogICAgICAgICAgICAg
bV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAgICAgcmVzdWx0ID0g
V1RGTW92ZShwcm92aXNpb25hbFJlc3VsdCk7CkBAIC0xMjYsMTMgKzEyNiwxMyBAQCBFeGNlcHRp
b25PcjxSZWZQdHI8Tm9kZT4+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKCkKICAgICAgICAg
Ly8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRoZSBzYW1l
IGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQg
PSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0g
YWNjZXB0Tm9kZSgqcHJvdmlzaW9uYWxSZXN1bHQpOwotICAgICAgICBpZiAoY2FsbGJhY2tSZXN1
bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKLQotICAg
ICAgICBBU1NFUlQoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6
U3VjY2Vzcyk7CisgICAgICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgqcHJvdmlz
aW9uYWxSZXN1bHQpOworICAgICAgICBpZiAoZmlsdGVyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7
CisgICAgICAgICAgICBtX2NhbmRpZGF0ZU5vZGUuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVy
biBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICB9CiAKLSAgICAgICAg
Ym9vbCBub2RlV2FzQWNjZXB0ZWQgPSBjYWxsYmFja1Jlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOworICAgICAgICBib29sIG5vZGVXYXNBY2Nl
cHRlZCA9IGZpbHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9B
Q0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0ZWQpIHsKICAgICAgICAgICAgIG1fcmVm
ZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAgICAgICAgICAgIHJlc3VsdCA9IFdURk1v
dmUocHJvdmlzaW9uYWxSZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
YXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAppbmRleCAzMjA5
ZTUyOGM5YTlkNzMwMzA1N2ZmNjE4ZTVjMGFkZTQzNmUzODFmLi5mZGY3MGM5ZDcyOTMzOTc0MDFj
ZmFmYzliMmVlMGVlYTExMjMwMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJh
dmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcApAQCAtMjUs
MjggKzI1LDM5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVHJhdmVyc2FsLmgi
CiAKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNs
dWRlICJOb2RlRmlsdGVyLmgiCisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShOb2Rl
JiByb290Tm9kZSwgdW5zaWduZWQgd2hhdFRvU2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9k
ZUZpbHRlcikKICAgICA6IG1fcm9vdChyb290Tm9kZSkKLSAgICAsIG1fd2hhdFRvU2hvdyh3aGF0
VG9TaG93KQogICAgICwgbV9maWx0ZXIoV1RGTW92ZShub2RlRmlsdGVyKSkKKyAgICAsIG1fd2hh
dFRvU2hvdyh3aGF0VG9TaG93KQogewogfQogCi1DYWxsYmFja1Jlc3VsdDx1bnNpZ25lZCBzaG9y
dD4gTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlJiBub2RlKSBjb25zdAorLy8gaHR0
cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtZmlsdGVyCitFeGNlcHRpb25P
cjx1bnNpZ25lZCBzaG9ydD4gTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlJiBub2Rl
KQogeworICAgIGlmIChtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiUmVjdXJzaXZlIGZpbHRlcnMgYXJlIG5vdCBh
bGxvd2VkIikgfTsKKwogICAgIC8vIFRoZSBiaXQgdHdpZGRsaW5nIGhlcmUgaXMgZG9uZSB0byBt
YXAgRE9NIG5vZGUgdHlwZXMsIHdoaWNoIGFyZSBnaXZlbiBhcyBpbnRlZ2VycyBmcm9tCiAgICAg
Ly8gMSB0aHJvdWdoIDE0LCB0byB3aGF0VG9TaG93IGJpdCBtYXNrcy4KICAgICBpZiAoISgoKDEg
PDwgKG5vZGUubm9kZVR5cGUoKSAtIDEpKSAmIG1fd2hhdFRvU2hvdykpKQogICAgICAgICByZXR1
cm4gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVA7CisKICAgICBpZiAoIW1fZmlsdGVyKQogICAgICAg
ICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKIAotICAgIHJldHVybiBtX2ZpbHRl
ci0+YWNjZXB0Tm9kZShub2RlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpc0FjdGl2ZShtX2lz
QWN0aXZlLCB0cnVlKTsKKyAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gbV9maWx0ZXItPmFjY2Vw
dE5vZGUobm9kZSk7CisgICAgaWYgKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jl
c3VsdFR5cGU6OkV4Y2VwdGlvblRocm93bikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4
aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAgICByZXR1cm4gY2FsbGJhY2tSZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2
ZXJzYWwuaAppbmRleCA5NmYyZmVmNDBlYmMxNGY3M2Q1NmUxNGIzNGQ2Y2Y2Y2MxNGY5NjhkLi42
NWM2YmE1MTZmMGFmNTE5MDA3MzhkNWVmNGZjYTE4MjQ3OGY0NDk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZl
cnNhbC5oCkBAIC0yNCw3ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ2Fs
bGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsMTIgKzQyLDEzIEBAIHB1Ymxp
YzoKIAogcHJvdGVjdGVkOgogICAgIE5vZGVJdGVyYXRvckJhc2UoTm9kZSYsIHVuc2lnbmVkIHdo
YXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVyPiYmKTsKLSAgICBDYWxsYmFja1Jlc3VsdDx1bnNp
Z25lZCBzaG9ydD4gYWNjZXB0Tm9kZShOb2RlJikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dW5z
aWduZWQgc2hvcnQ+IGFjY2VwdE5vZGUoTm9kZSYpOwogCiBwcml2YXRlOgogICAgIFJlZjxOb2Rl
PiBtX3Jvb3Q7Ci0gICAgdW5zaWduZWQgbV93aGF0VG9TaG93OwogICAgIFJlZlB0cjxOb2RlRmls
dGVyPiBtX2ZpbHRlcjsKKyAgICB1bnNpZ25lZCBtX3doYXRUb1Nob3c7CisgICAgYm9vbCBtX2lz
QWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmNwcAppbmRleCBlODUxZTg3ZWMxNDFlNmY1Y2Y2M2UwMTA4ZjZkNDlhOWQ0
ZDFkMTQ1Li40YmRkODVmMDU0MDU1ZjJkMjFiODg4ZmNjNDc2NmFkZWJkMDU3ODZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVXYWxrZXIuY3BwCkBAIC01NSwxNCArNTUsMTEgQEAgRXhjZXB0aW9uT3I8Tm9k
ZSo+IFRyZWVXYWxrZXI6OnBhcmVudE5vZGUoKQogICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNj
ZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2Fs
bGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworICAgICAgICBhdXRvIGZpbHRlclJl
c3VsdCA9IGFjY2VwdE5vZGUoKm5vZGUpOworICAgICAgICBpZiAoZmlsdGVyUmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CiAKLSAgICAgICAgQVNTRVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFj
a1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOwotCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9
IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAoYWNjZXB0
Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAgICBpZiAoZmls
dGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAg
ICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAg
fQogICAgIHJldHVybiBudWxscHRyOwpAQCAtNzEsMTQgKzY4LDExIEBAIEV4Y2VwdGlvbk9yPE5v
ZGUqPiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKIEV4Y2VwdGlvbk9yPE5vZGUqPiBUcmVlV2Fs
a2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJy
ZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0
ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkg
PT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VS
VChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsK
KyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAg
aWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0
ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJl
c3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBzd2l0
Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChmaWx0ZXJSZXN1bHQucmV0
dXJuVmFsdWUoKSkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBU
OgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZU5vbk51bGwoKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gbV9jdXJyZW50LnB0cigpOwpAQCAtMTA4LDE0ICsxMDIsMTEg
QEAgRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OmZpcnN0Q2hpbGQoKQogRXhjZXB0aW9u
T3I8Tm9kZSo+IFRyZWVXYWxrZXI6Omxhc3RDaGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9k
ZT4gbm9kZSA9IG1fY3VycmVudC0+bGFzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBhdXRv
IGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFj
a1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0g
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9Owot
Ci0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRU
eXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpu
b2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAg
ICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1
dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwotICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChm
aWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVy
OjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFz
ZU5vbk51bGwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbV9jdXJyZW50LnB0cigpOwpAQCAt
MTUxLDM0ICsxNDIsMjggQEAgdGVtcGxhdGU8VHJlZVdhbGtlcjo6U2libGluZ1RyYXZlcnNhbFR5
cGUgdHlwZT4gRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OnQKICAgICBhdXRvIGlzTmV4
dCA9IHR5cGUgPT0gU2libGluZ1RyYXZlcnNhbFR5cGU6Ok5leHQ7CiAgICAgd2hpbGUgKHRydWUp
IHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IGlzTmV4dCA/IG5vZGUtPm5l
eHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91c1NpYmxpbmcoKTsgc2libGluZzsgKSB7Ci0gICAg
ICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqc2libGluZyk7Ci0gICAg
ICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6
RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlz
dGluZ0V4Y2VwdGlvbkVycm9yIH07CisgICAgICAgICAgICBhdXRvIGZpbHRlclJlc3VsdCA9IGFj
Y2VwdE5vZGUoKnNpYmxpbmcpOworICAgICAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyUmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKTsKIAotICAgICAgICAgICAgQVNTRVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBD
YWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOwotCi0gICAgICAgICAgICBhdXRvIGFjY2VwdE5v
ZGVSZXN1bHQgPSBjYWxsYmFja1Jlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAg
ICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpIHsK
KyAgICAgICAgICAgIGlmIChmaWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVy
OjpGSUxURVJfQUNDRVBUKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gc2libGluZy5y
ZWxlYXNlTm9uTnVsbCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBtX2N1cnJlbnQucHRyKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBub2RlID0gc2libGluZzsKICAgICAgICAgICAg
IHNpYmxpbmcgPSBpc05leHQgPyBzaWJsaW5nLT5maXJzdENoaWxkKCkgOiBzaWJsaW5nLT5sYXN0
Q2hpbGQoKTsKLSAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6
OkZJTFRFUl9SRUpFQ1QgfHwgIXNpYmxpbmcpCisgICAgICAgICAgICBpZiAoZmlsdGVyUmVzdWx0
LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCB8fCAhc2libGluZykK
ICAgICAgICAgICAgICAgICBzaWJsaW5nID0gaXNOZXh0ID8gbm9kZS0+bmV4dFNpYmxpbmcoKSA6
IG5vZGUtPnByZXZpb3VzU2libGluZygpOwogICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBub2Rl
LT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSB8fCBub2RlID09ICZyb290KCkpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0
ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkg
PT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VS
VChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsK
KyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAg
aWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0
ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJl
c3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAo
YWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAgICBp
ZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KQEAgLTIwMCwyNSArMTg1
LDIxIEBAIEV4Y2VwdGlvbk9yPE5vZGUqPiBUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoKQogICAg
ICAgICB3aGlsZSAoTm9kZSogcHJldmlvdXNTaWJsaW5nID0gbm9kZS0+cHJldmlvdXNTaWJsaW5n
KCkpIHsKICAgICAgICAgICAgIG5vZGUgPSBwcmV2aW91c1NpYmxpbmc7CiAKLSAgICAgICAgICAg
IGF1dG8gY2FsbGJhY2tSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKLSAgICAgICAgICAgIGlm
IChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25U
aHJvd24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0
aW9uRXJyb3IgfTsKKyAgICAgICAgICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgq
bm9kZSk7CisgICAgICAgICAgICBpZiAoZmlsdGVyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0g
ICAgICAgICAgICBBU1NFUlQoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0
VHlwZTo6U3VjY2Vzcyk7Ci0KLSAgICAgICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNh
bGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICAgICAgYXV0byBhY2Nl
cHROb2RlUmVzdWx0ID0gZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCk7CiAgICAgICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgd2hpbGUgKE5vZGUqIGxhc3RDaGlsZCA9
IG5vZGUtPmxhc3RDaGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgbm9kZSA9IGxhc3RDaGlsZDsK
IAotICAgICAgICAgICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1bHQgPSBhY2NlcHROb2RlKCpub2Rl
KTsKLSAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNr
UmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgICAgICAgICAg
QVNTRVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nl
c3MpOworICAgICAgICAgICAgICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9k
ZSk7CisgICAgICAgICAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAKLSAgICAgICAgICAgICAgICBhY2NlcHROb2RlUmVzdWx0ID0gY2FsbGJhY2tSZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgICAgICAgICAgYWNjZXB0Tm9kZVJlc3VsdCA9IGZp
bHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpOwogICAgICAgICAgICAgICAgIGlmIChhY2NlcHROb2Rl
UmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMjM0LDE0ICsyMTUsMTEgQEAgRXhjZXB0aW9uT3I8
Tm9kZSo+IFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZSgpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVudDsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVz
dWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBl
KCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFT
U0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNz
KTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAg
ICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBm
aWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9k
ZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAg
ICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpAQCAtMjU0LDMxICsyMzIsMjUgQEAgQ2hp
bGRyZW46CiAgICAgd2hpbGUgKE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCkp
IHsKICAgICAgICAgbm9kZSA9IGZpcnN0Q2hpbGQ7CiAKLSAgICAgICAgYXV0byBjYWxsYmFja1Jl
c3VsdCA9IGFjY2VwdE5vZGUoKm5vZGUpOwotICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlw
ZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAgICAgICAgYXV0
byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkg
PT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKLQotICAgICAgICBhdXRvIGFjY2VwdE5v
ZGVSZXN1bHQgPSBjYWxsYmFja1Jlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAg
aWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKKyAgICAg
ICAgaWYgKGZpbHRlclJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKLSAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6
RklMVEVSX1JFSkVDVCkKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgd2hpbGUgKE5vZGUqIG5leHRTaWJsaW5nID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5n
Q2hpbGRyZW4oKm5vZGUsICZyb290KCkpKSB7CiAgICAgICAgIG5vZGUgPSBuZXh0U2libGluZzsK
IAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAg
ICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNl
cHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNl
cHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0g
Q2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQg
PSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmls
dGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVl
KCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRD
dXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgICAgIGlmIChhY2NlcHROb2RlUmVz
dWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0
LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVApCiAgICAgICAgICAgICBn
b3RvIENoaWxkcmVuOwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDg5YWUyYzZlNjE1OTJhY2JlM2I2ZDNjYTcxNDA1ZGQ2Y2M3ZmQx
MzUuLjAxOGRlZmQ4NmFhMDhjZTEyNGFlNGQ5NWI1MzIxYTU0NDAyMTkzYzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA4LTA4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVpbnN0YXRlIGFjdGl2ZSBmbGFn
IGZvciBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NTMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc3luYyBXUFQgdGVzdHMgZnJvbSB1cHN0cmVhbSB0byBnYWluIHRlc3QgY292ZXJh
Z2UuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2RlSXRl
cmF0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJh
dmVyc2FsL05vZGVJdGVyYXRvci5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbDoKKwogMjAxNy0wOC0wNyAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG1v
c3Qgb2YgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVnaXN0cmF0aW9uLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVy
c2FsL05vZGVJdGVyYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4
dAppbmRleCAyNmI3YzZhNzEyYjhmZjBkZmEwZjUzYmI2ZDBkZmY0NjJmMzkzZWE2Li42ZDc5NDU3
NDllZDNlYTZjOTgwZTU0YzM3YjI3OTRlNjk3NmM1ZjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dApAQCAtNCw2
ICs0LDcgQEAgUEFTUyBjcmVhdGVOb2RlSXRlcmF0b3IoKSBwYXJhbWV0ZXIgZGVmYXVsdHMKIFBB
U1MgY3JlYXRlTm9kZUl0ZXJhdG9yKCkgd2l0aCBudWxsIGFzIGFyZ3VtZW50cyAKIFBBU1MgY3Jl
YXRlTm9kZUl0ZXJhdG9yKCkgd2l0aCB1bmRlZmluZWQgYXMgYXJndW1lbnRzIAogUEFTUyBQcm9w
YWdhdGUgZXhjZXB0aW9uIGZyb20gZmlsdGVyIGZ1bmN0aW9uIAorUEFTUyBSZWN1cnNpdmUgZmls
dGVycyBuZWVkIHRvIHRocm93IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0sIDAsIG51bGwpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRv
ci5odG1sCmluZGV4IDBmNjE4ZWZiNGQ3YTRjMGNiYmY3MTA5Yjk2NWQyMDg3MTczMjIxY2YuLjY3
Nzg1OGQyYTUxYzAzZGUxZjEyMGE5NzY3OTc0MGUwMGZkYjZhZjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2Rl
SXRlcmF0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLmh0bWwKQEAgLTUyLDYgKzUyLDIzIEBA
IHRlc3QoZnVuY3Rpb24oKSB7CiAgIGFzc2VydF90aHJvd3Moe25hbWU6ICJmYWlsZWQifSwgZnVu
Y3Rpb24oKSB7IGl0ZXIubmV4dE5vZGUoKSB9KTsKIH0sICJQcm9wYWdhdGUgZXhjZXB0aW9uIGZy
b20gZmlsdGVyIGZ1bmN0aW9uIik7CiAKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBkZXB0aCA9
IDA7CisgIHZhciBpdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQUxMLAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgaWYgKGl0ZXIucmVm
ZXJlbmNlTm9kZSAhPSBkb2N1bWVudCAmJiBkZXB0aCA9PSAwKSB7CisgICAgICAgIGRlcHRoKys7
CisgICAgICAgIGl0ZXIubmV4dE5vZGUoKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBOb2RlRmls
dGVyLkZJTFRFUl9BQ0NFUFQ7CisgICAgfSk7CisgIGl0ZXIubmV4dE5vZGUoKTsKKyAgaXRlci5u
ZXh0Tm9kZSgpOworICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9u
KCkgeyBpdGVyLm5leHROb2RlKCkgfSk7CisgIGRlcHRoLS07CisgIGFzc2VydF90aHJvd3MoIklu
dmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IGl0ZXIucHJldmlvdXNOb2RlKCkgfSk7Cit9
LCAiUmVjdXJzaXZlIGZpbHRlcnMgbmVlZCB0byB0aHJvdyIpOworCiBmdW5jdGlvbiB0ZXN0SXRl
cmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgZmlsdGVyKSB7CiAgIHZhciBpdGVyID0gZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3csIGZpbHRlcik7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZl
cnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApp
bmRleCBmMjZhYWU4NGUzMTRhZGQ3MjZmMmQ0NmZjYzQwMWVjMjQxZGQ2MDljLi5kZGJmZDczN2Iz
OGRlNzUwOTIyYjQ3NjFiMWZlYjA3NDFjODdmYWRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBA
QAogCitQQVNTIFJlY3Vyc2l2ZSBmaWx0ZXJzIG5lZWQgdG8gdGhyb3cgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIG51bGwpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVy
c2FsL1RyZWVXYWxrZXIuaHRtbAppbmRleCBlMGUyODVhNzc5ZGIzYTEyYjI5MTllNjdhZmQwNGEx
MDUyMjY4NmZhLi4yNTcwYzlhMjAwNjgyZmYzODQ0ZDExNjMwOGRhMTNjNGJkYmU1ZmZmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90
cmF2ZXJzYWwvVHJlZVdhbGtlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLmh0bWwKQEAgLTExLDYg
KzExLDMyIEBACiAKIC8vIFRPRE8gLnByZXZpb3VzTm9kZSwgLm5leHROb2RlCiAKK3Rlc3QoZnVu
Y3Rpb24oKSB7CisgIHZhciBkZXB0aCA9IDA7CisgIHZhciB3YWxrZXIgPSBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQUxMLAorICAgIGZ1bmN0aW9u
KCkgeworICAgICAgaWYgKGRlcHRoID09IDApIHsKKyAgICAgICAgZGVwdGgrKzsKKyAgICAgICAg
d2Fsa2VyLmZpcnN0Q2hpbGQoKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJ
TFRFUl9BQ0NFUFQ7CisgICAgfSk7CisgIHdhbGtlci5jdXJyZW50Tm9kZSA9IGRvY3VtZW50LmJv
ZHk7CisgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHdh
bGtlci5wYXJlbnROb2RlKCkgfSk7CisgIGRlcHRoLS07CisgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHdhbGtlci5maXJzdENoaWxkKCkgfSk7CisgIGRl
cHRoLS07CisgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7
IHdhbGtlci5sYXN0Q2hpbGQoKSB9KTsKKyAgZGVwdGgtLTsKKyAgYXNzZXJ0X3Rocm93cygiSW52
YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgd2Fsa2VyLnByZXZpb3VzU2libGluZygpIH0p
OworICBkZXB0aC0tOworICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0
aW9uKCkgeyB3YWxrZXIubmV4dFNpYmxpbmcoKSB9KTsKKyAgZGVwdGgtLTsKKyAgYXNzZXJ0X3Ro
cm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgd2Fsa2VyLnByZXZpb3VzTm9k
ZSgpIH0pOworICBkZXB0aC0tOworICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIs
IGZ1bmN0aW9uKCkgeyB3YWxrZXIubmV4dE5vZGUoKSB9KTsKK30sICJSZWN1cnNpdmUgZmlsdGVy
cyBuZWVkIHRvIHRocm93Iik7CisKIGZ1bmN0aW9uIGZpbHRlck5vZGUobm9kZSwgd2hhdFRvU2hv
dywgZmlsdGVyKSB7CiAgICAgLy8gIklmIGFjdGl2ZSBmbGFnIGlzIHNldCB0aHJvdyBhbiAiSW52
YWxpZFN0YXRlRXJyb3IiLiIKICAgICAvLyBJZ25vcmUgYWN0aXZlIGZsYWcgZm9yIHRoZXNlIHRl
c3RzLCB3ZSBhcmVuJ3QgY2FsbGluZyByZWN1cnNpdmVseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhdmVyc2FsL21vei1idWc1NTk1MjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJh
dmVyc2FsL21vei1idWc1NTk1MjYtZXhwZWN0ZWQudHh0CmluZGV4IGIyNWQ3MTZlZDVjZGNkNjM5
NmI3MjcyNDM5NDJiOTkyMDlmYTY2ZWUuLjIwZWJkYWM3N2JlOThiNzkwMTBlM2VkMDZmZjQ3MTc3
ZWUzYmVlMWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYXZlcnNhbC9tb3otYnVnNTU5NTI2
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbW96LWJ1ZzU1OTUyNi1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IFNo
b3VsZCBoYXZlIHRocm93biBhbiBleGNlcHRpb246IG51bGwKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0OTogU2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbjogbnVsbAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ5OiBTaG91bGQgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uOiBudWxsCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDk6IFNob3VsZCBoYXZlIHRocm93biBhbiBleGNlcHRpb246IG51
bGwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogU2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2Vw
dGlvbjogSW52YWxpZFN0YXRlRXJyb3I6IFJlY3Vyc2l2ZSBmaWx0ZXJzIGFyZSBub3QgYWxsb3dl
ZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBTaG91bGQgaGF2ZSB0aHJvd24gYW4gZXhjZXB0
aW9uOiBJbnZhbGlkU3RhdGVFcnJvcjogUmVjdXJzaXZlIGZpbHRlcnMgYXJlIG5vdCBhbGxvd2Vk
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IFNob3VsZCBoYXZlIHRocm93biBhbiBleGNlcHRp
b246IEludmFsaWRTdGF0ZUVycm9yOiBSZWN1cnNpdmUgZmlsdGVycyBhcmUgbm90IGFsbG93ZWQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogU2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlv
bjogSW52YWxpZFN0YXRlRXJyb3I6IFJlY3Vyc2l2ZSBmaWx0ZXJzIGFyZSBub3QgYWxsb3dlZAog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDk0OiBTaG91bGQgaGF2ZSB0ZXN0cyA0IGZpbHRlciBjYWxs
czogNAogTW96aWxsYSBCdWcgNTU5NTI2CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317632</attachid>
            <date>2017-08-08 15:34:00 -0700</date>
            <delta_ts>2017-08-09 06:04:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175312-20170808153359.patch</filename>
            <type>text/plain</type>
            <size>22287</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3NWM0YzY4NjcxMWJl
ODE0MWM2ZjBmMGVkN2VhNmYzNTk2MWVjZi4uY2Q5MzJmZjFhMjczMzMzYTM3NzBjN2M4M2UyOWZj
ZjYwMTkyYzM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVpbnN0YXRlIGFjdGl2ZSBm
bGFnIGZvciBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NTMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vZGVJdGVyYXRvciAvIFRyZWVXYWxrZXIgc2hvdWxkIG5vIGxvbmdlciBhbGxv
dyByZWN1cnNpdmUgZmlsdGVycworICAgICAgICBhZnRlciB0aGUgZm9sbG93aW5nIGNoYW5nZSB0
byB0aGUgRE9NIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL3do
YXR3Zy9kb20vcHVsbC8zNTkKKworICAgICAgICBUaGlzIHBhdGNoIGFsaWducyBvdXIgYmVoYXZp
b3Igd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB1cGRhdGVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3I6Om5leHROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKToKKyAgICAgICAgTm90ZSB0aGF0
IHdlIG5vdyBhbHNvIGNhbGwgbV9jYW5kaWRhdGVOb2RlLmNsZWFyKCkgYmVmb3JlIHJldHVybmlu
ZyBhbgorICAgICAgICBleGNlcHRpb24uIFRoaXMgd2FzIGEgcHJlLWV4aXN0aW5nIGJ1ZyB0aGF0
IHdlIGZhaWxlZCB0byBkbyBzbyBpbiB0aGUKKyAgICAgICAgZXhjZXB0aW9uIGNhc2UgYnV0IGl0
IGJlY2FtZSBtb3JlIG9idmlvdXMgYWZ0ZXIgdGhpcyBjaGFuZ2Ugbm93IHRoYXQKKyAgICAgICAg
d2UgdGhyb3cuIFRoaXMgd2FzIGNhdXNpbmcgdHJhdmVyc2FsL21vei1idWc1NTk1MjYuaHRtbCB0
byBmYWlsCisgICAgICAgIG90aGVyd2lzZSAodGhlIGZpbHRlciB3YXMgY2FsbGVkIG9uZSB0b28g
bWFueSB0aW1lcykuIFRoZSB0ZXN0IGNhc2UKKyAgICAgICAgaXMgcGFzc2luZyBpbiBGaXJlZm94
IChUaGUgZmlsdGVyIGlzIGNhbGxlZCA0IHRpbWVzIGFuZCB0aGV5IHRocm93CisgICAgICAgIGVh
Y2ggdGltZSkuCisKKyAgICAgICAgKiBkb20vVHJhdmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZSk6CisgICAgICAgICogZG9tL1RyYXZlcnNh
bC5oOgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2VyLmNwcDoKKwogMjAxNy0wOC0wOCAgSmVyZW15
IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIGZhc3Qgc2VlayBs
b2dpYyB0byBwcmV2ZW50IHBpbmctcG9uZ2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5j
cHAKaW5kZXggOGZjMjE1MWJkY2NhMDVkMDAxMjllYjdjY2Q5YTRmNmVhYzg2MmFmOC4uNDVkODYw
YmE4NmY0OTAzNjYxOThiZmU4NDY0ZjFjMjY1MTJlOWI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKQEAgLTk3LDEzICs5NywxMyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8Tm9kZT4+
IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoKQogICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9k
ZS4gSGVuY2UsIEZJTFRFUl9SRUpFQ1QgaXMgdGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAg
ICAgIFJlZlB0cjxOb2RlPiBwcm92aXNpb25hbFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2Rl
OwogCi0gICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1bHQgPSBhY2NlcHROb2RlKCpwcm92aXNpb25h
bFJlc3VsdCk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tS
ZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jl
c3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0
byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpwcm92aXNpb25hbFJlc3VsdCk7CisgICAgICAg
IGlmIChmaWx0ZXJSZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIG1fY2FuZGlk
YXRlTm9kZS5jbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CisgICAgICAgIH0KIAotICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9
IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRF
Ul9BQ0NFUFQ7CisgICAgICAgIGJvb2wgbm9kZVdhc0FjY2VwdGVkID0gZmlsdGVyUmVzdWx0LnJl
dHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5v
ZGVXYXNBY2NlcHRlZCkgewogICAgICAgICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRh
dGVOb2RlOwogICAgICAgICAgICAgcmVzdWx0ID0gV1RGTW92ZShwcm92aXNpb25hbFJlc3VsdCk7
CkBAIC0xMjYsMTMgKzEyNiwxMyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8Tm9kZT4+IE5vZGVJdGVy
YXRvcjo6cHJldmlvdXNOb2RlKCkKICAgICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhl
bmNlLCBGSUxURVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBS
ZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKIAot
ICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqcHJvdmlzaW9uYWxSZXN1
bHQpOwotICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0
VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4
aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKLQotICAgICAgICBBU1NFUlQoY2FsbGJhY2tSZXN1bHQu
dHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6U3VjY2Vzcyk7CisgICAgICAgIGF1dG8gZmls
dGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgqcHJvdmlzaW9uYWxSZXN1bHQpOworICAgICAgICBpZiAo
ZmlsdGVyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBtX2NhbmRpZGF0ZU5v
ZGUuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOworICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBjYWxs
YmFja1Jlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUND
RVBUOworICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGZpbHRlclJlc3VsdC5yZXR1cm5W
YWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2Fz
QWNjZXB0ZWQpIHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9k
ZTsKICAgICAgICAgICAgIHJlc3VsdCA9IFdURk1vdmUocHJvdmlzaW9uYWxSZXN1bHQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJhdmVyc2FsLmNwcAppbmRleCAzMjA5ZTUyOGM5YTlkNzMwMzA1N2ZmNjE4ZTVjMGFk
ZTQzNmUzODFmLi5mZGY3MGM5ZDcyOTMzOTc0MDFjZmFmYzliMmVlMGVlYTExMjMwMDk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmNwcApAQCAtMjUsMjggKzI1LDM5IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiVHJhdmVyc2FsLmgiCiAKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3Vs
dC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCisjaW5jbHVk
ZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTm9kZUl0ZXJh
dG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShOb2RlJiByb290Tm9kZSwgdW5zaWduZWQgd2hhdFRv
U2hvdywgUmVmUHRyPE5vZGVGaWx0ZXI+JiYgbm9kZUZpbHRlcikKICAgICA6IG1fcm9vdChyb290
Tm9kZSkKLSAgICAsIG1fd2hhdFRvU2hvdyh3aGF0VG9TaG93KQogICAgICwgbV9maWx0ZXIoV1RG
TW92ZShub2RlRmlsdGVyKSkKKyAgICAsIG1fd2hhdFRvU2hvdyh3aGF0VG9TaG93KQogewogfQog
Ci1DYWxsYmFja1Jlc3VsdDx1bnNpZ25lZCBzaG9ydD4gTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0
Tm9kZShOb2RlJiBub2RlKSBjb25zdAorLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNj
b25jZXB0LW5vZGUtZmlsdGVyCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBzaG9ydD4gTm9kZUl0ZXJh
dG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlJiBub2RlKQogeworICAgIGlmIChtX2lzQWN0aXZlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiUmVjdXJzaXZlIGZpbHRlcnMgYXJlIG5vdCBhbGxvd2VkIikgfTsKKwogICAgIC8vIFRoZSBi
aXQgdHdpZGRsaW5nIGhlcmUgaXMgZG9uZSB0byBtYXAgRE9NIG5vZGUgdHlwZXMsIHdoaWNoIGFy
ZSBnaXZlbiBhcyBpbnRlZ2VycyBmcm9tCiAgICAgLy8gMSB0aHJvdWdoIDE0LCB0byB3aGF0VG9T
aG93IGJpdCBtYXNrcy4KICAgICBpZiAoISgoKDEgPDwgKG5vZGUubm9kZVR5cGUoKSAtIDEpKSAm
IG1fd2hhdFRvU2hvdykpKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVA7
CisKICAgICBpZiAoIW1fZmlsdGVyKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVS
X0FDQ0VQVDsKIAotICAgIHJldHVybiBtX2ZpbHRlci0+YWNjZXB0Tm9kZShub2RlKTsKKyAgICBT
ZXRGb3JTY29wZTxib29sPiBpc0FjdGl2ZShtX2lzQWN0aXZlLCB0cnVlKTsKKyAgICBhdXRvIGNh
bGxiYWNrUmVzdWx0ID0gbV9maWx0ZXItPmFjY2VwdE5vZGUobm9kZSk7CisgICAgaWYgKGNhbGxi
YWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OkV4Y2VwdGlvblRocm93bikK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAg
ICByZXR1cm4gY2FsbGJhY2tSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAppbmRleCA5NmYyZmVmNDBlYmMx
NGY3M2Q1NmUxNGIzNGQ2Y2Y2Y2MxNGY5NjhkLi42NWM2YmE1MTZmMGFmNTE5MDA3MzhkNWVmNGZj
YTE4MjQ3OGY0NDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCkBAIC0yNCw3ICsyNCw3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ2FsbGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Pci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDIsMTIgKzQyLDEzIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE5vZGVJ
dGVyYXRvckJhc2UoTm9kZSYsIHVuc2lnbmVkIHdoYXRUb1Nob3csIFJlZlB0cjxOb2RlRmlsdGVy
PiYmKTsKLSAgICBDYWxsYmFja1Jlc3VsdDx1bnNpZ25lZCBzaG9ydD4gYWNjZXB0Tm9kZShOb2Rl
JikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgc2hvcnQ+IGFjY2VwdE5vZGUoTm9k
ZSYpOwogCiBwcml2YXRlOgogICAgIFJlZjxOb2RlPiBtX3Jvb3Q7Ci0gICAgdW5zaWduZWQgbV93
aGF0VG9TaG93OwogICAgIFJlZlB0cjxOb2RlRmlsdGVyPiBtX2ZpbHRlcjsKKyAgICB1bnNpZ25l
ZCBtX3doYXRUb1Nob3c7CisgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAppbmRleCBlODUx
ZTg3ZWMxNDFlNmY1Y2Y2M2UwMTA4ZjZkNDlhOWQ0ZDFkMTQ1Li40YmRkODVmMDU0MDU1ZjJkMjFi
ODg4ZmNjNDc2NmFkZWJkMDU3ODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCkBAIC01
NSwxNCArNTUsMTEgQEAgRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OnBhcmVudE5vZGUo
KQogICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
ICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlm
IChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25U
aHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25F
cnJvciB9OworICAgICAgICBhdXRvIGZpbHRlclJlc3VsdCA9IGFjY2VwdE5vZGUoKm5vZGUpOwor
ICAgICAgICBpZiAoZmlsdGVyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0
dXJuIGZpbHRlclJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICAgICAgQVNTRVJUKGNh
bGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOwotCi0g
ICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOwotICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0g
Tm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50
KG5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpAQCAt
NzEsMTQgKzY4LDExIEBAIEV4Y2VwdGlvbk9yPE5vZGUqPiBUcmVlV2Fsa2VyOjpwYXJlbnROb2Rl
KCkKIEV4Y2VwdGlvbk9yPE5vZGUqPiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBm
b3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkg
ewotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAg
ICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNl
cHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNl
cHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0g
Q2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQg
PSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKKyAg
ICAgICAgc3dpdGNoIChmaWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSkgewogICAgICAgICAgICAg
Y2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVu
dCA9IG5vZGUucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbV9jdXJy
ZW50LnB0cigpOwpAQCAtMTA4LDE0ICsxMDIsMTEgQEAgRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVX
YWxrZXI6OmZpcnN0Q2hpbGQoKQogRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6Omxhc3RD
aGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+bGFzdENo
aWxkKCk7IG5vZGU7ICkgewotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9k
ZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tS
ZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jl
c3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0
byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxi
YWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBzd2l0Y2ggKGFjY2VwdE5v
ZGVSZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChmaWx0ZXJSZXN1bHQucmV0dXJuVmFsdWUoKSkg
ewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAg
ICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gbV9jdXJyZW50LnB0cigpOwpAQCAtMTUxLDM0ICsxNDIsMjggQEAgdGVtcGxhdGU8
VHJlZVdhbGtlcjo6U2libGluZ1RyYXZlcnNhbFR5cGUgdHlwZT4gRXhjZXB0aW9uT3I8Tm9kZSo+
IFRyZWVXYWxrZXI6OnQKICAgICBhdXRvIGlzTmV4dCA9IHR5cGUgPT0gU2libGluZ1RyYXZlcnNh
bFR5cGU6Ok5leHQ7CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9k
ZT4gc2libGluZyA9IGlzTmV4dCA/IG5vZGUtPm5leHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91
c1NpYmxpbmcoKTsgc2libGluZzsgKSB7Ci0gICAgICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0
ID0gYWNjZXB0Tm9kZSgqc2libGluZyk7Ci0gICAgICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQu
dHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisgICAg
ICAgICAgICBhdXRvIGZpbHRlclJlc3VsdCA9IGFjY2VwdE5vZGUoKnNpYmxpbmcpOworICAgICAg
ICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmlsdGVyUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgICAgICAgICAgQVNT
RVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3Mp
OwotCi0gICAgICAgICAgICBhdXRvIGFjY2VwdE5vZGVSZXN1bHQgPSBjYWxsYmFja1Jlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpIHsKKyAgICAgICAgICAgIGlmIChmaWx0ZXJSZXN1
bHQucmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKSB7CiAgICAgICAg
ICAgICAgICAgbV9jdXJyZW50ID0gc2libGluZy5yZWxlYXNlTm9uTnVsbCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBtX2N1cnJlbnQucHRyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBub2RlID0gc2libGluZzsKICAgICAgICAgICAgIHNpYmxpbmcgPSBpc05leHQgPyBzaWJsaW5n
LT5maXJzdENoaWxkKCkgOiBzaWJsaW5nLT5sYXN0Q2hpbGQoKTsKLSAgICAgICAgICAgIGlmIChh
Y2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QgfHwgIXNpYmxpbmcp
CisgICAgICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRl
cjo6RklMVEVSX1JFSkVDVCB8fCAhc2libGluZykKICAgICAgICAgICAgICAgICBzaWJsaW5nID0g
aXNOZXh0ID8gbm9kZS0+bmV4dFNpYmxpbmcoKSA6IG5vZGUtPnByZXZpb3VzU2libGluZygpOwog
ICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlm
ICghbm9kZSB8fCBub2RlID09ICZyb290KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAg
ICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNl
cHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNl
cHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0g
Q2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQg
PSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmls
dGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVl
KCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIH0KQEAgLTIwMCwyNSArMTg1LDIxIEBAIEV4Y2VwdGlvbk9yPE5vZGUqPiBU
cmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoKQogICAgICAgICB3aGlsZSAoTm9kZSogcHJldmlvdXNT
aWJsaW5nID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIG5vZGUgPSBw
cmV2aW91c1NpYmxpbmc7CiAKLSAgICAgICAgICAgIGF1dG8gY2FsbGJhY2tSZXN1bHQgPSBhY2Nl
cHROb2RlKCpub2RlKTsKLSAgICAgICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0g
Q2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKyAgICAgICAgICAgIGF1
dG8gZmlsdGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7CisgICAgICAgICAgICBpZiAoZmls
dGVyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJS
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgICAgICBBU1NFUlQoY2FsbGJhY2tS
ZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6U3VjY2Vzcyk7Ci0KLSAgICAgICAg
ICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOworICAgICAgICAgICAgYXV0byBhY2NlcHROb2RlUmVzdWx0ID0gZmlsdGVyUmVzdWx0
LnJldHVyblZhbHVlKCk7CiAgICAgICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgd2hpbGUgKE5vZGUqIGxhc3RDaGlsZCA9IG5vZGUtPmxhc3RDaGlsZCgpKSB7CiAgICAg
ICAgICAgICAgICAgbm9kZSA9IGxhc3RDaGlsZDsKIAotICAgICAgICAgICAgICAgIGF1dG8gY2Fs
bGJhY2tSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoY2Fs
bGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3du
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRp
b25FcnJvciB9OwotCi0gICAgICAgICAgICAgICAgQVNTRVJUKGNhbGxiYWNrUmVzdWx0LnR5cGUo
KSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpOworICAgICAgICAgICAgICAgIGF1dG8g
ZmlsdGVyUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKGZp
bHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZp
bHRlclJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICAgICAgICAgICAgICBhY2NlcHRO
b2RlUmVzdWx0ID0gY2FsbGJhY2tSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgYWNjZXB0Tm9kZVJlc3VsdCA9IGZpbHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpOwog
ICAgICAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRF
Ul9SRUpFQ1QpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAt
MjM0LDE0ICsyMTUsMTEgQEAgRXhjZXB0aW9uT3I8Tm9kZSo+IFRyZWVXYWxrZXI6OnByZXZpb3Vz
Tm9kZSgpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVu
dDsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVzdWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0g
ICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpF
eGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdF
eGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkg
PT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNzKTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1
bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9kZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZh
bHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBz
ZXRDdXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMjU0LDMxICsyMzIsMjUgQEAgQ2hpbGRyZW46CiAgICAgd2hpbGUgKE5vZGUqIGZp
cnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCkpIHsKICAgICAgICAgbm9kZSA9IGZpcnN0Q2hp
bGQ7CiAKLSAgICAgICAgYXV0byBjYWxsYmFja1Jlc3VsdCA9IGFjY2VwdE5vZGUoKm5vZGUpOwot
ICAgICAgICBpZiAoY2FsbGJhY2tSZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlwZTo6
RXhjZXB0aW9uVGhyb3duKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5n
RXhjZXB0aW9uRXJyb3IgfTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2Rl
KCpub2RlKTsKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAg
IEFTU0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNj
ZXNzKTsKLQotICAgICAgICBhdXRvIGFjY2VwdE5vZGVSZXN1bHQgPSBjYWxsYmFja1Jlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKKyAgICAgICAgaWYgKGZpbHRlclJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAgICAgICAg
cmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICAgICAgaWYgKGFj
Y2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKKyAgICAgICAgaWYg
KGZpbHRlclJlc3VsdC5yZXR1cm5WYWx1ZSgpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Qp
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgd2hpbGUgKE5vZGUqIG5leHRTaWJsaW5n
ID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsICZyb290KCkpKSB7
CiAgICAgICAgIG5vZGUgPSBuZXh0U2libGluZzsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrUmVz
dWx0ID0gYWNjZXB0Tm9kZSgqbm9kZSk7Ci0gICAgICAgIGlmIChjYWxsYmFja1Jlc3VsdC50eXBl
KCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd24pCi0gICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIEFT
U0VSVChjYWxsYmFja1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNjZXNz
KTsKKyAgICAgICAgYXV0byBmaWx0ZXJSZXN1bHQgPSBhY2NlcHROb2RlKCpub2RlKTsKKyAgICAg
ICAgaWYgKGZpbHRlclJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBm
aWx0ZXJSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgICAgIGF1dG8gYWNjZXB0Tm9k
ZVJlc3VsdCA9IGNhbGxiYWNrUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQorICAgICAg
ICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZU5vbk51bGwo
KSk7Ci0gICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9T
S0lQKQorICAgICAgICBpZiAoZmlsdGVyUmVzdWx0LnJldHVyblZhbHVlKCkgPT0gTm9kZUZpbHRl
cjo6RklMVEVSX1NLSVApCiAgICAgICAgICAgICBnb3RvIENoaWxkcmVuOwogICAgIH0KICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDg5YWUyYzZl
NjE1OTJhY2JlM2I2ZDNjYTcxNDA1ZGQ2Y2M3ZmQxMzUuLjAxOGRlZmQ4NmFhMDhjZTEyNGFlNGQ5
NWI1MzIxYTU0NDAyMTkzYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDE3LTA4LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVpbnN0YXRlIGFjdGl2ZSBmbGFnIGZvciBpdGVyYXRvcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTMxMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc3luYyBXUFQgdGVzdHMgZnJv
bSB1cHN0cmVhbSB0byBnYWluIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1Ry
ZWVXYWxrZXIuaHRtbDoKKwogMjAxNy0wOC0wNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG1vc3Qgb2YgU2VydmljZVdvcmtlckNvbnRhaW5l
cjo6YWRkUmVnaXN0cmF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2
ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dAppbmRleCAyNmI3YzZhNzEyYjhmZjBkZmEw
ZjUzYmI2ZDBkZmY0NjJmMzkzZWE2Li42ZDc5NDU3NDllZDNlYTZjOTgwZTU0YzM3YjI3OTRlNjk3
NmM1ZjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9k
ZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgUEFTUyBjcmVhdGVOb2RlSXRl
cmF0b3IoKSBwYXJhbWV0ZXIgZGVmYXVsdHMKIFBBU1MgY3JlYXRlTm9kZUl0ZXJhdG9yKCkgd2l0
aCBudWxsIGFzIGFyZ3VtZW50cyAKIFBBU1MgY3JlYXRlTm9kZUl0ZXJhdG9yKCkgd2l0aCB1bmRl
ZmluZWQgYXMgYXJndW1lbnRzIAogUEFTUyBQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20gZmlsdGVy
IGZ1bmN0aW9uIAorUEFTUyBSZWN1cnNpdmUgZmlsdGVycyBuZWVkIHRvIHRocm93IAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIG51bGwpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBd
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL05v
ZGVJdGVyYXRvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci5odG1sCmluZGV4IDBmNjE4ZWZiNGQ3YTRj
MGNiYmY3MTA5Yjk2NWQyMDg3MTczMjIxY2YuLjY3Nzg1OGQyYTUxYzAzZGUxZjEyMGE5NzY3OTc0
MGUwMGZkYjZhZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3IuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0
ZXJhdG9yLmh0bWwKQEAgLTUyLDYgKzUyLDIzIEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgIGFzc2Vy
dF90aHJvd3Moe25hbWU6ICJmYWlsZWQifSwgZnVuY3Rpb24oKSB7IGl0ZXIubmV4dE5vZGUoKSB9
KTsKIH0sICJQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20gZmlsdGVyIGZ1bmN0aW9uIik7CiAKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgIHZhciBkZXB0aCA9IDA7CisgIHZhciBpdGVyID0gZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQUxMLAorICAgIGZ1
bmN0aW9uKCkgeworICAgICAgaWYgKGl0ZXIucmVmZXJlbmNlTm9kZSAhPSBkb2N1bWVudCAmJiBk
ZXB0aCA9PSAwKSB7CisgICAgICAgIGRlcHRoKys7CisgICAgICAgIGl0ZXIubmV4dE5vZGUoKTsK
KyAgICAgIH0KKyAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7CisgICAgfSk7
CisgIGl0ZXIubmV4dE5vZGUoKTsKKyAgaXRlci5uZXh0Tm9kZSgpOworICBhc3NlcnRfdGhyb3dz
KCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyBpdGVyLm5leHROb2RlKCkgfSk7Cisg
IGRlcHRoLS07CisgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24o
KSB7IGl0ZXIucHJldmlvdXNOb2RlKCkgfSk7Cit9LCAiUmVjdXJzaXZlIGZpbHRlcnMgbmVlZCB0
byB0aHJvdyIpOworCiBmdW5jdGlvbiB0ZXN0SXRlcmF0b3Iocm9vdCwgd2hhdFRvU2hvdywgZmls
dGVyKSB7CiAgIHZhciBpdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdo
YXRUb1Nob3csIGZpbHRlcik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZl
cnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCBmMjZhYWU4NGUzMTRhZGQ3MjZmMmQ0
NmZjYzQwMWVjMjQxZGQ2MDljLi5kZGJmZDczN2IzOGRlNzUwOTIyYjQ3NjFiMWZlYjA3NDFjODdm
YWRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogCitQQVNTIFJlY3Vyc2l2ZSBmaWx0ZXJz
IG5lZWQgdG8gdGhyb3cgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IDAsIG51bGwpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbAppbmRleCBl
MGUyODVhNzc5ZGIzYTEyYjI5MTllNjdhZmQwNGExMDUyMjY4NmZhLi4yNTcwYzlhMjAwNjgyZmYz
ODQ0ZDExNjMwOGRhMTNjNGJkYmU1ZmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZl
cnNhbC9UcmVlV2Fsa2VyLmh0bWwKQEAgLTExLDYgKzExLDMyIEBACiAKIC8vIFRPRE8gLnByZXZp
b3VzTm9kZSwgLm5leHROb2RlCiAKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBkZXB0aCA9IDA7
CisgIHZhciB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQUxMLAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgaWYgKGRlcHRoID09IDAp
IHsKKyAgICAgICAgZGVwdGgrKzsKKyAgICAgICAgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsKKyAgICAg
IH0KKyAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7CisgICAgfSk7CisgIHdh
bGtlci5jdXJyZW50Tm9kZSA9IGRvY3VtZW50LmJvZHk7CisgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHdhbGtlci5wYXJlbnROb2RlKCkgfSk7CisgIGRl
cHRoLS07CisgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7
IHdhbGtlci5maXJzdENoaWxkKCkgfSk7CisgIGRlcHRoLS07CisgIGFzc2VydF90aHJvd3MoIklu
dmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHdhbGtlci5sYXN0Q2hpbGQoKSB9KTsKKyAg
ZGVwdGgtLTsKKyAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
IHsgd2Fsa2VyLnByZXZpb3VzU2libGluZygpIH0pOworICBkZXB0aC0tOworICBhc3NlcnRfdGhy
b3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyB3YWxrZXIubmV4dFNpYmxpbmco
KSB9KTsKKyAgZGVwdGgtLTsKKyAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBm
dW5jdGlvbigpIHsgd2Fsa2VyLnByZXZpb3VzTm9kZSgpIH0pOworICBkZXB0aC0tOworICBhc3Nl
cnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyB3YWxrZXIubmV4dE5v
ZGUoKSB9KTsKK30sICJSZWN1cnNpdmUgZmlsdGVycyBuZWVkIHRvIHRocm93Iik7CisKIGZ1bmN0
aW9uIGZpbHRlck5vZGUobm9kZSwgd2hhdFRvU2hvdywgZmlsdGVyKSB7CiAgICAgLy8gIklmIGFj
dGl2ZSBmbGFnIGlzIHNldCB0aHJvdyBhbiAiSW52YWxpZFN0YXRlRXJyb3IiLiIKICAgICAvLyBJ
Z25vcmUgYWN0aXZlIGZsYWcgZm9yIHRoZXNlIHRlc3RzLCB3ZSBhcmVuJ3QgY2FsbGluZyByZWN1
cnNpdmVseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL21vei1idWc1NTk1MjYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL21vei1idWc1NTk1MjYtZXhwZWN0
ZWQudHh0CmluZGV4IGIyNWQ3MTZlZDVjZGNkNjM5NmI3MjcyNDM5NDJiOTkyMDlmYTY2ZWUuLjIw
ZWJkYWM3N2JlOThiNzkwMTBlM2VkMDZmZjQ3MTc3ZWUzYmVlMWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3RyYXZlcnNhbC9tb3otYnVnNTU5NTI2LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy90cmF2ZXJzYWwvbW96LWJ1ZzU1OTUyNi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IFNob3VsZCBoYXZlIHRocm93biBhbiBleGNlcHRp
b246IG51bGwKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogU2hvdWxkIGhhdmUgdGhyb3duIGFu
IGV4Y2VwdGlvbjogbnVsbAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBTaG91bGQgaGF2ZSB0
aHJvd24gYW4gZXhjZXB0aW9uOiBudWxsCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IFNob3Vs
ZCBoYXZlIHRocm93biBhbiBleGNlcHRpb246IG51bGwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0
OTogU2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbjogSW52YWxpZFN0YXRlRXJyb3I6IFJl
Y3Vyc2l2ZSBmaWx0ZXJzIGFyZSBub3QgYWxsb3dlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5
OiBTaG91bGQgaGF2ZSB0aHJvd24gYW4gZXhjZXB0aW9uOiBJbnZhbGlkU3RhdGVFcnJvcjogUmVj
dXJzaXZlIGZpbHRlcnMgYXJlIG5vdCBhbGxvd2VkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6
IFNob3VsZCBoYXZlIHRocm93biBhbiBleGNlcHRpb246IEludmFsaWRTdGF0ZUVycm9yOiBSZWN1
cnNpdmUgZmlsdGVycyBhcmUgbm90IGFsbG93ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0OTog
U2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbjogSW52YWxpZFN0YXRlRXJyb3I6IFJlY3Vy
c2l2ZSBmaWx0ZXJzIGFyZSBub3QgYWxsb3dlZAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk0OiBT
aG91bGQgaGF2ZSB0ZXN0cyA0IGZpbHRlciBjYWxsczogNAogTW96aWxsYSBCdWcgNTU5NTI2CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>