<?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>203186</bug_id>
          
          <creation_ts>2019-10-20 15:15:56 -0700</creation_ts>
          <short_desc>Suspend dedicated worker threads while in the back/forward cache</short_desc>
          <delta_ts>2019-10-21 21:51:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>203107</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>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581782</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-20 15:15:56 -0700</bug_when>
    <thetext>Suspend ActiveDOMObjects in dedicated workers while in the back/forward cache, to avoid wasting CPU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581783</commentid>
    <comment_count>1</comment_count>
      <attachid>381395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-20 15:55:30 -0700</bug_when>
    <thetext>Created attachment 381395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581784</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-20 15:56:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/56447493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581786</commentid>
    <comment_count>3</comment_count>
      <attachid>381395</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-20 18:28:22 -0700</bug_when>
    <thetext>Comment on attachment 381395
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381395&amp;action=review

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:138
&gt; +        m_workerThread-&gt;runLoop().postTask(WTFMove(task));

Is it okay that the worker would continue to run until it gets this message?

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:140
&gt; +        m_queuedEarlyTasks.append(makeUnique&lt;ScriptExecutionContext::Task&gt;(WTFMove(task)));

Is it really necessary to enqueue this task if there is no worker thread??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581787</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-20 18:29:12 -0700</bug_when>
    <thetext>Do we have a mechanism to stop the worker when the cached frame is discarded?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581788</commentid>
    <comment_count>5</comment_count>
      <attachid>381395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-20 18:40:43 -0700</bug_when>
    <thetext>Comment on attachment 381395
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381395&amp;action=review

&gt;&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:138
&gt;&gt; +        m_workerThread-&gt;runLoop().postTask(WTFMove(task));
&gt; 
&gt; Is it okay that the worker would continue to run until it gets this message?

I don’t see why not. It is only an optimization, we are stopping the objects as soon as we can.

&gt;&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:140
&gt;&gt; +        m_queuedEarlyTasks.append(makeUnique&lt;ScriptExecutionContext::Task&gt;(WTFMove(task)));
&gt; 
&gt; Is it really necessary to enqueue this task if there is no worker thread??

I followed the pattern in postMessage. It seems safer. Otherwise, if the page gets suspended while the worker thread is still starting, it may not know about suspension and run as if not suspended. Similarly as we don’t want to miss messages posted to workers , we do not want them to miss requests to suspend / resume.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581958</commentid>
    <comment_count>6</comment_count>
      <attachid>381395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 12:53:04 -0700</bug_when>
    <thetext>Comment on attachment 381395
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381395&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        Suspend ActiveDOMObjects in dedicated workers while in the back/forward cache, to avoid wasting CPU.

We may be able to suspend workers more aggressively by leveraging Thread::suspend() / Thread::resume().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581962</commentid>
    <comment_count>7</comment_count>
      <attachid>381395</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-21 13:00:51 -0700</bug_when>
    <thetext>Comment on attachment 381395
Patch

Ok, perhaps we can do that in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582009</commentid>
    <comment_count>8</comment_count>
      <attachid>381444</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 13:48:48 -0700</bug_when>
    <thetext>Created attachment 381444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582027</commentid>
    <comment_count>9</comment_count>
      <attachid>381444</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 14:10:54 -0700</bug_when>
    <thetext>Comment on attachment 381444
Patch

Geoff has a better idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582052</commentid>
    <comment_count>10</comment_count>
      <attachid>381458</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 14:33:41 -0700</bug_when>
    <thetext>Created attachment 381458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582092</commentid>
    <comment_count>11</comment_count>
      <attachid>381458</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-21 15:49:03 -0700</bug_when>
    <thetext>Comment on attachment 381458
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381458&amp;action=review

&gt; Source/WebCore/workers/Worker.h:102
&gt; +    bool isSuspendedForBackForwardCache { false };

Maybe put this after m_shouldBypassMainWorldContentSecurityPolicy to pack better?

&gt; Source/WebCore/workers/WorkerGlobalScopeProxy.h:57
&gt; +    // Back / Forward cache support.
&gt; +    virtual void suspend() = 0;
&gt; +    virtual void resume() = 0;

Why don&apos;t we just call them suspendForBackForwardCache &amp; resumeForBackForwardCache instead of adding a comment?

&gt; Source/WebCore/workers/WorkerThread.h:141
&gt; +    Lock m_suspensionLock;
&gt; +    Condition m_suspensionCondition;

Use BinarySemaphore instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582197</commentid>
    <comment_count>12</comment_count>
      <attachid>381493</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 18:21:51 -0700</bug_when>
    <thetext>Created attachment 381493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582215</commentid>
    <comment_count>13</comment_count>
      <attachid>381498</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 19:05:58 -0700</bug_when>
    <thetext>Created attachment 381498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582223</commentid>
    <comment_count>14</comment_count>
      <attachid>381498</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-10-21 20:09:46 -0700</bug_when>
    <thetext>Comment on attachment 381498
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=381498&amp;action=review

&gt; Source/WebCore/workers/Worker.h:100
&gt; +    bool isSuspendedForBackForwardCache { false };

m_isSuspendedForBackForwardCache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582226</commentid>
    <comment_count>15</comment_count>
      <attachid>381503</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 20:29:16 -0700</bug_when>
    <thetext>Created attachment 381503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582227</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-21 20:29:34 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #14)
&gt; Comment on attachment 381498 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=381498&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/Worker.h:100
&gt; &gt; +    bool isSuspendedForBackForwardCache { false };
&gt; 
&gt; m_isSuspendedForBackForwardCache

Oops. Thanks for catching it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582246</commentid>
    <comment_count>17</comment_count>
      <attachid>381503</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-21 21:51:39 -0700</bug_when>
    <thetext>Comment on attachment 381503
Patch

Clearing flags on attachment: 381503

Committed r251416: &lt;https://trac.webkit.org/changeset/251416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582247</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-21 21:51:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381395</attachid>
            <date>2019-10-20 15:55:30 -0700</date>
            <delta_ts>2019-10-21 13:48:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203186-20191020155518.patch</filename>
            <type>text/plain</type>
            <size>9665</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFkMjE1MmZhNTcyMjNm
MmJlZmNkNTA0YzVkY2JhMjVhZmRkMTdhNC4uOWUzMjU4NDRmMzg3OTRmYzNkM2Y5NDFjNGIzYzcx
NmM2MDIzNTE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBBY3RpdmVET01P
YmplY3RzIGluIGRlZGljYXRlZCB3b3JrZXJzIHdoaWxlIGluIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzE4
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1c3Bl
bmQgQWN0aXZlRE9NT2JqZWN0cyBpbiBkZWRpY2F0ZWQgd29ya2VycyB3aGlsZSBpbiB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLCB0byBhdm9pZCB3YXN0aW5nIENQVS4KKworICAgICAgICAqIHdvcmtl
cnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6c3VzcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXI6OnJlc3VtZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckdsb2JhbFNjb3BlOjpyZXN1bWUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck1lc3NhZ2luZ1Byb3h5OjpyZXN1bWUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaDoKKwogMjAxOS0xMC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpbGVSZWFkZXIgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRo
ZSBiYWNrL2ZvcndhcmQgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwZjUw
NzhlODgyZWE0NzBmMTU1MTRkODJmOTZhMjE2Njk3MWU4ODNhLi5lZmUwNzFkOWNmZmY0Y2Q3YjIw
MDU4NTQwM2MwN2NmZGNmYTQ2ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0x
NjAsNiArMTYwLDE5IEBAIHZvaWQgV29ya2VyOjpzdG9wKCkKICAgICB0ZXJtaW5hdGUoKTsKIH0K
IAordm9pZCBXb3JrZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit7Cisg
ICAgbV9yZWFzb25Gb3JTdXNwZW5zaW9uID0gcmVhc29uOworICAgIG1fY29udGV4dFByb3h5LnN1
c3BlbmQocmVhc29uKTsKK30KKwordm9pZCBXb3JrZXI6OnJlc3VtZSgpCit7CisgICAgQVNTRVJU
KG1fcmVhc29uRm9yU3VzcGVuc2lvbik7CisgICAgbV9jb250ZXh0UHJveHkucmVzdW1lKCptX3Jl
YXNvbkZvclN1c3BlbnNpb24pOworICAgIG1fcmVhc29uRm9yU3VzcGVuc2lvbiA9IFdURjo6bnVs
bG9wdDsKK30KKwogYm9vbCBXb3JrZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY29udGV4dFByb3h5Lmhhc1BlbmRpbmdBY3Rpdml0eSgpIHx8IEFjdGl2ZURP
TU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwgbV9ldmVudFF1ZXVlLT5oYXNQZW5kaW5n
RXZlbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCA0YzU0MTM5YWY4ZDU0NTYyYzUw
NGIzZjJmZTEzNjE2MDc1Y2Q3N2FkLi5kMzc2MGRhZjJiZTRhM2EzZWFlZjZjNTQ3ZmJjOTE3MDIw
ZWVhNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTg0LDYgKzg0LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKICAgICB2b2lkIHN0b3AoKSBm
aW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CisgICAg
dm9pZCByZXN1bWUoKSBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QgZmluYWw7CiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKGJv
b2wgaXNPbkxpbmUpOwpAQCAtOTYsNiArOTgsNyBAQCBwcml2YXRlOgogICAgIE1vbm90b25pY1Rp
bWUgbV93b3JrZXJDcmVhdGlvblRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSB7IGZhbHNlIH07CiAgICAgSlNDOjpSdW50aW1lRmxhZ3Mg
bV9ydW50aW1lRmxhZ3M7CisgICAgT3B0aW9uYWw8UmVhc29uRm9yU3VzcGVuc2lvbj4gbV9yZWFz
b25Gb3JTdXNwZW5zaW9uOwogICAgIFVuaXF1ZVJlZjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVu
dFF1ZXVlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcAppbmRleCA5NTNmOTBlYTA3ODQ1ZjAzMDAwNWEzNGM3ZGI2MzE3N2Y2YWIyMTZkLi42ZThk
OTExYjRhYmM5YzUyNDIwMTE0NmY0NjAwZjMwMDFlNzQ4OGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNDkyLDYgKzQ5MiwxNiBAQCBXb3Jr
ZXJTV0NsaWVudENvbm5lY3Rpb24mIFdvcmtlckdsb2JhbFNjb3BlOjpzd0NsaWVudENvbm5lY3Rp
b24oKQogfQogI2VuZGlmCiAKK3ZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHMocmVh
c29uKTsKK30KKwordm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6cmVzdW1lKFJlYXNvbkZvclN1c3Bl
bnNpb24gcmVhc29uKQoreworICAgIHJlc3VtZUFjdGl2ZURPTU9iamVjdHMocmVhc29uKTsKK30K
Kwogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlSW1hZ2VCaXRtYXAoSW1hZ2VCaXRtYXA6
OlNvdXJjZSYmIHNvdXJjZSwgSW1hZ2VCaXRtYXBPcHRpb25zJiYgb3B0aW9ucywgSW1hZ2VCaXRt
YXA6OlByb21pc2UmJiBwcm9taXNlKQogewogICAgIEltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNl
KCp0aGlzLCBXVEZNb3ZlKHNvdXJjZSksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocHJvbWlz
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDM5
YjhmYzUxYjA3ZmRhODU2NDQ1ZjY4MTg4M2QwY2I3MGEyNTkxMDUuLmE1OWE0ZmQ0MzY2ODhiNzFl
NGI0ZWQ2MThkNmViYjA1ZTg0YzAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKQEAgLTEzMSw2ICsxMzEsMTAgQEAgcHVibGljOgogCiAgICAgdW5zaWdu
ZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyKCkgeyByZXR1cm4gbV91bmlxdWVJZGVudGlm
aWVyKys7IH0KIAorICAgIC8vIEJhY2sgLyBGb3J3YXJkIGNhY2hlIHN1cHBvcnQuCisgICAgdm9p
ZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOworICAgIHZvaWQgcmVzdW1lKFJlYXNvbkZv
clN1c3BlbnNpb24pOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBXb3JrZXJUaHJlYWQmLCBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5
T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggMDY1N2Q2ZWM3MzQw
ZDQ4YTgyZDYwYzY1NzM4OTFjMzRhNzY2YjRiNC4uNTA0NjU5NDNjZTI0YjIxYTI1MjkxODVmZGRm
MzQzMjdjOTc5MGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZVByb3h5LmgKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgV29ya2VyOwog
CitlbnVtIGNsYXNzIFJlYXNvbkZvclN1c3BlbnNpb247CisKIC8vIEEgcHJveHkgdG8gdGFsayB0
byB0aGUgd29ya2VyIGNvbnRleHQuCiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZVByb3h5IHsKIHB1
YmxpYzoKQEAgLTUyLDYgKzU0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd29ya2Vy
T2JqZWN0RGVzdHJveWVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZXR3b3JrU3Rh
dGVDaGFuZ2UoYm9vbCBpc09ubGluZSkgPSAwOwogCisgICAgLy8gQmFjayAvIEZvcndhcmQgY2Fj
aGUgc3VwcG9ydC4KKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9u
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZShSZWFzb25Gb3JTdXNwZW5zaW9uKSA9IDA7
CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZVByb3h5KCkgPSBk
ZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKaW5kZXggYTc3YmI3ZTU2MDIxMWI4YjZmNzBmZmNhYzk5MGU1ODY2NDVlNGI2Ny4u
NWZiNDY0OGI3YTQ3ZWI4ODM5ZDUzNzA1Zjk1NDNlNDVjMmZmYWYwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTEyOCw2ICsxMjgs
MzAgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlckdsb2Jh
bFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnQKICAgICAgICAgbV9xdWV1ZWRFYXJseVRhc2tz
LmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFdURk1vdmUo
dGFzaykpKTsKIH0KIAordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uIHJlYXNvbikKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
IHRhc2soW3JlYXNvbl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAg
ICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuc3VzcGVuZChyZWFzb24pOwor
ICAgIH0pOworCisgICAgaWYgKG1fd29ya2VyVGhyZWFkKQorICAgICAgICBtX3dvcmtlclRocmVh
ZC0+cnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOworICAgIGVsc2UKKyAgICAgICAg
bV9xdWV1ZWRFYXJseVRhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2s+KFdURk1vdmUodGFzaykpKTsKK30KKwordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6cmVzdW1lKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQoreworICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbcmVhc29uXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSB7CisgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5y
ZXN1bWUocmVhc29uKTsKKyAgICB9KTsKKworICAgIGlmIChtX3dvcmtlclRocmVhZCkKKyAgICAg
ICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihXVEZNb3ZlKHRhc2spKSk7Cit9CisKIHZvaWQgV29y
a2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzayYmIHRhc2spCiB7CiAgICAgLy8gRklYTUU6IEluIGNhc2Ugb2YgbmVzdGVkIHdvcmtl
cnMsIHRoaXMgc2hvdWxkIGdvIGRpcmVjdGx5IHRvIHRoZSByb290IERvY3VtZW50IGNvbnRleHQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXgg
ZWQxN2ZjMzJmYTkzZDg4OTQ2ODk4NTJlMmJiOGY4MDE3YTlmYTI3Yi4uYzIwMTYyNGNmYjNhZmE2
NGM0ZDljODc5YmE5NjQ1MzFhYTZiYjI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTYsNiArNTYsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCB3b3JrZXJPYmpl
Y3REZXN0cm95ZWQoKSBmaW5hbDsKICAgICB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShi
b29sIGlzT25saW5lKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
bikgZmluYWw7CisgICAgdm9pZCByZXN1bWUoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAK
ICAgICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBXb3JrZXJPYmplY3RQcm94eS4KICAgICAvLyAoT25s
eSB1c2UgdGhlc2UgZnVuY3Rpb25zIGluIHRoZSB3b3JrZXIgY29udGV4dCB0aHJlYWQuKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDg4ZDU4OTBjYzQ4MDcxZDRlMTBmY2M3Zjc1Yjc1YmFjMGFkMmNiZTIuLmZiZDAwYjE4YTE3
MzIwMmYxMzAxYTUwMTg3MjVmNjUxN2ZjMzc4ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
OS0xMC0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN1c3Bl
bmQgQWN0aXZlRE9NT2JqZWN0cyBpbiBkZWRpY2F0ZWQgd29ya2VycyB3aGlsZSBpbiB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDMxODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFeHRlbmQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBmYXN0L3dv
cmtlcnMvcmVzb3VyY2VzL3dvcmtlci1zZXRJbnRlcnZhbC5qczogQWRkZWQuCisgICAgICAgIChv
bm1lc3NhZ2UpOgorICAgICAgICAoc2V0SW50ZXJ2YWwpOgorICAgICAgICAqIGZhc3Qvd29ya2Vy
cy93b3JrZXItcGFnZS1jYWNoZS5odG1sOgorCiAyMDE5LTEwLTE5ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZsYWt5IFRlc3Q6IGZhc3QvZXZlbnRzL3Jlc2l6
ZS1zdWJmcmFtZS1pbi1yZW5kZXJpbmctdXBkYXRlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXNldEludGVydmFsLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjFlM2Q5OWU5ZTBmYzgwMTY5NGJiNzQyODFkZDkwNjg2NTYzMWY3YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXNldElu
dGVydmFsLmpzCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIG9ubWVzc2FnZShldnQpCit7Cisg
ICAgcG9zdE1lc3NhZ2UoIlNVQ0NFU1MiKTsKK30KKworbGV0IGkgPSAwOworc2V0SW50ZXJ2YWwo
KCkgPT4geworICAgIHBvc3RNZXNzYWdlKCIiICsgaSk7CisgICAgaSsrOworfSwgMCk7CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBvbm1lc3NhZ2UsIHRydWUpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAxNDE2MzFlZjYy
YzU2Nzc0NGQ5YTg1NzhlNWNlOGRhNGFkMDdjNGRhLi5hNTBiNDRjMDVmYjM4ZTA4NjI3MmM5YjY1
Nzk0YjA1NzhjMGMyYmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29y
a2VyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2Vy
LXBhZ2UtY2FjaGUuaHRtbApAQCAtMjcsMTAgKzI3LDggQEAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKIAogbGV0IGZpcnN0TWVzc2FnZSA9IHRy
dWU7CiBvbmxvYWQgPSAoKSA9PiB7Ci0gICAgd29ya2VyID0gbmV3IFdvcmtlcigncmVzb3VyY2Vz
L3dvcmtlci1ldmVudC1saXN0ZW5lci5qcycpOwotICAgIHNldEludGVydmFsKCgpID0+IHsKLSAg
ICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCIiKTsKLSAgICB9LCAxKTsKKyAgICB3b3JrZXIgPSBu
ZXcgV29ya2VyKCdyZXNvdXJjZXMvd29ya2VyLXNldEludGVydmFsLmpzJyk7CisgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKCIiKTsKIAogICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQp
IHsKICAgICAgICAgaWYgKGZpcnN0TWVzc2FnZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381444</attachid>
            <date>2019-10-21 13:48:48 -0700</date>
            <delta_ts>2019-10-21 14:33:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203186-20191021134847.patch</filename>
            <type>text/plain</type>
            <size>11180</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE1MmMxZGU3MmMzN2Q5
