<?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>202296</bug_id>
          
          <creation_ts>2019-09-26 16:23:40 -0700</creation_ts>
          <short_desc>Pages with Web Workers cannot enter the back / forward cache</short_desc>
          <delta_ts>2019-12-18 13:00:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205357</see_also>
          <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>
          
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1574673</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-26 16:23:40 -0700</bug_when>
    <thetext>Pages with Web Workers cannot enter the back / forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574678</commentid>
    <comment_count>1</comment_count>
      <attachid>379695</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-26 16:35:56 -0700</bug_when>
    <thetext>Created attachment 379695
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574681</commentid>
    <comment_count>2</comment_count>
      <attachid>379697</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-26 16:49:20 -0700</bug_when>
    <thetext>Created attachment 379697
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574682</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-26 16:51:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/55764073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574683</commentid>
    <comment_count>4</comment_count>
      <attachid>379698</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-26 16:58:51 -0700</bug_when>
    <thetext>Created attachment 379698
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574684</commentid>
    <comment_count>5</comment_count>
      <attachid>379699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-26 16:59:52 -0700</bug_when>
    <thetext>Created attachment 379699
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574716</commentid>
    <comment_count>6</comment_count>
      <attachid>379708</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-26 20:31:45 -0700</bug_when>
    <thetext>Created attachment 379708
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574819</commentid>
    <comment_count>7</comment_count>
      <attachid>379726</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 08:33:48 -0700</bug_when>
    <thetext>Created attachment 379726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574847</commentid>
    <comment_count>8</comment_count>
      <attachid>379734</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 09:43:17 -0700</bug_when>
    <thetext>Created attachment 379734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574982</commentid>
    <comment_count>9</comment_count>
      <attachid>379767</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 14:32:20 -0700</bug_when>
    <thetext>Created attachment 379767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575308</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-30 13:36:21 -0700</bug_when>
    <thetext>Ping review? I need to new GenericEventQueue implementation for follow-up patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575316</commentid>
    <comment_count>11</comment_count>
      <attachid>379767</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-30 14:00:38 -0700</bug_when>
    <thetext>Comment on attachment 379767
Patch

Clearing flags on attachment: 379767

Committed r250527: &lt;https://trac.webkit.org/changeset/250527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575317</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-30 14:00:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575554</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-01 09:04:51 -0700</bug_when>
    <thetext>This broke the Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575557</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-01 09:06:35 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #13)
&gt; This broke the Windows build

EWS was green?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575681</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-01 13:15:58 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to Alex Christensen from comment #13)
&gt; &gt; This broke the Windows build
&gt; 
&gt; EWS was green?

Fixed in r250560.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379695</attachid>
            <date>2019-09-26 16:35:56 -0700</date>
            <delta_ts>2019-09-26 16:49:20 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202296_Workers_PageCache_wip.patch</filename>
            <type>text/plain</type>
            <size>5926</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAzMzY2ZmRiZTIxOS4uYzRiNjZkMzg1NzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJXb3JrZXIuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1
ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKQEAgLTY3LDYgKzY4
LDcgQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmllcigid29ya2Vy
OiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKQog
ICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKCp0aGlz
KSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1fZXZlbnRRdWV1
ZSgqdGhpcykKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExpc3RlbmVyOwogICAgIGlmICghYWRk
ZWRMaXN0ZW5lcikgewpAQCAtMTQ4LDggKzE1MCwxNyBAQCB2b2lkIFdvcmtlcjo6dGVybWluYXRl
KCkKIAogYm9vbCBXb3JrZXI6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25z
dAogewotICAgIC8vIEZJWE1FOiBJdCBpcyBub3QgY3VycmVudGx5IHBvc3NpYmxlIHRvIHN1c3Bl
bmQgYSB3b3JrZXIsIHNvIHBhZ2VzIHdpdGggd29ya2VycyBjYW4gbm90IGdvIGludG8gcGFnZSBj
YWNoZS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV29y
a2VyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCit7CisgICAgbV9ldmVudFF1ZXVlLnN1
c3BlbmQoKTsKK30KKwordm9pZCBXb3JrZXI6OnJlc3VtZSgpCit7CisgICAgbV9ldmVudFF1ZXVl
LnJlc3VtZSgpOwogfQogCiBjb25zdCBjaGFyKiBXb3JrZXI6OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdApAQCAtMTkyLDcgKzIwMyw3IEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3NjcmlwdExvYWRlci0+ZmFpbGVkKCkpIHsK
LSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKSk7Cisg
ICAgICAgIGVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIwMiw0ICsyMTMsMTggQEAgdm9pZCBXb3JrZXI6Om5v
dGlmeUZpbmlzaGVkKCkKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9y
dGVkKCpjb250ZXh0LCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRl
ci0+c2NyaXB0KCkpOwogfQogCit2b2lkIFdvcmtlcjo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4m
JiBldmVudCkKK3sKKyAgICBtX2V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQp
KTsKK30KKwordm9pZCBXb3JrZXI6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQoreworICAg
IEFic3RyYWN0V29ya2VyOjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBpZiAoaXM8RXJyb3JF
dmVudD4oZXZlbnQpICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKCkgJiYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSB7CisgICAgICAgIGF1dG8mIGVycm9yRXZlbnQgPSBkb3duY2FzdDxFcnJv
ckV2ZW50PihldmVudCk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cmVwb3J0
RXhjZXB0aW9uKGVycm9yRXZlbnQubWVzc2FnZSgpLCBlcnJvckV2ZW50LmxpbmVubygpLCBlcnJv
ckV2ZW50LmNvbG5vKCksIGVycm9yRXZlbnQuZmlsZW5hbWUoKSwgbnVsbHB0ciwgbnVsbHB0cik7
CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAppbmRleCAyM2MzMWEwMDg0MC4uNTcxY2Y2N2FhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgpAQCAtNjcsOSArNjgsMTMgQEAg
cHVibGljOgogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKKyAgICB2b2lkIGVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYpOwor
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
SlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIAorICAgIHZvaWQgZGlzcGF0Y2hF
dmVudChFdmVudCYpIGZpbmFsOworCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBXb3JrZXJFdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KIAogICAgIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNP
bmxpbmUpOwpAQCAtNzgsNiArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5RmluaXNo
ZWQoKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5h
bDsKKyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKIApAQCAtOTEs
NiArOTgsNyBAQCBwcml2YXRlOgogICAgIE1vbm90b25pY1RpbWUgbV93b3JrZXJDcmVhdGlvblRp
bWU7CiAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSB7IGZhbHNlIH07CiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgbV9ydW50aW1lRmxhZ3M7CisgICAg
R2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAppbmRleCA1ZTNlMDU0YmY1Mi4uNTlmNzk2MDYyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9p
ZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyYmIG0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRv
IHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtZXNz
YWdlLnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2
ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdlLm1lc3NhZ2Uu
cmVsZWFzZU5vbk51bGwoKSkpOworICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChN
ZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJlbGVh
c2VOb25OdWxsKCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTU0LDE4ICsxNTQsMTQgQEAgYm9vbCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShT
Y3JpcHRFeGVjdXRpb25Db24KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2Vw
dGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdlID0g
ZXJyb3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNvbGF0
ZWRDb3B5KCksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpIHsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0
aGlzLCBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVS
TCA9IHNvdXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgV29ya2VyKiB3b3JrZXJPYmplY3Qg
PSB0aGlzLT53b3JrZXJPYmplY3QoKTsKICAgICAgICAgaWYgKCF3b3JrZXJPYmplY3QpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYm90aGVyIGNoZWNraW5nIHRo
ZSBhc2tlZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNhdXNlIGV4Y2VwdGlvbnMgc2hvdWxk
ICphbHdheXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRocmVhZCBpcyB0ZXJtaW5hdGVkLgog
ICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlmZmVyZW50IHRoYW4gdGhlIGJlaGF2
aW9yIGluIE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRlcm1pbmF0ZWQgd29ya2VycyBubyBs
b25nZXIgZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYgb2YgdGhlIFdlYldvcmtlciBzcGVj
KSwgYnV0IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCi0KLSAgICAgICAgYXV0byBldmVudCA9
IEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCB7IH0pOwotICAgICAgICB3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQo
ZXZlbnQpOwotICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCi0gICAgICAg
ICAgICBjb250ZXh0LnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlciwgc291cmNlVVJMLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgd29ya2Vy
T2JqZWN0LT5lbnF1ZXVlRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291
cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSkpOwogICAgIH0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379697</attachid>
            <date>2019-09-26 16:49:20 -0700</date>
            <delta_ts>2019-09-26 16:58:51 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202296_Workers_PageCache_wip.patch</filename>
            <type>text/plain</type>
            <size>8393</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZDQz
MTU0OWM4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBw
YWdlcyB3aXRoIHdvcmtlcnMgY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BB
U1MgUmVjZWl2ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUK
K1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRl
ciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dv
cmtlci1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjM1NDJjMzY5NmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcGFnZXMgd2l0aCB3b3JrZXJz
IGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgZGVidWcoInBhZ2VzaG93IC0g
IiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBwYWdlIGNhY2hlIik7
CisgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZW50ZXJl
ZCBwYWdlIGNhY2hlIik7CisgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVlOworICB9
Cit9KTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJlbnRlcmluZyBwYWdlIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0
ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNo
ZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9KTsKKworbGV0IGZpcnN0TWVz
c2FnZSA9IHRydWU7CitvbmxvYWQgPSAoKSA9PiB7CisgICAgd29ya2VyID0gbmV3IFdvcmtlcign
cmVzb3VyY2VzL3dvcmtlci1ldmVudC1saXN0ZW5lci5qcycpOworICAgIHNldEludGVydmFsKCgp
ID0+IHsKKyAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCIiKTsKKyAgICB9LCAxKTsKKworICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgaWYgKGZpcnN0TWVz
c2FnZSkgeworICAgICAgICAgICAgZmlyc3RNZXNzYWdlID0gZmFsc2U7CisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGJlZm9yZSByZXN0b3JpbmcgZnJvbSBwYWdlIGNh
Y2hlLiIpOworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gIi4uL2hpc3RvcnkvcmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGlmIChyZXN0b3JlZEZyb21QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIHJl
c3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVj
ZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLiIpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9OworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUy
MTkuLmM0YjY2ZDM4NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiV29ya2VyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3kuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCkBAIC02Nyw2ICs2OCw3IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lk
ZW50aWZpZXIoIndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0
ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJv
eHk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisg
ICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5l
cjsKICAgICBpZiAoIWFkZGVkTGlzdGVuZXIpIHsKQEAgLTE0OCw4ICsxNTAsMTcgQEAgdm9pZCBX
b3JrZXI6OnRlcm1pbmF0ZSgpCiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBw
b3NzaWJsZSB0byBzdXNwZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5v
dCBnbyBpbnRvIHBhZ2UgY2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIFdvcmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAg
IG1fZXZlbnRRdWV1ZS5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQorewor
ICAgIG1fZXZlbnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTE5Miw3ICsyMDMsNyBAQCB2b2lkIFdvcmtlcjo6
bm90aWZ5RmluaXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2Fk
ZXItPmZhaWxlZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6OlllcykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6OlllcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjEzLDE4IEBA
IHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIo
KSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVF
dmVudChSZWY8RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVu
dChXVEZNb3ZlKGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50
JiBldmVudCkKK3sKKyAgICBBYnN0cmFjdFdvcmtlcjo6ZGlzcGF0Y2hFdmVudChldmVudCk7Cisg
ICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2ZW50KSAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCgp
ICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICBhdXRvJiBlcnJvckV2ZW50
ID0gZG93bmNhc3Q8RXJyb3JFdmVudD4oZXZlbnQpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnJlcG9ydEV4Y2VwdGlvbihlcnJvckV2ZW50Lm1lc3NhZ2UoKSwgZXJyb3JFdmVu
dC5saW5lbm8oKSwgZXJyb3JFdmVudC5jb2xubygpLCBlcnJvckV2ZW50LmZpbGVuYW1lKCksIG51
bGxwdHIsIG51bGxwdHIpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmgKaW5kZXggMjNjMzFhMDA4NDAuLjU3MWNmNjdhYTU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVl
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KQEAg
LTY3LDkgKzY4LDEzIEBAIHB1YmxpYzoKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmpl
Y3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCisgICAgdm9pZCBlbnF1ZXVlRXZlbnQo
UmVmPEV2ZW50PiYmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBPcHRpb25zJik7CiAKKyAg
ICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBmaW5hbDsKKwogICAgIEV2ZW50VGFyZ2V0SW50
ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV29ya2Vy
RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKICAgICB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0
ZUNoYW5nZShib29sIGlzT25saW5lKTsKQEAgLTc4LDYgKzgzLDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbikgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKICAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
ZmluYWw7CiAKQEAgLTkxLDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBNb25vdG9uaWNUaW1lIG1f
d29ya2VyQ3JlYXRpb25UaW1lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fcnVu
dGltZUZsYWdzOworICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNWUzZTA1NGJmNTIuLjU5Zjc5NjA2MjBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMTA0
LDcgKzEwNCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3Jr
ZXJPYmplY3QoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKGNvbnRl
eHQsIFdURk1vdmUobWVzc2FnZS50cmFuc2ZlcnJlZFBvcnRzKSk7Ci0gICAgICAgIHdvcmtlck9i
amVjdC0+ZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwg
bWVzc2FnZS5tZXNzYWdlLnJlbGVhc2VOb25OdWxsKCkpKTsKKyAgICAgICAgd29ya2VyT2JqZWN0
LT5lbnF1ZXVlRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIG1lc3Nh
Z2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE1NCwxOCAr
MTU0LDE0IEBAIGJvb2wgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29uCiAKIHZvaWQgV29ya2VyTWVzc2FnaW5n
UHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKQogewotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soW3RoaXMs
IGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5pc29sYXRlZENvcHkoKSwgc291cmNlVVJMID0g
c291cmNlVVJMLmlzb2xhdGVkQ29weSgpLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXJdIChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlLmlzb2xhdGVk
Q29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNvbGF0ZWRDb3B5KCksIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAgIFdvcmtl
ciogd29ya2VyT2JqZWN0ID0gdGhpcy0+d29ya2VyT2JqZWN0KCk7CiAgICAgICAgIGlmICghd29y
a2VyT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIFdlIGRvbid0IGJv
dGhlciBjaGVja2luZyB0aGUgYXNrZWRUb1Rlcm1pbmF0ZSgpIGZsYWcgaGVyZSwgYmVjYXVzZSBl
eGNlcHRpb25zIHNob3VsZCAqYWx3YXlzKiBiZSByZXBvcnRlZCBldmVuIGlmIHRoZSB0aHJlYWQg
aXMgdGVybWluYXRlZC4KICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGRpZmZlcmVu
dCB0aGFuIHRoZSBiZWhhdmlvciBpbiBNZXNzYWdlV29ya2VyVGFzaywgYmVjYXVzZSB0ZXJtaW5h
dGVkIHdvcmtlcnMgbm8gbG9uZ2VyIGRlbGl2ZXIgbWVzc2FnZXMgKHNlY3Rpb24gNC42IG9mIHRo
ZSBXZWJXb3JrZXIgc3BlYyksIGJ1dCB0aGV5IGRvIHJlcG9ydCBleGNlcHRpb25zLgotCi0gICAg
ICAgIGF1dG8gZXZlbnQgPSBFcnJvckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VV
UkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgeyB9KTsKLSAgICAgICAgd29ya2VyT2JqZWN0
LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICAgICAgaWYgKCFldmVudC0+ZGVmYXVsdFByZXZl
bnRlZCgpKQotICAgICAgICAgICAgY29udGV4dC5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdl
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZVVSTCwgbnVsbHB0ciwgbnVsbHB0cik7
CisgICAgICAgIHdvcmtlck9iamVjdC0+ZW5xdWV1ZUV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShl
cnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCB7IH0pKTsK
ICAgICB9KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379698</attachid>
            <date>2019-09-26 16:58:51 -0700</date>
            <delta_ts>2019-09-26 16:59:52 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202296_Workers_PageCache_wip.patch</filename>
            <type>text/plain</type>
            <size>8847</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZDQz
MTU0OWM4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBw
YWdlcyB3aXRoIHdvcmtlcnMgY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BB
U1MgUmVjZWl2ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUK
K1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRl
ciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dv
cmtlci1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjM1NDJjMzY5NmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcGFnZXMgd2l0aCB3b3JrZXJz
IGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgZGVidWcoInBhZ2VzaG93IC0g
IiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBwYWdlIGNhY2hlIik7
CisgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZW50ZXJl
ZCBwYWdlIGNhY2hlIik7CisgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVlOworICB9
Cit9KTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJlbnRlcmluZyBwYWdlIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0
ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNo
ZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9KTsKKworbGV0IGZpcnN0TWVz
c2FnZSA9IHRydWU7CitvbmxvYWQgPSAoKSA9PiB7CisgICAgd29ya2VyID0gbmV3IFdvcmtlcign
cmVzb3VyY2VzL3dvcmtlci1ldmVudC1saXN0ZW5lci5qcycpOworICAgIHNldEludGVydmFsKCgp
ID0+IHsKKyAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCIiKTsKKyAgICB9LCAxKTsKKworICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgaWYgKGZpcnN0TWVz
c2FnZSkgeworICAgICAgICAgICAgZmlyc3RNZXNzYWdlID0gZmFsc2U7CisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGJlZm9yZSByZXN0b3JpbmcgZnJvbSBwYWdlIGNh
Y2hlLiIpOworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gIi4uL2hpc3RvcnkvcmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGlmIChyZXN0b3JlZEZyb21QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIHJl
c3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVj
ZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLiIpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9OworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4
IGI3YjY1OWYzMmUwLi5hOTUxNzNiYmQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0dlbmVyaWNFdmVudFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVu
dFF1ZXVlLmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZCgpOwog
ICAgIHZvaWQgcmVzdW1lKCk7CiAKKyAgICBib29sIGlzU3VzcGVuZGVkKCkgeyByZXR1cm4gbV9p
c1N1c3BlbmRlZDsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hPbmVFdmVudCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTkuLmM0MGViMTgzNGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiV29ya2VyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNs
dWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCkBAIC02Nyw2ICs2
OCw3IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndvcmtl
cjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkK
ICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgqdGhp
cykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX2V2ZW50UXVl
dWUoKnRoaXMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFk
ZGVkTGlzdGVuZXIpIHsKQEAgLTE0OCw4ICsxNTAsMTcgQEAgdm9pZCBXb3JrZXI6OnRlcm1pbmF0
ZSgpCiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0byBzdXNw
ZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRvIHBhZ2Ug
Y2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdv
cmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRRdWV1ZS5z
dXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1
ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKQEAgLTE5Miw3ICsyMDMsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQo
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKSB7
Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcykpOwor
ICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjEzLDIwIEBAIHZvaWQgV29ya2VyOjpu
b3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBv
cnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2Fk
ZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChSZWY8RXZlbnQ+
JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVudChXVEZNb3ZlKGV2ZW50
KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKK3sKKyAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9ldmVudFF1ZXVlLmlzU3VzcGVu
ZGVkKCkpOworCisgICAgQWJzdHJhY3RXb3JrZXI6OmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAg
IGlmIChpczxFcnJvckV2ZW50PihldmVudCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSAm
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgYXV0byYgZXJyb3JFdmVudCA9
IGRvd25jYXN0PEVycm9yRXZlbnQ+KGV2ZW50KTsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5yZXBvcnRFeGNlcHRpb24oZXJyb3JFdmVudC5tZXNzYWdlKCksIGVycm9yRXZlbnQu
bGluZW5vKCksIGVycm9yRXZlbnQuY29sbm8oKSwgZXJyb3JFdmVudC5maWxlbmFtZSgpLCBudWxs
cHRyLCBudWxscHRyKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCmluZGV4IDIzYzMxYTAwODQwLi41NzFjZjY3YWE1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CkBAIC02
Nyw5ICs2OCwxMyBAQCBwdWJsaWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAorICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJl
ZjxFdmVudD4mJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCisgICAg
dm9pZCBkaXNwYXRjaEV2ZW50KEV2ZW50JikgZmluYWw7CisKICAgICBFdmVudFRhcmdldEludGVy
ZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdvcmtlckV2
ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogCiAgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVD
aGFuZ2UoYm9vbCBpc09ubGluZSk7CkBAIC03OCw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1
c3BlbnNpb24pIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9w
KCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsOwogCkBAIC05MSw2ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX3dv
cmtlckNyZWF0aW9uVGltZTsKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5IHsgZmFsc2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX3J1bnRp
bWVGbGFnczsKKyAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCmluZGV4IDVlM2UwNTRiZjUyLi41OWY3OTYwNjIwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTEwNCw3
ICsxMDQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRvV29ya2Vy
T2JqZWN0KE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGF1dG8gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cyhjb250ZXh0
LCBXVEZNb3ZlKG1lc3NhZ2UudHJhbnNmZXJyZWRQb3J0cykpOwotICAgICAgICB3b3JrZXJPYmpl
Y3QtPmRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIG1l
c3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgIHdvcmtlck9iamVjdC0+
ZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdl
Lm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0pOwogfQogCkBAIC0xNTQsMTggKzE1
NCwxNCBAQCBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbgogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkKIHsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBl
cnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVSTCA9IHNv
dXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+cG9zdFRhc2soW3RoaXMsIGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5pc29sYXRlZENv
cHkoKSwgc291cmNlVVJMID0gc291cmNlVVJMLmlzb2xhdGVkQ29weSgpLCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXJdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBXb3JrZXIq
IHdvcmtlck9iamVjdCA9IHRoaXMtPndvcmtlck9iamVjdCgpOwogICAgICAgICBpZiAoIXdvcmtl
ck9iamVjdCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBXZSBkb24ndCBib3Ro
ZXIgY2hlY2tpbmcgdGhlIGFza2VkVG9UZXJtaW5hdGUoKSBmbGFnIGhlcmUsIGJlY2F1c2UgZXhj
ZXB0aW9ucyBzaG91bGQgKmFsd2F5cyogYmUgcmVwb3J0ZWQgZXZlbiBpZiB0aGUgdGhyZWFkIGlz
IHRlcm1pbmF0ZWQuCiAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBkaWZmZXJlbnQg
dGhhbiB0aGUgYmVoYXZpb3IgaW4gTWVzc2FnZVdvcmtlclRhc2ssIGJlY2F1c2UgdGVybWluYXRl
ZCB3b3JrZXJzIG5vIGxvbmdlciBkZWxpdmVyIG1lc3NhZ2VzIChzZWN0aW9uIDQuNiBvZiB0aGUg
V2ViV29ya2VyIHNwZWMpLCBidXQgdGhleSBkbyByZXBvcnQgZXhjZXB0aW9ucy4KLQotICAgICAg
ICBhdXRvIGV2ZW50ID0gRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSk7Ci0gICAgICAgIHdvcmtlck9iamVjdC0+
ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgIGlmICghZXZlbnQtPmRlZmF1bHRQcmV2ZW50
ZWQoKSkKLSAgICAgICAgICAgIGNvbnRleHQucmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VVUkwsIG51bGxwdHIsIG51bGxwdHIpOwor
ICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoZXJy
b3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgeyB9KSk7CiAg
ICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379699</attachid>
            <date>2019-09-26 16:59:52 -0700</date>
            <delta_ts>2019-09-26 20:31:45 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202296_Workers_PageCache_wip.patch</filename>
            <type>text/plain</type>
            <size>8853</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZDQz
MTU0OWM4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBw
YWdlcyB3aXRoIHdvcmtlcnMgY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BB
U1MgUmVjZWl2ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUK
K1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRl
ciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dv
cmtlci1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjM1NDJjMzY5NmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcGFnZXMgd2l0aCB3b3JrZXJz
IGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgZGVidWcoInBhZ2VzaG93IC0g
IiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBwYWdlIGNhY2hlIik7
CisgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZW50ZXJl
ZCBwYWdlIGNhY2hlIik7CisgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVlOworICB9
Cit9KTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJlbnRlcmluZyBwYWdlIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0
ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNo
ZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9KTsKKworbGV0IGZpcnN0TWVz
c2FnZSA9IHRydWU7CitvbmxvYWQgPSAoKSA9PiB7CisgICAgd29ya2VyID0gbmV3IFdvcmtlcign
cmVzb3VyY2VzL3dvcmtlci1ldmVudC1saXN0ZW5lci5qcycpOworICAgIHNldEludGVydmFsKCgp
ID0+IHsKKyAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCIiKTsKKyAgICB9LCAxKTsKKworICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgaWYgKGZpcnN0TWVz
c2FnZSkgeworICAgICAgICAgICAgZmlyc3RNZXNzYWdlID0gZmFsc2U7CisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGJlZm9yZSByZXN0b3JpbmcgZnJvbSBwYWdlIGNh
Y2hlLiIpOworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gIi4uL2hpc3RvcnkvcmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGlmIChyZXN0b3JlZEZyb21QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIHJl
c3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVj
ZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLiIpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9OworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4
IGI3YjY1OWYzMmUwLi5mODc1NjBjMzhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0dlbmVyaWNFdmVudFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVu
dFF1ZXVlLmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZCgpOwog
ICAgIHZvaWQgcmVzdW1lKCk7CiAKKyAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc1N1c3BlbmRlZDsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hPbmVFdmVu
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTkuLmM0MGVi
MTgzNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiV29ya2VyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
KyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCkBAIC02
Nyw2ICs2OCw3IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIo
IndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZp
ZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0
ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX2V2
ZW50UXVldWUoKnRoaXMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBp
ZiAoIWFkZGVkTGlzdGVuZXIpIHsKQEAgLTE0OCw4ICsxNTAsMTcgQEAgdm9pZCBXb3JrZXI6OnRl
cm1pbmF0ZSgpCiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0
byBzdXNwZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRv
IHBhZ2UgY2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIFdvcmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRR
dWV1ZS5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZl
bnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKQEAgLTE5Miw3ICsyMDMsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5Rmlu
aXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxl
ZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olll
cykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJy
b3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olllcykp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjEzLDIwIEBAIHZvaWQgV29y
a2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3Jp
cHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3Jp
cHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChSZWY8
RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVudChXVEZNb3Zl
KGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkK
K3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9ldmVudFF1ZXVlLmlz
U3VzcGVuZGVkKCkpOworCisgICAgQWJzdHJhY3RXb3JrZXI6OmRpc3BhdGNoRXZlbnQoZXZlbnQp
OworICAgIGlmIChpczxFcnJvckV2ZW50PihldmVudCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50
ZWQoKSAmJiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgYXV0byYgZXJyb3JF
dmVudCA9IGRvd25jYXN0PEVycm9yRXZlbnQ+KGV2ZW50KTsKKyAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5yZXBvcnRFeGNlcHRpb24oZXJyb3JFdmVudC5tZXNzYWdlKCksIGVycm9y
RXZlbnQubGluZW5vKCksIGVycm9yRXZlbnQuY29sbm8oKSwgZXJyb3JFdmVudC5maWxlbmFtZSgp
LCBudWxscHRyLCBudWxscHRyKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDIzYzMxYTAwODQwLi41NzFjZjY3YWE1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRR
dWV1ZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0
TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+
CkBAIC02Nyw5ICs2OCwxMyBAQCBwdWJsaWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAorICAgIHZvaWQgZW5xdWV1ZUV2
ZW50KFJlZjxFdmVudD4mJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwog
CisgICAgdm9pZCBkaXNwYXRjaEV2ZW50KEV2ZW50JikgZmluYWw7CisKICAgICBFdmVudFRhcmdl
dEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdv
cmtlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogCiAgICAgdm9pZCBub3RpZnlOZXR3b3Jr
U3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7CkBAIC03OCw2ICs4Myw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5TdXNwZW5kRm9y
RG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24pIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOwogCkBAIC05MSw2ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGlt
ZSBtX3dvcmtlckNyZWF0aW9uVGltZTsKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5IHsgZmFsc2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBt
X3J1bnRpbWVGbGFnczsKKyAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDVlM2UwNTRiZjUyLi41OWY3OTYwNjIwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRv
V29ya2VyT2JqZWN0KE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIGF1dG8gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cyhj
b250ZXh0LCBXVEZNb3ZlKG1lc3NhZ2UudHJhbnNmZXJyZWRQb3J0cykpOwotICAgICAgICB3b3Jr
ZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0
cyksIG1lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgIHdvcmtlck9i
amVjdC0+ZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBt
ZXNzYWdlLm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0pOwogfQogCkBAIC0xNTQs
MTggKzE1NCwxNCBAQCBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVU
b1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbgogCiB2b2lkIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCkKIHsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0
aGlzLCBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVS
TCA9IHNvdXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5pc29s
YXRlZENvcHkoKSwgc291cmNlVVJMID0gc291cmNlVVJMLmlzb2xhdGVkQ29weSgpLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXJdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBX
b3JrZXIqIHdvcmtlck9iamVjdCA9IHRoaXMtPndvcmtlck9iamVjdCgpOwogICAgICAgICBpZiAo
IXdvcmtlck9iamVjdCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBXZSBkb24n
dCBib3RoZXIgY2hlY2tpbmcgdGhlIGFza2VkVG9UZXJtaW5hdGUoKSBmbGFnIGhlcmUsIGJlY2F1
c2UgZXhjZXB0aW9ucyBzaG91bGQgKmFsd2F5cyogYmUgcmVwb3J0ZWQgZXZlbiBpZiB0aGUgdGhy
ZWFkIGlzIHRlcm1pbmF0ZWQuCiAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBkaWZm
ZXJlbnQgdGhhbiB0aGUgYmVoYXZpb3IgaW4gTWVzc2FnZVdvcmtlclRhc2ssIGJlY2F1c2UgdGVy
bWluYXRlZCB3b3JrZXJzIG5vIGxvbmdlciBkZWxpdmVyIG1lc3NhZ2VzIChzZWN0aW9uIDQuNiBv
ZiB0aGUgV2ViV29ya2VyIHNwZWMpLCBidXQgdGhleSBkbyByZXBvcnQgZXhjZXB0aW9ucy4KLQot
ICAgICAgICBhdXRvIGV2ZW50ID0gRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291
cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSk7Ci0gICAgICAgIHdvcmtlck9i
amVjdC0+ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgIGlmICghZXZlbnQtPmRlZmF1bHRQ
cmV2ZW50ZWQoKSkKLSAgICAgICAgICAgIGNvbnRleHQucmVwb3J0RXhjZXB0aW9uKGVycm9yTWVz
c2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VVUkwsIG51bGxwdHIsIG51bGxw
dHIpOworICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChFcnJvckV2ZW50OjpjcmVh
dGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgeyB9
KSk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379708</attachid>
            <date>2019-09-26 20:31:45 -0700</date>
            <delta_ts>2019-09-27 08:33:46 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>202296_wip.patch</filename>
            <type>text/plain</type>
            <size>9044</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZDQz
MTU0OWM4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBw
YWdlcyB3aXRoIHdvcmtlcnMgY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BB
U1MgUmVjZWl2ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgcGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUK
K1BBU1MgUGFnZSBlbnRlcmVkIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRl
ciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dv
cmtlci1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjM1NDJjMzY5NmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcGFnZXMgd2l0aCB3b3JrZXJz
IGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2xldCByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgZGVidWcoInBhZ2VzaG93IC0g
IiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBwYWdlIGNhY2hlIik7
CisgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZW50ZXJl
ZCBwYWdlIGNhY2hlIik7CisgICAgICByZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSB0cnVlOworICB9
Cit9KTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDog
Im5vdCAiKSArICJlbnRlcmluZyBwYWdlIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0
ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBmYWlsZWQgdG8gZW50ZXIgcGFnZSBjYWNo
ZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9KTsKKworbGV0IGZpcnN0TWVz
c2FnZSA9IHRydWU7CitvbmxvYWQgPSAoKSA9PiB7CisgICAgd29ya2VyID0gbmV3IFdvcmtlcign
cmVzb3VyY2VzL3dvcmtlci1ldmVudC1saXN0ZW5lci5qcycpOworICAgIHNldEludGVydmFsKCgp
ID0+IHsKKyAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCIiKTsKKyAgICB9LCAxKTsKKworICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgaWYgKGZpcnN0TWVz
c2FnZSkgeworICAgICAgICAgICAgZmlyc3RNZXNzYWdlID0gZmFsc2U7CisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGJlZm9yZSByZXN0b3JpbmcgZnJvbSBwYWdlIGNh
Y2hlLiIpOworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gIi4uL2hpc3RvcnkvcmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGlmIChyZXN0b3JlZEZyb21QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIHJl
c3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVj
ZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLiIpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9OworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2
ZW50UXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4
IGI3YjY1OWYzMmUwLi5mODc1NjBjMzhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0dlbmVyaWNFdmVudFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVu
dFF1ZXVlLmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZCgpOwog
ICAgIHZvaWQgcmVzdW1lKCk7CiAKKyAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc1N1c3BlbmRlZDsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hPbmVFdmVu
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTkuLmU4NjJk
NmY1YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiV29ya2VyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
KyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCkBAIC02
Nyw2ICs2OCw3IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIo
IndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZp
ZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0
ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX2V2
ZW50UXVldWUoKnRoaXMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBp
ZiAoIWFkZGVkTGlzdGVuZXIpIHsKQEAgLTE0OCw4ICsxNTAsMTcgQEAgdm9pZCBXb3JrZXI6OnRl
cm1pbmF0ZSgpCiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0
byBzdXNwZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRv
IHBhZ2UgY2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIFdvcmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRR
dWV1ZS5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZl
bnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKQEAgLTE2MCw2ICsxNzEsNyBAQCBjb25zdCBjaGFyKiBXb3JrZXI6OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogdm9pZCBXb3JrZXI6OnN0b3AoKQogewogICAgIHRl
cm1pbmF0ZSgpOworICAgIG1fZXZlbnRRdWV1ZS5jbG9zZSgpOwogfQogCiBib29sIFdvcmtlcjo6
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKQEAgLTE5Miw3ICsyMDQsNyBAQCB2b2lkIFdvcmtl
cjo6bm90aWZ5RmluaXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRM
b2FkZXItPmZhaWxlZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6OlllcykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6OlllcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjE0LDIw
IEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZp
ZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVl
dWVFdmVudChSZWY8RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVF
dmVudChXVEZNb3ZlKGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2
ZW50JiBldmVudCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFtX2V2ZW50UXVldWUuaXNTdXNwZW5kZWQoKSk7CisKKyAgICBBYnN0cmFjdFdvcmtlcjo6
ZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2ZW50KSAmJiAh
ZXZlbnQuZGVmYXVsdFByZXZlbnRlZCgpICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewor
ICAgICAgICBhdXRvJiBlcnJvckV2ZW50ID0gZG93bmNhc3Q8RXJyb3JFdmVudD4oZXZlbnQpOwor
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlcG9ydEV4Y2VwdGlvbihlcnJvckV2
ZW50Lm1lc3NhZ2UoKSwgZXJyb3JFdmVudC5saW5lbm8oKSwgZXJyb3JFdmVudC5jb2xubygpLCBl
cnJvckV2ZW50LmZpbGVuYW1lKCksIG51bGxwdHIsIG51bGxwdHIpOworICAgIH0KK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggMjNjMzFhMDA4
NDAuLjU3MWNmNjdhYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2lu
Y2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNp
bmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9SdW50aW1lRmxhZ3MuaD4KQEAgLTY3LDkgKzY4LDEzIEBAIHB1YmxpYzoKIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQog
CisgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmKTsKKwogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdz
LCBjb25zdCBPcHRpb25zJik7CiAKKyAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBmaW5h
bDsKKwogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gV29ya2VyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKICAg
ICB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKTsKQEAgLTc4LDYg
KzgzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKICAg
ICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CisgICAgdm9pZCByZXN1
bWUoKSBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAKQEAgLTkxLDYgKzk4LDcgQEAgcHJpdmF0
ZToKICAgICBNb25vdG9uaWNUaW1lIG1fd29ya2VyQ3JlYXRpb25UaW1lOwogICAgIGJvb2wgbV9z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OwogICAg
IEpTQzo6UnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdzOworICAgIEdlbmVyaWNFdmVudFF1ZXVl
IG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNWUzZTA1NGJm
NTIuLjU5Zjc5NjA2MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5n
UHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMm
JiBtCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQ
b3J0OjplbnRhbmdsZVBvcnRzKGNvbnRleHQsIFdURk1vdmUobWVzc2FnZS50cmFuc2ZlcnJlZFBv
cnRzKSk7Ci0gICAgICAgIHdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6
OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJlbGVhc2VOb25OdWxsKCkp
KTsKKyAgICAgICAgd29ya2VyT2JqZWN0LT5lbnF1ZXVlRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVh
dGUoV1RGTW92ZShwb3J0cyksIG1lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTE1NCwxOCArMTU0LDE0IEBAIGJvb2wgV29ya2VyTWVzc2FnaW5nUHJv
eHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29u
CiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5pc29s
YXRlZENvcHkoKSwgc291cmNlVVJMID0gc291cmNlVVJMLmlzb2xhdGVkQ29weSgpLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXJdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7Cisg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdl
ID0gZXJyb3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNv
bGF0ZWRDb3B5KCksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CiAgICAgICAgIFdvcmtlciogd29ya2VyT2JqZWN0ID0gdGhpcy0+d29ya2VyT2Jq
ZWN0KCk7CiAgICAgICAgIGlmICghd29ya2VyT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIC8vIFdlIGRvbid0IGJvdGhlciBjaGVja2luZyB0aGUgYXNrZWRUb1Rlcm1pbmF0
ZSgpIGZsYWcgaGVyZSwgYmVjYXVzZSBleGNlcHRpb25zIHNob3VsZCAqYWx3YXlzKiBiZSByZXBv
cnRlZCBldmVuIGlmIHRoZSB0aHJlYWQgaXMgdGVybWluYXRlZC4KICAgICAgICAgLy8gVGhpcyBp
cyBpbnRlbnRpb25hbGx5IGRpZmZlcmVudCB0aGFuIHRoZSBiZWhhdmlvciBpbiBNZXNzYWdlV29y
a2VyVGFzaywgYmVjYXVzZSB0ZXJtaW5hdGVkIHdvcmtlcnMgbm8gbG9uZ2VyIGRlbGl2ZXIgbWVz
c2FnZXMgKHNlY3Rpb24gNC42IG9mIHRoZSBXZWJXb3JrZXIgc3BlYyksIGJ1dCB0aGV5IGRvIHJl
cG9ydCBleGNlcHRpb25zLgotCi0gICAgICAgIGF1dG8gZXZlbnQgPSBFcnJvckV2ZW50OjpjcmVh
dGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgeyB9
KTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICAgICAg
aWYgKCFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpKQotICAgICAgICAgICAgY29udGV4dC5yZXBv
cnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJj
ZVVSTCwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICAgIHdvcmtlck9iamVjdC0+ZW5xdWV1ZUV2
ZW50KEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyLCB7IH0pKTsKICAgICB9KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379726</attachid>
            <date>2019-09-27 08:33:48 -0700</date>
            <delta_ts>2019-09-27 09:43:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202296-20190927083347.patch</filename>
            <type>text/plain</type>
            <size>12485</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1NTJiYjBkNjBmZDNj