YTE4NTc5ZTRmYTJkYzdlN2IxNjhiYmZkNi4uNzJjMmYxY2JjMmYxMDBiYjU2ZGNmZjhkZmI2NGE5
NWM3OGZmMjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBpbiBkZWRpY2F0
ZWQgd29ya2VyIHRocmVhZHMgd2hpbGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjQ0NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgcGFnZSB3aXRoIGEgKGRlZGljYXRlZCkgV29ya2Vy
IGVudGVycyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBub3cKKyAgICAgICAgcGF1c2UgdGhl
IHdvcmtlciB0aHJlYWQsIGFuZCByZXN1bWUgaXQgb25seSB3aGVuIHRha2luZyB0aGUgcGFnZSBv
dXQgb2YgdGhlCisgICAgICAgIGJhY2svZm9yd2FyZCBjYWNoZS4gVGhpcyBhdm9pZHMgaGF2aW5n
IHRoZSB3b3JrZXIgdXNlIENQVSB3aGlsZSB0aGUgcGFnZSBpcworICAgICAgICBpbiB0aGUgY2Fj
aGUuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXI6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpyZXN1bWUpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3VzcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJUaHJlYWRDcmVhdGVkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpXb3JrZXJU
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwog
MjAxOS0xMC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TIFdLMl0gU3VwcG9ydCBoaWRpbmcgaWZyYW1lIHNjcm9sbGJhcnMgdmlhIDo6LXdl
YmtpdC1zY3JvbGxiYXIgc3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwZjUw
NzhlODgyZWE0NzBmMTU1MTRkODJmOTZhMjE2Njk3MWU4ODNhLi5iNmNiMmJjZGJiYTIxNmM1M2Ux
N2ZlMGI0MjNlNTJiOGE5YTc3NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0x
NjAsNiArMTYwLDIyIEBAIHZvaWQgV29ya2VyOjpzdG9wKCkKICAgICB0ZXJtaW5hdGUoKTsKIH0K
IAordm9pZCBXb3JrZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit7Cisg
ICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7
CisgICAgICAgIG1fY29udGV4dFByb3h5LnN1c3BlbmQoKTsKKyAgICAgICAgaXNTdXNwZW5kZWRG
b3JCYWNrRm9yd2FyZENhY2hlID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1
bWUoKQoreworICAgIGlmIChpc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUpIHsKKyAgICAg
ICAgbV9jb250ZXh0UHJveHkucmVzdW1lKCk7CisgICAgICAgIGlzU3VzcGVuZGVkRm9yQmFja0Zv
cndhcmRDYWNoZSA9IGZhbHNlOworICAgIH0KK30KKwogYm9vbCBXb3JrZXI6Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dFByb3h5Lmhhc1BlbmRpbmdB
Y3Rpdml0eSgpIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwgbV9l
dmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRl
eCA0YzU0MTM5YWY4ZDU0NTYyYzUwNGIzZjJmZTEzNjE2MDc1Y2Q3N2FkLi5jNjk2ZDY5MjE0YTA4
ZTZkZmE3OTlmY2ZjNTFlMTY3YTM4ZjQ4NTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAg
LTg0LDYgKzg0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7
CiAKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKICAgICBjb25zdCBjaGFy
KiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAKICAgICBzdGF0aWMgdm9pZCBu
ZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpOwpAQCAtOTcsNiArOTksNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3kgeyBmYWxzZSB9OwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwogICAg
IFVuaXF1ZVJlZjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOworICAgIGJvb2wgaXNT
dXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZVByb3h5LmgKaW5kZXggMDY1N2Q2ZWM3MzQwZDQ4YTgyZDYwYzY1NzM4OTFjMzRhNzY2YjRiNC4u
OWM0NWU2OTI5ODhkMDc5NjI4OTE1MTJlMDBiNDFiODdiZDAxYTYzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTUyLDYgKzUyLDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGlu
ZSkgPSAwOwogCisgICAgLy8gQmFjayAvIEZvcndhcmQgY2FjaGUgc3VwcG9ydC4KKyAgICB2aXJ0
dWFsIHZvaWQgc3VzcGVuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgPSAwOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGVQcm94eSgpID0gZGVm
YXVsdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCmluZGV4IGE3N2JiN2U1NjAyMTFiOGI2ZjcwZmZjYWM5OTBlNTg2NjQ1ZTRiNjcuLjEz
ZTljNDBhMjYwNTg3ZjRlNDMwNWFhNGI5MzE1Y2U3MDc1OWE0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMjgsNiArMTI4LDIy
IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxT
Y29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0CiAgICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5h
cHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihXVEZNb3ZlKHRh
c2spKSk7CiB9CiAKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmQoKQoreworICAg
IGlmIChtX3dvcmtlclRocmVhZCkKKyAgICAgICAgbV93b3JrZXJUaHJlYWQtPnN1c3BlbmQoKTsK
KyAgICBlbHNlCisgICAgICAgIG1fYXNrZWRUb1N1c3BlbmQgPSB0cnVlOworfQorCit2b2lkIFdv
cmtlck1lc3NhZ2luZ1Byb3h5OjpyZXN1bWUoKQoreworICAgIGlmIChtX3dvcmtlclRocmVhZCkK
KyAgICAgICAgbV93b3JrZXJUaHJlYWQtPnJlc3VtZSgpOworICAgIGVsc2UKKyAgICAgICAgbV9h
c2tlZFRvU3VzcGVuZCA9IGZhbHNlOworfQorCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogewog
ICAgIC8vIEZJWE1FOiBJbiBjYXNlIG9mIG5lc3RlZCB3b3JrZXJzLCB0aGlzIHNob3VsZCBnbyBk
aXJlY3RseSB0byB0aGUgcm9vdCBEb2N1bWVudCBjb250ZXh0LgpAQCAtMTkwLDYgKzIwNiwxMSBA
QCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRl
ZFdvcmtlclRocmVhZCYgd29ya2VyVGhyZQogICAgICAgICAvLyBXb3JrZXIudGVybWluYXRlKCkg
Y291bGQgYmUgY2FsbGVkIGZyb20gSlMgYmVmb3JlIHRoZSB0aHJlYWQgd2FzIGNyZWF0ZWQuCiAg
ICAgICAgIG1fd29ya2VyVGhyZWFkLT5zdG9wKG51bGxwdHIpOwogICAgIH0gZWxzZSB7CisgICAg
ICAgIGlmIChtX2Fza2VkVG9TdXNwZW5kKSB7CisgICAgICAgICAgICBtX2Fza2VkVG9TdXNwZW5k
ID0gZmFsc2U7CisgICAgICAgICAgICBtX3dvcmtlclRocmVhZC0+c3VzcGVuZCgpOworICAgICAg
ICB9CisKICAgICAgICAgQVNTRVJUKCFtX3VuY29uZmlybWVkTWVzc2FnZUNvdW50KTsKICAgICAg
ICAgbV91bmNvbmZpcm1lZE1lc3NhZ2VDb3VudCA9IG1fcXVldWVkRWFybHlUYXNrcy5zaXplKCk7
CiAgICAgICAgIG1fd29ya2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5ID0gdHJ1ZTsgLy8gV29y
a2VyIGluaXRpYWxpemF0aW9uIG1lYW5zIGEgcGVuZGluZyBhY3Rpdml0eS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCBlZDE3ZmMzMmZhOTNk
ODg5NDY4OTg1MmUyYmI4ZjgwMTdhOWZhMjdiLi5lNjMwMzUyNzM5NjQ3ZDBjNzM5MzhkODA0ZDUw
YjUyODEyYTZiZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5oCkBAIC01Niw2ICs1Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgp
IGZpbmFsOwogICAgIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUp
IGZpbmFsOworICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmlu
YWw7CiAKICAgICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBXb3JrZXJPYmplY3RQcm94eS4KICAgICAv
LyAoT25seSB1c2UgdGhlc2UgZnVuY3Rpb25zIGluIHRoZSB3b3JrZXIgY29udGV4dCB0aHJlYWQu
KQpAQCAtOTYsNiArOTgsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdW5jb25maXJtZWRN
ZXNzYWdlQ291bnQgeyAwIH07IC8vIFVuY29uZmlybWVkIG1lc3NhZ2VzIGZyb20gd29ya2VyIG9i
amVjdCB0byB3b3JrZXIgdGhyZWFkLgogICAgIGJvb2wgbV93b3JrZXJUaHJlYWRIYWRQZW5kaW5n
QWN0aXZpdHkgeyBmYWxzZSB9OyAvLyBUaGUgbGF0ZXN0IGNvbmZpcm1hdGlvbiBmcm9tIHdvcmtl
ciB0aHJlYWQgcmVwb3J0ZWQgdGhhdCBpdCB3YXMgc3RpbGwgYWN0aXZlLgogCisgICAgYm9vbCBt
X2Fza2VkVG9TdXNwZW5kIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXNrZWRUb1Rlcm1pbmF0ZSB7
IGZhbHNlIH07CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+PiBtX3F1ZXVlZEVhcmx5VGFza3M7IC8vIFRhc2tzIGFyZSBxdWV1ZWQgaGVy
ZSB1bnRpbCB0aGVyZSdzIGEgdGhyZWFkIG9iamVjdCBjcmVhdGVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDE5ZDAzYTExNTM0MjdjY2UyMDMyYWJmMjBiMjI2
OTE3MjNlMjBhZjkuLjNiMDZlZTJiOWM2MTY2YzkwMzE5OWYyYTVhM2UyZDUyMjU5MjdiZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTI2NSw2ICsyNjUsMjAg
QEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiAgICAgbV9ydW5Mb29wLnJ1biht
X3dvcmtlckdsb2JhbFNjb3BlLmdldCgpKTsKIH0KIAordm9pZCBXb3JrZXJUaHJlYWQ6OnN1c3Bl
bmQoKQoreworICAgIEFTU0VSVChtX3RocmVhZCk7CisgICAgbV90aHJlYWQtPnN1c3BlbmQoKTsK
KyAgICBtX3RocmVhZElzU3VzcGVuZGVkID0gdHJ1ZTsKK30KKwordm9pZCBXb3JrZXJUaHJlYWQ6
OnJlc3VtZSgpCit7CisgICAgQVNTRVJUKG1fdGhyZWFkKTsKKyAgICBtX3RocmVhZC0+cmVzdW1l
KCk7CisgICAgbV90aHJlYWRJc1N1c3BlbmRlZCA9IGZhbHNlOworfQorCiB2b2lkIFdvcmtlclRo
cmVhZDo6c3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiB7CiAg
ICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV93b3Jr
ZXJHbG9iYWxTY29wZSBpc24ndCBjaGFuZ2VkIGJ5CkBAIC0yODAsNiArMjk0LDEwIEBAIHZvaWQg
V29ya2VyVGhyZWFkOjpzdG9wKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxsYmFj
aykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIElmIHRoZSB0aHJlYWQgaXMgc3Vz
cGVuZGVkLCByZXN1bWUgaXQgbm93IHNvIHRoYXQgd2UgY2FuIGRpc3BhdGNoIHRoZSBjbGVhbnVw
IHRhc2tzIGJlbG93LgorICAgIGlmIChtX3RocmVhZElzU3VzcGVuZGVkKQorICAgICAgICByZXN1
bWUoKTsKKwogICAgIEFTU0VSVCghbV9zdG9wcGVkQ2FsbGJhY2spOwogICAgIG1fc3RvcHBlZENh
bGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuaAppbmRleCBjZDZjNzhkODVlMzNkOWY2MDQ0Nzg4ZjBjOWJiYzUyNThjMDNh
NTQzLi43MDI2OGJiYmIxYjM4YWJmNjI5MmFhZDAyYzExNDNmMWJkNjcwNjY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTYzLDYgKzYzLDkgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzdG9wKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRlcm1pbmF0ZWRDYWxsYmFjayk7
CiAKKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2b2lkIHJlc3VtZSgpOworCiAgICAgVGhyZWFk
KiB0aHJlYWQoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZC5nZXQoKTsgfQogICAgIFdvcmtlclJ1
bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1bkxvb3A7IH0KICAgICBXb3JrZXJMb2FkZXJQ
cm94eSYgd29ya2VyTG9hZGVyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlckxvYWRlclBy
b3h5OyB9CkBAIC0xMzMsNiArMTM2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U29ja2V0UHJv
dmlkZXI+IG1fc29ja2V0UHJvdmlkZXI7CiAKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9z
dG9wcGVkQ2FsbGJhY2s7CisgICAgYm9vbCBtX3RocmVhZElzU3VzcGVuZGVkIHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NWYzYTQ0NWE5NzQ1NGQwYjY3
ZmRjOGQxMTgzMzVlZTNkNjYyZDk0Li40OTNjYWU2ZTE0MzBmYzVmMjg4ZTY4ZTMzNjEyMjllOGIy
MWQyYTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTAtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIGluIGRlZGljYXRlZCB3b3JrZXIg
dGhyZWFkcyB3aGlsZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxODYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2NDQ3NDkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEV4dGVuZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3Qv
d29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXNldEludGVydmFsLmpzOiBBZGRlZC4KKyAgICAgICAg
KG9ubWVzc2FnZSk6CisgICAgICAgIChzZXRJbnRlcnZhbCk6CisgICAgICAgICogZmFzdC93b3Jr
ZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWw6CisKIDIwMTktMTAtMjEgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIFN1cHBvcnQgaGlk
aW5nIGlmcmFtZSBzY3JvbGxiYXJzIHZpYSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHN0eWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1zZXRJbnRl
cnZhbC5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXNldElu
dGVydmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZTNkOTllOWUwZmM4MDE2OTRiYjc0MjgxZGQ5MDY4NjU2
MzFmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3Vy
Y2VzL3dvcmtlci1zZXRJbnRlcnZhbC5qcwpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBvbm1l
c3NhZ2UoZXZ0KQoreworICAgIHBvc3RNZXNzYWdlKCJTVUNDRVNTIik7Cit9CisKK2xldCBpID0g
MDsKK3NldEludGVydmFsKCgpID0+IHsKKyAgICBwb3N0TWVzc2FnZSgiIiArIGkpOworICAgIGkr
KzsKK30sIDApOworCithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgb25tZXNzYWdlLCB0cnVl
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNo
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwK
aW5kZXggMTQxNjMxZWY2MmM1Njc3NDRkOWE4NTc4ZTVjZThkYTRhZDA3YzRkYS4uZDRhYzkwZWU3
MDA2OGUwMzY2MzJiZjg5MDQ0Y2Q4OTJhZmE3NjU4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTI2LDExICsyNiwxMCBAQCB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgewogfSk7CiAK
IGxldCBmaXJzdE1lc3NhZ2UgPSB0cnVlOworbGV0IG1lc3NhZ2VDb3VudEFmdGVyUmVzdW1lID0g
MDsKIG9ubG9hZCA9ICgpID0+IHsKLSAgICB3b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMv
d29ya2VyLWV2ZW50LWxpc3RlbmVyLmpzJyk7Ci0gICAgc2V0SW50ZXJ2YWwoKCkgPT4gewotICAg
ICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoIiIpOwotICAgIH0sIDEpOworICAgIHdvcmtlciA9IG5l
dyBXb3JrZXIoJ3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanMnKTsKKyAgICB3b3JrZXIu
cG9zdE1lc3NhZ2UoIiIpOwogCiAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkg
ewogICAgICAgICBpZiAoZmlyc3RNZXNzYWdlKSB7CkBAIC00MCw5ICszOSwxMiBAQCBvbmxvYWQg
PSAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJl
c3RvcmVkRnJvbVBhZ2VDYWNoZSkgewotICAgICAgICAgICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hl
ID0gZmFsc2U7Ci0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGFmdGVy
IHJlc3RvcmluZyBmcm9tIHBhZ2UgY2FjaGUuIik7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgIG1lc3NhZ2VDb3VudEFmdGVyUmVzdW1lKys7CisgICAgICAgICAgICBp
ZiAobWVzc2FnZUNvdW50QWZ0ZXJSZXN1bWUgPT0gMTApIHsKKyAgICAgICAgICAgICAgICByZXN0
b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJS
ZWNlaXZlZCBtZXNzYWdlIGFmdGVyIHJlc3RvcmluZyBmcm9tIHBhZ2UgY2FjaGUuIik7CisgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381458</attachid>
            <date>2019-10-21 14:33:41 -0700</date>
            <delta_ts>2019-10-21 18:21:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203186-20191021143340.patch</filename>
            <type>text/plain</type>
            <size>11470</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE1MmMxZGU3MmMzN2Q5
YTE4NTc5ZTRmYTJkYzdlN2IxNjhiYmZkNi4uNzJjMmYxY2JjMmYxMDBiYjU2ZGNmZjhkZmI2NGE5
NWM3OGZmMjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBpbiBkZWRpY2F0
ZWQgd29ya2VyIHRocmVhZHMgd2hpbGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjQ0NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgcGFnZSB3aXRoIGEgKGRlZGljYXRlZCkgV29ya2Vy
IGVudGVycyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB3ZSBub3cKKyAgICAgICAgcGF1c2UgdGhl
IHdvcmtlciB0aHJlYWQsIGFuZCByZXN1bWUgaXQgb25seSB3aGVuIHRha2luZyB0aGUgcGFnZSBv
dXQgb2YgdGhlCisgICAgICAgIGJhY2svZm9yd2FyZCBjYWNoZS4gVGhpcyBhdm9pZHMgaGF2aW5n
IHRoZSB3b3JrZXIgdXNlIENQVSB3aGlsZSB0aGUgcGFnZSBpcworICAgICAgICBpbiB0aGUgY2Fj
aGUuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXI6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpyZXN1bWUpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3VzcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJUaHJlYWRDcmVhdGVkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpXb3JrZXJU
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZDo6c3RvcCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKwog
MjAxOS0xMC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TIFdLMl0gU3VwcG9ydCBoaWRpbmcgaWZyYW1lIHNjcm9sbGJhcnMgdmlhIDo6LXdl
YmtpdC1zY3JvbGxiYXIgc3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwZjUw
NzhlODgyZWE0NzBmMTU1MTRkODJmOTZhMjE2Njk3MWU4ODNhLi5iNmNiMmJjZGJiYTIxNmM1M2Ux
N2ZlMGI0MjNlNTJiOGE5YTc3NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0x
NjAsNiArMTYwLDIyIEBAIHZvaWQgV29ya2VyOjpzdG9wKCkKICAgICB0ZXJtaW5hdGUoKTsKIH0K
IAordm9pZCBXb3JrZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit7Cisg
ICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7
CisgICAgICAgIG1fY29udGV4dFByb3h5LnN1c3BlbmQoKTsKKyAgICAgICAgaXNTdXNwZW5kZWRG
b3JCYWNrRm9yd2FyZENhY2hlID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1
bWUoKQoreworICAgIGlmIChpc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUpIHsKKyAgICAg
ICAgbV9jb250ZXh0UHJveHkucmVzdW1lKCk7CisgICAgICAgIGlzU3VzcGVuZGVkRm9yQmFja0Zv
cndhcmRDYWNoZSA9IGZhbHNlOworICAgIH0KK30KKwogYm9vbCBXb3JrZXI6Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dFByb3h5Lmhhc1BlbmRpbmdB
Y3Rpdml0eSgpIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwgbV9l
dmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRl
eCA0YzU0MTM5YWY4ZDU0NTYyYzUwNGIzZjJmZTEzNjE2MDc1Y2Q3N2FkLi5jNjk2ZDY5MjE0YTA4
ZTZkZmE3OTlmY2ZjNTFlMTY3YTM4ZjQ4NTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAg
LTg0LDYgKzg0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7
CiAKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3Vz
cGVuc2lvbikgZmluYWw7CisgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKICAgICBjb25zdCBjaGFy
KiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAKICAgICBzdGF0aWMgdm9pZCBu
ZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wgaXNPbkxpbmUpOwpAQCAtOTcsNiArOTksNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3kgeyBmYWxzZSB9OwogICAgIEpTQzo6UnVudGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwogICAg
IFVuaXF1ZVJlZjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOworICAgIGJvb2wgaXNT
dXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZVByb3h5LmgKaW5kZXggMDY1N2Q2ZWM3MzQwZDQ4YTgyZDYwYzY1NzM4OTFjMzRhNzY2YjRiNC4u
OWM0NWU2OTI5ODhkMDc5NjI4OTE1MTJlMDBiNDFiODdiZDAxYTYzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTUyLDYgKzUyLDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGlu
ZSkgPSAwOwogCisgICAgLy8gQmFjayAvIEZvcndhcmQgY2FjaGUgc3VwcG9ydC4KKyAgICB2aXJ0
dWFsIHZvaWQgc3VzcGVuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgPSAwOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGVQcm94eSgpID0gZGVm
YXVsdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCmluZGV4IGE3N2JiN2U1NjAyMTFiOGI2ZjcwZmZjYWM5OTBlNTg2NjQ1ZTRiNjcuLjEz
ZTljNDBhMjYwNTg3ZjRlNDMwNWFhNGI5MzE1Y2U3MDc1OWE0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMjgsNiArMTI4LDIy
IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxT
Y29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0CiAgICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5h
cHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihXVEZNb3ZlKHRh
c2spKSk7CiB9CiAKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmQoKQoreworICAg
IGlmIChtX3dvcmtlclRocmVhZCkKKyAgICAgICAgbV93b3JrZXJUaHJlYWQtPnN1c3BlbmQoKTsK
KyAgICBlbHNlCisgICAgICAgIG1fYXNrZWRUb1N1c3BlbmQgPSB0cnVlOworfQorCit2b2lkIFdv
cmtlck1lc3NhZ2luZ1Byb3h5OjpyZXN1bWUoKQoreworICAgIGlmIChtX3dvcmtlclRocmVhZCkK
KyAgICAgICAgbV93b3JrZXJUaHJlYWQtPnJlc3VtZSgpOworICAgIGVsc2UKKyAgICAgICAgbV9h
c2tlZFRvU3VzcGVuZCA9IGZhbHNlOworfQorCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogewog
ICAgIC8vIEZJWE1FOiBJbiBjYXNlIG9mIG5lc3RlZCB3b3JrZXJzLCB0aGlzIHNob3VsZCBnbyBk
aXJlY3RseSB0byB0aGUgcm9vdCBEb2N1bWVudCBjb250ZXh0LgpAQCAtMTkwLDYgKzIwNiwxMSBA
QCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRl
ZFdvcmtlclRocmVhZCYgd29ya2VyVGhyZQogICAgICAgICAvLyBXb3JrZXIudGVybWluYXRlKCkg
Y291bGQgYmUgY2FsbGVkIGZyb20gSlMgYmVmb3JlIHRoZSB0aHJlYWQgd2FzIGNyZWF0ZWQuCiAg
ICAgICAgIG1fd29ya2VyVGhyZWFkLT5zdG9wKG51bGxwdHIpOwogICAgIH0gZWxzZSB7CisgICAg
ICAgIGlmIChtX2Fza2VkVG9TdXNwZW5kKSB7CisgICAgICAgICAgICBtX2Fza2VkVG9TdXNwZW5k
ID0gZmFsc2U7CisgICAgICAgICAgICBtX3dvcmtlclRocmVhZC0+c3VzcGVuZCgpOworICAgICAg
ICB9CisKICAgICAgICAgQVNTRVJUKCFtX3VuY29uZmlybWVkTWVzc2FnZUNvdW50KTsKICAgICAg
ICAgbV91bmNvbmZpcm1lZE1lc3NhZ2VDb3VudCA9IG1fcXVldWVkRWFybHlUYXNrcy5zaXplKCk7
CiAgICAgICAgIG1fd29ya2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5ID0gdHJ1ZTsgLy8gV29y
a2VyIGluaXRpYWxpemF0aW9uIG1lYW5zIGEgcGVuZGluZyBhY3Rpdml0eS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCBlZDE3ZmMzMmZhOTNk
ODg5NDY4OTg1MmUyYmI4ZjgwMTdhOWZhMjdiLi5lNjMwMzUyNzM5NjQ3ZDBjNzM5MzhkODA0ZDUw
YjUyODEyYTZiZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5oCkBAIC01Niw2ICs1Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgp
IGZpbmFsOwogICAgIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUp
IGZpbmFsOworICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lKCkgZmlu
YWw7CiAKICAgICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBXb3JrZXJPYmplY3RQcm94eS4KICAgICAv
LyAoT25seSB1c2UgdGhlc2UgZnVuY3Rpb25zIGluIHRoZSB3b3JrZXIgY29udGV4dCB0aHJlYWQu
KQpAQCAtOTYsNiArOTgsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdW5jb25maXJtZWRN
ZXNzYWdlQ291bnQgeyAwIH07IC8vIFVuY29uZmlybWVkIG1lc3NhZ2VzIGZyb20gd29ya2VyIG9i
amVjdCB0byB3b3JrZXIgdGhyZWFkLgogICAgIGJvb2wgbV93b3JrZXJUaHJlYWRIYWRQZW5kaW5n
QWN0aXZpdHkgeyBmYWxzZSB9OyAvLyBUaGUgbGF0ZXN0IGNvbmZpcm1hdGlvbiBmcm9tIHdvcmtl
ciB0aHJlYWQgcmVwb3J0ZWQgdGhhdCBpdCB3YXMgc3RpbGwgYWN0aXZlLgogCisgICAgYm9vbCBt
X2Fza2VkVG9TdXNwZW5kIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXNrZWRUb1Rlcm1pbmF0ZSB7
IGZhbHNlIH07CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+PiBtX3F1ZXVlZEVhcmx5VGFza3M7IC8vIFRhc2tzIGFyZSBxdWV1ZWQgaGVy
ZSB1bnRpbCB0aGVyZSdzIGEgdGhyZWFkIG9iamVjdCBjcmVhdGVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDE5ZDAzYTExNTM0MjdjY2UyMDMyYWJmMjBiMjI2
OTE3MjNlMjBhZjkuLmYzOTk3NTY0Zjg0NTlmYTZiMzU4NDlkZTRhN2RlNjJjYzkxN2MyZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTI2NSw2ICsyNjUsMjAg
QEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiAgICAgbV9ydW5Mb29wLnJ1biht
X3dvcmtlckdsb2JhbFNjb3BlLmdldCgpKTsKIH0KIAordm9pZCBXb3JrZXJUaHJlYWQ6OnN1c3Bl
bmQoKQoreworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhbJl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdXNwZW5zaW9uTG9jayk7CisgICAg
ICAgIG1fc3VzcGVuc2lvbkNvbmRpdGlvbi53YWl0KG1fc3VzcGVuc2lvbkxvY2spOworICAgIH0p
OworfQorCit2b2lkIFdvcmtlclRocmVhZDo6cmVzdW1lKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3N1c3BlbnNpb25Mb2NrKTsKKyAgICBtX3N1c3BlbnNpb25Db25kaXRpb24ubm90aWZ5
T25lKCk7Cit9CisKIHZvaWQgV29ya2VyVGhyZWFkOjpzdG9wKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIHN0b3BwZWRDYWxsYmFjaykKIHsKICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vz
c2FyeSB0byBlbnN1cmUgdGhhdCBtX3dvcmtlckdsb2JhbFNjb3BlIGlzbid0IGNoYW5nZWQgYnkK
QEAgLTI4MCw2ICsyOTQsOSBAQCB2b2lkIFdvcmtlclRocmVhZDo6c3RvcChXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAg
ICAvLyBJZiB0aGUgdGhyZWFkIGlzIHN1c3BlbmRlZCwgcmVzdW1lIGl0IG5vdyBzbyB0aGF0IHdl
IGNhbiBkaXNwYXRjaCB0aGUgY2xlYW51cCB0YXNrcyBiZWxvdy4KKyAgICByZXN1bWUoKTsKKwog
ICAgIEFTU0VSVCghbV9zdG9wcGVkQ2FsbGJhY2spOwogICAgIG1fc3RvcHBlZENhbGxiYWNrID0g
V1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuaAppbmRleCBjZDZjNzhkODVlMzNkOWY2MDQ0Nzg4ZjBjOWJiYzUyNThjMDNhNTQzLi4xNzg0
NmZlYzk2NmE4Yjc3ODY4NjM4ZjE3ZGUwNWE1ZjYwOGQ0N2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJXb3JrZXJSdW5M
b29wLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CkBAIC02Myw2ICs2NCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RvcChXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiB0ZXJtaW5hdGVkQ2FsbGJhY2spOwogCisgICAgdm9pZCBzdXNwZW5k
KCk7CisgICAgdm9pZCByZXN1bWUoKTsKKwogICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3QgeyBy
ZXR1cm4gbV90aHJlYWQuZ2V0KCk7IH0KICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wKCkgeyBy
ZXR1cm4gbV9ydW5Mb29wOyB9CiAgICAgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclBy
b3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJMb2FkZXJQcm94eTsgfQpAQCAtMTMzLDYgKzEz
Nyw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNvY2tldFByb3ZpZGVyPiBtX3NvY2tldFByb3Zp
ZGVyOwogCiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fc3RvcHBlZENhbGxiYWNrOworICAg
IExvY2sgbV9zdXNwZW5zaW9uTG9jazsKKyAgICBDb25kaXRpb24gbV9zdXNwZW5zaW9uQ29uZGl0
aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ1ZjNhNDQ1YTk3NDU0
ZDBiNjdmZGM4ZDExODMzNWVlM2Q2NjJkOTQuLjQ5M2NhZTZlMTQzMGZjNWYyODhlNjhlMzM2MTIy
OWU4YjIxZDJhOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMC0yMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN1c3BlbmQgaW4gZGVkaWNhdGVkIHdv
cmtlciB0aHJlYWRzIHdoaWxlIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzE4NgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTY0NDc0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRXh0ZW5kIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICog
ZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanM6IEFkZGVkLgorICAg
ICAgICAob25tZXNzYWdlKToKKyAgICAgICAgKHNldEludGVydmFsKToKKyAgICAgICAgKiBmYXN0
L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbDoKKwogMjAxOS0xMC0yMSAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gU3VwcG9y
dCBoaWRpbmcgaWZyYW1lIHNjcm9sbGJhcnMgdmlhIDo6LXdlYmtpdC1zY3JvbGxiYXIgc3R5bGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXNl
dEludGVydmFsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXIt
c2V0SW50ZXJ2YWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFlM2Q5OWU5ZTBmYzgwMTY5NGJiNzQyODFkZDkw
Njg2NTYzMWY3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9y
ZXNvdXJjZXMvd29ya2VyLXNldEludGVydmFsLmpzCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9u
IG9ubWVzc2FnZShldnQpCit7CisgICAgcG9zdE1lc3NhZ2UoIlNVQ0NFU1MiKTsKK30KKworbGV0
IGkgPSAwOworc2V0SW50ZXJ2YWwoKCkgPT4geworICAgIHBvc3RNZXNzYWdlKCIiICsgaSk7Cisg
ICAgaSsrOworfSwgMCk7CisKK2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBvbm1lc3NhZ2Us
IHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdl
LWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUu
aHRtbAppbmRleCAxNDE2MzFlZjYyYzU2Nzc0NGQ5YTg1NzhlNWNlOGRhNGFkMDdjNGRhLi5kNGFj
OTBlZTcwMDY4ZTAzNjYzMmJmODkwNDRjZDg5MmFmYTc2NTgzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbApAQCAtMjYsMTEgKzI2LDEwIEBA
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiB9
KTsKIAogbGV0IGZpcnN0TWVzc2FnZSA9IHRydWU7CitsZXQgbWVzc2FnZUNvdW50QWZ0ZXJSZXN1
bWUgPSAwOwogb25sb2FkID0gKCkgPT4gewotICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291
cmNlcy93b3JrZXItZXZlbnQtbGlzdGVuZXIuanMnKTsKLSAgICBzZXRJbnRlcnZhbCgoKSA9PiB7
Ci0gICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiIik7Ci0gICAgfSwgMSk7CisgICAgd29ya2Vy
ID0gbmV3IFdvcmtlcigncmVzb3VyY2VzL3dvcmtlci1zZXRJbnRlcnZhbC5qcycpOworICAgIHdv
cmtlci5wb3N0TWVzc2FnZSgiIik7CiAKICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZ0KSB7CiAgICAgICAgIGlmIChmaXJzdE1lc3NhZ2UpIHsKQEAgLTQwLDkgKzM5LDEyIEBAIG9u
bG9hZCA9ICgpID0+IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBp
ZiAocmVzdG9yZWRGcm9tUGFnZUNhY2hlKSB7Ci0gICAgICAgICAgICByZXN0b3JlZEZyb21QYWdl
Q2FjaGUgPSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2Ug
YWZ0ZXIgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsKLSAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICAgICAgbWVzc2FnZUNvdW50QWZ0ZXJSZXN1bWUrKzsKKyAgICAgICAg
ICAgIGlmIChtZXNzYWdlQ291bnRBZnRlclJlc3VtZSA9PSAxMCkgeworICAgICAgICAgICAgICAg
IHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlJlY2VpdmVkIG1lc3NhZ2UgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gcGFnZSBjYWNoZS4iKTsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH07CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381493</attachid>
            <date>2019-10-21 18:21:51 -0700</date>
            <delta_ts>2019-10-21 19:05:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203186-20191021182136.patch</filename>
            <type>text/plain</type>
            <size>11685</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYzNGQ0YzdhMTY2Mzll