NjMxOTQyN2EyOTI2ZjVmOGMyYzEyMWMwNS4uOGMxYzhjOTM1NDk5NjQyYTdlOTk4ZDg2MmRiNWU3
Njg1NWM2MTkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29y
a2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IHBhZ2VzIHRoYXQgdXNlIFdlYiBXb3JrZXJzIHRvIGVudGVyIHRo
ZSBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKyAgICAgICAgVGhpcyBpbnZvbHZlcyBhZGRpbmcgYW4g
RXZlbnRRdWV1ZSBmb3IgYWxsIGV2ZW50IGZpcmluZyBvbiBXb2tlcgorICAgICAgICBvYmplY3Rz
IGFuZCBzdXNwZW5kaW5nIHRoaXMgRXZlbnRRdWV1ZSB3aGlsZSBpbiB0aGUgcGFnZSBjYWNoZS4K
KworICAgICAgICBUaGlzIHdhcyBwcmV2ZW50aW5nIHNvbWUgb2YgdGhlIHBhZ2VzIG9uIHdlYXRo
ZXIuY29tIHRvIGVudGVyIHRoZQorICAgICAgICBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAorCisgICAgICAg
ICogZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmg6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZl
bnRRdWV1ZTo6aXNTdXNwZW5kZWQgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlcjo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y2FuU3VzcGVu
ZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6
OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpyZXN1bWUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6aGFzUGVu
ZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5Rmlu
aXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjplbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJP
YmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNl
cHRpb25Ub1dvcmtlck9iamVjdCk6CisKIDIwMTktMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBJREJUcmFuc2FjdGlvbiAvIElEQk9iamVjdFN0b3JlIHNo
b3VsZCBub3QgcHJldmVudCBhIHBhZ2UgZnJvbSBlbnRlcmluZyB0aGUgYmFjayAvIGZvcndhcmQg
Y2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgKaW5kZXggYjdiNjU5ZjMy
ZTBhYTViNmM4OTE3YjQyNzEzYjVjNTNkYWUzNmI4ZS4uZjg3NTYwYzM4YmRkNWZmMzQ4ODhkODBk
Zjg4YjgxYjAyNzJkNjA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNF
dmVudFF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgK
QEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQg
cmVzdW1lKCk7CiAKKyAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1N1
c3BlbmRlZDsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hPbmVFdmVudCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTlmODEzYjBiOTIyMTAzNjQ4
YTg1ZmNlMDA5MzVmYS4uMjIxMDFhYzU3MzUwZDVkNWFlNzc3M2IwYjU2ZmNhODY5ZmM3MDUyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
Ildvcmtlci5oIgogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNjcsNiArNjgs
NyBAQCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6
IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAg
ICAgLCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMp
KQogICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQorICAgICwgbV9ldmVudFF1ZXVl
KCp0aGlzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRl
ZExpc3RlbmVyKSB7CkBAIC0xNDQsMTIgKzE0NiwyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3Jr
ZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIG1lc3Nh
Zwogdm9pZCBXb3JrZXI6OnRlcm1pbmF0ZSgpCiB7CiAgICAgbV9jb250ZXh0UHJveHkudGVybWlu
YXRlV29ya2VyR2xvYmFsU2NvcGUoKTsKKyAgICBtX2V2ZW50UXVldWUuY2FuY2VsQWxsRXZlbnRz
KCk7CiB9CiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkg
Y29uc3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0byBz
dXNwZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRvIHBh
Z2UgY2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IFdvcmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRRdWV1
ZS5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRR
dWV1ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKQEAgLTE2MCwxMSArMTcyLDEyIEBAIGNvbnN0IGNoYXIqIFdvcmtlcjo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB2b2lkIFdvcmtlcjo6c3RvcCgpCiB7CiAgICAgdGVy
bWluYXRlKCk7CisgICAgbV9ldmVudFF1ZXVlLmNsb3NlKCk7CiB9CiAKIGJvb2wgV29ya2VyOjpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5o
YXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0
eSgpOworICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5oYXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBB
Y3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHx8IG1fZXZlbnRRdWV1ZS5oYXNQ
ZW5kaW5nRXZlbnRzKCk7CiB9CiAKIHZvaWQgV29ya2VyOjpub3RpZnlOZXR3b3JrU3RhdGVDaGFu
Z2UoYm9vbCBpc09uTGluZSkKQEAgLTE5Miw3ICsyMDUsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5
RmluaXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZh
aWxlZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
OlllcykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olll
cykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjE1LDIwIEBAIHZvaWQg
V29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
Y3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChS
ZWY8RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVudChXVEZN
b3ZlKGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVu
dCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2V2
ZW50UXVldWUuaXNTdXNwZW5kZWQoKSk7CisKKyAgICBBYnN0cmFjdFdvcmtlcjo6ZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2ZW50KSAmJiAhZXZlbnQuZGVm
YXVsdFByZXZlbnRlZCgpICYmIGV2ZW50LmlzVHJ1c3RlZCgpICYmIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkgeworICAgICAgICBhdXRvJiBlcnJvckV2ZW50ID0gZG93bmNhc3Q8RXJyb3JFdmVu
dD4oZXZlbnQpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlcG9ydEV4Y2Vw
dGlvbihlcnJvckV2ZW50Lm1lc3NhZ2UoKSwgZXJyb3JFdmVudC5saW5lbm8oKSwgZXJyb3JFdmVu
dC5jb2xubygpLCBlcnJvckV2ZW50LmZpbGVuYW1lKCksIG51bGxwdHIsIG51bGxwdHIpOworICAg
IH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5k
ZXggMjNjMzFhMDA4NDA4MWFkOWEwZWUyY2IwODJlZjExODVmYWU4NDk1NC4uNTcxY2Y2N2FhNTdm
MzNlYzA1ZDgwYWM2M2NjNjVmOTc2MTFkMzkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CkBAIC02Nyw5ICs2OCwxMyBAQCBwdWJs
aWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7IH0KIAorICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6
OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCisgICAgdm9pZCBkaXNwYXRjaEV2ZW50
KEV2ZW50JikgZmluYWw7CisKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldElu
dGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdvcmtlckV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQogCiAgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGlu
ZSk7CkBAIC03OCw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgp
IGZpbmFsOwogCiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwor
ICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogCkBAIC05MSw2ICs5
OCw3IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX3dvcmtlckNyZWF0aW9uVGltZTsK
ICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IHsg
ZmFsc2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX3J1bnRpbWVGbGFnczsKKyAgICBHZW5l
cmljRXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmlu
ZGV4IDVlM2UwNTRiZjUyZTJjMTBjMTFkZWZmNjlhYjc2ZTk3NzFlY2I0NWEuLjU5Zjc5NjA2MjBj
ODg3NTc0NDJkNTk0OGJlY2JjZDAwMWYyMGZhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyYmIG0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHBv
cnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtZXNzYWdl
LnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50
KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdlLm1lc3NhZ2UucmVs
ZWFzZU5vbk51bGwoKSkpOworICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChNZXNz
YWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJlbGVhc2VO
b25OdWxsKCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTU0LDE4ICsxNTQsMTQgQEAgYm9vbCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3Jp
cHRFeGVjdXRpb25Db24KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2VwdGlv
blRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdlID0gZXJy
b3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNvbGF0ZWRD
b3B5KCksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpIHsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlz
LCBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVSTCA9
IHNvdXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgV29ya2VyKiB3b3JrZXJPYmplY3QgPSB0
aGlzLT53b3JrZXJPYmplY3QoKTsKICAgICAgICAgaWYgKCF3b3JrZXJPYmplY3QpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYm90aGVyIGNoZWNraW5nIHRoZSBh
c2tlZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNhdXNlIGV4Y2VwdGlvbnMgc2hvdWxkICph
bHdheXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRocmVhZCBpcyB0ZXJtaW5hdGVkLgogICAg
ICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlmZmVyZW50IHRoYW4gdGhlIGJlaGF2aW9y
IGluIE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRlcm1pbmF0ZWQgd29ya2VycyBubyBsb25n
ZXIgZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYgb2YgdGhlIFdlYldvcmtlciBzcGVjKSwg
YnV0IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCi0KLSAgICAgICAgYXV0byBldmVudCA9IEVy
cm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyLCB7IH0pOwotICAgICAgICB3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZl
bnQpOwotICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCi0gICAgICAgICAg
ICBjb250ZXh0LnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgc291cmNlVVJMLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgd29ya2VyT2Jq
ZWN0LT5lbnF1ZXVlRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNl
VVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSkpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggY2E5NDgyYTE1MjljNjAzZDk1YmQ1MzllMzRkNDgxMDI0YWViZmViNC4uZTliNTZiMjU3NTQ1
NjFiYzBkZmExOWVmZTRjZGEzODY4OWFiNDRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA5LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMg
d2l0aCBXZWIgV29ya2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAg
ICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4K
KwogMjAxOS0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IElEQlRyYW5zYWN0aW9uIC8gSURCT2JqZWN0U3RvcmUgc2hvdWxkIG5vdCBwcmV2ZW50IGEgcGFn
ZSBmcm9tIGVudGVyaW5nIHRoZSBiYWNrIC8gZm9yd2FyZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGQ0MzE1NDljODZiMjViZmIxYjgxNTk1OTk3ZjZjNGM1YjMxZWE1NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBwYWdlcyB3aXRoIHdvcmtl
cnMgY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVz
c2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3BhZ2VoaWRlIC0gZW50ZXJp
bmcgcGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFnZSBlbnRl
cmVkIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJv
bSBwYWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFn
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzU0MmMzNjk2ZDNkMzBkOWMzNWUwOTA0N2Q5NmUxMzNjYzJjZWQ3
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFn
ZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHBhZ2VzIHdpdGggd29ya2VycyBjYW4gZ28gaW50byB0
aGUgcGFnZSBjYWNoZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgcmVzdG9yZWRG
cm9tUGFnZUNhY2hlID0gZmFsc2U7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hv
dyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVy
c2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gcGFnZSBjYWNoZSIpOworICBpZiAoZXZlbnQu
cGVyc2lzdGVkKSB7CisgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGVudGVyZWQgcGFnZSBjYWNoZSIp
OworICAgICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgfQorfSk7CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVi
dWcoInBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50
ZXJpbmcgcGFnZSBjYWNoZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVyIHBhZ2UgY2FjaGUiKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorfSk7CisKK2xldCBmaXJzdE1lc3NhZ2UgPSB0cnVlOwor
b25sb2FkID0gKCkgPT4geworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy93b3Jr
ZXItZXZlbnQtbGlzdGVuZXIuanMnKTsKKyAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CisgICAgICAg
IHdvcmtlci5wb3N0TWVzc2FnZSgiIik7CisgICAgfSwgMSk7CisKKyAgICB3b3JrZXIub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIGlmIChmaXJzdE1lc3NhZ2UpIHsKKyAgICAg
ICAgICAgIGZpcnN0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVj
ZWl2ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAg
ICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIuLi9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hl
LWhlbHBlci5odG1sIjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBp
ZiAocmVzdG9yZWRGcm9tUGFnZUNhY2hlKSB7CisgICAgICAgICAgICByZXN0b3JlZEZyb21QYWdl
Q2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2Ug
YWZ0ZXIgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9CisgICAgfTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379734</attachid>
            <date>2019-09-27 09:43:17 -0700</date>
            <delta_ts>2019-09-27 14:32:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202296-20190927094317.patch</filename>
            <type>text/plain</type>
            <size>15126</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1NTJiYjBkNjBmZDNj
NjMxOTQyN2EyOTI2ZjVmOGMyYzEyMWMwNS4uZDM0Mzc3NTNkZjljMjYyZDAxN2Y4MWRiYWJmNDlm
MGEwMzIxNzViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29y
a2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgQWxsb3cgcGFnZXMgdGhhdCB1c2UgV2ViIFdvcmtlcnMgdG8gZW50ZXIg
dGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlLgorICAgICAgICBUaGlzIGludm9sdmVzIGFkZGluZyBh
biBFdmVudFF1ZXVlIGZvciBhbGwgZXZlbnQgZmlyaW5nIG9uIFdva2VyCisgICAgICAgIG9iamVj
dHMgYW5kIHN1c3BlbmRpbmcgdGhpcyBFdmVudFF1ZXVlIHdoaWxlIGluIHRoZSBwYWdlIGNhY2hl
LgorCisgICAgICAgIFRoaXMgd2FzIHByZXZlbnRpbmcgc29tZSBvZiB0aGUgcGFnZXMgb24gd2Vh
dGhlci5jb20gdG8gZW50ZXIgdGhlCisgICAgICAgIGJhY2sgLyBmb3J3YXJkIGNhY2hlLgorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sCisKKyAgICAg
ICAgKiBkb20vR2VuZXJpY0V2ZW50UXVldWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNF
dmVudFF1ZXVlOjppc1N1c3BlbmRlZCBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyOjp0ZXJtaW5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjYW5TdXNw
ZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
cjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OnJlc3VtZSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpoYXNQ
ZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlG
aW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmVucXVldWVFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXI6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtl
ck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0KToKKwogMjAxOS0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIElEQlRyYW5zYWN0aW9uIC8gSURCT2JqZWN0U3RvcmUg
c2hvdWxkIG5vdCBwcmV2ZW50IGEgcGFnZSBmcm9tIGVudGVyaW5nIHRoZSBiYWNrIC8gZm9yd2Fy
ZCBjYWNoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaAppbmRleCBiN2I2NTlm
MzJlMGFhNWI2Yzg5MTdiNDI3MTNiNWM1M2RhZTM2YjhlLi5mODc1NjBjMzhiZGQ1ZmYzNDg4OGQ4
MGRmODhiODFiMDI3MmQ2MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJp
Y0V2ZW50UXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUu
aApAQCAtNTIsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9p
ZCByZXN1bWUoKTsKIAorICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
U3VzcGVuZGVkOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaE9uZUV2ZW50KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IGQ2N2NlMjc4ZmRhNGZiMzRmMzNmMTQ2
ZmMxODcyNDYyZWUxNTY5MzAuLjg0MmVlMjk0M2RmY2Q2NzBhYjgwOTI2MGRjMTE1MmEwNDU2MTJi
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBNZXNz
YWdlUG9ydDo6TWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgY29uc3QgTQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQogICAgICwgbV9pZGVudGlmaWVyKGxvY2FsKQogICAgICwgbV9yZW1vdGVJZGVu
dGlmaWVyKHJlbW90ZSkKKyAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKIHsKICAgICBMT0coTWVz
c2FnZVBvcnRzLCAiQ3JlYXRlZCBNZXNzYWdlUG9ydCAlcyAoJXApIGluIHByb2Nlc3MgJSIgUFJJ
dTY0LCBtX2lkZW50aWZpZXIubG9nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgUHJvY2Vz
czo6aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogCkBAIC0yMjcsNiArMjI4LDE3IEBAIHZvaWQg
TWVzc2FnZVBvcnQ6OmNsb3NlKCkKIAogICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpm
cm9tQ29udGV4dCgqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS5tZXNzYWdlUG9ydENsb3NlZCht
X2lkZW50aWZpZXIpOwogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CisgICAgbV9ldmVu
dFF1ZXVlLmNsb3NlKCk7Cit9CisKK3ZvaWQgTWVzc2FnZVBvcnQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbikKK3sKKyAgICBtX2V2ZW50UXVldWUuc3VzcGVuZCgpOworfQorCit2b2lkIE1l
c3NhZ2VQb3J0OjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAog
dm9pZCBNZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0yNjgsNyArMjgwLDcgQEAg
dm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgICAgICAgICBpZiAoY29u
dGV4dElzV29ya2VyICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KS5pc0Nsb3NpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRyYW5zZmVycmVkUG9ydHMpKTsKLSAg
ICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0
cyksIG1lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgICAgICBtX2V2
ZW50UXVldWUuZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMp
LCBtZXNzYWdlLm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAppbmRleCBkYmQ1NTNiZDA1ZmRhOGY2NzMzMmYxZjM1
NDAxYTM2OWMxZTkzMGYwLi5hNGRjMjJhNzZkNmNiOWNmZWI0ZjBmYmVhMzc4N2ZmOWFkNzliYmNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCkBAIC04NCw2ICs4NSw4IEBA
IHB1YmxpYzoKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1l
bnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1
c3BlbnNpb24pIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBjb250
ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWwgeyBjbG9zZSgpOyB9
CiAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKQEAgLTEyNiw2ICsx
MjksNyBAQCBwcml2YXRlOgogICAgIE1lc3NhZ2VQb3J0SWRlbnRpZmllciBtX3JlbW90ZUlkZW50
aWZpZXI7CiAKICAgICBtdXRhYmxlIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3JlZkNvdW50IHsg
MSB9OworICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAzMzY2ZmRiZTIx
OWY4MTNiMGI5MjIxMDM2NDhhODVmY2UwMDkzNWZhLi4yMjEwMWFjNTczNTBkNWQ1YWU3NzczYjBi
NTZmY2E4NjlmYzcwNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiV29ya2VyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3kuaCIKKyNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCkBAIC02Nyw2ICs2OCw3IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lk
ZW50aWZpZXIoIndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0
ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJv
eHk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisg
ICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5l
cjsKICAgICBpZiAoIWFkZGVkTGlzdGVuZXIpIHsKQEAgLTE0NCwxMiArMTQ2LDIyIEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OkpTVmFsdWUgbWVzc2FnCiB2b2lkIFdvcmtlcjo6dGVybWluYXRlKCkKIHsKICAgICBtX2Nv
bnRleHRQcm94eS50ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpOworICAgIG1fZXZlbnRRdWV1
ZS5jYW5jZWxBbGxFdmVudHMoKTsKIH0KIAogYm9vbCBXb3JrZXI6OmNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBJdCBpcyBub3QgY3VycmVu
dGx5IHBvc3NpYmxlIHRvIHN1c3BlbmQgYSB3b3JrZXIsIHNvIHBhZ2VzIHdpdGggd29ya2VycyBj
YW4gbm90IGdvIGludG8gcGFnZSBjYWNoZS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgV29ya2VyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCit7
CisgICAgbV9ldmVudFF1ZXVlLnN1c3BlbmQoKTsKK30KKwordm9pZCBXb3JrZXI6OnJlc3VtZSgp
Cit7CisgICAgbV9ldmVudFF1ZXVlLnJlc3VtZSgpOwogfQogCiBjb25zdCBjaGFyKiBXb3JrZXI6
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtMTYwLDExICsxNzIsMTIgQEAgY29uc3Qg
Y2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHZvaWQgV29ya2VyOjpz
dG9wKCkKIHsKICAgICB0ZXJtaW5hdGUoKTsKKyAgICBtX2V2ZW50UXVldWUuY2xvc2UoKTsKIH0K
IAogYm9vbCBXb3JrZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fY29udGV4dFByb3h5Lmhhc1BlbmRpbmdBY3Rpdml0eSgpIHx8IEFjdGl2ZURPTU9iamVjdDo6
aGFzUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgcmV0dXJuIG1fY29udGV4dFByb3h5Lmhhc1BlbmRp
bmdBY3Rpdml0eSgpIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwg
bV9ldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKTsKIH0KIAogdm9pZCBXb3JrZXI6Om5vdGlm
eU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25MaW5lKQpAQCAtMTkyLDcgKzIwNSw3IEBAIHZv
aWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICht
X3NjcmlwdExvYWRlci0+ZmFpbGVkKCkpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6WWVzKSk7CisgICAgICAgIGVucXVldWVFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6WWVzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIwMiw0
ICsyMTUsMjAgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKCpjb250ZXh0LCBtX3NjcmlwdExvYWRlci0+
aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogfQogCit2b2lkIFdvcmtl
cjo6ZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJiBldmVudCkKK3sKKyAgICBtX2V2ZW50UXVldWUu
ZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKK30KKwordm9pZCBXb3JrZXI6OmRpc3BhdGNo
RXZlbnQoRXZlbnQmIGV2ZW50KQoreworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIW1fZXZlbnRRdWV1ZS5pc1N1c3BlbmRlZCgpKTsKKworICAgIEFic3RyYWN0
V29ya2VyOjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBpZiAoaXM8RXJyb3JFdmVudD4oZXZl
bnQpICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKCkgJiYgZXZlbnQuaXNUcnVzdGVkKCkgJiYg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAgIGF1dG8mIGVycm9yRXZlbnQgPSBk
b3duY2FzdDxFcnJvckV2ZW50PihldmVudCk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+cmVwb3J0RXhjZXB0aW9uKGVycm9yRXZlbnQubWVzc2FnZSgpLCBlcnJvckV2ZW50Lmxp
bmVubygpLCBlcnJvckV2ZW50LmNvbG5vKCksIGVycm9yRXZlbnQuZmlsZW5hbWUoKSwgbnVsbHB0
ciwgbnVsbHB0cik7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaAppbmRleCAyM2MzMWEwMDg0MDgxYWQ5YTBlZTJjYjA4MmVmMTE4NWZhZTg0
OTU0Li41NzFjZjY3YWE1N2YzM2VjMDVkODBhYzYzY2M2NWY5NzYxMWQzOTI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJD
bGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KQEAgLTY3
LDkgKzY4LDEzIEBAIHB1YmxpYzoKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCisgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUmVm
PEV2ZW50PiYmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXb3JrZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBPcHRpb25zJik7CiAKKyAgICB2
b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBmaW5hbDsKKwogICAgIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV29ya2VyRXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKICAgICB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNo
YW5nZShib29sIGlzT25saW5lKTsKQEAgLTc4LDYgKzgzLDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKICAgICB2b2lkIHN0b3Ao
KSBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmlu
YWw7CiAKQEAgLTkxLDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBNb25vdG9uaWNUaW1lIG1fd29y
a2VyQ3JlYXRpb25UaW1lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fcnVudGlt
ZUZsYWdzOworICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKaW5kZXggNWUzZTA1NGJmNTJlMmMxMGMxMWRlZmY2OWFiNzZlOTc3MWVj
YjQ1YS4uNTlmNzk2MDYyMGM4ODc1NzQ0MmQ1OTQ4YmVjYmNkMDAxZjIwZmE1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTEwNCw3
ICsxMDQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRvV29ya2Vy
T2JqZWN0KE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGF1dG8gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cyhjb250ZXh0
LCBXVEZNb3ZlKG1lc3NhZ2UudHJhbnNmZXJyZWRQb3J0cykpOwotICAgICAgICB3b3JrZXJPYmpl
Y3QtPmRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIG1l
c3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgIHdvcmtlck9iamVjdC0+
ZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdl
Lm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0pOwogfQogCkBAIC0xNTQsMTggKzE1
NCwxNCBAQCBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbgogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkKIHsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBl
cnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVSTCA9IHNv
dXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+cG9zdFRhc2soW3RoaXMsIGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5pc29sYXRlZENv
cHkoKSwgc291cmNlVVJMID0gc291cmNlVVJMLmlzb2xhdGVkQ29weSgpLCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXJdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBXb3JrZXIq
IHdvcmtlck9iamVjdCA9IHRoaXMtPndvcmtlck9iamVjdCgpOwogICAgICAgICBpZiAoIXdvcmtl
ck9iamVjdCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBXZSBkb24ndCBib3Ro
ZXIgY2hlY2tpbmcgdGhlIGFza2VkVG9UZXJtaW5hdGUoKSBmbGFnIGhlcmUsIGJlY2F1c2UgZXhj
ZXB0aW9ucyBzaG91bGQgKmFsd2F5cyogYmUgcmVwb3J0ZWQgZXZlbiBpZiB0aGUgdGhyZWFkIGlz
IHRlcm1pbmF0ZWQuCiAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBkaWZmZXJlbnQg
dGhhbiB0aGUgYmVoYXZpb3IgaW4gTWVzc2FnZVdvcmtlclRhc2ssIGJlY2F1c2UgdGVybWluYXRl
ZCB3b3JrZXJzIG5vIGxvbmdlciBkZWxpdmVyIG1lc3NhZ2VzIChzZWN0aW9uIDQuNiBvZiB0aGUg
V2ViV29ya2VyIHNwZWMpLCBidXQgdGhleSBkbyByZXBvcnQgZXhjZXB0aW9ucy4KLQotICAgICAg
ICBhdXRvIGV2ZW50ID0gRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSk7Ci0gICAgICAgIHdvcmtlck9iamVjdC0+
ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgIGlmICghZXZlbnQtPmRlZmF1bHRQcmV2ZW50
ZWQoKSkKLSAgICAgICAgICAgIGNvbnRleHQucmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwg
bGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VVUkwsIG51bGxwdHIsIG51bGxwdHIpOwor
ICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChFcnJvckV2ZW50OjpjcmVhdGUoZXJy
b3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgeyB9KSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjYTk0ODJhMTUyOWM2MDNkOTViZDUzOWUzNGQ0ODEwMjRhZWJm
ZWI0Li4xY2UwMzRlYTQyZmU1MDk5ZGI4OGY3OGQxMGY5MTkzY2M2OWNjYWFkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTktMDktMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBQYWdlcyB3aXRoIFdlYiBXb3JrZXJzIGNhbm5vdCBlbnRlciB0aGUgYmFjayAv
IGZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3NjQwNzM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgbGF5b3V0IHRl
c3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2Ut
Y2FjaGUuaHRtbDogQWRkZWQuCisKIDIwMTktMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBJREJUcmFuc2FjdGlvbiAvIElEQk9iamVjdFN0b3JlIHNob3Vs
ZCBub3QgcHJldmVudCBhIHBhZ2UgZnJvbSBlbnRlcmluZyB0aGUgYmFjayAvIGZvcndhcmQgY2Fj
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNo
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2Fj
aGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkNDMxNTQ5Yzg2YjI1YmZiMWI4MTU5NTk5N2Y2
YzRjNWIzMWVhNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
d29ya2VyLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRo
YXQgcGFnZXMgd2l0aCB3b3JrZXJzIGNhbiBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworcGFnZXNob3cgLSBub3QgZnJvbSBwYWdlIGNhY2hl
CitQQVNTIFJlY2VpdmVkIG1lc3NhZ2UgYmVmb3JlIHJlc3RvcmluZyBmcm9tIHBhZ2UgY2FjaGUu
CitwYWdlaGlkZSAtIGVudGVyaW5nIHBhZ2UgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBwYWdlIGNh
Y2hlCitQQVNTIFBhZ2UgZW50ZXJlZCBwYWdlIGNhY2hlCitQQVNTIFJlY2VpdmVkIG1lc3NhZ2Ug
YWZ0ZXIgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItcGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1NDJjMzY5NmQzZDMwZDljMzVl
MDkwNDdkOTZlMTMzY2MyY2VkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBwYWdlcyB3aXRoIHdv
cmtlcnMgY2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworbGV0IHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICBkZWJ1ZygicGFnZXNo
b3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIHBhZ2UgY2Fj
aGUiKTsKKyAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgdGVzdFBhc3NlZCgiUGFnZSBl
bnRlcmVkIHBhZ2UgY2FjaGUiKTsKKyAgICAgIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IHRydWU7
CisgIH0KK30pOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlv
bihldmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8g
IiIgOiAibm90ICIpICsgImVudGVyaW5nIHBhZ2UgY2FjaGUiKTsKKyAgICBpZiAoIWV2ZW50LnBl
cnNpc3RlZCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGZhaWxlZCB0byBlbnRlciBwYWdl
IGNhY2hlIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30pOworCitsZXQgZmly
c3RNZXNzYWdlID0gdHJ1ZTsKK29ubG9hZCA9ICgpID0+IHsKKyAgICB3b3JrZXIgPSBuZXcgV29y
a2VyKCdyZXNvdXJjZXMvd29ya2VyLWV2ZW50LWxpc3RlbmVyLmpzJyk7CisgICAgc2V0SW50ZXJ2
YWwoKCkgPT4geworICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoIiIpOworICAgIH0sIDEpOwor
CisgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgICBpZiAoZmly
c3RNZXNzYWdlKSB7CisgICAgICAgICAgICBmaXJzdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgYmVmb3JlIHJlc3RvcmluZyBmcm9tIHBh
Z2UgY2FjaGUuIik7CisgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiLi4vaGlzdG9yeS9y
ZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSkgeworICAgICAgICAg
ICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gZmFsc2U7CisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJSZWNlaXZlZCBtZXNzYWdlIGFmdGVyIHJlc3RvcmluZyBmcm9tIHBhZ2UgY2FjaGUuIik7Cisg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH07Cit9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379767</attachid>
            <date>2019-09-27 14:32:20 -0700</date>
            <delta_ts>2019-09-30 14:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202296-20190927143219.patch</filename>
            <type>text/plain</type>
            <size>29411</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1NTJiYjBkNjBmZDNj