NzRjYTcyYzk5YzdmMDQxYTVkODdjZTdmNi4uOWE0ODE0MTJjNzY1ZTlmY2YyYzE2YjMxZmEwNDhl
OGE0OGJmNjE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBpbiBkZWRpY2F0
ZWQgd29ya2VyIHRocmVhZHMgd2hpbGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjQ0NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtl
IE5pd2EuCisKKyAgICAgICAgV2hlbiBhIHBhZ2Ugd2l0aCBhIChkZWRpY2F0ZWQpIFdvcmtlciBl
bnRlcnMgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2Ugbm93CisgICAgICAgIHBhdXNlIHRoZSB3
b3JrZXIgdGhyZWFkLCBhbmQgcmVzdW1lIGl0IG9ubHkgd2hlbiB0YWtpbmcgdGhlIHBhZ2Ugb3V0
IG9mIHRoZQorICAgICAgICBiYWNrL2ZvcndhcmQgY2FjaGUuIFRoaXMgYXZvaWRzIGhhdmluZyB0
aGUgd29ya2VyIHVzZSBDUFUgd2hpbGUgdGhlIHBhZ2UgaXMKKyAgICAgICAgaW4gdGhlIGNhY2hl
LgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6cmVzdW1lKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnJlc3VtZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyVGhyZWFkQ3JlYXRlZCk6CisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhy
ZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWQ6OnN0b3ApOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisKIDIw
MTktMTAtMjEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IE1lZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIERvbGJ5VmlzaW9uIGNvZGVjcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwZjUwNzhlODgyZWE0NzBmMTU1MTRkODJmOTZhMjE2
Njk3MWU4ODNhLi43ZjUzMjM4MWE5OWE3OTM0MjU4MGE4Njg2YTgwZGZhOGRkZWQyZTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0xNjAsNiArMTYwLDIyIEBAIHZvaWQgV29ya2Vy
OjpzdG9wKCkKICAgICB0ZXJtaW5hdGUoKTsKIH0KIAordm9pZCBXb3JrZXI6OnN1c3BlbmQoUmVh
c29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JT
dXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1fY29udGV4dFByb3h5LnN1
c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgICAgIGlzU3VzcGVuZGVkRm9yQmFja0Zv
cndhcmRDYWNoZSA9IHRydWU7CisgICAgfQorfQorCit2b2lkIFdvcmtlcjo6cmVzdW1lKCkKK3sK
KyAgICBpZiAoaXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1fY29u
dGV4dFByb3h5LnJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICAgICAgaXNTdXNwZW5k
ZWRGb3JCYWNrRm9yd2FyZENhY2hlID0gZmFsc2U7CisgICAgfQorfQorCiBib29sIFdvcmtlcjo6
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0UHJveHku
aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZp
dHkoKSB8fCBtX2V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5oCmluZGV4IDRjNTQxMzlhZjhkNTQ1NjJjNTA0YjNmMmZlMTM2MTYwNzVjZDc3YWQuLmUx
NTM4ZGMyZjM0YzQ2Njc5YWJhOTBiZmFkM2EzNTRjODc4ZjVlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuaApAQCAtODQsNiArODQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5RmluaXNo
ZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChS
ZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIHN0
YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSk7CkBAIC05NSw2ICs5
Nyw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzPiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKICAgICBN
b25vdG9uaWNUaW1lIG1fd29ya2VyQ3JlYXRpb25UaW1lOwogICAgIGJvb2wgbV9zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OworICAgIGJvb2wgaXNT
dXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlIHsgZmFsc2UgfTsKICAgICBKU0M6OlJ1bnRpbWVG
bGFncyBtX3J1bnRpbWVGbGFnczsKICAgICBVbmlxdWVSZWY8R2VuZXJpY0V2ZW50UXVldWU+IG1f
ZXZlbnRRdWV1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGVQcm94eS5oCmluZGV4IDA2NTdkNmVjNzM0MGQ0OGE4MmQ2MGM2NTczODkxYzM0YTc2NmI0
YjQuLjc0YzY0OGI5Y2M4MDY0MGViNjU3MDkyMGVlMTg2YjgwZjhmY2ZmNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC01Miw2ICs1
Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09u
bGluZSkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hl
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKCkgPSAw
OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGVQcm94eSgpID0g
ZGVmYXVsdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwCmluZGV4IGE3N2JiN2U1NjAyMTFiOGI2ZjcwZmZjYWM5OTBlNTg2NjQ1ZTRiNjcu
LjZkODllODMxYTdhZWE4Y2Y3MzVlZDFmMTdiMmYxM2U2MjgzMzU0ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMjgsNiArMTI4
LDIyIEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9i
YWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0CiAgICAgICAgIG1fcXVldWVkRWFybHlUYXNr
cy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihXVEZNb3Zl
KHRhc2spKSk7CiB9CiAKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmRGb3JCYWNr
Rm9yd2FyZENhY2hlKCkKK3sKKyAgICBpZiAobV93b3JrZXJUaHJlYWQpCisgICAgICAgIG1fd29y
a2VyVGhyZWFkLT5zdXNwZW5kKCk7CisgICAgZWxzZQorICAgICAgICBtX2Fza2VkVG9TdXNwZW5k
ID0gdHJ1ZTsKK30KKwordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cmVzdW1lRm9yQmFja0Zv
cndhcmRDYWNoZSgpCit7CisgICAgaWYgKG1fd29ya2VyVGhyZWFkKQorICAgICAgICBtX3dvcmtl
clRocmVhZC0+cmVzdW1lKCk7CisgICAgZWxzZQorICAgICAgICBtX2Fza2VkVG9TdXNwZW5kID0g
ZmFsc2U7Cit9CisKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2spCiB7CiAgICAgLy8gRklYTUU6IElu
IGNhc2Ugb2YgbmVzdGVkIHdvcmtlcnMsIHRoaXMgc2hvdWxkIGdvIGRpcmVjdGx5IHRvIHRoZSBy
b290IERvY3VtZW50IGNvbnRleHQuCkBAIC0xOTAsNiArMjA2LDExIEBAIHZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OndvcmtlclRocmVhZENyZWF0ZWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB3
b3JrZXJUaHJlCiAgICAgICAgIC8vIFdvcmtlci50ZXJtaW5hdGUoKSBjb3VsZCBiZSBjYWxsZWQg
ZnJvbSBKUyBiZWZvcmUgdGhlIHRocmVhZCB3YXMgY3JlYXRlZC4KICAgICAgICAgbV93b3JrZXJU
aHJlYWQtPnN0b3AobnVsbHB0cik7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fYXNrZWRU
b1N1c3BlbmQpIHsKKyAgICAgICAgICAgIG1fYXNrZWRUb1N1c3BlbmQgPSBmYWxzZTsKKyAgICAg
ICAgICAgIG1fd29ya2VyVGhyZWFkLT5zdXNwZW5kKCk7CisgICAgICAgIH0KKwogICAgICAgICBB
U1NFUlQoIW1fdW5jb25maXJtZWRNZXNzYWdlQ291bnQpOwogICAgICAgICBtX3VuY29uZmlybWVk
TWVzc2FnZUNvdW50ID0gbV9xdWV1ZWRFYXJseVRhc2tzLnNpemUoKTsKICAgICAgICAgbV93b3Jr
ZXJUaHJlYWRIYWRQZW5kaW5nQWN0aXZpdHkgPSB0cnVlOyAvLyBXb3JrZXIgaW5pdGlhbGl6YXRp
b24gbWVhbnMgYSBwZW5kaW5nIGFjdGl2aXR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGVkMTdmYzMyZmE5M2Q4ODk0Njg5ODUyZTJiYjhm
ODAxN2E5ZmEyN2IuLmZkNTU0ZTE0MTJmZTg2NWIwOTEyNjA2ZWEzNzA4YWJmZDU3NDE3ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTU2
LDYgKzU2LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgdm9p
ZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkgZmluYWw7CisgICAgdm9p
ZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lRm9y
QmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCiAgICAgLy8gSW1wbGVtZW50YXRpb24gb2YgV29y
a2VyT2JqZWN0UHJveHkuCiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUg
d29ya2VyIGNvbnRleHQgdGhyZWFkLikKQEAgLTk2LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX3VuY29uZmlybWVkTWVzc2FnZUNvdW50IHsgMCB9OyAvLyBVbmNvbmZpcm1lZCBt
ZXNzYWdlcyBmcm9tIHdvcmtlciBvYmplY3QgdG8gd29ya2VyIHRocmVhZC4KICAgICBib29sIG1f
d29ya2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5IHsgZmFsc2UgfTsgLy8gVGhlIGxhdGVzdCBj
b25maXJtYXRpb24gZnJvbSB3b3JrZXIgdGhyZWFkIHJlcG9ydGVkIHRoYXQgaXQgd2FzIHN0aWxs
IGFjdGl2ZS4KIAorICAgIGJvb2wgbV9hc2tlZFRvU3VzcGVuZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2Fza2VkVG9UZXJtaW5hdGUgeyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPj4gbV9xdWV1ZWRFYXJseVRhc2tzOyAv
LyBUYXNrcyBhcmUgcXVldWVkIGhlcmUgdW50aWwgdGhlcmUncyBhIHRocmVhZCBvYmplY3QgY3Jl
YXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCAxOWQwM2Ex
MTUzNDI3Y2NlMjAzMmFiZjIwYjIyNjkxNzIzZTIwYWY5Li4yNzViNWVlYTI3NjljYzhmZjhhNjkw
OTlhZmEzMGFiN2QzMTI1NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwCkBAIC0yNjUsNiArMjY1LDIxIEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3Ao
KQogICAgIG1fcnVuTG9vcC5ydW4obV93b3JrZXJHbG9iYWxTY29wZS5nZXQoKSk7CiB9CiAKK3Zv
aWQgV29ya2VyVGhyZWFkOjpzdXNwZW5kKCkKK3sKKyAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsK
KyAgICBydW5Mb29wKCkucG9zdFRhc2soWyZdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Cisg
ICAgICAgIG1fc3VzcGVuc2lvblNlbWFwaG9yZS53YWl0KCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
V29ya2VyVGhyZWFkOjpyZXN1bWUoKQoreworICAgIEFTU0VSVChtX2lzU3VzcGVuZGVkKTsKKyAg
ICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7CisgICAgbV9zdXNwZW5zaW9uU2VtYXBob3JlLnNpZ25h
bCgpOworfQorCiB2b2lkIFdvcmtlclRocmVhZDo6c3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
JiBzdG9wcGVkQ2FsbGJhY2spCiB7CiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3Nh
cnkgdG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24ndCBjaGFuZ2VkIGJ5CkBA
IC0yODAsNiArMjk1LDEwIEBAIHZvaWQgV29ya2VyVGhyZWFkOjpzdG9wKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IC8vIElmIHRoZSB0aHJlYWQgaXMgc3VzcGVuZGVkLCByZXN1bWUgaXQgbm93IHNvIHRoYXQgd2Ug
Y2FuIGRpc3BhdGNoIHRoZSBjbGVhbnVwIHRhc2tzIGJlbG93LgorICAgIGlmIChtX2lzU3VzcGVu
ZGVkKQorICAgICAgICByZXN1bWUoKTsKKwogICAgIEFTU0VSVCghbV9zdG9wcGVkQ2FsbGJhY2sp
OwogICAgIG1fc3RvcHBlZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBjZDZjNzhkODVlMzNkOWY2MDQ0
Nzg4ZjBjOWJiYzUyNThjMDNhNTQzLi4xNGVlYmYxNDUxOGVjYTZiZjI3MWY0NTNhMDUzNTJhNjUx
ZDY3MjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmlu
YXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjMsNiArNjQsOSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGVybWlu
YXRlZENhbGxiYWNrKTsKIAorICAgIHZvaWQgc3VzcGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7
CisKICAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdldCgpOyB9
CiAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCgpIHsgcmV0dXJuIG1fcnVuTG9vcDsgfQogICAg
IFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1f
d29ya2VyTG9hZGVyUHJveHk7IH0KQEAgLTEzMyw2ICsxMzcsOCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKIAogICAgIFdURjo6RnVuY3Rp
b248dm9pZCgpPiBtX3N0b3BwZWRDYWxsYmFjazsKKyAgICBCaW5hcnlTZW1hcGhvcmUgbV9zdXNw
ZW5zaW9uU2VtYXBob3JlOworICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWZhYTBiNWZkYzI5MDYyYmJmYzdiNjI4
NGM1YmQxOTI1ODk1YTY3NC4uNmUwZmFmMWJiNzNkNDdhYzg2ZjYwYThjOWU0MWIwMmRiMTI5NjI1
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTIxICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBpbiBkZWRpY2F0ZWQgd29ya2VyIHRocmVh
ZHMgd2hpbGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NjQ0NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAg
ICAgRXh0ZW5kIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC93b3JrZXJz
L3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanM6IEFkZGVkLgorICAgICAgICAob25tZXNz
YWdlKToKKyAgICAgICAgKHNldEludGVydmFsKToKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29y
a2VyLXBhZ2UtY2FjaGUuaHRtbDoKKwogMjAxOS0xMC0yMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJp
bmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1zZXRJbnRlcnZhbC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMWUzZDk5ZTllMGZjODAxNjk0YmI3NDI4MWRkOTA2ODY1NjMxZjdhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3Jr
ZXItc2V0SW50ZXJ2YWwuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gb25tZXNzYWdlKGV2
dCkKK3sKKyAgICBwb3N0TWVzc2FnZSgiU1VDQ0VTUyIpOworfQorCitsZXQgaSA9IDA7CitzZXRJ
bnRlcnZhbCgoKSA9PiB7CisgICAgcG9zdE1lc3NhZ2UoIiIgKyBpKTsKKyAgICBpKys7Cit9LCAw
KTsKKworYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIG9ubWVzc2FnZSwgdHJ1ZSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sCmluZGV4IDE0
MTYzMWVmNjJjNTY3NzQ0ZDlhODU3OGU1Y2U4ZGE0YWQwN2M0ZGEuLmQ0YWM5MGVlNzAwNjhlMDM2
NjMyYmY4OTA0NGNkODkyYWZhNzY1ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItcGFnZS1jYWNoZS5odG1sCkBAIC0yNiwxMSArMjYsMTAgQEAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKIH0pOwogCiBsZXQgZmly
c3RNZXNzYWdlID0gdHJ1ZTsKK2xldCBtZXNzYWdlQ291bnRBZnRlclJlc3VtZSA9IDA7CiBvbmxv
YWQgPSAoKSA9PiB7Ci0gICAgd29ya2VyID0gbmV3IFdvcmtlcigncmVzb3VyY2VzL3dvcmtlci1l
dmVudC1saXN0ZW5lci5qcycpOwotICAgIHNldEludGVydmFsKCgpID0+IHsKLSAgICAgICAgd29y
a2VyLnBvc3RNZXNzYWdlKCIiKTsKLSAgICB9LCAxKTsKKyAgICB3b3JrZXIgPSBuZXcgV29ya2Vy
KCdyZXNvdXJjZXMvd29ya2VyLXNldEludGVydmFsLmpzJyk7CisgICAgd29ya2VyLnBvc3RNZXNz
YWdlKCIiKTsKIAogICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKICAgICAg
ICAgaWYgKGZpcnN0TWVzc2FnZSkgewpAQCAtNDAsOSArMzksMTIgQEAgb25sb2FkID0gKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXN0b3JlZEZy
b21QYWdlQ2FjaGUpIHsKLSAgICAgICAgICAgIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNl
OwotICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3Jp
bmcgZnJvbSBwYWdlIGNhY2hlLiIpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICBtZXNzYWdlQ291bnRBZnRlclJlc3VtZSsrOworICAgICAgICAgICAgaWYgKG1lc3Nh
Z2VDb3VudEFmdGVyUmVzdW1lID09IDEwKSB7CisgICAgICAgICAgICAgICAgcmVzdG9yZWRGcm9t
UGFnZUNhY2hlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQg
bWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLiIpOworICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381498</attachid>
            <date>2019-10-21 19:05:58 -0700</date>
            <delta_ts>2019-10-21 20:29:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203186-20191021190544.patch</filename>
            <type>text/plain</type>
            <size>11679</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYzNGQ0YzdhMTY2Mzll