NjMxOTQyN2EyOTI2ZjVmOGMyYzEyMWMwNS4uMTI5ZTRkYWQ0ZTU2NDU0YmRlOWU5NzZiMTM3ZjU4
N2FiMGQ1MzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE5LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0aCBXZWIgV29y
a2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IHBhZ2VzIHRoYXQgdXNlIFdlYiBXb3JrZXJzIHRvIGVudGVyIHRo
ZSBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKyAgICAgICAgVGhpcyBpbnZvbHZlcyBhZGRpbmcgYW4g
RXZlbnRRdWV1ZSBmb3IgYWxsIGV2ZW50IGZpcmluZyBvbiBXb2tlcgorICAgICAgICBvYmplY3Rz
IGFuZCBzdXNwZW5kaW5nIHRoaXMgRXZlbnRRdWV1ZSB3aGlsZSBpbiB0aGUgcGFnZSBjYWNoZS4K
KworICAgICAgICBUaGlzIHdhcyBwcmV2ZW50aW5nIHNvbWUgb2YgdGhlIHBhZ2VzIG9uIHdlYXRo
ZXIuY29tIHRvIGVudGVyIHRoZQorICAgICAgICBiYWNrIC8gZm9yd2FyZCBjYWNoZS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAgKiBN
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uaDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29u
dGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAg
ICAgKiBhbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaDoKKworICAgICAgICAqIGRvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUYXNrUXVldWVDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tRdWV1ZUNvbnN0cnVjdG9y
PFRpbWVyPjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVl
QmFzZTxUPjo6R2VuZXJpY0V2ZW50UXVldWVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVy
aWNFdmVudFF1ZXVlQmFzZTxUPjo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6ZGlzcGF0Y2hPbmVFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VD46OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6Y2FuY2VsQWxsRXZlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6aGFzUGVuZGluZ0V2ZW50cyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VD46Omhhc1BlbmRpbmdF
dmVudHNPZlR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWVC
YXNlPFQ+OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFz
ZTxUPjo6cmVzdW1lKToKKyAgICAgICAgKiBkb20vR2VuZXJpY0V2ZW50UXVldWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlQmFzZTo6aXNTdXNwZW5kZWQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpNYWluVGhyZWFk
R2VuZXJpY0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6
OkdlbmVyaWNFdmVudFF1ZXVlKToKKyAgICAgICAgUmVuYW1lIEdlbmVyaWNFdmVudFF1ZXVlIHRv
IE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZSBzaW5jZSBpdHMgaW1wbGVtZW50YXRpb24gcmVs
aWVzCisgICAgICAgIG9uIGEgZ2xvYmFsIHNoYXJlZCBUaW1lciB0byBmaXJlIGV2ZW50cy4gSW50
cm9kdWNlIGEgbmV3IEdlbmVyaWNFdmVudFF1ZXVlIHdoaWNoIGNhbgorICAgICAgICBhY3R1YWxs
eSBiZSB1c2VkIGZyb20gYW55IHRocmVhZC4gVGhpcyBpcyB1c2VmdWwgZm9yIE1lc3NhZ2VQb3J0
LCB3aGljaCBpcyB1c2VkIGJvdGgKKyAgICAgICAgb24gdGhlIG1haW4gdGhyZWFkIGFuZCBvbiB3
b3JrZXIgdGhyZWFkcy4KKworICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6TWVzc2FnZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVzc2FnZVBvcnQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpzdXNw
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpyZXN1bWUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzc2FnZVBvcnQ6OmRpc3BhdGNoTWVzc2FnZXMpOgorICAgICAgICAqIGRvbS9N
ZXNzYWdlUG9ydC5oOgorICAgICAgICBVc2UgYW4gR2VuZXJpY0V2ZW50UXVldWUgaW4gTWVzc2Fn
ZVBvcnQgZm9yIGNvbnNpc3RlbmN5IHdpdGggV29ya2VyLgorICAgICAgICBNZXNzYWdlUG9ydCBp
cyBhbiBBY3RpdmVET01vYmplY3Qgd2hpY2ggcmV0dXJucyB0cnVlIGluIGNhblN1c3BlbmQoKSwK
KyAgICAgICAgd2UgdGhlcmVmb3JlIG5lZWQgdG8gbWFrZSBzdXJlIGl0IHN1c3BlbmRzIGV2ZW50
IGZpcmluZyB3aGlsZQorICAgICAgICBzdXNwZW5kZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OnRlcm1pbmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXI6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
cjo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6ZGlzcGF0Y2hFdmVu
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1By
b3h5Ojpwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QpOgorCiAyMDE5LTA5
LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSURCVHJhbnNh
Y3Rpb24gLyBJREJPYmplY3RTdG9yZSBzaG91bGQgbm90IHByZXZlbnQgYSBwYWdlIGZyb20gZW50
ZXJpbmcgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAppbmRleCBiZThjMGRk
NmJkMzhjNmExMWJjZDliYzVjYTk1ZmYxYmMzZTQ0ZGM4Li41YTYyZWFjMmQ3ZmU2MzAzNWQwZmNl
Y2NiMGE2NWMzYmJhNmNlNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBw
cml2YXRlOgogICAgIE1lZGlhS2V5U2Vzc2lvblR5cGUgbV9zZXNzaW9uVHlwZTsKICAgICBSZWY8
Q0RNPiBtX2ltcGxlbWVudGF0aW9uOwogICAgIFJlZjxDRE1JbnN0YW5jZVNlc3Npb24+IG1faW5z
dGFuY2VTZXNzaW9uOwotICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKKyAgICBN
YWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1ZXVlOwogICAgIEdlbmVyaWNUYXNr
UXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4g
bV9yZWNvcmRPZktleVVzYWdlOwogICAgIGRvdWJsZSBtX2ZpcnN0RGVjcnlwdFRpbWUgeyAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2Fj
eS9XZWJLaXRNZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IDliNjMyMzVhNTY4
M2U2M2M3ZTVhMDJhMTExZThiYWIzZGYzMmM1ZWYuLmRkYThmZWYzNjEzZDc2YzQwZDI0MjE3YzRl
NWZiMDFlMzcwYzM1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5U2Vzc2lvbi5o
CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwogICAg
IFN0cmluZyBtX3Nlc3Npb25JZDsKICAgICBSZWZQdHI8V2ViS2l0TWVkaWFLZXlFcnJvcj4gbV9l
cnJvcjsKLSAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBNYWlu
VGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IG1fc2Vzc2lvbjsKIAogICAgIHN0cnVjdCBQZW5kaW5n
S2V5UmVxdWVzdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmgKaW5kZXggZmRjNjQ3YjdhY2JmNzMyYzUwY2JlZTNhYzFjMDIzZjgxZTVkMDlj
MS4uMmZlYjAwYmZjNWZkOTA2MTAwZDIwNTNiY2VjNDEyMzJiYTg4ZGQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtMTY4LDcg
KzE2OCw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIG1fZHVyYXRpb247CiAgICAgTWVkaWFU
aW1lIG1fcGVuZGluZ1NlZWtUaW1lOwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgUmVh
ZHlTdGF0ZTo6Q2xvc2VkIH07Ci0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVl
dWU7CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2Vy
OwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IGE0
NTAyYjViNjc1YzZmMDA3MjRmOGE2OTA3NjlkNjk2MDZlNGNmM2YuLjA4YzQ2MWRiM2Q5OWNiNWIz
ZGVhNzdmMWE4NGU0NWVhZjBlZjhhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291
cmNlKiBtX3NvdXJjZTsKLSAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsK
KyAgICBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAgICAg
QXBwZW5kTW9kZSBtX21vZGUgeyBBcHBlbmRNb2RlOjpTZWdtZW50cyB9OwogCiAgICAgVmVjdG9y
PHVuc2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVuZERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGY4M2Mx
ODQzMjIxYWNiMjMxZjU0MjZhN2EzMmViMGIyMjkxNGEzNmYuLjI2ZDBhZWFjN2E1M2Q0MmQwYmU4
MzE1MmRhMjQxNGUxZTIxMGMyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogCi0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2
ZW50UXVldWU7CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1
ZXVlOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+PiBtX2xpc3Q7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4
IGQ0Y2RiNzY1OGMwZjM1YjVmYzlhMjJjZTg5OGJjYjJiOTllZTRkZDguLjlmMjMwOWNjZjM5MmJl
NzhjMmFjZWZlMTM5ZDY4ZDI5NjRmMzFhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBBdWRpb0Nv
bnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgLCBtX2xvZ0lkZW50
aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiAgICAgLCBtX21lZGlhU2Vzc2lv
bihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSkKLSAgICAsIG1fZXZlbnRRdWV1
ZShtYWtlVW5pcXVlPEdlbmVyaWNFdmVudFF1ZXVlPigqdGhpcykpCisgICAgLCBtX2V2ZW50UXVl
dWUobWFrZVVuaXF1ZTxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+KCp0aGlzKSkKIHsKICAg
ICAvLyBBY2NvcmRpbmcgdG8gc3BlYyBBdWRpb0NvbnRleHQgbXVzdCBkaWUgb25seSBhZnRlciBw
YWdlIG5hdmlnYXRlLgogICAgIC8vIExldHMgbWFyayBpdCBhcyBBY3RpdmVET01PYmplY3Qgd2l0
aCBwZW5kaW5nIGFjdGl2aXR5IGFuZCB1bm1hcmsgaXQgaW4gY2xlYXIgbWV0aG9kLgpAQCAtMTY2
LDcgKzE2Niw3IEBAIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVu
dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90CiAjZW5kaWYKICAgICAsIG1faXNP
ZmZsaW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX2V2ZW50UXVldWUobWFrZVVuaXF1ZTxHZW5l
cmljRXZlbnRRdWV1ZT4oKnRoaXMpKQorICAgICwgbV9ldmVudFF1ZXVlKG1ha2VVbmlxdWU8TWFp
blRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPigqdGhpcykpCiB7CiAgICAgY29uc3RydWN0Q29tbW9u
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5o
CmluZGV4IDlkNzdjOTcwNzI0M2Y5MGMzYTlmNDM2YWZkNjRiZDY5OWFhMWM2MzguLmQ5OTEyOTQ5
YTM5NGFiODEzNGUxOTViMWM5ZjI5Mzc5NDMwNzkzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtNjQsOCArNjQsOCBAQCBjbGFzcyBE
ZWxheU5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIER5bmFtaWNzQ29tcHJlc3Nvck5vZGU7
CiBjbGFzcyBHYWluTm9kZTsKLWNsYXNzIEdlbmVyaWNFdmVudFF1ZXVlOwogY2xhc3MgSFRNTE1l
ZGlhRWxlbWVudDsKK2NsYXNzIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTsKIGNsYXNzIE1l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVk
aWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTsKQEAgLTQxNyw3ICs0MTcsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxWZWN0b3I8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+Pj4gbV9zdGF0ZVJl
YWN0aW9uczsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4gbV9t
ZWRpYVNlc3Npb247Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdlbmVyaWNFdmVudFF1ZXVlPiBtX2V2
ZW50UXVldWU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1
ZT4gbV9ldmVudFF1ZXVlOwogCiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBtX3JlbmRlclRhcmdl
dDsKICAgICBSZWZQdHI8QXVkaW9EZXN0aW5hdGlvbk5vZGU+IG1fZGVzdGluYXRpb25Ob2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaAppbmRl
eCBjNmE3NDBhNjU4MmU0NTZiZGJhZDhiM2E1MmM5N2NkNTc2MDE0MTcwLi40MDdlOTAwMzMxOWQy
NWM5Zjc3Y2ZiY2I4M2VmZGNjMmNlM2U5Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV93YXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBBbmltYXRpb25FZmZlY3RQaGFz
ZSBtX3ByZXZpb3VzUGhhc2UgeyBBbmltYXRpb25FZmZlY3RQaGFzZTo6SWRsZSB9OwogCi0gICAg
R2VuZXJpY0V2ZW50UXVldWUgbV9ldmVudFF1ZXVlOworICAgIE1haW5UaHJlYWRHZW5lcmljRXZl
bnRRdWV1ZSBtX2V2ZW50UXVldWU7CiAKICAgICBFbGVtZW50KiBtX293bmluZ0VsZW1lbnQ7CiAg
ICAgUmVmPEFuaW1hdGlvbj4gbV9iYWNraW5nQW5pbWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHAKaW5kZXggN2EwODQ4MmU3N2NjNDAzZDJmMDllZTQ0YjNhY2Rl
NzAzNzIzN2U1Zi4uZTc4YmU0ODFlOWYxZDIzNjg4ZWE5ZGRlNmM2YWJkZjI3M2IxMTcwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwCkBAIC0zNiwxNSArMzYsMjYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HZW5lcmljRXZlbnRRdWV1ZTo6R2VuZXJpY0V2
ZW50UXVldWUoRXZlbnRUYXJnZXQmIG93bmVyKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IFRhc2tRdWV1ZUNvbnN0cnVjdG9yIHsKKyAgICBzdGF0aWMgR2VuZXJpY1Rhc2tRdWV1ZTxUPiBj
b25zdHJ1Y3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgeyByZXR1cm4gR2VuZXJp
Y1Rhc2tRdWV1ZTxUPihjb250ZXh0KTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgVGFza1F1
ZXVlQ29uc3RydWN0b3I8VGltZXI+IHsKKyAgICBzdGF0aWMgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1l
cj4gY29uc3RydWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IHJldHVybiBHZW5lcmljVGFz
a1F1ZXVlPFRpbWVyPigpOyB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorR2VuZXJpY0V2
ZW50UXVldWVCYXNlPFQ+OjpHZW5lcmljRXZlbnRRdWV1ZUJhc2UoRXZlbnRUYXJnZXQmIG93bmVy
KQogICAgIDogbV9vd25lcihvd25lcikKLSAgICAsIG1faXNDbG9zZWQoZmFsc2UpCisgICAgLCBt
X3Rhc2tRdWV1ZShUYXNrUXVldWVDb25zdHJ1Y3RvcjxUPjo6Y29uc3RydWN0KG93bmVyLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkpCiB7CiB9CiAKLUdlbmVyaWNFdmVudFF1ZXVlOjp+R2VuZXJp
Y0V2ZW50UXVldWUoKSA9IGRlZmF1bHQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorR2VuZXJpY0V2
ZW50UXVldWVCYXNlPFQ+Ojp+R2VuZXJpY0V2ZW50UXVldWVCYXNlKCkgPSBkZWZhdWx0OwogCi12
b2lkIEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50
KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+Ojpl
bnF1ZXVlRXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50KQogewogICAgIGlmIChtX2lzQ2xvc2Vk
KQogICAgICAgICByZXR1cm47CkBAIC01NywxMCArNjgsMTEgQEAgdm9pZCBHZW5lcmljRXZlbnRR
dWV1ZTo6ZW5xdWV1ZUV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCkKICAgICBpZiAobV9pc1N1
c3BlbmRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2so
c3RkOjpiaW5kKCZHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOwor
ICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmR2VuZXJpY0V2ZW50UXVldWVC
YXNlOjpkaXNwYXRjaE9uZUV2ZW50LCB0aGlzKSk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVl
dWU6OmRpc3BhdGNoT25lRXZlbnQoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJp
Y0V2ZW50UXVldWVCYXNlPFQ+OjpkaXNwYXRjaE9uZUV2ZW50KCkKIHsKICAgICBBU1NFUlQoIW1f
cGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpOwogCkBAIC03Myw3ICs4NSw4IEBAIHZvaWQgR2VuZXJp
Y0V2ZW50UXVldWU6OmRpc3BhdGNoT25lRXZlbnQoKQogICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50
KCpldmVudCk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OmNsb3NlKCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+Cit2b2lkIEdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6Y2xvc2UoKQogewog
ICAgIG1faXNDbG9zZWQgPSB0cnVlOwogCkBAIC04MSwxOCArOTQsMjEgQEAgdm9pZCBHZW5lcmlj
RXZlbnRRdWV1ZTo6Y2xvc2UoKQogICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOwogfQogCi12
b2lkIEdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxFdmVudHMoKQordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjpjYW5jZWxBbGxFdmVudHMoKQog
ewogICAgIG1fdGFza1F1ZXVlLmNhbmNlbEFsbFRhc2tzKCk7CiAgICAgbV9wZW5kaW5nRXZlbnRz
LmNsZWFyKCk7CiB9CiAKLWJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdFdmVudHMo
KSBjb25zdAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2Jvb2wgR2VuZXJpY0V2ZW50UXVldWVCYXNl
PFQ+OjpoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ0V2
ZW50cy5pc0VtcHR5KCk7CiB9CiAKLWJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRpbmdF
dmVudHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Citib29sIEdlbmVyaWNFdmVudFF1ZXVlQmFzZTxUPjo6aGFzUGVuZGluZ0V2ZW50c09m
VHlwZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlKSBjb25zdAogewogICAgIGZvciAoYXV0byYgZXZl
bnQgOiBtX3BlbmRpbmdFdmVudHMpIHsKICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gdHlw
ZSkKQEAgLTEwMiwxNCArMTE4LDE2IEBAIGJvb2wgR2VuZXJpY0V2ZW50UXVldWU6Omhhc1BlbmRp
bmdFdmVudHNPZlR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnN1c3BlbmQoKQordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFQ+OjpzdXNwZW5kKCkKIHsK
ICAgICBBU1NFUlQoIW1faXNTdXNwZW5kZWQpOwogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwog
ICAgIG1fdGFza1F1ZXVlLmNhbmNlbEFsbFRhc2tzKCk7CiB9CiAKLXZvaWQgR2VuZXJpY0V2ZW50
UXVldWU6OnJlc3VtZSgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBHZW5lcmljRXZlbnRR
dWV1ZUJhc2U8VD46OnJlc3VtZSgpCiB7CiAgICAgaWYgKCFtX2lzU3VzcGVuZGVkKQogICAgICAg
ICByZXR1cm47CkBAIC0xMTcsNyArMTM1LDEwIEBAIHZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnJl
c3VtZSgpCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV90YXNrUXVl
dWUuZW5xdWV1ZVRhc2soc3RkOjpiaW5kKCZHZW5lcmljRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hPbmVF
dmVudCwgdGhpcykpOworICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQo
JkdlbmVyaWNFdmVudFF1ZXVlQmFzZTo6ZGlzcGF0Y2hPbmVFdmVudCwgdGhpcykpOwogfQogCit0
ZW1wbGF0ZSBjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8VGltZXI+OwordGVtcGxhdGUgY2xh
c3MgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+OworCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCmluZGV4IGI3YjY1OWYzMmUwYWE1YjZj
ODkxN2I0MjcxM2I1YzUzZGFlMzZiOGUuLjRjNTY0MjNhOWUxZTQ3YTkzNmMwOTRlYzRmZjU0N2Iy
M2RjMTEzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCkBAIC0zNSwx
MiArMzUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVu
dFRhcmdldDsKIGNsYXNzIFRpbWVyOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAot
Y2xhc3MgR2VuZXJpY0V2ZW50UXVldWUgewordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEdl
bmVyaWNFdmVudFF1ZXVlQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgR2VuZXJpY0V2ZW50UXVldWUoRXZlbnRUYXJnZXQmKTsKLSAgICB+
R2VuZXJpY0V2ZW50UXVldWUoKTsKKyAgICBleHBsaWNpdCBHZW5lcmljRXZlbnRRdWV1ZUJhc2Uo
RXZlbnRUYXJnZXQmKTsKKyAgICB+R2VuZXJpY0V2ZW50UXVldWVCYXNlKCk7CiAKICAgICB2b2lk
IGVucXVldWVFdmVudChSZWZQdHI8RXZlbnQ+JiYpOwogICAgIHZvaWQgY2xvc2UoKTsKQEAgLTUy
LDE0ICs1NCwzNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1
bWUoKTsKIAorICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3VzcGVu
ZGVkOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaE9uZUV2ZW50KCk7CiAKICAgICBF
dmVudFRhcmdldCYgbV9vd25lcjsKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Rhc2tR
dWV1ZTsKKyAgICBHZW5lcmljVGFza1F1ZXVlPFQ+IG1fdGFza1F1ZXVlOwogICAgIERlcXVlPFJl
ZlB0cjxFdmVudD4+IG1fcGVuZGluZ0V2ZW50czsKLSAgICBib29sIG1faXNDbG9zZWQ7CisgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxz
ZSB9OwogfTsKIAorLy8gQWxsIGluc3RhbmNlcyBvZiBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWUgdXNlIGEgc2hhcmVkIFRpbWVyIGZvciBkaXNwYXRjaGluZyBldmVudHMuCitjbGFzcyBNYWlu
VGhyZWFkR2VuZXJpY0V2ZW50UXVldWUgOiBwdWJsaWMgR2VuZXJpY0V2ZW50UXVldWVCYXNlPFRp
bWVyPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
KEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldCkKKyAgICAgICAgOiBHZW5lcmljRXZlbnRRdWV1ZUJh
c2U8VGltZXI+KGV2ZW50VGFyZ2V0KQorICAgIHsKKyAgICB9Cit9OworCitjbGFzcyBHZW5lcmlj
RXZlbnRRdWV1ZSA6IHB1YmxpYyBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dD4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4
cGxpY2l0IEdlbmVyaWNFdmVudFF1ZXVlKEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldCkKKyAgICAg
ICAgOiBHZW5lcmljRXZlbnRRdWV1ZUJhc2U8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4oZXZlbnRU
YXJnZXQpCisgICAgeworICAgIH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IGQ2N2NlMjc4ZmRhNGZiMzRmMzNmMTQ2ZmMxODcy
NDYyZWUxNTY5MzAuLjg0MmVlMjk0M2RmY2Q2NzBhYjgwOTI2MGRjMTE1MmEwNDU2MTJiYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBNZXNzYWdlUG9y
dDo6TWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgY29uc3QgTQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250
ZXh0KQogICAgICwgbV9pZGVudGlmaWVyKGxvY2FsKQogICAgICwgbV9yZW1vdGVJZGVudGlmaWVy
KHJlbW90ZSkKKyAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKIHsKICAgICBMT0coTWVzc2FnZVBv
cnRzLCAiQ3JlYXRlZCBNZXNzYWdlUG9ydCAlcyAoJXApIGluIHByb2Nlc3MgJSIgUFJJdTY0LCBt
X2lkZW50aWZpZXIubG9nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgUHJvY2Vzczo6aWRl
bnRpZmllcigpLnRvVUludDY0KCkpOwogCkBAIC0yMjcsNiArMjI4LDE3IEBAIHZvaWQgTWVzc2Fn
ZVBvcnQ6OmNsb3NlKCkKIAogICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpmcm9tQ29u
dGV4dCgqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS5tZXNzYWdlUG9ydENsb3NlZChtX2lkZW50
aWZpZXIpOwogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CisgICAgbV9ldmVudFF1ZXVl
LmNsb3NlKCk7Cit9CisKK3ZvaWQgTWVzc2FnZVBvcnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbikKK3sKKyAgICBtX2V2ZW50UXVldWUuc3VzcGVuZCgpOworfQorCit2b2lkIE1lc3NhZ2VQ
b3J0OjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1ZS5yZXN1bWUoKTsKIH0KIAogdm9pZCBN
ZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCkBAIC0yNjgsNyArMjgwLDcgQEAgdm9pZCBN
ZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgICAgICAgICBpZiAoY29udGV4dElz
V29ya2VyICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KS5pc0Nsb3NpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRyYW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAg
ICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIG1l
c3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgICAgICAgICBtX2V2ZW50UXVl
dWUuZW5xdWV1ZUV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNz
YWdlLm1lc3NhZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZVBvcnQuaAppbmRleCBkYmQ1NTNiZDA1ZmRhOGY2NzMzMmYxZjM1NDAxYTM2
OWMxZTkzMGYwLi5hNGRjMjJhNzZkNmNiOWNmZWI0ZjBmYmVhMzc4N2ZmOWFkNzliYmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZVBvcnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCkBAIC04NCw2ICs4NSw4IEBAIHB1Ymxp
YzoKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNp
b24pIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBjb250ZXh0RGVz
dHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWwgeyBjbG9zZSgpOyB9CiAgICAg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKQEAgLTEyNiw2ICsxMjksNyBA
QCBwcml2YXRlOgogICAgIE1lc3NhZ2VQb3J0SWRlbnRpZmllciBtX3JlbW90ZUlkZW50aWZpZXI7
CiAKICAgICBtdXRhYmxlIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3JlZkNvdW50IHsgMSB9Owor
ICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fZXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZGU2NjJj
MWQxMzI5YWVkMGE0MTI4NDBiY2E3ZDM0MTk3NzJhMGVlYy4uNjFkYmFkNWIyODAxZDQ5NTlhNzYy
Nzc4ZThhNjcxMTcyYjU0Yjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTk3Miw3ICs5NzIsNyBAQCBwcml2YXRlOgogICAgIEdlbmVyaWNUYXNrUXVldWU8VGlt
ZXI+IG1fZnVsbHNjcmVlblRhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBt
X3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlOwogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBt
X3BsYXllZFRpbWVSYW5nZXM7Ci0gICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVl
dWU7CisgICAgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVmZXJyYWJsZVRhc2s8VGltZXI+IG1fdm9s
dW1lUmV2ZXJ0VGFza1F1ZXVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJh
Y2tMaXN0QmFzZS5oCmluZGV4IDNjZGU4OGRjYzRhZmQ1NDA3YjA4YzY4YWQ5YzJmMTkzNjg1OGEy
MzAuLjBiYmQ4NTgyZjU5ZjExYTM2OTIzZmM4NTdmNzZjMzI4OGUyZmY5ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCkBAIC04Niw3ICs4Niw3IEBAIHByaXZh
dGU6CiAKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtX2VsZW1lbnQ7CiAKLSAgICBHZW5lcmljRXZl
bnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWUgbV9hc3luY0V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMzM2NmZkYmUyMTlmODEzYjBiOTIyMTAzNjQ4YTg1
ZmNlMDA5MzVmYS4uMjIxMDFhYzU3MzUwZDVkNWFlNzc3M2IwYjU2ZmNhODY5ZmM3MDUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldv
cmtlci5oIgogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAi
RXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNjcsNiArNjgsNyBA
QCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6IiAr
IEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAgICAg
LCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMpKQog
ICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQorICAgICwgbV9ldmVudFF1ZXVlKCp0
aGlzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExp
c3RlbmVyKSB7CkBAIC0xNDQsMTIgKzE0NiwyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXI6
OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIG1lc3NhZwog
dm9pZCBXb3JrZXI6OnRlcm1pbmF0ZSgpCiB7CiAgICAgbV9jb250ZXh0UHJveHkudGVybWluYXRl
V29ya2VyR2xvYmFsU2NvcGUoKTsKKyAgICBtX2V2ZW50UXVldWUuY2FuY2VsQWxsRXZlbnRzKCk7
CiB9CiAKIGJvb2wgV29ya2VyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3QKIHsKLSAgICAvLyBGSVhNRTogSXQgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB0byBzdXNw
ZW5kIGEgd29ya2VyLCBzbyBwYWdlcyB3aXRoIHdvcmtlcnMgY2FuIG5vdCBnbyBpbnRvIHBhZ2Ug
Y2FjaGUuCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdv
cmtlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQoreworICAgIG1fZXZlbnRRdWV1ZS5z
dXNwZW5kKCk7Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQoreworICAgIG1fZXZlbnRRdWV1
ZS5yZXN1bWUoKTsKIH0KIAogY29uc3QgY2hhciogV29ya2VyOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKQEAgLTE2MCwxMSArMTcyLDEyIEBAIGNvbnN0IGNoYXIqIFdvcmtlcjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB2b2lkIFdvcmtlcjo6c3RvcCgpCiB7CiAgICAgdGVybWlu
YXRlKCk7CisgICAgbV9ldmVudFF1ZXVlLmNsb3NlKCk7CiB9CiAKIGJvb2wgV29ya2VyOjpoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5oYXNQ
ZW5kaW5nQWN0aXZpdHkoKSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgp
OworICAgIHJldHVybiBtX2NvbnRleHRQcm94eS5oYXNQZW5kaW5nQWN0aXZpdHkoKSB8fCBBY3Rp
dmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHx8IG1fZXZlbnRRdWV1ZS5oYXNQZW5k
aW5nRXZlbnRzKCk7CiB9CiAKIHZvaWQgV29ya2VyOjpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2Uo
Ym9vbCBpc09uTGluZSkKQEAgLTE5Miw3ICsyMDUsNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5Rmlu
aXNoZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxl
ZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olll
cykpOworICAgICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJy
b3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Olllcykp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDIsNCArMjE1LDIwIEBAIHZvaWQgV29y
a2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3Jp
cHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3Jp
cHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIAordm9pZCBXb3JrZXI6OmVucXVldWVFdmVudChSZWY8
RXZlbnQ+JiYgZXZlbnQpCit7CisgICAgbV9ldmVudFF1ZXVlLmVucXVldWVFdmVudChXVEZNb3Zl
KGV2ZW50KSk7Cit9CisKK3ZvaWQgV29ya2VyOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkK
K3sKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2V2ZW50
UXVldWUuaXNTdXNwZW5kZWQoKSk7CisKKyAgICBBYnN0cmFjdFdvcmtlcjo6ZGlzcGF0Y2hFdmVu
dChldmVudCk7CisgICAgaWYgKGlzPEVycm9yRXZlbnQ+KGV2ZW50KSAmJiAhZXZlbnQuZGVmYXVs
dFByZXZlbnRlZCgpICYmIGV2ZW50LmlzVHJ1c3RlZCgpICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkgeworICAgICAgICBhdXRvJiBlcnJvckV2ZW50ID0gZG93bmNhc3Q8RXJyb3JFdmVudD4o
ZXZlbnQpOworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlcG9ydEV4Y2VwdGlv
bihlcnJvckV2ZW50Lm1lc3NhZ2UoKSwgZXJyb3JFdmVudC5saW5lbm8oKSwgZXJyb3JFdmVudC5j
b2xubygpLCBlcnJvckV2ZW50LmZpbGVuYW1lKCksIG51bGxwdHIsIG51bGxwdHIpOworICAgIH0K
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXgg
MjNjMzFhMDA4NDA4MWFkOWEwZWUyY2IwODJlZjExODVmYWU4NDk1NC4uNTcxY2Y2N2FhNTdmMzNl
YzA1ZDgwYWM2M2NjNjVmOTc2MTFkMzkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CkBAIC02Nyw5ICs2OCwxMyBAQCBwdWJsaWM6
CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7IH0KIAorICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7CisKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1
bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCisgICAgdm9pZCBkaXNwYXRjaEV2ZW50KEV2
ZW50JikgZmluYWw7CisKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdvcmtlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogCiAgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7
CkBAIC03OCw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZp
bmFsOwogCiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOworICAg
IHZvaWQgcmVzdW1lKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogCkBAIC05MSw2ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX3dvcmtlckNyZWF0aW9uVGltZTsKICAg
ICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5IHsgZmFs
c2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFncyBtX3J1bnRpbWVGbGFnczsKKyAgICBHZW5lcmlj
RXZlbnRRdWV1ZSBtX2V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4
IDVlM2UwNTRiZjUyZTJjMTBjMTFkZWZmNjlhYjc2ZTk3NzFlY2I0NWEuLjU5Zjc5NjA2MjBjODg3
NTc0NDJkNTk0OGJlY2JjZDAwMWYyMGZhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmIG0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHBvcnRz
ID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoY29udGV4dCwgV1RGTW92ZShtZXNzYWdlLnRy
YW5zZmVycmVkUG9ydHMpKTsKLSAgICAgICAgd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KE1l
c3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBtZXNzYWdlLm1lc3NhZ2UucmVsZWFz
ZU5vbk51bGwoKSkpOworICAgICAgICB3b3JrZXJPYmplY3QtPmVucXVldWVFdmVudChNZXNzYWdl
RXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgbWVzc2FnZS5tZXNzYWdlLnJlbGVhc2VOb25O
dWxsKCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTU0LDE4ICsxNTQsMTQgQEAgYm9vbCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRF
eGVjdXRpb25Db24KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
aW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbdGhpcywgZXJyb3JNZXNzYWdlID0gZXJyb3JN
ZXNzYWdlLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VVUkwgPSBzb3VyY2VVUkwuaXNvbGF0ZWRDb3B5
KCksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcl0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBl
cnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVVSTCA9IHNv
dXJjZVVSTC5pc29sYXRlZENvcHkoKSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgV29ya2VyKiB3b3JrZXJPYmplY3QgPSB0aGlz
LT53b3JrZXJPYmplY3QoKTsKICAgICAgICAgaWYgKCF3b3JrZXJPYmplY3QpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYm90aGVyIGNoZWNraW5nIHRoZSBhc2tl
ZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNhdXNlIGV4Y2VwdGlvbnMgc2hvdWxkICphbHdh
eXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRocmVhZCBpcyB0ZXJtaW5hdGVkLgogICAgICAg
ICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlmZmVyZW50IHRoYW4gdGhlIGJlaGF2aW9yIGlu
IE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRlcm1pbmF0ZWQgd29ya2VycyBubyBsb25nZXIg
ZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYgb2YgdGhlIFdlYldvcmtlciBzcGVjKSwgYnV0
IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCi0KLSAgICAgICAgYXV0byBldmVudCA9IEVycm9y
RXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyLCB7IH0pOwotICAgICAgICB3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQp
OwotICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCi0gICAgICAgICAgICBj
b250ZXh0LnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlciwgc291cmNlVVJMLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgd29ya2VyT2JqZWN0
LT5lbnF1ZXVlRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Y2E5NDgyYTE1MjljNjAzZDk1YmQ1MzllMzRkNDgxMDI0YWViZmViNC4uZTliNTZiMjU3NTQ1NjFi
YzBkZmExOWVmZTRjZGEzODY4OWFiNDRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5
LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZXMgd2l0
aCBXZWIgV29ya2VycyBjYW5ub3QgZW50ZXIgdGhlIGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyOTYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzY0MDczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAg
ICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKwog
MjAxOS0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIElE
QlRyYW5zYWN0aW9uIC8gSURCT2JqZWN0U3RvcmUgc2hvdWxkIG5vdCBwcmV2ZW50IGEgcGFnZSBm
cm9tIGVudGVyaW5nIHRoZSBiYWNrIC8gZm9yd2FyZCBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ0MzE1NDljODZiMjViZmIxYjgxNTk1OTk3ZjZjNGM1YjMxZWE1NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBwYWdlcyB3aXRoIHdvcmtlcnMg
Y2FuIGdvIGludG8gdGhlIHBhZ2UgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitwYWdlc2hvdyAtIG5vdCBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2Fn
ZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4KK3BhZ2VoaWRlIC0gZW50ZXJpbmcg
cGFnZSBjYWNoZQorcGFnZXNob3cgLSBmcm9tIHBhZ2UgY2FjaGUKK1BBU1MgUGFnZSBlbnRlcmVk
IHBhZ2UgY2FjaGUKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBw
YWdlIGNhY2hlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1j
YWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzU0MmMzNjk2ZDNkMzBkOWMzNWUwOTA0N2Q5NmUxMzNjYzJjZWQ3Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1j
YWNoZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHBhZ2VzIHdpdGggd29ya2VycyBjYW4gZ28gaW50byB0aGUg
cGFnZSBjYWNoZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgcmVzdG9yZWRGcm9t
UGFnZUNhY2hlID0gZmFsc2U7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lz
dGVkID8gIiIgOiAibm90ICIpICsgImZyb20gcGFnZSBjYWNoZSIpOworICBpZiAoZXZlbnQucGVy
c2lzdGVkKSB7CisgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGVudGVyZWQgcGFnZSBjYWNoZSIpOwor
ICAgICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgfQorfSk7CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWco
InBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJp
bmcgcGFnZSBjYWNoZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRl
c3RGYWlsZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVyIHBhZ2UgY2FjaGUiKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfQorfSk7CisKK2xldCBmaXJzdE1lc3NhZ2UgPSB0cnVlOworb25s
b2FkID0gKCkgPT4geworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy93b3JrZXIt
ZXZlbnQtbGlzdGVuZXIuanMnKTsKKyAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CisgICAgICAgIHdv
cmtlci5wb3N0TWVzc2FnZSgiIik7CisgICAgfSwgMSk7CisKKyAgICB3b3JrZXIub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIGlmIChmaXJzdE1lc3NhZ2UpIHsKKyAgICAgICAg
ICAgIGZpcnN0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2
ZWQgbWVzc2FnZSBiZWZvcmUgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIuLi9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLWhl
bHBlci5odG1sIjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cmVzdG9yZWRGcm9tUGFnZUNhY2hlKSB7CisgICAgICAgICAgICByZXN0b3JlZEZyb21QYWdlQ2Fj
aGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgYWZ0
ZXIgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9CisgICAgfTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>