NzRjYTcyYzk5YzdmMDQxYTVkODdjZTdmNi4uZDcxYWQzMThmYThkNDcxMWZjN2JhOWYxOGU3NDM4
OTE0ZDhkMWU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBkZWRpY2F0ZWQg
d29ya2VyIHRocmVhZHMgd2hpbGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NjQ0NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCisKKyAgICAgICAgV2hlbiBhIHBhZ2Ugd2l0aCBhIChkZWRpY2F0ZWQpIFdvcmtlciBlbnRl
cnMgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2Ugbm93CisgICAgICAgIHBhdXNlIHRoZSB3b3Jr
ZXIgdGhyZWFkLCBhbmQgcmVzdW1lIGl0IG9ubHkgd2hlbiB0YWtpbmcgdGhlIHBhZ2Ugb3V0IG9m
IHRoZQorICAgICAgICBiYWNrL2ZvcndhcmQgY2FjaGUuIFRoaXMgYXZvaWRzIGhhdmluZyB0aGUg
d29ya2VyIHVzZSBDUFUgd2hpbGUgdGhlIHBhZ2UgaXMKKyAgICAgICAgaW4gdGhlIGNhY2hlLgor
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6cmVzdW1lKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQ
cm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyVGhyZWFkQ3JlYXRlZCk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhyZWFk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OnN0b3ApOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisKIDIwMTkt
MTAtMjEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIE1l
ZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIERvbGJ5VmlzaW9uIGNvZGVjcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmNwcAppbmRleCAwZjUwNzhlODgyZWE0NzBmMTU1MTRkODJmOTZhMjE2Njk3
MWU4ODNhLi43ZjUzMjM4MWE5OWE3OTM0MjU4MGE4Njg2YTgwZGZhOGRkZWQyZTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0xNjAsNiArMTYwLDIyIEBAIHZvaWQgV29ya2VyOjpz
dG9wKCkKICAgICB0ZXJtaW5hdGUoKTsKIH0KIAordm9pZCBXb3JrZXI6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNw
ZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1fY29udGV4dFByb3h5LnN1c3Bl
bmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgICAgIGlzU3VzcGVuZGVkRm9yQmFja0Zvcndh
cmRDYWNoZSA9IHRydWU7CisgICAgfQorfQorCit2b2lkIFdvcmtlcjo6cmVzdW1lKCkKK3sKKyAg
ICBpZiAoaXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1fY29udGV4
dFByb3h5LnJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICAgICAgaXNTdXNwZW5kZWRG
b3JCYWNrRm9yd2FyZENhY2hlID0gZmFsc2U7CisgICAgfQorfQorCiBib29sIFdvcmtlcjo6aGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0UHJveHkuaGFz
UGVuZGluZ0FjdGl2aXR5KCkgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHko
KSB8fCBtX2V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5oCmluZGV4IDRjNTQxMzlhZjhkNTQ1NjJjNTA0YjNmMmZlMTM2MTYwNzVjZDc3YWQuLmUxNTM4
ZGMyZjM0YzQ2Njc5YWJhOTBiZmFkM2EzNTRjODc4ZjVlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaApAQCAtODQsNiArODQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQo
KSBmaW5hbDsKIAogICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwogICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIHN0YXRp
YyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSk7CkBAIC05NSw2ICs5Nyw3
IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzPiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKICAgICBNb25v
dG9uaWNUaW1lIG1fd29ya2VyQ3JlYXRpb25UaW1lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OworICAgIGJvb2wgaXNTdXNw
ZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlIHsgZmFsc2UgfTsKICAgICBKU0M6OlJ1bnRpbWVGbGFn
cyBtX3J1bnRpbWVGbGFnczsKICAgICBVbmlxdWVSZWY8R2VuZXJpY0V2ZW50UXVldWU+IG1fZXZl
bnRRdWV1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oCmluZGV4IDA2NTdkNmVjNzM0MGQ0OGE4MmQ2MGM2NTczODkxYzM0YTc2NmI0YjQu
Ljc0YzY0OGI5Y2M4MDY0MGViNjU3MDkyMGVlMTg2YjgwZjhmY2ZmNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC01Miw2ICs1Miw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGlu
ZSkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKCkgPSAwOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGVQcm94eSgpID0gZGVm
YXVsdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCmluZGV4IGE3N2JiN2U1NjAyMTFiOGI2ZjcwZmZjYWM5OTBlNTg2NjQ1ZTRiNjcuLjZk
ODllODMxYTdhZWE4Y2Y3MzVlZDFmMTdiMmYxM2U2MjgzMzU0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0xMjgsNiArMTI4LDIy
IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxT
Y29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0CiAgICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5h
cHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihXVEZNb3ZlKHRh
c2spKSk7CiB9CiAKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmRGb3JCYWNrRm9y
d2FyZENhY2hlKCkKK3sKKyAgICBpZiAobV93b3JrZXJUaHJlYWQpCisgICAgICAgIG1fd29ya2Vy
VGhyZWFkLT5zdXNwZW5kKCk7CisgICAgZWxzZQorICAgICAgICBtX2Fza2VkVG9TdXNwZW5kID0g
dHJ1ZTsKK30KKwordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cmVzdW1lRm9yQmFja0Zvcndh
cmRDYWNoZSgpCit7CisgICAgaWYgKG1fd29ya2VyVGhyZWFkKQorICAgICAgICBtX3dvcmtlclRo
cmVhZC0+cmVzdW1lKCk7CisgICAgZWxzZQorICAgICAgICBtX2Fza2VkVG9TdXNwZW5kID0gZmFs
c2U7Cit9CisKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2spCiB7CiAgICAgLy8gRklYTUU6IEluIGNh
c2Ugb2YgbmVzdGVkIHdvcmtlcnMsIHRoaXMgc2hvdWxkIGdvIGRpcmVjdGx5IHRvIHRoZSByb290
IERvY3VtZW50IGNvbnRleHQuCkBAIC0xOTAsNiArMjA2LDExIEBAIHZvaWQgV29ya2VyTWVzc2Fn
aW5nUHJveHk6OndvcmtlclRocmVhZENyZWF0ZWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB3b3Jr
ZXJUaHJlCiAgICAgICAgIC8vIFdvcmtlci50ZXJtaW5hdGUoKSBjb3VsZCBiZSBjYWxsZWQgZnJv
bSBKUyBiZWZvcmUgdGhlIHRocmVhZCB3YXMgY3JlYXRlZC4KICAgICAgICAgbV93b3JrZXJUaHJl
YWQtPnN0b3AobnVsbHB0cik7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fYXNrZWRUb1N1
c3BlbmQpIHsKKyAgICAgICAgICAgIG1fYXNrZWRUb1N1c3BlbmQgPSBmYWxzZTsKKyAgICAgICAg
ICAgIG1fd29ya2VyVGhyZWFkLT5zdXNwZW5kKCk7CisgICAgICAgIH0KKwogICAgICAgICBBU1NF
UlQoIW1fdW5jb25maXJtZWRNZXNzYWdlQ291bnQpOwogICAgICAgICBtX3VuY29uZmlybWVkTWVz
c2FnZUNvdW50ID0gbV9xdWV1ZWRFYXJseVRhc2tzLnNpemUoKTsKICAgICAgICAgbV93b3JrZXJU
aHJlYWRIYWRQZW5kaW5nQWN0aXZpdHkgPSB0cnVlOyAvLyBXb3JrZXIgaW5pdGlhbGl6YXRpb24g
bWVhbnMgYSBwZW5kaW5nIGFjdGl2aXR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGVkMTdmYzMyZmE5M2Q4ODk0Njg5ODUyZTJiYjhmODAx
N2E5ZmEyN2IuLmZkNTU0ZTE0MTJmZTg2NWIwOTEyNjA2ZWEzNzA4YWJmZDU3NDE3ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTU2LDYg
KzU2LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgdm9pZCBu
b3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkgZmluYWw7CisgICAgdm9pZCBz
dXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lRm9yQmFj
a0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCiAgICAgLy8gSW1wbGVtZW50YXRpb24gb2YgV29ya2Vy
T2JqZWN0UHJveHkuCiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29y
a2VyIGNvbnRleHQgdGhyZWFkLikKQEAgLTk2LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX3VuY29uZmlybWVkTWVzc2FnZUNvdW50IHsgMCB9OyAvLyBVbmNvbmZpcm1lZCBtZXNz
YWdlcyBmcm9tIHdvcmtlciBvYmplY3QgdG8gd29ya2VyIHRocmVhZC4KICAgICBib29sIG1fd29y
a2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5IHsgZmFsc2UgfTsgLy8gVGhlIGxhdGVzdCBjb25m
aXJtYXRpb24gZnJvbSB3b3JrZXIgdGhyZWFkIHJlcG9ydGVkIHRoYXQgaXQgd2FzIHN0aWxsIGFj
dGl2ZS4KIAorICAgIGJvb2wgbV9hc2tlZFRvU3VzcGVuZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2Fza2VkVG9UZXJtaW5hdGUgeyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPj4gbV9xdWV1ZWRFYXJseVRhc2tzOyAvLyBU
YXNrcyBhcmUgcXVldWVkIGhlcmUgdW50aWwgdGhlcmUncyBhIHRocmVhZCBvYmplY3QgY3JlYXRl
ZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCAxOWQwM2ExMTUz
NDI3Y2NlMjAzMmFiZjIwYjIyNjkxNzIzZTIwYWY5Li4yNzViNWVlYTI3NjljYzhmZjhhNjkwOTlh
ZmEzMGFiN2QzMTI1NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CkBAIC0yNjUsNiArMjY1LDIxIEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQog
ICAgIG1fcnVuTG9vcC5ydW4obV93b3JrZXJHbG9iYWxTY29wZS5nZXQoKSk7CiB9CiAKK3ZvaWQg
V29ya2VyVGhyZWFkOjpzdXNwZW5kKCkKK3sKKyAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKKyAg
ICBydW5Mb29wKCkucG9zdFRhc2soWyZdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAg
ICAgIG1fc3VzcGVuc2lvblNlbWFwaG9yZS53YWl0KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29y
a2VyVGhyZWFkOjpyZXN1bWUoKQoreworICAgIEFTU0VSVChtX2lzU3VzcGVuZGVkKTsKKyAgICBt
X2lzU3VzcGVuZGVkID0gZmFsc2U7CisgICAgbV9zdXNwZW5zaW9uU2VtYXBob3JlLnNpZ25hbCgp
OworfQorCiB2b2lkIFdvcmtlclRocmVhZDo6c3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBz
dG9wcGVkQ2FsbGJhY2spCiB7CiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3Nhcnkg
dG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24ndCBjaGFuZ2VkIGJ5CkBAIC0y
ODAsNiArMjk1LDEwIEBAIHZvaWQgV29ya2VyVGhyZWFkOjpzdG9wKFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8v
IElmIHRoZSB0aHJlYWQgaXMgc3VzcGVuZGVkLCByZXN1bWUgaXQgbm93IHNvIHRoYXQgd2UgY2Fu
IGRpc3BhdGNoIHRoZSBjbGVhbnVwIHRhc2tzIGJlbG93LgorICAgIGlmIChtX2lzU3VzcGVuZGVk
KQorICAgICAgICByZXN1bWUoKTsKKwogICAgIEFTU0VSVCghbV9zdG9wcGVkQ2FsbGJhY2spOwog
ICAgIG1fc3RvcHBlZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBjZDZjNzhkODVlMzNkOWY2MDQ0Nzg4
ZjBjOWJiYzUyNThjMDNhNTQzLi4xNGVlYmYxNDUxOGVjYTZiZjI3MWY0NTNhMDUzNTJhNjUxZDY3
MjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5
U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjMsNiArNjQsOSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGVybWluYXRl
ZENhbGxiYWNrKTsKIAorICAgIHZvaWQgc3VzcGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7CisK
ICAgICBUaHJlYWQqIHRocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkLmdldCgpOyB9CiAg
ICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCgpIHsgcmV0dXJuIG1fcnVuTG9vcDsgfQogICAgIFdv
cmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29y
a2VyTG9hZGVyUHJveHk7IH0KQEAgLTEzMyw2ICsxMzcsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKIAogICAgIFdURjo6RnVuY3Rpb248
dm9pZCgpPiBtX3N0b3BwZWRDYWxsYmFjazsKKyAgICBCaW5hcnlTZW1hcGhvcmUgbV9zdXNwZW5z
aW9uU2VtYXBob3JlOworICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWZhYTBiNWZkYzI5MDYyYmJmYzdiNjI4NGM1
YmQxOTI1ODk1YTY3NC4uYzhjOThmN2JjYjRmOTVmNGExMmFiZjEwNGNkNTc2MTA1YWExNWE4ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBkZWRpY2F0ZWQgd29ya2VyIHRocmVhZHMgd2hp
bGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjQ0
NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgRXh0
ZW5kIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jlc291
cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanM6IEFkZGVkLgorICAgICAgICAob25tZXNzYWdlKToK
KyAgICAgICAgKHNldEludGVydmFsKToKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXBh
Z2UtY2FjaGUuaHRtbDoKKwogMjAxOS0xMC0yMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1zZXRJbnRlcnZhbC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMWUzZDk5ZTllMGZjODAxNjk0YmI3NDI4MWRkOTA2ODY1NjMxZjdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItc2V0
SW50ZXJ2YWwuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gb25tZXNzYWdlKGV2dCkKK3sK
KyAgICBwb3N0TWVzc2FnZSgiU1VDQ0VTUyIpOworfQorCitsZXQgaSA9IDA7CitzZXRJbnRlcnZh
bCgoKSA9PiB7CisgICAgcG9zdE1lc3NhZ2UoIiIgKyBpKTsKKyAgICBpKys7Cit9LCAwKTsKKwor
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIG9ubWVzc2FnZSwgdHJ1ZSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sCmluZGV4IDE0MTYzMWVm
NjJjNTY3NzQ0ZDlhODU3OGU1Y2U4ZGE0YWQwN2M0ZGEuLmQ0YWM5MGVlNzAwNjhlMDM2NjMyYmY4
OTA0NGNkODkyYWZhNzY1ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93
b3JrZXItcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3Jr
ZXItcGFnZS1jYWNoZS5odG1sCkBAIC0yNiwxMSArMjYsMTAgQEAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKIH0pOwogCiBsZXQgZmlyc3RNZXNz
YWdlID0gdHJ1ZTsKK2xldCBtZXNzYWdlQ291bnRBZnRlclJlc3VtZSA9IDA7CiBvbmxvYWQgPSAo
KSA9PiB7Ci0gICAgd29ya2VyID0gbmV3IFdvcmtlcigncmVzb3VyY2VzL3dvcmtlci1ldmVudC1s
aXN0ZW5lci5qcycpOwotICAgIHNldEludGVydmFsKCgpID0+IHsKLSAgICAgICAgd29ya2VyLnBv
c3RNZXNzYWdlKCIiKTsKLSAgICB9LCAxKTsKKyAgICB3b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNv
dXJjZXMvd29ya2VyLXNldEludGVydmFsLmpzJyk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCIi
KTsKIAogICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKICAgICAgICAgaWYg
KGZpcnN0TWVzc2FnZSkgewpAQCAtNDAsOSArMzksMTIgQEAgb25sb2FkID0gKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXN0b3JlZEZyb21QYWdl
Q2FjaGUpIHsKLSAgICAgICAgICAgIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOwotICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2FnZSBhZnRlciByZXN0b3JpbmcgZnJv
bSBwYWdlIGNhY2hlLiIpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICBtZXNzYWdlQ291bnRBZnRlclJlc3VtZSsrOworICAgICAgICAgICAgaWYgKG1lc3NhZ2VDb3Vu
dEFmdGVyUmVzdW1lID09IDEwKSB7CisgICAgICAgICAgICAgICAgcmVzdG9yZWRGcm9tUGFnZUNh
Y2hlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2Fn
ZSBhZnRlciByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLiIpOworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381503</attachid>
            <date>2019-10-21 20:29:16 -0700</date>
            <delta_ts>2019-10-21 21:51:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203186-20191021202902.patch</filename>
            <type>text/plain</type>
            <size>11687</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYzNGQ0YzdhMTY2Mzll
NzRjYTcyYzk5YzdmMDQxYTVkODdjZTdmNi4uZDcxYWQzMThmYThkNDcxMWZjN2JhOWYxOGU3NDM4
OTE0ZDhkMWU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBkZWRpY2F0ZWQg
d29ya2VyIHRocmVhZHMgd2hpbGUgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTg2CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NjQ0NzQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCisKKyAgICAgICAgV2hlbiBhIHBhZ2Ugd2l0aCBhIChkZWRpY2F0ZWQpIFdvcmtlciBlbnRl
cnMgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2Ugbm93CisgICAgICAgIHBhdXNlIHRoZSB3b3Jr
ZXIgdGhyZWFkLCBhbmQgcmVzdW1lIGl0IG9ubHkgd2hlbiB0YWtpbmcgdGhlIHBhZ2Ugb3V0IG9m
IHRoZQorICAgICAgICBiYWNrL2ZvcndhcmQgY2FjaGUuIFRoaXMgYXZvaWRzIGhhdmluZyB0aGUg
d29ya2VyIHVzZSBDUFUgd2hpbGUgdGhlIHBhZ2UgaXMKKyAgICAgICAgaW4gdGhlIGNhY2hlLgor
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6cmVzdW1lKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQ
cm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN1c3BlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyVGhyZWFkQ3JlYXRlZCk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhyZWFk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OnN0b3ApOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisKIDIwMTkt
MTAtMjEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIE1l
ZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIERvbGJ5VmlzaW9uIGNvZGVjcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmNwcAppbmRleCAwZjUwNzhlODgyZWE0NzBmMTU1MTRkODJmOTZhMjE2Njk3
MWU4ODNhLi5iM2FhNzA4ZjhmMmYxNzVjYzc3OTNjNjA3YzgwMWM0ZTU3MGI0ZGJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0xNjAsNiArMTYwLDIyIEBAIHZvaWQgV29ya2VyOjpz
dG9wKCkKICAgICB0ZXJtaW5hdGUoKTsKIH0KIAordm9pZCBXb3JrZXI6OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNw
ZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAgIG1fY29udGV4dFByb3h5LnN1c3Bl
bmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgICAgIG1faXNTdXNwZW5kZWRGb3JCYWNrRm9y
d2FyZENhY2hlID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyOjpyZXN1bWUoKQorewor
ICAgIGlmIChtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSkgeworICAgICAgICBtX2Nv
bnRleHRQcm94eS5yZXN1bWVGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgICAgIG1faXNTdXNw
ZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlID0gZmFsc2U7CisgICAgfQorfQorCiBib29sIFdvcmtl
cjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0UHJv
eHkuaGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0
aXZpdHkoKSB8fCBtX2V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5oCmluZGV4IDRjNTQxMzlhZjhkNTQ1NjJjNTA0YjNmMmZlMTM2MTYwNzVjZDc3YWQu
LmQ1MmE4MDI5ODFkZjg4NWQ2OTkxZmIwZGRjOTZmMzE2ZjAxYWFhN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuaApAQCAtODQsNiArODQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIHZvaWQgc3VzcGVu
ZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwog
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKIAogICAg
IHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSk7CkBAIC05NSw2
ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8Q29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzPiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKICAg
ICBNb25vdG9uaWNUaW1lIG1fd29ya2VyQ3JlYXRpb25UaW1lOwogICAgIGJvb2wgbV9zaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgeyBmYWxzZSB9OwogICAgIEpTQzo6UnVu
dGltZUZsYWdzIG1fcnVudGltZUZsYWdzOwogICAgIFVuaXF1ZVJlZjxHZW5lcmljRXZlbnRRdWV1
ZT4gbV9ldmVudFF1ZXVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZVByb3h5LmgKaW5kZXggMDY1N2Q2ZWM3MzQwZDQ4YTgyZDYwYzY1NzM4OTFjMzRh
NzY2YjRiNC4uNzRjNjQ4YjljYzgwNjQwZWI2NTcwOTIwZWUxODZiODBmOGZjZmY3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTUy
LDYgKzUyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJPYmplY3REZXN0cm95
ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29s
IGlzT25saW5lKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEZvckJhY2tGb3J3YXJk
Q2FjaGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZUZvckJhY2tGb3J3YXJkQ2FjaGUo
KSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZVByb3h5
KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKaW5kZXggYTc3YmI3ZTU2MDIxMWI4YjZmNzBmZmNhYzk5MGU1ODY2NDVl
NGI2Ny4uNmQ4OWU4MzFhN2FlYThjZjczNWVkMWYxN2IyZjEzZTYyODMzNTRkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTEyOCw2
ICsxMjgsMjIgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtl
ckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnQKICAgICAgICAgbV9xdWV1ZWRFYXJs
eVRhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFdU
Rk1vdmUodGFzaykpKTsKIH0KIAordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3VzcGVuZEZv
ckJhY2tGb3J3YXJkQ2FjaGUoKQoreworICAgIGlmIChtX3dvcmtlclRocmVhZCkKKyAgICAgICAg
bV93b3JrZXJUaHJlYWQtPnN1c3BlbmQoKTsKKyAgICBlbHNlCisgICAgICAgIG1fYXNrZWRUb1N1
c3BlbmQgPSB0cnVlOworfQorCit2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpyZXN1bWVGb3JC
YWNrRm9yd2FyZENhY2hlKCkKK3sKKyAgICBpZiAobV93b3JrZXJUaHJlYWQpCisgICAgICAgIG1f
d29ya2VyVGhyZWFkLT5yZXN1bWUoKTsKKyAgICBlbHNlCisgICAgICAgIG1fYXNrZWRUb1N1c3Bl
bmQgPSBmYWxzZTsKK30KKwogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tUb0xv
YWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKIHsKICAgICAvLyBGSVhN
RTogSW4gY2FzZSBvZiBuZXN0ZWQgd29ya2VycywgdGhpcyBzaG91bGQgZ28gZGlyZWN0bHkgdG8g
dGhlIHJvb3QgRG9jdW1lbnQgY29udGV4dC4KQEAgLTE5MCw2ICsyMDYsMTEgQEAgdm9pZCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyVGhyZWFkQ3JlYXRlZChEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQmIHdvcmtlclRocmUKICAgICAgICAgLy8gV29ya2VyLnRlcm1pbmF0ZSgpIGNvdWxkIGJlIGNh
bGxlZCBmcm9tIEpTIGJlZm9yZSB0aGUgdGhyZWFkIHdhcyBjcmVhdGVkLgogICAgICAgICBtX3dv
cmtlclRocmVhZC0+c3RvcChudWxscHRyKTsKICAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9h
c2tlZFRvU3VzcGVuZCkgeworICAgICAgICAgICAgbV9hc2tlZFRvU3VzcGVuZCA9IGZhbHNlOwor
ICAgICAgICAgICAgbV93b3JrZXJUaHJlYWQtPnN1c3BlbmQoKTsKKyAgICAgICAgfQorCiAgICAg
ICAgIEFTU0VSVCghbV91bmNvbmZpcm1lZE1lc3NhZ2VDb3VudCk7CiAgICAgICAgIG1fdW5jb25m
aXJtZWRNZXNzYWdlQ291bnQgPSBtX3F1ZXVlZEVhcmx5VGFza3Muc2l6ZSgpOwogICAgICAgICBt
X3dvcmtlclRocmVhZEhhZFBlbmRpbmdBY3Rpdml0eSA9IHRydWU7IC8vIFdvcmtlciBpbml0aWFs
aXphdGlvbiBtZWFucyBhIHBlbmRpbmcgYWN0aXZpdHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggZWQxN2ZjMzJmYTkzZDg4OTQ2ODk4NTJl
MmJiOGY4MDE3YTlmYTI3Yi4uZmQ1NTRlMTQxMmZlODY1YjA5MTI2MDZlYTM3MDhhYmZkNTc0MTdl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApA
QCAtNTYsNiArNTYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCB3b3JrZXJPYmplY3REZXN0cm95ZWQoKSBmaW5hbDsKICAg
ICB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKSBmaW5hbDsKKyAg
ICB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkgZmluYWw7CisgICAgdm9pZCByZXN1
bWVGb3JCYWNrRm9yd2FyZENhY2hlKCkgZmluYWw7CiAKICAgICAvLyBJbXBsZW1lbnRhdGlvbiBv
ZiBXb3JrZXJPYmplY3RQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVuY3Rpb25zIGlu
IHRoZSB3b3JrZXIgY29udGV4dCB0aHJlYWQuKQpAQCAtOTYsNiArOTgsNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fdW5jb25maXJtZWRNZXNzYWdlQ291bnQgeyAwIH07IC8vIFVuY29uZmly
bWVkIG1lc3NhZ2VzIGZyb20gd29ya2VyIG9iamVjdCB0byB3b3JrZXIgdGhyZWFkLgogICAgIGJv
b2wgbV93b3JrZXJUaHJlYWRIYWRQZW5kaW5nQWN0aXZpdHkgeyBmYWxzZSB9OyAvLyBUaGUgbGF0
ZXN0IGNvbmZpcm1hdGlvbiBmcm9tIHdvcmtlciB0aHJlYWQgcmVwb3J0ZWQgdGhhdCBpdCB3YXMg
c3RpbGwgYWN0aXZlLgogCisgICAgYm9vbCBtX2Fza2VkVG9TdXNwZW5kIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fYXNrZWRUb1Rlcm1pbmF0ZSB7IGZhbHNlIH07CiAKICAgICBWZWN0b3I8c3RkOjp1
bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+PiBtX3F1ZXVlZEVhcmx5VGFz
a3M7IC8vIFRhc2tzIGFyZSBxdWV1ZWQgaGVyZSB1bnRpbCB0aGVyZSdzIGEgdGhyZWFkIG9iamVj
dCBjcmVhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDE5
ZDAzYTExNTM0MjdjY2UyMDMyYWJmMjBiMjI2OTE3MjNlMjBhZjkuLjI3NWI1ZWVhMjc2OWNjOGZm
OGE2OTA5OWFmYTMwYWI3ZDMxMjU0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKQEAgLTI2NSw2ICsyNjUsMjEgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50
TG9vcCgpCiAgICAgbV9ydW5Mb29wLnJ1bihtX3dvcmtlckdsb2JhbFNjb3BlLmdldCgpKTsKIH0K
IAordm9pZCBXb3JrZXJUaHJlYWQ6OnN1c3BlbmQoKQoreworICAgIG1faXNTdXNwZW5kZWQgPSB0
cnVlOworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhbJl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IHsKKyAgICAgICAgbV9zdXNwZW5zaW9uU2VtYXBob3JlLndhaXQoKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXb3JrZXJUaHJlYWQ6OnJlc3VtZSgpCit7CisgICAgQVNTRVJUKG1faXNTdXNwZW5kZWQp
OworICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKKyAgICBtX3N1c3BlbnNpb25TZW1hcGhvcmUu
c2lnbmFsKCk7Cit9CisKIHZvaWQgV29ya2VyVGhyZWFkOjpzdG9wKFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKIHsKICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5l
Y2Vzc2FyeSB0byBlbnN1cmUgdGhhdCBtX3dvcmtlckdsb2JhbFNjb3BlIGlzbid0IGNoYW5nZWQg
YnkKQEAgLTI4MCw2ICsyOTUsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnN0b3AoV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgLy8gSWYgdGhlIHRocmVhZCBpcyBzdXNwZW5kZWQsIHJlc3VtZSBpdCBub3cgc28gdGhh
dCB3ZSBjYW4gZGlzcGF0Y2ggdGhlIGNsZWFudXAgdGFza3MgYmVsb3cuCisgICAgaWYgKG1faXNT
dXNwZW5kZWQpCisgICAgICAgIHJlc3VtZSgpOworCiAgICAgQVNTRVJUKCFtX3N0b3BwZWRDYWxs
YmFjayk7CiAgICAgbV9zdG9wcGVkQ2FsbGJhY2sgPSBXVEZNb3ZlKHN0b3BwZWRDYWxsYmFjayk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IGNkNmM3OGQ4NWUzM2Q5
ZjYwNDQ3ODhmMGM5YmJjNTI1OGMwM2E1NDMuLjE0ZWViZjE0NTE4ZWNhNmJmMjcxZjQ1M2EwNTM1
MmE2NTFkNjcyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Myw2ICs2
NCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiB0
ZXJtaW5hdGVkQ2FsbGJhY2spOwogCisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAgdm9pZCByZXN1
bWUoKTsKKwogICAgIFRocmVhZCogdGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWQuZ2V0
KCk7IH0KICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wKCkgeyByZXR1cm4gbV9ydW5Mb29wOyB9
CiAgICAgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5KCkgY29uc3QgeyByZXR1
cm4gbV93b3JrZXJMb2FkZXJQcm94eTsgfQpAQCAtMTMzLDYgKzEzNyw4IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPFNvY2tldFByb3ZpZGVyPiBtX3NvY2tldFByb3ZpZGVyOwogCiAgICAgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+IG1fc3RvcHBlZENhbGxiYWNrOworICAgIEJpbmFyeVNlbWFwaG9yZSBt
X3N1c3BlbnNpb25TZW1hcGhvcmU7CisgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZmFhMGI1ZmRjMjkwNjJiYmZj
N2I2Mjg0YzViZDE5MjU4OTVhNjc0Li5jOGM5OGY3YmNiNGY5NWY0YTEyYWJmMTA0Y2Q1NzYxMDVh
YTE1YThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTAtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIGRlZGljYXRlZCB3b3JrZXIgdGhy
ZWFkcyB3aGlsZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxODYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU2NDQ3NDkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAg
ICAgICBFeHRlbmQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBmYXN0L3dvcmtl
cnMvcmVzb3VyY2VzL3dvcmtlci1zZXRJbnRlcnZhbC5qczogQWRkZWQuCisgICAgICAgIChvbm1l
c3NhZ2UpOgorICAgICAgICAoc2V0SW50ZXJ2YWwpOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy93
b3JrZXItcGFnZS1jYWNoZS5odG1sOgorCiAyMDE5LTEwLTIxICBLYXRlIENoZW5leSAgPGthdGhl
cmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1zZXRJbnRlcnZhbC5q
cyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXNldEludGVydmFs
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIxZTNkOTllOWUwZmM4MDE2OTRiYjc0MjgxZGQ5MDY4NjU2MzFmN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dv
cmtlci1zZXRJbnRlcnZhbC5qcwpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBvbm1lc3NhZ2Uo
ZXZ0KQoreworICAgIHBvc3RNZXNzYWdlKCJTVUNDRVNTIik7Cit9CisKK2xldCBpID0gMDsKK3Nl
dEludGVydmFsKCgpID0+IHsKKyAgICBwb3N0TWVzc2FnZSgiIiArIGkpOworICAgIGkrKzsKK30s
IDApOworCithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgb25tZXNzYWdlLCB0cnVlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKaW5kZXgg
MTQxNjMxZWY2MmM1Njc3NDRkOWE4NTc4ZTVjZThkYTRhZDA3YzRkYS4uZDRhYzkwZWU3MDA2OGUw
MzY2MzJiZjg5MDQ0Y2Q4OTJhZmE3NjU4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTI2LDExICsyNiwxMCBAQCB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgewogfSk7CiAKIGxldCBm
aXJzdE1lc3NhZ2UgPSB0cnVlOworbGV0IG1lc3NhZ2VDb3VudEFmdGVyUmVzdW1lID0gMDsKIG9u
bG9hZCA9ICgpID0+IHsKLSAgICB3b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMvd29ya2Vy
LWV2ZW50LWxpc3RlbmVyLmpzJyk7Ci0gICAgc2V0SW50ZXJ2YWwoKCkgPT4gewotICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UoIiIpOwotICAgIH0sIDEpOworICAgIHdvcmtlciA9IG5ldyBXb3Jr
ZXIoJ3Jlc291cmNlcy93b3JrZXItc2V0SW50ZXJ2YWwuanMnKTsKKyAgICB3b3JrZXIucG9zdE1l
c3NhZ2UoIiIpOwogCiAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewogICAg
ICAgICBpZiAoZmlyc3RNZXNzYWdlKSB7CkBAIC00MCw5ICszOSwxMiBAQCBvbmxvYWQgPSAoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJlc3RvcmVk
RnJvbVBhZ2VDYWNoZSkgewotICAgICAgICAgICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gZmFs
c2U7Ci0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZWNlaXZlZCBtZXNzYWdlIGFmdGVyIHJlc3Rv
cmluZyBmcm9tIHBhZ2UgY2FjaGUuIik7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgIG1lc3NhZ2VDb3VudEFmdGVyUmVzdW1lKys7CisgICAgICAgICAgICBpZiAobWVz
c2FnZUNvdW50QWZ0ZXJSZXN1bWUgPT0gMTApIHsKKyAgICAgICAgICAgICAgICByZXN0b3JlZEZy
b21QYWdlQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZWNlaXZl
ZCBtZXNzYWdlIGFmdGVyIHJlc3RvcmluZyBmcm9tIHBhZ2UgY2FjaGUuIik7CisgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Owog
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>