<?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>200752</bug_id>
          
          <creation_ts>2019-08-14 19:19:16 -0700</creation_ts>
          <short_desc>WebGPU layers don&apos;t show up sometimes</short_desc>
          <delta_ts>2019-08-20 13:40:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Justin Fan">justin_fan</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>justin_fan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1561426</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-14 19:19:16 -0700</bug_when>
    <thetext>WebGPU layers don&apos;t show up sometimes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561428</commentid>
    <comment_count>1</comment_count>
      <attachid>376343</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-14 19:21:02 -0700</bug_when>
    <thetext>Created attachment 376343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561430</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-14 19:21:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/54279821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561433</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-14 19:22:44 -0700</bug_when>
    <thetext>The patch needs to apply, and needs some tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561816</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-15 16:31:24 -0700</bug_when>
    <thetext>Have patch that applies and fix does work but working on making a simple test case to expose the original issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562843</commentid>
    <comment_count>5</comment_count>
      <attachid>376717</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-19 16:37:46 -0700</bug_when>
    <thetext>Created attachment 376717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562846</commentid>
    <comment_count>6</comment_count>
      <attachid>376719</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-19 16:46:49 -0700</bug_when>
    <thetext>Created attachment 376719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562847</commentid>
    <comment_count>7</comment_count>
      <attachid>376719</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-08-19 16:49:53 -0700</bug_when>
    <thetext>Comment on attachment 376719
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Reproduction of and writing a test for original issue is non-trivial. 
&gt; +        Deferring test creation in favor of higher priority WebGPU efforts.
&gt; +        Normal WebGPU behavior unaffected and covered by existing tests.

Remove this. You&apos;ll just have to live with the shame and not give excuses :)

&gt; Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.cpp:53
&gt; +        if (renderBox &amp;&amp; renderBox-&gt;hasAcceleratedCompositing())

We might even want to ASSERT(renderBox-&gt;hasAcceleratedCompositing())

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:2515
&gt;  #if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)

Add || ENABLE(WEBGPU)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562848</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-19 16:53:32 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #7)
&gt; Comment on attachment 376719 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=376719&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        Reproduction of and writing a test for original issue is non-trivial. 
&gt; &gt; +        Deferring test creation in favor of higher priority WebGPU efforts.
&gt; &gt; +        Normal WebGPU behavior unaffected and covered by existing tests.
&gt; 
&gt; Remove this. You&apos;ll just have to live with the shame and not give excuses :)
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:2515
&gt; &gt;  #if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)
&gt; 
&gt; Add || ENABLE(WEBGPU)

Addressed! tyvm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562849</commentid>
    <comment_count>9</comment_count>
      <attachid>376720</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-19 16:53:49 -0700</bug_when>
    <thetext>Created attachment 376720
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562850</commentid>
    <comment_count>10</comment_count>
      <attachid>376721</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-19 16:55:21 -0700</bug_when>
    <thetext>Created attachment 376721
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562863</commentid>
    <comment_count>11</comment_count>
      <attachid>376721</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 17:38:02 -0700</bug_when>
    <thetext>Comment on attachment 376721
Patch for landing

Clearing flags on attachment: 376721

Committed r248879: &lt;https://trac.webkit.org/changeset/248879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562864</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 17:38:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562882</commentid>
    <comment_count>13</comment_count>
      <attachid>376721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-19 18:15:32 -0700</bug_when>
    <thetext>Comment on attachment 376721
Patch for landing

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

&gt; Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.cpp:39
&gt; +GPUBasedCanvasRenderingContext::GPUBasedCanvasRenderingContext(CanvasBase&amp; canvas)
&gt; +    : CanvasRenderingContext(canvas)
&gt; +    , ActiveDOMObject(canvas.scriptExecutionContext())
&gt; +{
&gt; +}

What is the rationale behind making this no longer inlined?

&gt; Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.h:56
&gt; +    GPUBasedCanvasRenderingContext(CanvasBase&amp;);

This should be marked explicit (not a new thing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563166</commentid>
    <comment_count>14</comment_count>
      <attachid>376721</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-20 11:54:48 -0700</bug_when>
    <thetext>Comment on attachment 376721
Patch for landing

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

&gt;&gt; Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.cpp:39
&gt;&gt; +}
&gt; 
&gt; What is the rationale behind making this no longer inlined?

I wasn&apos;t the one who first made this change, but the way I understand it, unless there&apos;s a measurable run-time performance benefit, putting implementation of class methods in .cpp is safer for better compile behavior. Before this patch there was no cpp file for the header.

&gt;&gt; Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.h:56
&gt;&gt; +    GPUBasedCanvasRenderingContext(CanvasBase&amp;);
&gt; 
&gt; This should be marked explicit (not a new thing).

Addressing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563176</commentid>
    <comment_count>15</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-20 12:05:23 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563177</commentid>
    <comment_count>16</comment_count>
      <attachid>376788</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-20 12:05:24 -0700</bug_when>
    <thetext>Created attachment 376788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563217</commentid>
    <comment_count>17</comment_count>
      <attachid>376788</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-20 13:40:38 -0700</bug_when>
    <thetext>Comment on attachment 376788
Patch

Clearing flags on attachment: 376788

Committed r248915: &lt;https://trac.webkit.org/changeset/248915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563218</commentid>
    <comment_count>18</comment_count>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2019-08-20 13:40:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376343</attachid>
            <date>2019-08-14 19:21:02 -0700</date>
            <delta_ts>2019-08-19 16:37:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200752-20190814192101.patch</filename>
            <type>text/plain</type>
            <size>13719</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc0OTE2MDBiZTBhYzA2
MjRhZjA1MDcxZjIwODI3YjNlOWFiYzFkZC4uNGU5Y2RiZTlkMGU4ODQ1ZTQxOWI0YzU2MTdiOTAy
MWI2NTQzNWQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkdQVSBsYXll
cnMgZG9uJ3Qgc2hvdyB1cCBzb21ldGltZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDc1MgorICAgICAgICByZGFyOi8vcHJvYmxlbS81NDI3OTgy
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4g
V2ViR1BVIGNyZWF0ZXMgdGhlIGxheWVyIGluIHRoZSBzd2FwIGNoYWluLCBpdCBuZWVkcyB0byBz
ZXQgYSBkaXJ0eSBiaXQgb24gdGhlIFJlbmRlckxheWVyCisgICAgICAgIHRvIHRyaWdnZXIgYSBj
b21wb3NpdGluZyBsYXllciBjb25maWd1cmF0aW9uIHVwZGF0ZSwgYW5kIGl0IG5lZWRzIHRvIHNj
aGVkdWxlIGEgY29tcG9zaXRpbmcgdXBkYXRlLAorICAgICAgICBtdWNoIGFzIHdlIGRvIGZvciB2
aWRlby4KKworICAgICAgICBGYWN0b3Igc29tZSBjb2RlIGludG8gR1BVQmFzZWRDYW52YXNSZW5k
ZXJpbmdDb250ZXh0IHRvIHNoYXJlIGJldHdlZW4gV2ViR0wgYW5kIFdlYkdQVS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L0dQVUNh
bnZhc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29udGV4dDo6Y29u
ZmlndXJlU3dhcENoYWluKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNhbnZhc0NvbnRleHQ6OnJl
c2hhcGUpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9HUFVCYXNlZENhbnZh
c1JlbmRlcmluZ0NvbnRleHQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6R1BVQmFzZWRDYW52YXNSZW5kZXJpbmdD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDo6aHRtbENhbnZhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQ6Om5vdGlmeUNhbnZhc0NvbnRlbnRDaGFuZ2VkKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6R1BVQmFzZWRDYW52YXNSZW5k
ZXJpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6aHRtbENhbnZhcyk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjb250
ZW50Q2hhbmdlZCk6CisKIDIwMTktMDgtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBHUFVCdWZmZXIgc2VlbXMgdG8gYmUgcmVmJ2QgLyBkZXJlZidkIGZyb20g
bXVsdGlwbGUgdGhyZWFkIGNvbmN1cnJlbnRseSBidXQgaXMgbm90IFRocmVhZFNhZmVSZWZDb3Vu
dGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9HUFVDYW52YXND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRl
eHQuY3BwCmluZGV4IGM2YzNiZmRkM2JmZTZjYzQ0NjMxZjIzNjFlZGIyYjMxNTI5N2I1ZDAuLmJk
MjA5NzliNjVlODc1NzRkN2RiNzEwYjVmNzc5ZGE4ZjAyMTVmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3BwCkBAIC02OSw2ICs2
OSw3IEBAIFJlZjxXZWJHUFVTd2FwQ2hhaW4+IEdQVUNhbnZhc0NvbnRleHQ6OmNvbmZpZ3VyZVN3
YXBDaGFpbihjb25zdCBXZWJHUFVTd2FwQ2hhaW5ECiAgICAgICAgICAgICBtX3N3YXBDaGFpbi0+
ZGVzdHJveSgpOwogICAgICAgICAKICAgICAgICAgbV9zd2FwQ2hhaW4gPSBuZXdTd2FwQ2hhaW4u
Y29weVJlZigpOworICAgICAgICBub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCgpOwogICAgIH0K
ICAgICAKICAgICByZXR1cm4gbmV3U3dhcENoYWluOwpAQCAtODUsNiArODYsOCBAQCB2b2lkIEdQ
VUNhbnZhc0NvbnRleHQ6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewogICAgIGlm
IChtX3N3YXBDaGFpbiAmJiBtX3N3YXBDaGFpbi0+c3dhcENoYWluKCkpCiAgICAgICAgIG1fc3dh
cENoYWluLT5zd2FwQ2hhaW4oKS0+cmVzaGFwZSh3aWR0aCwgaGVpZ2h0KTsKKworICAgIG5vdGlm
eUNhbnZhc0NvbnRlbnRDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgR1BVQ2FudmFzQ29udGV4dDo6bWFy
a0xheWVyQ29tcG9zaXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDA3NTc3OWQ4MDdkNjI5YjczMmI2
YTEyOGNlOTI4YzhlYjJiYWIzMTYuLjdkMjZiOTUzZDMyYWE0ZDRlNTA3ZTNmN2FmMTUxZjRjOGUw
OGQ1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjQyLDYgKzEyNDIsNyBAQCBodG1sL2NhbnZhcy9F
WFRGcmFnRGVwdGguY3BwCiBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNwcAogaHRt
bC9jYW52YXMvRVhUc1JHQi5jcHAKIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYy5jcHAKK2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAK
IGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKIGh0bWwvY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCiBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRp
dmVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGE5NDk2NzQ1ZjcwZGEyYmE5MTIyMDZkMTAwMDRkZTJjOGNjY2JmMDAuLjhh
NDczZTA2ODM0NmM4YTkxNDU5NmU5Y2Q0ZmZmYmY1MjE3NDNlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1ODQsNiArNTU4
NCw3IEBACiAJCTBGMTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE1
RUQ1OTFCN0VDN0M1MDBFRERGRUIgLyogV2lsbENoYW5nZURhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbENoYW5nZURhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjE1RUQ1QTFCN0VDN0M1MDBFRERGRUIgLyogV2lsbENoYW5nZURh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lsbENoYW5nZURhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNkJFRDkyMzA0RjA1MzAwQjRBMTY3IC8q
IEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
UFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3JJT1MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxNzc0N0YxMzc4Qjc3MjAwOURBNzZBIC8qIFNj
cm9sbEFuaW1hdG9ySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU2Nyb2xsQW5pbWF0b3JJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MUEwQzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmVsb2NpdHlEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNzA4NCw4ICsxNzA4NSw4IEBACiAJCQkJQzIxQkY3MjAyMUNEODlERDAwMjI3OTc5
IC8qIFdITFNMRW51bWVyYXRpb25EZWZpbml0aW9uLmggKi8sCiAJCQkJQzIxQkY3MjYyMUNEODlF
MzAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXIuaCAqLywKIAkJCQlDMjFCRjcwMjIx
Q0Q4OUM0MDAyMjc5NzkgLyogV0hMU0xFbnVtZXJhdGlvbk1lbWJlckxpdGVyYWwuaCAqLywKLQkJ
CQlDMjFCRjcwQzIxQ0Q4OUNDMDAyMjc5NzkgLyogV0hMU0xFeHByZXNzaW9uLmggKi8sCiAJCQkJ
NTIyRDA3QTMyMkZCQUI0MzAwQjkwNUJFIC8qIFdITFNMRXhwcmVzc2lvbi5jcHAgKi8sCisJCQkJ
QzIxQkY3MEMyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVzc2lvbi5oICovLAogCQkJCUMy
MUJGNzAwMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJvdWdoLmggKi8sCiAJCQkJQzIx
QkY3MzUyMUNEODlGMjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRlcmFsLmggKi8sCiAJCQkJMUNC
NjlCMzgyMURGMDNFMTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5jcHAgKi8sCkBA
IC0xODEwOCw2ICsxODEwOSw3IEBACiAJCQkJNzcyODY5NEIxNEY4ODgyNTAwRjQ4NERDIC8qIEVY
VFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgKi8sCiAJCQkJNzcyODY5NEMxNEY4ODgyNTAw
RjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oICovLAogCQkJCTc3Mjg2OTRE
MTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsICovLAor
CQkJCTBGMTZCRUQ5MjMwNEYwNTMwMEI0QTE2NyAvKiBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuY3BwICovLAogCQkJCTMxMTUxOEZCMUU3OEMxNUYwMEVDNTE0QSAvKiBHUFVCYXNlZENh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAg
LyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk3Qzc5MDNCMDFGODZG
OTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggKi8sCkBAIC0yODYw
MSw2ICsyODYwMyw3IEBACiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNy
eXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2MEYzMkIxREZCQjEwNzAwNDE2
RDZDIC8qIENvbW1vblZNLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzkzRjM0QTFBQTZCQTVFMDBB
OThCQUIgLyogQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NEU5NEQ2MTIyRkYxNThBMDBERDE5MUYgLyogQ29tcGxleExpbmVMYXlvdXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUMyRjRFNzhDMUU0NUMzRUYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QkE1MDkwMUJDRkJEOTUwMEUzNEVGNyAvKiBDb21w
b3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDRGQTE4NTFC
Q0E2QjVBMDA5MUI2RUYgLyogQ29tcG9zZWRUcmVlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApA
QCAtMzA4MTUsNyArMzA4MTgsNiBAQAogCQkJCTFBN0ZBNjE5MEREQTNCM0EwMDI4RjhBNSAvKiBO
ZXR3b3JrU3RhdGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEzRUYzNDQxNjg0RUNG
NDAwMzRDODNGIC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MjY5Mzk3MjQxQTRBNUI2NDAwRTgzNDlEIC8qIE5GQS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTRF
OTRENjEyMkZGMTU4QTAwREQxOTFGIC8qIENvbXBsZXhMaW5lTGF5b3V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyNjkzOTcyMjFBNEE0MTJGMDBFODM0OUQgLyogTkZBTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMjY3NzI2MDExQTVCM0FEOTAwM0MyNEREIC8qIE5GQVRvREZBLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0VGNDNERDBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BV
QmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU0NDZm
NmI4Yzg0NzA5ZTIyZmI0NmI5MzJiYTc5NWE0YWJlNGU4MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJSZW5kZXJCb3guaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHUFVCYXNlZENh
bnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52
YXNCYXNlJiBjYW52YXMpCisgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKKyAg
ICAsIEFjdGl2ZURPTU9iamVjdChjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorewor
fQorCitIVE1MQ2FudmFzRWxlbWVudCogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojpo
dG1sQ2FudmFzKCkgY29uc3QKK3sKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAg
IGlmICghaXM8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKK30KKwor
dm9pZCBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6Om5vdGlmeUNhbnZhc0NvbnRlbnRD
aGFuZ2VkKCkKK3sKKyAgICBpZiAoYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpKSB7CisgICAg
ICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gaHRtbENhbnZhcygpLT5yZW5kZXJCb3goKTsKKyAg
ICAgICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcoKSkKKyAgICAgICAgICAgIHJlbmRlckJveC0+Y29udGVudENoYW5nZWQoQ2FudmFzQ2hhbmdl
ZCk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oCmluZGV4IDdmY2UwOTJhNDA2NGMyYTVhNDJhZGE5MzRjN2VmMTBlOGU1MTFhMTEuLjBlZDdm
YjMyZjZhNmUwNzQ4MjE5YTE1MjJlNWQxYmM2ODU3MDRmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oCkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSFRN
TENhbnZhc0VsZW1lbnQ7CisKIGNsYXNzIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dCA6
IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsK
ICAgICBXVEZfTUFLRV9JU09fTk9OQUxMT0NBVEFCTEUoR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdD
b250ZXh0KTsKIHB1YmxpYzoKQEAgLTUxLDExICs1MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG1hcmtMYXllckNvbXBvc2l0ZWQoKSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBHUFVC
YXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYgY2FudmFzKQotICAgICAgICA6
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQotICAgICAgICAsIEFjdGl2ZURPTU9iamVj
dChjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgIHsKLSAgICB9CisgICAgR1BV
QmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmKTsKKworICAgIEhUTUxDYW52
YXNFbGVtZW50KiBodG1sQ2FudmFzKCkgY29uc3Q7CisgICAgdm9pZCBub3RpZnlDYW52YXNDb250
ZW50Q2hhbmdlZCgpOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHAKaW5kZXggM2VjZTdlZWI3NDJmYWRiNmZlMThiMzNlYjVhNjEzOWNlZDQxYmE1Ni4uMDI0
ZTM2YTRmMjAwOTc1NmFmZWNiMmM5ODgzYTM2NDg5YjFlNzA2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAK
QEAgLTY3NiwxNCArNjc2LDYgQEAgV2ViR0xDYW52YXMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Y2FudmFzKCkKICAgICByZXR1cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNl
KTsKIH0KIAotSFRNTENhbnZhc0VsZW1lbnQqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omh0
bWxDYW52YXMoKQotewotICAgIGF1dG8mIGJhc2UgPSBjYW52YXNCYXNlKCk7Ci0gICAgaWYgKCFp
czxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiAmZG93bmNhc3Q8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpOwotfQotCiBPZmZzY3Jl
ZW5DYW52YXMqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om9mZnNjcmVlbkNhbnZhcygpCiB7
CiAgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKQEAgLTEwODksMTIgKzEwODEsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KQogICAgIGhlaWdodCA9IGNsYW1wKGhlaWdodCwgMSwgbWF4SGVpZ2h0KTsKIAogICAgIGlm
IChtX25lZWRzVXBkYXRlKSB7Ci0gICAgICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsK
LSAgICAgICAgaWYgKGNhbnZhcykgewotICAgICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3gg
PSBodG1sQ2FudmFzKCktPnJlbmRlckJveCgpOwotICAgICAgICAgICAgaWYgKHJlbmRlckJveCAm
JiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAgICAg
ICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQpOwotICAgICAgICB9Cisg
ICAgICAgIG5vdGlmeUNhbnZhc0NvbnRlbnRDaGFuZ2VkKCk7CiAgICAgICAgIG1fbmVlZHNVcGRh
dGUgPSBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCBkMmQwZGI0M2Y5YmYxYjMzMjMz
NTc1MzcwMzVjMGJlNmY3OTkzM2Y3Li43OWZkNGU3ZDMyMDYwOWE0MDE3OGE5NDU5Zjk4NjEzOWRl
ZmQ1ZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC04MzYsNyArODM2LDYgQEAgcHJvdGVjdGVkOgogICAg
IC8vIENoZWNrIGlmIEVYVF9kcmF3X2J1ZmZlcnMgZXh0ZW5zaW9uIGlzIHN1cHBvcnRlZCBhbmQg
aWYgaXQgc2F0aXNmaWVzIHRoZSBXZWJHTCByZXF1aXJlbWVudHMuCiAgICAgYm9vbCBzdXBwb3J0
c0RyYXdCdWZmZXJzKCk7CiAKLSAgICBIVE1MQ2FudmFzRWxlbWVudCogaHRtbENhbnZhcygpOwog
ICAgIE9mZnNjcmVlbkNhbnZhcyogb2Zmc2NyZWVuQ2FudmFzKCk7CiAKICAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gaW5saW5lIE9wdGlvbmFsPFQ+IGNoZWNrZWRBZGRBbmRNdWx0aXBseShUIHZh
bHVlLCBUIGFkZCwgVCBtdWx0aXBseSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDdmMTQzNjZhN2U1NjExMDMzNzIwNzdiZWZlMmE2
MDgzNDJmN2JhNDkuLmFjNDY5OWFiMTdkMDViZDUwN2VkOGUxNGRjZmQ1ZTRhYTdhYzEyMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBA
IC0yNTE0LDYgKzI1MTQsOSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6Y29udGVudENoYW5n
ZWQoQ29udGVudENoYW5nZVR5cGUgY2hhbmdlVHlwZSkKIAogI2lmIEVOQUJMRShXRUJHTCkgfHwg
RU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAoKGNoYW5nZVR5cGUgPT0gQ2Fu
dmFzQ2hhbmdlZCB8fCBjaGFuZ2VUeXBlID09IENhbnZhc1BpeGVsc0NoYW5nZWQpICYmIHJlbmRl
cmVyKCkuaXNDYW52YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKCkp
ID09IENhbnZhc0FzTGF5ZXJDb250ZW50cykgeworICAgICAgICBpZiAoY2hhbmdlVHlwZSA9PSBD
YW52YXNDaGFuZ2VkKQorICAgICAgICAgICAgY29tcG9zaXRvcigpLnNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllclVwZGF0ZSgpOworCiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNO
ZWVkc0Rpc3BsYXkoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376717</attachid>
            <date>2019-08-19 16:37:46 -0700</date>
            <delta_ts>2019-08-19 16:46:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200752-20190819163746.patch</filename>
            <type>text/plain</type>
            <size>13226</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwYjRmNGU2ODE0MDU0
OWIzMGU0NjNiNzMxNTZhODcyODk5MzFiMy4uZmM4MGUyZjYwMDdmMWNkN2EzY2IyYWFkMTE3NDIz
ZmIzYmRmMTEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA4LTE5ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR1BVIGxheWVycyBk
b24ndCBzaG93IHVwIHNvbWV0aW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwNzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRW5zdXJlIEhUTUwgY2FudmFzIGlzIHByb3Blcmx5IG5vdGlmaWVkIG9m
IFdlYkdQVSB1cGRhdGVzLiBGaXhlcyBhbHBoYSBXZWJHUFUgTW90aW9uTWFyayBiZW5jaG1hcmsg
bm8tc2hvdyBpc3N1ZS4KKworICAgICAgICBSZXByb2R1Y3Rpb24gb2YgYW5kIHdyaXRpbmcgYSB0
ZXN0IGZvciBvcmlnaW5hbCBpc3N1ZSBpcyBub24tdHJpdmlhbC4gCisgICAgICAgIERlZmVycmlu
ZyB0ZXN0IGNyZWF0aW9uIGluIGZhdm9yIG9mIGhpZ2hlciBwcmlvcml0eSBXZWJHUFUgZWZmb3J0
cy4KKyAgICAgICAgTm9ybWFsIFdlYkdQVSBiZWhhdmlvciB1bmFmZmVjdGVkIGFuZCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFz
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDYW52YXNDb250ZXh0Ojpjb25maWd1
cmVTd2FwQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29udGV4dDo6cmVzaGFw
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xOYXRpdmVGdW5j
dGlvbldyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TWV0YWw6OmlubGluZU5h
dGl2ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9jYW52YXMvR1BVQmFz
ZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpH
UFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6
Omh0bWxDYW52YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmFzZWRDYW52YXNSZW5k
ZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6Omh0bWxDYW52YXMpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y29udGVu
dENoYW5nZWQpOgorCiAyMDE5LTA4LTE1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGBjb25zb2xlLnNjcmVlbnNob3Rg
IHdpdGggZGV0YWNoZWQgPGNhbnZhcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKaW5kZXggYzZjM2JmZGQzYmZlNmNjNDQ2MzFmMjM2
MWVkYjJiMzE1Mjk3YjVkMC4uYmQyMDk3OWI2NWU4NzU3NGQ3ZGI3MTBiNWY3NzlkYThmMDIxNWY2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29u
dGV4dC5jcHAKQEAgLTY5LDYgKzY5LDcgQEAgUmVmPFdlYkdQVVN3YXBDaGFpbj4gR1BVQ2FudmFz
Q29udGV4dDo6Y29uZmlndXJlU3dhcENoYWluKGNvbnN0IFdlYkdQVVN3YXBDaGFpbkQKICAgICAg
ICAgICAgIG1fc3dhcENoYWluLT5kZXN0cm95KCk7CiAgICAgICAgIAogICAgICAgICBtX3N3YXBD
aGFpbiA9IG5ld1N3YXBDaGFpbi5jb3B5UmVmKCk7CisgICAgICAgIG5vdGlmeUNhbnZhc0NvbnRl
bnRDaGFuZ2VkKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBuZXdTd2FwQ2hhaW47CkBAIC04
NSw2ICs4Niw4IEBAIHZvaWQgR1BVQ2FudmFzQ29udGV4dDo6cmVzaGFwZShpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpCiB7CiAgICAgaWYgKG1fc3dhcENoYWluICYmIG1fc3dhcENoYWluLT5zd2FwQ2hh
aW4oKSkKICAgICAgICAgbV9zd2FwQ2hhaW4tPnN3YXBDaGFpbigpLT5yZXNoYXBlKHdpZHRoLCBo
ZWlnaHQpOworCisgICAgbm90aWZ5Q2FudmFzQ29udGVudENoYW5nZWQoKTsKIH0KIAogdm9pZCBH
UFVDYW52YXNDb250ZXh0OjptYXJrTGF5ZXJDb21wb3NpdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZlRnVuY3Rpb25X
cml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hM
U0xOYXRpdmVGdW5jdGlvbldyaXRlci5jcHAKaW5kZXggNTQ5NDZhMDdkN2ZmZjUzNTBlYjk2NDBj
NWY1NTdiYTczNjg3ZTEwYS4uOGU1ZGU4MGE4Zjc3YjhlOTYyOWMwNjkzNTZhNTgzNmViNzY1YTIw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwv
V0hMU0xOYXRpdmVGdW5jdGlvbldyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xOYXRpdmVGdW5jdGlvbldyaXRlci5jcHAKQEAgLTI1
Myw3ICsyNTMsNiBAQCB2b2lkIGlubGluZU5hdGl2ZUZ1bmN0aW9uKFN0cmluZ0J1aWxkZXImIHN0
cmluZ0J1aWxkZXIsIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYQogICAgICAgICBhdXRvJiB0eXBl
UmVmZXJlbmNlID0gZG93bmNhc3Q8QVNUOjpUeXBlUmVmZXJlbmNlPigqbmF0aXZlRnVuY3Rpb25E
ZWNsYXJhdGlvbi5wYXJhbWV0ZXJzKClbMF0tPnR5cGUoKSk7CiAgICAgICAgIGF1dG8mIHZlY3Rv
clR5cGUgPSBkb3duY2FzdDxBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbj4oZG93bmNhc3Q8QVNU
OjpUeXBlUmVmZXJlbmNlPihkb3duY2FzdDxBU1Q6OlR5cGVEZWZpbml0aW9uPih0eXBlUmVmZXJl
bmNlLnJlc29sdmVkVHlwZSgpKS50eXBlKCkpLnJlc29sdmVkVHlwZSgpKTsKICAgICAgICAgQVNT
RVJUKHZlY3RvclR5cGUubmFtZSgpID09ICJ2ZWN0b3IiKTsKLSAgICAgICAgQVNTRVJUKG1hdHJp
eFR5cGUudHlwZUFyZ3VtZW50cygpLnNpemUoKSA9PSAyKTsKICAgICAgICAgcmV0dXJuIFdURjo6
Z2V0PEFTVDo6Q29uc3RhbnRFeHByZXNzaW9uPih2ZWN0b3JUeXBlLnR5cGVBcmd1bWVudHMoKVsx
XSkuaW50ZWdlckxpdGVyYWwoKS52YWx1ZSgpOwogICAgIH07CiAgICAgYXV0byBtYXRyaXhEaW1l
bnNpb24gPSBbJl0gKHVuc2lnbmVkIHR5cGVBcmd1bWVudEluZGV4KSAtPiB1bnNpZ25lZCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGNhNDYxNDIzNjUwMTI2NzRiYWRkMGQzNWE4NGQwMDIyOTFkNTc1MDYu
LmQ5Njk2ZmFlYmI4ODUyNDJkN2E1NjljNWY5MTg3OWU1ZjNhZjAyYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0xMjQyLDYgKzEyNDIsNyBAQCBodG1sL2NhbnZhcy9FWFRGcmFnRGVwdGguY3BwCiBodG1s
L2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNwcAogaHRtbC9jYW52YXMvRVhUc1JHQi5jcHAK
IGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAKK2h0bWwvY2FudmFz
L0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKIGh0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQu
Y3BwCiBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5NTdiYWJj
OTdiMTcxMDRhNDQ1MzVlNDM4M2ZkZmE4YjEyNzQyMDEuLjVlZTg5MDFlZGQ2ZGY1OGZlZGZhYzM5
YTZhZmQwZWRlMDMyOGNjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1ODYsNiArNTU4Niw3IEBACiAJCTBGMTVEQTg5MEYz
QUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE1RUQ1OTFCN0VDN0M1MDBFRERGRUIg
LyogV2lsbENoYW5nZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2lsbENoYW5nZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE1
RUQ1QTFCN0VDN0M1MDBFRERGRUIgLyogV2lsbENoYW5nZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2lsbENoYW5nZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYxNkJFRDkyMzA0RjA1MzAwQjRBMTY3IC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVCYXNlZENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NzQ3RTEzNzhC
NzcxMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3JJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYxNzc0N0YxMzc4Qjc3MjAwOURBNzZBIC8qIFNjcm9sbEFuaW1hdG9ySU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3JJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMUEwQzM2MjI5QTQ4MTgwMEQzN0FE
QiAvKiBWZWxvY2l0eURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmVs
b2NpdHlEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODExMyw2ICsxODEx
NCw3IEBACiAJCQkJNzcyODY5NEIxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYy5jcHAgKi8sCiAJCQkJNzcyODY5NEMxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oICovLAogCQkJCTc3Mjg2OTREMTRGODg4MjUwMEY0ODRE
QyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsICovLAorCQkJCTBGMTZCRUQ5MjMw
NEYwNTMwMEI0QTE2NyAvKiBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwICovLAog
CQkJCTMxMTUxOEZCMUU3OEMxNUYwMEVDNTE0QSAvKiBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaCAqLywKIAkJCQk3Qzc5MDNCMTFGODZGOTVDMDA0NjNBNzAgLyogSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk3Qzc5MDNCMDFGODZGOTVDMDA0NjNBNzAgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NTQ0NmY2YjhjODQ3MDllMjJmYjQ2YjkzMmJhNzk1YTRhYmU0ZTgwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52
YXNSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisKKyNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0dQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6R1BVQmFzZWRDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKKyAgICA6IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQoY2FudmFzKQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGNhbnZhcy5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCit7Cit9CisKK0hUTUxDYW52YXNFbGVtZW50KiBHUFVCYXNlZENhbnZh
c1JlbmRlcmluZ0NvbnRleHQ6Omh0bWxDYW52YXMoKSBjb25zdAoreworICAgIGF1dG8mIGJhc2Ug
PSBjYW52YXNCYXNlKCk7CisgICAgaWYgKCFpczxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAmZG93bmNhc3Q8SFRNTENhbnZhc0Vs
ZW1lbnQ+KGJhc2UpOworfQorCit2b2lkIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6
bm90aWZ5Q2FudmFzQ29udGVudENoYW5nZWQoKQoreworICAgIGlmIChhdXRvKiBjYW52YXMgPSBo
dG1sQ2FudmFzKCkpIHsKKyAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBodG1sQ2FudmFz
KCktPnJlbmRlckJveCgpOworICAgICAgICBpZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAgICAgICAgcmVuZGVyQm94LT5jb250ZW50
Q2hhbmdlZChDYW52YXNDaGFuZ2VkKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggN2ZjZTA5MmE0MDY0YzJhNWE0MmFkYTkzNGM3
ZWYxMGU4ZTUxMWExMS4uMGVkN2ZiMzJmNmE2ZTA3NDgyMTlhMTUyMmU1ZDFiYzY4NTcwNGY3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTMxLDYgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKKwogY2xhc3MgR1BVQmFzZWRDYW52
YXNSZW5kZXJpbmdDb250ZXh0IDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19OT05BTExPQ0FUQUJMRShHUFVC
YXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQpOwogcHVibGljOgpAQCAtNTEsMTEgKzUzLDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFya0xheWVyQ29tcG9zaXRlZCgpID0gMDsKIAog
cHJvdGVjdGVkOgotICAgIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNl
JiBjYW52YXMpCi0gICAgICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCi0gICAg
ICAgICwgQWN0aXZlRE9NT2JqZWN0KGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0g
ICAgewotICAgIH0KKyAgICBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFz
ZSYpOworCisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGh0bWxDYW52YXMoKSBjb25zdDsKKyAgICB2
b2lkIG5vdGlmeUNhbnZhc0NvbnRlbnRDaGFuZ2VkKCk7CiB9OwogICAgIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAzZWNlN2VlYjc0MmZhZGI2ZmUxOGIzM2Vi
NWE2MTM5Y2VkNDFiYTU2Li4wMjRlMzZhNGYyMDA5NzU2YWZlY2IyYzk4ODNhMzY0ODliMWU3MDZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNjc2LDE0ICs2NzYsNiBAQCBXZWJHTENhbnZhcyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW52YXMoKQogICAgIHJldHVybiAmZG93bmNhc3Q8SFRN
TENhbnZhc0VsZW1lbnQ+KGJhc2UpOwogfQogCi1IVE1MQ2FudmFzRWxlbWVudCogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6aHRtbENhbnZhcygpCi17Ci0gICAgYXV0byYgYmFzZSA9IGNhbnZh
c0Jhc2UoKTsKLSAgICBpZiAoIWlzPEhUTUxDYW52YXNFbGVtZW50PihiYXNlKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4o
YmFzZSk7Ci19Ci0KIE9mZnNjcmVlbkNhbnZhcyogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
b2Zmc2NyZWVuQ2FudmFzKCkKIHsKICAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOwpAQCAt
MTA4OSwxMiArMTA4MSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVzaGFw
ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgaGVpZ2h0ID0gY2xhbXAoaGVpZ2h0LCAxLCBt
YXhIZWlnaHQpOwogCiAgICAgaWYgKG1fbmVlZHNVcGRhdGUpIHsKLSAgICAgICAgYXV0byogY2Fu
dmFzID0gaHRtbENhbnZhcygpOwotICAgICAgICBpZiAoY2FudmFzKSB7Ci0gICAgICAgICAgICBS
ZW5kZXJCb3gqIHJlbmRlckJveCA9IGh0bWxDYW52YXMoKS0+cmVuZGVyQm94KCk7Ci0gICAgICAg
ICAgICBpZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZygpKQotICAgICAgICAgICAgICAgIHJlbmRlckJveC0+Y29udGVudENoYW5nZWQoQ2FudmFzQ2hh
bmdlZCk7Ci0gICAgICAgIH0KKyAgICAgICAgbm90aWZ5Q2FudmFzQ29udGVudENoYW5nZWQoKTsK
ICAgICAgICAgbV9uZWVkc1VwZGF0ZSA9IGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4
IGQyZDBkYjQzZjliZjFiMzMyMzM1NzUzNzAzNWMwYmU2Zjc5OTMzZjcuLjc5ZmQ0ZTdkMzIwNjA5
YTQwMTc4YTk0NTlmOTg2MTM5ZGVmZDVkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTgzNiw3ICs4MzYs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gQ2hlY2sgaWYgRVhUX2RyYXdfYnVmZmVycyBleHRlbnNp
b24gaXMgc3VwcG9ydGVkIGFuZCBpZiBpdCBzYXRpc2ZpZXMgdGhlIFdlYkdMIHJlcXVpcmVtZW50
cy4KICAgICBib29sIHN1cHBvcnRzRHJhd0J1ZmZlcnMoKTsKIAotICAgIEhUTUxDYW52YXNFbGVt
ZW50KiBodG1sQ2FudmFzKCk7CiAgICAgT2Zmc2NyZWVuQ2FudmFzKiBvZmZzY3JlZW5DYW52YXMo
KTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgT3B0aW9uYWw8VD4gY2hlY2tl
ZEFkZEFuZE11bHRpcGx5KFQgdmFsdWUsIFQgYWRkLCBUIG11bHRpcGx5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjJlZDZkZDdj
MDI1MmIxOTUzZGUzYmUxNTM5NzFiMTI5YWUxYzc0Yi4uMGVhYWE3Y2FmMWVmYmJiM2MwZmI1OTRm
YjhmYjM2NmY4NTgzZmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKQEAgLTI1MTQsNiArMjUxNCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpjb250ZW50Q2hhbmdlZChDb250ZW50Q2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogCiAj
aWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlm
ICgoY2hhbmdlVHlwZSA9PSBDYW52YXNDaGFuZ2VkIHx8IGNoYW5nZVR5cGUgPT0gQ2FudmFzUGl4
ZWxzQ2hhbmdlZCkgJiYgcmVuZGVyZXIoKS5pc0NhbnZhcygpICYmIGNhbnZhc0NvbXBvc2l0aW5n
U3RyYXRlZ3kocmVuZGVyZXIoKSkgPT0gQ2FudmFzQXNMYXllckNvbnRlbnRzKSB7CisgICAgICAg
IGlmIChjaGFuZ2VUeXBlID09IENhbnZhc0NoYW5nZWQpCisgICAgICAgICAgICBjb21wb3NpdG9y
KCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7CisKICAgICAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRDb250ZW50c05lZWRzRGlzcGxheSgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376719</attachid>
            <date>2019-08-19 16:46:49 -0700</date>
            <delta_ts>2019-08-19 16:53:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200752-20190819164648.patch</filename>
            <type>text/plain</type>
            <size>13987</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYwNTg4ZDA4MDMwYTky
YmVlZDY1MzY5MzYyMTk4Nzg2ZWRlNjUyZi4uODhlYjhmYjU1OGRiMTE3YzI1NTM3YmNmNjlmMGE5
MDEwZjI4MDIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA4LTE5ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR1BVIGxheWVycyBk
b24ndCBzaG93IHVwIHNvbWV0aW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwNzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRW5zdXJlIEhUTUwgY2FudmFzIGlzIHByb3Blcmx5IG5vdGlmaWVkIG9m
IFdlYkdQVSB1cGRhdGVzLiBGaXhlcyBhbHBoYSBXZWJHUFUgTW90aW9uTWFyayBiZW5jaG1hcmsg
bm8tc2hvdyBpc3N1ZS4KKworICAgICAgICBSZXByb2R1Y3Rpb24gb2YgYW5kIHdyaXRpbmcgYSB0
ZXN0IGZvciBvcmlnaW5hbCBpc3N1ZSBpcyBub24tdHJpdmlhbC4gCisgICAgICAgIERlZmVycmlu
ZyB0ZXN0IGNyZWF0aW9uIGluIGZhdm9yIG9mIGhpZ2hlciBwcmlvcml0eSBXZWJHUFUgZWZmb3J0
cy4KKyAgICAgICAgTm9ybWFsIFdlYkdQVSBiZWhhdmlvciB1bmFmZmVjdGVkIGFuZCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFz
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDYW52YXNDb250ZXh0Ojpjb25maWd1
cmVTd2FwQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29udGV4dDo6cmVzaGFw
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xOYXRpdmVGdW5j
dGlvbldyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TWV0YWw6OmlubGluZU5h
dGl2ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9jYW52YXMvR1BVQmFz
ZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpH
UFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6
Omh0bWxDYW52YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmFzZWRDYW52YXNSZW5k
ZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6Omh0bWxDYW52YXMpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y29udGVu
dENoYW5nZWQpOgorCiAyMDE5LTA4LTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBJREItc3BlY2lmaWMgcXVvdGEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKaW5kZXggYzZjM2JmZGQz
YmZlNmNjNDQ2MzFmMjM2MWVkYjJiMzE1Mjk3YjVkMC4uYmQyMDk3OWI2NWU4NzU3NGQ3ZGI3MTBi
NWY3NzlkYThmMDIxNWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKQEAgLTY5LDYgKzY5LDcgQEAgUmVmPFdlYkdQVVN3YXBD
aGFpbj4gR1BVQ2FudmFzQ29udGV4dDo6Y29uZmlndXJlU3dhcENoYWluKGNvbnN0IFdlYkdQVVN3
YXBDaGFpbkQKICAgICAgICAgICAgIG1fc3dhcENoYWluLT5kZXN0cm95KCk7CiAgICAgICAgIAog
ICAgICAgICBtX3N3YXBDaGFpbiA9IG5ld1N3YXBDaGFpbi5jb3B5UmVmKCk7CisgICAgICAgIG5v
dGlmeUNhbnZhc0NvbnRlbnRDaGFuZ2VkKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBuZXdT
d2FwQ2hhaW47CkBAIC04NSw2ICs4Niw4IEBAIHZvaWQgR1BVQ2FudmFzQ29udGV4dDo6cmVzaGFw
ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgaWYgKG1fc3dhcENoYWluICYmIG1fc3dh
cENoYWluLT5zd2FwQ2hhaW4oKSkKICAgICAgICAgbV9zd2FwQ2hhaW4tPnN3YXBDaGFpbigpLT5y
ZXNoYXBlKHdpZHRoLCBoZWlnaHQpOworCisgICAgbm90aWZ5Q2FudmFzQ29udGVudENoYW5nZWQo
KTsKIH0KIAogdm9pZCBHUFVDYW52YXNDb250ZXh0OjptYXJrTGF5ZXJDb21wb3NpdGVkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggMjNlMGQzZjcwMTE1MWVmNTM3YzZmNzllM2NmNTFhYzNiN2U5MmNlZS4u
MGEzOGRkNDZjN2Q0NTk0MDQ4YmNlZmY0OWJlZGEzODY4YmQyOTVkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTEyNDEsNiArMTI0MSw3IEBAIGh0bWwvY2FudmFzL0VYVEZyYWdEZXB0aC5jcHAKIGh0bWwv
Y2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCiBodG1sL2NhbnZhcy9FWFRzUkdCLmNwcAog
aHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAoraHRtbC9jYW52YXMv
R1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52YXMvSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5j
cHAKIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzRiOTgyYmVk
MDFkMzNmNTU1NGJiN2UzMTdhMGQyMjA2MTEzZjg2NC4uYjRhYjUwOTMwZDI0NTUyMWQwYzAyNWVi
OGE1ODc0MzBkMzQ5NDAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU4MSw2ICs1NTgxLDcgQEAKIAkJMEYxNURBODkwRjNB
QUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTVFRDU5MUI3RUM3QzUwMEVEREZFQiAv
KiBXaWxsQ2hhbmdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaWxsQ2hhbmdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTVF
RDVBMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXaWxsQ2hhbmdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjE2QkVEOTIzMDRGMDUzMDBCNEExNjcgLyogR1BVQmFzZWRDYW52YXNSZW5kZXJp
bmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5n
Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTc3NDdFMTM3OEI3
NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRvcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURC
IC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZWxv
Y2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTA2LDYgKzE4MTA3
LDcgQEAKIAkJCQk3NzI4Njk0QjE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk0QzE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNzcyODY5NEQxNEY4ODgyNTAwRjQ4NERD
IC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgKi8sCisJCQkJMEYxNkJFRDkyMzA0
RjA1MzAwQjRBMTY3IC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5oICovLAogCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCTdDNzkwM0IwMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKQEAgLTE4NTQ4LDE0ICsxODU1MCwxNCBA
QAogCQk1MTBBNThFRTFCQUI3MUUwMDBDMTkyODIgLyogc2VydmVyICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5MzIzQjA2RDIzMDYxRTlCMDA5MDFDOEIg
LyogSURCU2VyaWFsaXphdGlvbkNvbnRleHQuY3BwICovLAotCQkJCTkzMjNCMDZGMjMwNjFFOUMw
MDkwMUM4QiAvKiBJREJTZXJpYWxpemF0aW9uQ29udGV4dC5oICovLAogCQkJCTUxQkE0QUM3MUJC
QzVBRDYwMERGM0Q2RCAvKiBJREJCYWNraW5nU3RvcmUuaCAqLywKIAkJCQk1MTZEN0Q2RDFCQjVG
MDY1MDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCAqLywKIAkJCQk1MTBBNThG
RTFCQjA3QUE1MDBDMTkyODIgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmggKi8sCiAJCQkJNTE2
RDdENkUxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgg
Ki8sCiAJCQkJNTExRUMxMjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uY3Bw
ICovLAogCQkJCTUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmgg
Ki8sCisJCQkJOTMyM0IwNkQyMzA2MUU5QjAwOTAxQzhCIC8qIElEQlNlcmlhbGl6YXRpb25Db250
ZXh0LmNwcCAqLywKKwkJCQk5MzIzQjA2RjIzMDYxRTlDMDA5MDFDOEIgLyogSURCU2VyaWFsaXph
dGlvbkNvbnRleHQuaCAqLywKIAkJCQk1MTBBNThFRjFCQUI3MjBGMDBDMTkyODIgLyogSURCU2Vy
dmVyLmNwcCAqLywKIAkJCQk1MTBBNThGMDFCQUI3MjBGMDBDMTkyODIgLyogSURCU2VydmVyLmgg
Ki8sCiAJCQkJNTFFRUFBNzExQkVGRkE3OTAwMjE4MDA4IC8qIEluZGV4VmFsdWVFbnRyeS5jcHAg
Ki8sCkBAIC0yOTUyNiw2ICsyOTUyOCw3IEBACiAJCQkJNTE0NUIxMEExQkM0OEUyRTAwRTg2MjE5
IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFENzIzNkQx
QkI2MTc0OTAwNDc4Q0EzIC8qIElEQlJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MUVDMTI4MUM1MEFBQ0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzIzQjA3MDIzMDYxRjk3MDA5MDFDOEIgLyogSURCU2VyaWFsaXphdGlvbkNvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0JCMUJCNENCRjgwMDEyODk4RiAvKiBJREJT
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0FEMUJCNEM0RTgwMDEyODk4RiAvKiBJ
REJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5OEY3QUQxQkJERDNFQjAwRTJD
QzVGIC8qIElEQlRyYW5zYWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTk5OSw3ICsz
MDAwMiw2IEBACiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTk4MEExQ0REMkQwMEI0MkIyNSAvKiBK
U0hUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU3RTk3MEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzMjNC
MDcwMjMwNjFGOTcwMDkwMUM4QiAvKiBJREJTZXJpYWxpemF0aW9uQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODM2QjA5NTYxRjVGMzREOTAwM0MzNzAyIC8qIEpTSFRNTElucHV0RWxlbWVu
dEVudHJpZXNBUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2MTQ4QTc5MTJFNDFFM0IwMDQ0QTc4
NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyQUIyMjBB
MUNFNjNCMDBCNDJCMjUgLyogSlNIVE1MTGFiZWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZh
c1JlbmRlcmluZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NDQ2ZjZiOGM4NDcwOWUyMmZiNDZi
OTMyYmE3OTVhNGFiZTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aCIKKworI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyQm94
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250
ZXh0OjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYgY2FudmFzKQor
ICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCisgICAgLCBBY3RpdmVET01PYmpl
Y3QoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKK3sKK30KKworSFRNTENhbnZhc0Vs
ZW1lbnQqIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6aHRtbENhbnZhcygpIGNvbnN0
Cit7CisgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAoIWlzPEhUTUxDYW52
YXNFbGVtZW50PihiYXNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZk
b3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7Cit9CisKK3ZvaWQgR1BVQmFzZWRDYW52
YXNSZW5kZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCgpCit7CisgICAg
aWYgKGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKSkgeworICAgICAgICBSZW5kZXJCb3gqIHJl
bmRlckJveCA9IGh0bWxDYW52YXMoKS0+cmVuZGVyQm94KCk7CisgICAgICAgIGlmIChyZW5kZXJC
b3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCisgICAgICAgICAg
ICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQpOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3ZmNlMDky
YTQwNjRjMmE1YTQyYWRhOTM0YzdlZjEwZThlNTExYTExLi4wZWQ3ZmIzMmY2YTZlMDc0ODIxOWEx
NTIyZTVkMWJjNjg1NzA0ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaApAQCAtMzEsNiArMzEs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50Owor
CiBjbGFzcyBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNP
X05PTkFMTE9DQVRBQkxFKEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dCk7CiBwdWJsaWM6
CkBAIC01MSwxMSArNTMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXJrTGF5ZXJD
b21wb3NpdGVkKCkgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgR1BVQmFzZWRDYW52YXNSZW5kZXJp
bmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKLSAgICAgICAgOiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0KGNhbnZhcykKLSAgICAgICAgLCBBY3RpdmVET01PYmplY3QoY2FudmFzLnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKLSAgICB7Ci0gICAgfQorICAgIEdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dChDYW52YXNCYXNlJik7CisKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogaHRtbENh
bnZhcygpIGNvbnN0OworICAgIHZvaWQgbm90aWZ5Q2FudmFzQ29udGVudENoYW5nZWQoKTsKIH07
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGQxNjZm
YjIzOTA3NmQzNjI2NWQ5NmM2NDVmMDcxODc1YWM4MmJiMzYuLjU2MWZkZDA0NjJjNThiZjY1ZjIx
ZGE4NjgxNGVkYTVlZWJlNGExNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC02NzYsMTQgKzY3Niw2
IEBAIFdlYkdMQ2FudmFzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNhbnZhcygpCiAgICAg
cmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7CiB9CiAKLUhUTUxDYW52
YXNFbGVtZW50KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpodG1sQ2FudmFzKCkKLXsKLSAg
ICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOwotICAgIGlmICghaXM8SFRNTENhbnZhc0VsZW1l
bnQ+KGJhc2UpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gJmRvd25jYXN0
PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKLX0KLQogT2Zmc2NyZWVuQ2FudmFzKiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpvZmZzY3JlZW5DYW52YXMoKQogewogICAgIGF1dG8mIGJhc2Ug
PSBjYW52YXNCYXNlKCk7CkBAIC0xMDg5LDEyICsxMDgxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICBoZWlnaHQg
PSBjbGFtcChoZWlnaHQsIDEsIG1heEhlaWdodCk7CiAKICAgICBpZiAobV9uZWVkc1VwZGF0ZSkg
ewotICAgICAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7Ci0gICAgICAgIGlmIChjYW52
YXMpIHsKLSAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gaHRtbENhbnZhcygpLT5y
ZW5kZXJCb3goKTsKLSAgICAgICAgICAgIGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAgcmVuZGVyQm94LT5jb250
ZW50Q2hhbmdlZChDYW52YXNDaGFuZ2VkKTsKLSAgICAgICAgfQorICAgICAgICBub3RpZnlDYW52
YXNDb250ZW50Q2hhbmdlZCgpOwogICAgICAgICBtX25lZWRzVXBkYXRlID0gZmFsc2U7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKaW5kZXggZDJkMGRiNDNmOWJmMWIzMzIzMzU3NTM3MDM1YzBiZTZmNzk5
MzNmNy4uNzlmZDRlN2QzMjA2MDlhNDAxNzhhOTQ1OWY5ODYxMzlkZWZkNWQ3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaApAQCAtODM2LDcgKzgzNiw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBDaGVjayBpZiBFWFRf
ZHJhd19idWZmZXJzIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgYW5kIGlmIGl0IHNhdGlzZmllcyB0
aGUgV2ViR0wgcmVxdWlyZW1lbnRzLgogICAgIGJvb2wgc3VwcG9ydHNEcmF3QnVmZmVycygpOwog
Ci0gICAgSFRNTENhbnZhc0VsZW1lbnQqIGh0bWxDYW52YXMoKTsKICAgICBPZmZzY3JlZW5DYW52
YXMqIG9mZnNjcmVlbkNhbnZhcygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGlu
ZSBPcHRpb25hbDxUPiBjaGVja2VkQWRkQW5kTXVsdGlwbHkoVCB2YWx1ZSwgVCBhZGQsIFQgbXVs
dGlwbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAppbmRleCAxMjFkMTJmMjY5ZjkwZDEzYzZjY2RkMDk3YjkyMmUzYWRhY2UyNmZkLi4zMmY4
NzBiNjgyMWQyOTk0ZWM0YmU1NTY4YmQwNDM0M2JmNDNkMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjUxNCw2ICsyNTE0LDkg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRDaGFuZ2VkKENvbnRlbnRDaGFuZ2VU
eXBlIGNoYW5nZVR5cGUpCiAKICNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpCiAgICAgaWYgKChjaGFuZ2VUeXBlID09IENhbnZhc0NoYW5nZWQgfHwgY2hh
bmdlVHlwZSA9PSBDYW52YXNQaXhlbHNDaGFuZ2VkKSAmJiByZW5kZXJlcigpLmlzQ2FudmFzKCkg
JiYgY2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneShyZW5kZXJlcigpKSA9PSBDYW52YXNBc0xheWVy
Q29udGVudHMpIHsKKyAgICAgICAgaWYgKGNoYW5nZVR5cGUgPT0gQ2FudmFzQ2hhbmdlZCkKKyAg
ICAgICAgICAgIGNvbXBvc2l0b3IoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsK
KwogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376720</attachid>
            <date>2019-08-19 16:53:49 -0700</date>
            <delta_ts>2019-08-19 16:55:19 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200752-20190819165348.patch</filename>
            <type>text/plain</type>
            <size>14318</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYwNTg4ZDA4MDMwYTky
YmVlZDY1MzY5MzYyMTk4Nzg2ZWRlNjUyZi4uYWM5MjkyYTE4Zjk4YjE3MzU5NGRhZGRhMzdhNTIw
ZjE1OTI1OWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTA4LTE5ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR1BVIGxheWVycyBk
b24ndCBzaG93IHVwIHNvbWV0aW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwNzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29u
LgorCisgICAgICAgIEVuc3VyZSBIVE1MIGNhbnZhcyBpcyBwcm9wZXJseSBub3RpZmllZCBvZiBX
ZWJHUFUgdXBkYXRlcy4gRml4ZXMgYWxwaGEgV2ViR1BVIE1vdGlvbk1hcmsgYmVuY2htYXJrIG5v
LXNob3cgaXNzdWUuCisKKyAgICAgICAgTm9ybWFsIFdlYkdQVSBiZWhhdmlvciB1bmFmZmVjdGVk
IGFuZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvR1BVQ2FudmFzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDYW52YXNDb250
ZXh0Ojpjb25maWd1cmVTd2FwQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29u
dGV4dDo6cmVzaGFwZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hM
U0xOYXRpdmVGdW5jdGlvbldyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TWV0
YWw6OmlubGluZU5hdGl2ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9j
YW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRl
cmluZ0NvbnRleHQ6Omh0bWxDYW52YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmFz
ZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2Vk
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6Omh0bWxDYW52YXMpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFj
a2luZzo6Y29udGVudENoYW5nZWQpOgorCiAyMDE5LTA4LTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBJREItc3BlY2lmaWMgcXVvdGEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKaW5k
ZXggYzZjM2JmZGQzYmZlNmNjNDQ2MzFmMjM2MWVkYjJiMzE1Mjk3YjVkMC4uYmQyMDk3OWI2NWU4
NzU3NGQ3ZGI3MTBiNWY3NzlkYThmMDIxNWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKQEAgLTY5LDYgKzY5LDcgQEAgUmVm
PFdlYkdQVVN3YXBDaGFpbj4gR1BVQ2FudmFzQ29udGV4dDo6Y29uZmlndXJlU3dhcENoYWluKGNv
bnN0IFdlYkdQVVN3YXBDaGFpbkQKICAgICAgICAgICAgIG1fc3dhcENoYWluLT5kZXN0cm95KCk7
CiAgICAgICAgIAogICAgICAgICBtX3N3YXBDaGFpbiA9IG5ld1N3YXBDaGFpbi5jb3B5UmVmKCk7
CisgICAgICAgIG5vdGlmeUNhbnZhc0NvbnRlbnRDaGFuZ2VkKCk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBuZXdTd2FwQ2hhaW47CkBAIC04NSw2ICs4Niw4IEBAIHZvaWQgR1BVQ2FudmFzQ29u
dGV4dDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgaWYgKG1fc3dhcENo
YWluICYmIG1fc3dhcENoYWluLT5zd2FwQ2hhaW4oKSkKICAgICAgICAgbV9zd2FwQ2hhaW4tPnN3
YXBDaGFpbigpLT5yZXNoYXBlKHdpZHRoLCBoZWlnaHQpOworCisgICAgbm90aWZ5Q2FudmFzQ29u
dGVudENoYW5nZWQoKTsKIH0KIAogdm9pZCBHUFVDYW52YXNDb250ZXh0OjptYXJrTGF5ZXJDb21w
b3NpdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjNlMGQzZjcwMTE1MWVmNTM3YzZmNzllM2NmNTFh
YzNiN2U5MmNlZS4uMGEzOGRkNDZjN2Q0NTk0MDQ4YmNlZmY0OWJlZGEzODY4YmQyOTVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTEyNDEsNiArMTI0MSw3IEBAIGh0bWwvY2FudmFzL0VYVEZyYWdEZXB0
aC5jcHAKIGh0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCiBodG1sL2NhbnZhcy9F
WFRzUkdCLmNwcAogaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAor
aHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52
YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMzRiOTgyYmVkMDFkMzNmNTU1NGJiN2UzMTdhMGQyMjA2MTEzZjg2NC4uYjRhYjUwOTMwZDI0
NTUyMWQwYzAyNWViOGE1ODc0MzBkMzQ5NDAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU4MSw2ICs1NTgxLDcgQEAKIAkJ
MEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0FuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTVFRDU5MUI3RUM3
QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXaWxsQ2hhbmdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGMTVFRDVBMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWxsQ2hhbmdlRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjE2QkVEOTIzMDRGMDUzMDBCNEExNjcgLyogR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUJhc2VkQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MTc3NDdFMTM3OEI3NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRvcklPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0
b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxB
bmltYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxQTBDMzYyMjlB
NDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWZWxvY2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
MTA2LDYgKzE4MTA3LDcgQEAKIAkJCQk3NzI4Njk0QjE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk0QzE0Rjg4ODI1MDBGNDg0
REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNzcyODY5NEQxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgKi8sCisJCQkJ
MEYxNkJFRDkyMzA0RjA1MzAwQjRBMTY3IC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKQEAgLTE4NTQ4LDE0
ICsxODU1MCwxNCBAQAogCQk1MTBBNThFRTFCQUI3MUUwMDBDMTkyODIgLyogc2VydmVyICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5MzIzQjA2RDIzMDYx
RTlCMDA5MDFDOEIgLyogSURCU2VyaWFsaXphdGlvbkNvbnRleHQuY3BwICovLAotCQkJCTkzMjNC
MDZGMjMwNjFFOUMwMDkwMUM4QiAvKiBJREJTZXJpYWxpemF0aW9uQ29udGV4dC5oICovLAogCQkJ
CTUxQkE0QUM3MUJCQzVBRDYwMERGM0Q2RCAvKiBJREJCYWNraW5nU3RvcmUuaCAqLywKIAkJCQk1
MTZEN0Q2RDFCQjVGMDY1MDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCAqLywK
IAkJCQk1MTBBNThGRTFCQjA3QUE1MDBDMTkyODIgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50Lmgg
Ki8sCiAJCQkJNTE2RDdENkUxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVu
dERlbGVnYXRlLmggKi8sCiAJCQkJNTExRUMxMjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uY3BwICovLAogCQkJCTUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmggKi8sCisJCQkJOTMyM0IwNkQyMzA2MUU5QjAwOTAxQzhCIC8qIElEQlNlcmlh
bGl6YXRpb25Db250ZXh0LmNwcCAqLywKKwkJCQk5MzIzQjA2RjIzMDYxRTlDMDA5MDFDOEIgLyog
SURCU2VyaWFsaXphdGlvbkNvbnRleHQuaCAqLywKIAkJCQk1MTBBNThFRjFCQUI3MjBGMDBDMTky
ODIgLyogSURCU2VydmVyLmNwcCAqLywKIAkJCQk1MTBBNThGMDFCQUI3MjBGMDBDMTkyODIgLyog
SURCU2VydmVyLmggKi8sCiAJCQkJNTFFRUFBNzExQkVGRkE3OTAwMjE4MDA4IC8qIEluZGV4VmFs
dWVFbnRyeS5jcHAgKi8sCkBAIC0yOTUyNiw2ICsyOTUyOCw3IEBACiAJCQkJNTE0NUIxMEExQkM0
OEUyRTAwRTg2MjE5IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFENzIzNkQxQkI2MTc0OTAwNDc4Q0EzIC8qIElEQlJlc3VsdERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMUVDMTI4MUM1MEFBQ0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzIzQjA3MDIzMDYxRjk3MDA5MDFDOEIgLyogSURCU2VyaWFs
aXphdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0JCMUJCNENCRjgwMDEy
ODk4RiAvKiBJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0FEMUJCNEM0RTgw
MDEyODk4RiAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5OEY3QUQx
QkJERDNFQjAwRTJDQzVGIC8qIElEQlRyYW5zYWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTk5OSw3ICszMDAwMiw2IEBACiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpT
SFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTk4MEExQ0REMkQw
MEI0MkIyNSAvKiBKU0hUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU3
RTk3MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTkzMjNCMDcwMjMwNjFGOTcwMDkwMUM4QiAvKiBJREJTZXJpYWxpemF0aW9uQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QjA5NTYxRjVGMzREOTAwM0MzNzAyIC8qIEpTSFRN
TElucHV0RWxlbWVudEVudHJpZXNBUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2MTQ4QTc5MTJF
NDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUUyQUIyMjBBMUNFNjNCMDBCNDJCMjUgLyogSlNIVE1MTGFiZWxFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2Vk
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9H
UFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NDQ2ZjZiOGM4
NDcwOWUyMmZiNDZiOTMyYmE3OTVhNGFiZTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVCYXNlZENhbnZhc1JlbmRl
cmluZ0NvbnRleHQuaCIKKworI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVQmFzZWRDYW52YXNS
ZW5kZXJpbmdDb250ZXh0OjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFz
ZSYgY2FudmFzKQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCisgICAgLCBB
Y3RpdmVET01PYmplY3QoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKK3sKK30KKwor
SFRNTENhbnZhc0VsZW1lbnQqIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6aHRtbENh
bnZhcygpIGNvbnN0Cit7CisgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAo
IWlzPEhUTUxDYW52YXNFbGVtZW50PihiYXNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7Cit9CisKK3ZvaWQg
R1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdl
ZCgpCit7CisgICAgaWYgKGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKSkgeworICAgICAgICBS
ZW5kZXJCb3gqIHJlbmRlckJveCA9IGh0bWxDYW52YXMoKS0+cmVuZGVyQm94KCk7CisgICAgICAg
IGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkp
CisgICAgICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQpOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaApp
bmRleCA3ZmNlMDkyYTQwNjRjMmE1YTQyYWRhOTM0YzdlZjEwZThlNTExYTExLi4wZWQ3ZmIzMmY2
YTZlMDc0ODIxOWExNTIyZTVkMWJjNjg1NzA0ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaApA
QCAtMzEsNiArMzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxDYW52
YXNFbGVtZW50OworCiBjbGFzcyBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQgOiBwdWJs
aWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAg
V1RGX01BS0VfSVNPX05PTkFMTE9DQVRBQkxFKEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCk7CiBwdWJsaWM6CkBAIC01MSwxMSArNTMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBtYXJrTGF5ZXJDb21wb3NpdGVkKCkgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKLSAgICAgICAgOiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKLSAgICAgICAgLCBBY3RpdmVET01PYmplY3QoY2Fu
dmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICB7Ci0gICAgfQorICAgIEdQVUJhc2Vk
Q2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CisKKyAgICBIVE1MQ2FudmFzRWxl
bWVudCogaHRtbENhbnZhcygpIGNvbnN0OworICAgIHZvaWQgbm90aWZ5Q2FudmFzQ29udGVudENo
YW5nZWQoKTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGQxNjZmYjIzOTA3NmQzNjI2NWQ5NmM2NDVmMDcxODc1YWM4MmJiMzYuLjU2MWZkZDA0
NjJjNThiZjY1ZjIxZGE4NjgxNGVkYTVlZWJlNGExNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC02
NzYsMTQgKzY3Niw2IEBAIFdlYkdMQ2FudmFzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNh
bnZhcygpCiAgICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7CiB9
CiAKLUhUTUxDYW52YXNFbGVtZW50KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpodG1sQ2Fu
dmFzKCkKLXsKLSAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOwotICAgIGlmICghaXM8SFRN
TENhbnZhc0VsZW1lbnQ+KGJhc2UpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKLX0KLQogT2Zmc2NyZWVuQ2Fu
dmFzKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvZmZzY3JlZW5DYW52YXMoKQogewogICAg
IGF1dG8mIGJhc2UgPSBjYW52YXNCYXNlKCk7CkBAIC0xMDg5LDEyICsxMDgxLDcgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
ICAgICBoZWlnaHQgPSBjbGFtcChoZWlnaHQsIDEsIG1heEhlaWdodCk7CiAKICAgICBpZiAobV9u
ZWVkc1VwZGF0ZSkgewotICAgICAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7Ci0gICAg
ICAgIGlmIChjYW52YXMpIHsKLSAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gaHRt
bENhbnZhcygpLT5yZW5kZXJCb3goKTsKLSAgICAgICAgICAgIGlmIChyZW5kZXJCb3ggJiYgcmVu
ZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAgcmVu
ZGVyQm94LT5jb250ZW50Q2hhbmdlZChDYW52YXNDaGFuZ2VkKTsKLSAgICAgICAgfQorICAgICAg
ICBub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCgpOwogICAgICAgICBtX25lZWRzVXBkYXRlID0g
ZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggZDJkMGRiNDNmOWJmMWIzMzIzMzU3NTM3
MDM1YzBiZTZmNzk5MzNmNy4uNzlmZDRlN2QzMjA2MDlhNDAxNzhhOTQ1OWY5ODYxMzlkZWZkNWQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaApAQCAtODM2LDcgKzgzNiw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBD
aGVjayBpZiBFWFRfZHJhd19idWZmZXJzIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgYW5kIGlmIGl0
IHNhdGlzZmllcyB0aGUgV2ViR0wgcmVxdWlyZW1lbnRzLgogICAgIGJvb2wgc3VwcG9ydHNEcmF3
QnVmZmVycygpOwogCi0gICAgSFRNTENhbnZhc0VsZW1lbnQqIGh0bWxDYW52YXMoKTsKICAgICBP
ZmZzY3JlZW5DYW52YXMqIG9mZnNjcmVlbkNhbnZhcygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGlubGluZSBPcHRpb25hbDxUPiBjaGVja2VkQWRkQW5kTXVsdGlwbHkoVCB2YWx1ZSwg
VCBhZGQsIFQgbXVsdGlwbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCAxMjFkMTJmMjY5ZjkwZDEzYzZjY2RkMDk3YjkyMmUzYWRh
Y2UyNmZkLi5kMjVhZTgxYWZmY2JjMjY0NDBiZTU1YTI1ZDFkZGMwMGE4MjJmNjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtOTI2
LDcgKzkyNiw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9u
KCkKICAgICAgICAgcmVzZXRDb250ZW50c1JlY3QoKTsKICAgICB9CiAjZW5kaWYKLSNpZiBFTkFC
TEUoV0VCR0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisjaWYgRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSB8fCBFTkFCTEUoV0VCR1BVKQog
ICAgIGVsc2UgaWYgKHJlbmRlcmVyKCkuaXNDYW52YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0
cmF0ZWd5KHJlbmRlcmVyKCkpID09IENhbnZhc0FzTGF5ZXJDb250ZW50cykgewogICAgICAgICBj
b25zdCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gZG93bmNhc3Q8SFRNTENhbnZhc0VsZW1l
bnQ+KHJlbmRlcmVyKCkuZWxlbWVudCgpKTsKICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBj
YW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKQEAgLTI1MTQsNiArMjUxNCw5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50Q2hhbmdlZChDb250ZW50Q2hhbmdlVHlwZSBjaGFuZ2VU
eXBlKQogCiAjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFT
KQogICAgIGlmICgoY2hhbmdlVHlwZSA9PSBDYW52YXNDaGFuZ2VkIHx8IGNoYW5nZVR5cGUgPT0g
Q2FudmFzUGl4ZWxzQ2hhbmdlZCkgJiYgcmVuZGVyZXIoKS5pc0NhbnZhcygpICYmIGNhbnZhc0Nv
bXBvc2l0aW5nU3RyYXRlZ3kocmVuZGVyZXIoKSkgPT0gQ2FudmFzQXNMYXllckNvbnRlbnRzKSB7
CisgICAgICAgIGlmIChjaGFuZ2VUeXBlID09IENhbnZhc0NoYW5nZWQpCisgICAgICAgICAgICBj
b21wb3NpdG9yKCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7CisKICAgICAgICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c05lZWRzRGlzcGxheSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376721</attachid>
            <date>2019-08-19 16:55:21 -0700</date>
            <delta_ts>2019-08-20 12:05:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200752-20190819165520.patch</filename>
            <type>text/plain</type>
            <size>14512</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYwNTg4ZDA4MDMwYTky
YmVlZDY1MzY5MzYyMTk4Nzg2ZWRlNjUyZi4uYWM5MjkyYTE4Zjk4YjE3MzU5NGRhZGRhMzdhNTIw
ZjE1OTI1OWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTA4LTE5ICBKdXN0
aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR1BVIGxheWVycyBk
b24ndCBzaG93IHVwIHNvbWV0aW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwNzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29u
LgorCisgICAgICAgIEVuc3VyZSBIVE1MIGNhbnZhcyBpcyBwcm9wZXJseSBub3RpZmllZCBvZiBX
ZWJHUFUgdXBkYXRlcy4gRml4ZXMgYWxwaGEgV2ViR1BVIE1vdGlvbk1hcmsgYmVuY2htYXJrIG5v
LXNob3cgaXNzdWUuCisKKyAgICAgICAgTm9ybWFsIFdlYkdQVSBiZWhhdmlvciB1bmFmZmVjdGVk
IGFuZCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvR1BVQ2FudmFzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHUFVDYW52YXNDb250
ZXh0Ojpjb25maWd1cmVTd2FwQ2hhaW4pOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ2FudmFzQ29u
dGV4dDo6cmVzaGFwZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hM
U0xOYXRpdmVGdW5jdGlvbldyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TWV0
YWw6OmlubGluZU5hdGl2ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9j
YW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRl
cmluZ0NvbnRleHQ6Omh0bWxDYW52YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQmFz
ZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OkdQVUJhc2Vk
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6Omh0bWxDYW52YXMpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFj
a2luZzo6Y29udGVudENoYW5nZWQpOgorCiAyMDE5LTA4LTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBJREItc3BlY2lmaWMgcXVvdGEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKaW5k
ZXggYzZjM2JmZGQzYmZlNmNjNDQ2MzFmMjM2MWVkYjJiMzE1Mjk3YjVkMC4uYmQyMDk3OWI2NWU4
NzU3NGQ3ZGI3MTBiNWY3NzlkYThmMDIxNWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvR1BVQ2FudmFzQ29udGV4dC5jcHAKQEAgLTY5LDYgKzY5LDcgQEAgUmVm
PFdlYkdQVVN3YXBDaGFpbj4gR1BVQ2FudmFzQ29udGV4dDo6Y29uZmlndXJlU3dhcENoYWluKGNv
bnN0IFdlYkdQVVN3YXBDaGFpbkQKICAgICAgICAgICAgIG1fc3dhcENoYWluLT5kZXN0cm95KCk7
CiAgICAgICAgIAogICAgICAgICBtX3N3YXBDaGFpbiA9IG5ld1N3YXBDaGFpbi5jb3B5UmVmKCk7
CisgICAgICAgIG5vdGlmeUNhbnZhc0NvbnRlbnRDaGFuZ2VkKCk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBuZXdTd2FwQ2hhaW47CkBAIC04NSw2ICs4Niw4IEBAIHZvaWQgR1BVQ2FudmFzQ29u
dGV4dDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgaWYgKG1fc3dhcENo
YWluICYmIG1fc3dhcENoYWluLT5zd2FwQ2hhaW4oKSkKICAgICAgICAgbV9zd2FwQ2hhaW4tPnN3
YXBDaGFpbigpLT5yZXNoYXBlKHdpZHRoLCBoZWlnaHQpOworCisgICAgbm90aWZ5Q2FudmFzQ29u
dGVudENoYW5nZWQoKTsKIH0KIAogdm9pZCBHUFVDYW52YXNDb250ZXh0OjptYXJrTGF5ZXJDb21w
b3NpdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjNlMGQzZjcwMTE1MWVmNTM3YzZmNzllM2NmNTFh
YzNiN2U5MmNlZS4uMGEzOGRkNDZjN2Q0NTk0MDQ4YmNlZmY0OWJlZGEzODY4YmQyOTVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTEyNDEsNiArMTI0MSw3IEBAIGh0bWwvY2FudmFzL0VYVEZyYWdEZXB0
aC5jcHAKIGh0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCiBodG1sL2NhbnZhcy9F
WFRzUkdCLmNwcAogaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAor
aHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52
YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMzRiOTgyYmVkMDFkMzNmNTU1NGJiN2UzMTdhMGQyMjA2MTEzZjg2NC4uYjRhYjUwOTMwZDI0
NTUyMWQwYzAyNWViOGE1ODc0MzBkMzQ5NDAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU4MSw2ICs1NTgxLDcgQEAKIAkJ
MEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0FuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTVFRDU5MUI3RUM3
QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXaWxsQ2hhbmdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGMTVFRDVBMUI3RUM3QzUwMEVEREZFQiAvKiBXaWxsQ2hhbmdlRGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWxsQ2hhbmdlRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjE2QkVEOTIzMDRGMDUzMDBCNEExNjcgLyogR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUJhc2VkQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MTc3NDdFMTM3OEI3NzEwMDlEQTc2QSAvKiBTY3JvbGxBbmltYXRvcklPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvcklPUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjE3NzQ3RjEzNzhCNzcyMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0
b3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxB
bmltYXRvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxQTBDMzYyMjlB
NDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWZWxvY2l0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
MTA2LDYgKzE4MTA3LDcgQEAKIAkJCQk3NzI4Njk0QjE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk0QzE0Rjg4ODI1MDBGNDg0
REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNzcyODY5NEQxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgKi8sCisJCQkJ
MEYxNkJFRDkyMzA0RjA1MzAwQjRBMTY3IC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJMzExNTE4RkIxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oICovLAogCQkJCTdDNzkwM0IxMUY4NkY5NUMwMDQ2M0E3MCAvKiBJ
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwICovLAogCQkJCTdDNzkwM0IwMUY4NkY5NUMw
MDQ2M0E3MCAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaCAqLywKQEAgLTE4NTQ4LDE0
ICsxODU1MCwxNCBAQAogCQk1MTBBNThFRTFCQUI3MUUwMDBDMTkyODIgLyogc2VydmVyICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5MzIzQjA2RDIzMDYx
RTlCMDA5MDFDOEIgLyogSURCU2VyaWFsaXphdGlvbkNvbnRleHQuY3BwICovLAotCQkJCTkzMjNC
MDZGMjMwNjFFOUMwMDkwMUM4QiAvKiBJREJTZXJpYWxpemF0aW9uQ29udGV4dC5oICovLAogCQkJ
CTUxQkE0QUM3MUJCQzVBRDYwMERGM0Q2RCAvKiBJREJCYWNraW5nU3RvcmUuaCAqLywKIAkJCQk1
MTZEN0Q2RDFCQjVGMDY1MDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCAqLywK
IAkJCQk1MTBBNThGRTFCQjA3QUE1MDBDMTkyODIgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50Lmgg
Ki8sCiAJCQkJNTE2RDdENkUxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVu
dERlbGVnYXRlLmggKi8sCiAJCQkJNTExRUMxMjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlh
bGl6YXRpb24uY3BwICovLAogCQkJCTUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJp
YWxpemF0aW9uLmggKi8sCisJCQkJOTMyM0IwNkQyMzA2MUU5QjAwOTAxQzhCIC8qIElEQlNlcmlh
bGl6YXRpb25Db250ZXh0LmNwcCAqLywKKwkJCQk5MzIzQjA2RjIzMDYxRTlDMDA5MDFDOEIgLyog
SURCU2VyaWFsaXphdGlvbkNvbnRleHQuaCAqLywKIAkJCQk1MTBBNThFRjFCQUI3MjBGMDBDMTky
ODIgLyogSURCU2VydmVyLmNwcCAqLywKIAkJCQk1MTBBNThGMDFCQUI3MjBGMDBDMTkyODIgLyog
SURCU2VydmVyLmggKi8sCiAJCQkJNTFFRUFBNzExQkVGRkE3OTAwMjE4MDA4IC8qIEluZGV4VmFs
dWVFbnRyeS5jcHAgKi8sCkBAIC0yOTUyNiw2ICsyOTUyOCw3IEBACiAJCQkJNTE0NUIxMEExQkM0
OEUyRTAwRTg2MjE5IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFENzIzNkQxQkI2MTc0OTAwNDc4Q0EzIC8qIElEQlJlc3VsdERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMUVDMTI4MUM1MEFBQ0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzIzQjA3MDIzMDYxRjk3MDA5MDFDOEIgLyogSURCU2VyaWFs
aXphdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0JCMUJCNENCRjgwMDEy
ODk4RiAvKiBJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0FEMUJCNEM0RTgw
MDEyODk4RiAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5OEY3QUQx
QkJERDNFQjAwRTJDQzVGIC8qIElEQlRyYW5zYWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTk5OSw3ICszMDAwMiw2IEBACiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpT
SFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTk4MEExQ0REMkQw
MEI0MkIyNSAvKiBKU0hUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU3
RTk3MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTkzMjNCMDcwMjMwNjFGOTcwMDkwMUM4QiAvKiBJREJTZXJpYWxpemF0aW9uQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QjA5NTYxRjVGMzREOTAwM0MzNzAyIC8qIEpTSFRN
TElucHV0RWxlbWVudEVudHJpZXNBUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2MTQ4QTc5MTJF
NDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUUyQUIyMjBBMUNFNjNCMDBCNDJCMjUgLyogSlNIVE1MTGFiZWxFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2Vk
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9H
UFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NDQ2ZjZiOGM4
NDcwOWUyMmZiNDZiOTMyYmE3OTVhNGFiZTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVCYXNlZENhbnZhc1JlbmRl
cmluZ0NvbnRleHQuaCIKKworI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVQmFzZWRDYW52YXNS
ZW5kZXJpbmdDb250ZXh0OjpHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFz
ZSYgY2FudmFzKQorICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChjYW52YXMpCisgICAgLCBB
Y3RpdmVET01PYmplY3QoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKK3sKK30KKwor
SFRNTENhbnZhc0VsZW1lbnQqIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6aHRtbENh
bnZhcygpIGNvbnN0Cit7CisgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAo
IWlzPEhUTUxDYW52YXNFbGVtZW50PihiYXNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7Cit9CisKK3ZvaWQg
R1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojpub3RpZnlDYW52YXNDb250ZW50Q2hhbmdl
ZCgpCit7CisgICAgaWYgKGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKSkgeworICAgICAgICBS
ZW5kZXJCb3gqIHJlbmRlckJveCA9IGh0bWxDYW52YXMoKS0+cmVuZGVyQm94KCk7CisgICAgICAg
IGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkp
CisgICAgICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQpOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaApp
bmRleCA3ZmNlMDkyYTQwNjRjMmE1YTQyYWRhOTM0YzdlZjEwZThlNTExYTExLi4wZWQ3ZmIzMmY2
YTZlMDc0ODIxOWExNTIyZTVkMWJjNjg1NzA0ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaApA
QCAtMzEsNiArMzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxDYW52
YXNFbGVtZW50OworCiBjbGFzcyBHUFVCYXNlZENhbnZhc1JlbmRlcmluZ0NvbnRleHQgOiBwdWJs
aWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAg
V1RGX01BS0VfSVNPX05PTkFMTE9DQVRBQkxFKEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCk7CiBwdWJsaWM6CkBAIC01MSwxMSArNTMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBtYXJrTGF5ZXJDb21wb3NpdGVkKCkgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKLSAgICAgICAgOiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKLSAgICAgICAgLCBBY3RpdmVET01PYmplY3QoY2Fu
dmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICB7Ci0gICAgfQorICAgIEdQVUJhc2Vk
Q2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CisKKyAgICBIVE1MQ2FudmFzRWxl
bWVudCogaHRtbENhbnZhcygpIGNvbnN0OworICAgIHZvaWQgbm90aWZ5Q2FudmFzQ29udGVudENo
YW5nZWQoKTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGQxNjZmYjIzOTA3NmQzNjI2NWQ5NmM2NDVmMDcxODc1YWM4MmJiMzYuLjU2MWZkZDA0
NjJjNThiZjY1ZjIxZGE4NjgxNGVkYTVlZWJlNGExNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC02
NzYsMTQgKzY3Niw2IEBAIFdlYkdMQ2FudmFzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNh
bnZhcygpCiAgICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7CiB9
CiAKLUhUTUxDYW52YXNFbGVtZW50KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpodG1sQ2Fu
dmFzKCkKLXsKLSAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOwotICAgIGlmICghaXM8SFRN
TENhbnZhc0VsZW1lbnQ+KGJhc2UpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKLX0KLQogT2Zmc2NyZWVuQ2Fu
dmFzKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvZmZzY3JlZW5DYW52YXMoKQogewogICAg
IGF1dG8mIGJhc2UgPSBjYW52YXNCYXNlKCk7CkBAIC0xMDg5LDEyICsxMDgxLDcgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
ICAgICBoZWlnaHQgPSBjbGFtcChoZWlnaHQsIDEsIG1heEhlaWdodCk7CiAKICAgICBpZiAobV9u
ZWVkc1VwZGF0ZSkgewotICAgICAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7Ci0gICAg
ICAgIGlmIChjYW52YXMpIHsKLSAgICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gaHRt
bENhbnZhcygpLT5yZW5kZXJCb3goKTsKLSAgICAgICAgICAgIGlmIChyZW5kZXJCb3ggJiYgcmVu
ZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgICAgICAgICAgcmVu
ZGVyQm94LT5jb250ZW50Q2hhbmdlZChDYW52YXNDaGFuZ2VkKTsKLSAgICAgICAgfQorICAgICAg
ICBub3RpZnlDYW52YXNDb250ZW50Q2hhbmdlZCgpOwogICAgICAgICBtX25lZWRzVXBkYXRlID0g
ZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggZDJkMGRiNDNmOWJmMWIzMzIzMzU3NTM3
MDM1YzBiZTZmNzk5MzNmNy4uNzlmZDRlN2QzMjA2MDlhNDAxNzhhOTQ1OWY5ODYxMzlkZWZkNWQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaApAQCAtODM2LDcgKzgzNiw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBD
aGVjayBpZiBFWFRfZHJhd19idWZmZXJzIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgYW5kIGlmIGl0
IHNhdGlzZmllcyB0aGUgV2ViR0wgcmVxdWlyZW1lbnRzLgogICAgIGJvb2wgc3VwcG9ydHNEcmF3
QnVmZmVycygpOwogCi0gICAgSFRNTENhbnZhc0VsZW1lbnQqIGh0bWxDYW52YXMoKTsKICAgICBP
ZmZzY3JlZW5DYW52YXMqIG9mZnNjcmVlbkNhbnZhcygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGlubGluZSBPcHRpb25hbDxUPiBjaGVja2VkQWRkQW5kTXVsdGlwbHkoVCB2YWx1ZSwg
VCBhZGQsIFQgbXVsdGlwbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCAxMjFkMTJmMjY5ZjkwZDEzYzZjY2RkMDk3YjkyMmUzYWRh
Y2UyNmZkLi5lNjE3MjU5YmRhNTVmMThhMTc3NDhjOWU3NGIwZTg5NjYxMzM2ZWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtOTI2
LDcgKzkyNiw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9u
KCkKICAgICAgICAgcmVzZXRDb250ZW50c1JlY3QoKTsKICAgICB9CiAjZW5kaWYKLSNpZiBFTkFC
TEUoV0VCR0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisjaWYgRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSB8fCBFTkFCTEUoV0VCR1BVKQog
ICAgIGVsc2UgaWYgKHJlbmRlcmVyKCkuaXNDYW52YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0
cmF0ZWd5KHJlbmRlcmVyKCkpID09IENhbnZhc0FzTGF5ZXJDb250ZW50cykgewogICAgICAgICBj
b25zdCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gZG93bmNhc3Q8SFRNTENhbnZhc0VsZW1l
bnQ+KHJlbmRlcmVyKCkuZWxlbWVudCgpKTsKICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBj
YW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKQEAgLTI1MTIsOCArMjUxMiwxMSBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6Y29udGVudENoYW5nZWQoQ29udGVudENoYW5nZVR5cGUgY2hhbmdl
VHlwZSkKICAgICBpZiAoKGNoYW5nZVR5cGUgPT0gTWFza0ltYWdlQ2hhbmdlZCkgJiYgbV9tYXNr
TGF5ZXIpCiAgICAgICAgIG1fb3duaW5nTGF5ZXIuc2V0TmVlZHNDb21wb3NpdGluZ0NvbmZpZ3Vy
YXRpb25VcGRhdGUoKTsKIAotI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKyNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpIHx8IEVOQUJMRShXRUJHUFUpCiAgICAgaWYgKChjaGFuZ2VUeXBlID09IENhbnZhc0No
YW5nZWQgfHwgY2hhbmdlVHlwZSA9PSBDYW52YXNQaXhlbHNDaGFuZ2VkKSAmJiByZW5kZXJlcigp
LmlzQ2FudmFzKCkgJiYgY2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneShyZW5kZXJlcigpKSA9PSBD
YW52YXNBc0xheWVyQ29udGVudHMpIHsKKyAgICAgICAgaWYgKGNoYW5nZVR5cGUgPT0gQ2FudmFz
Q2hhbmdlZCkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJVcGRhdGUoKTsKKwogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzTmVlZHNE
aXNwbGF5KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376788</attachid>
            <date>2019-08-20 12:05:24 -0700</date>
            <delta_ts>2019-08-20 13:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200752-20190820120523.patch</filename>
            <type>text/plain</type>
            <size>1214</size>
            <attacher name="Justin Fan">justin_fan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM0MWRkOThjY2ZhMjE0
NzJiZjAxZjk0MzkwYzBkOTcxNmRhNTAzZC4uN2YxNDI2NmM2MDlmNjRlZDdlZDkyMWQ3ZmI0YjY4
ZDIzMDc1MDYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkgQEAKKzIwMTktMDgtMjAgIEp1c3Rp
biBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KKworICAgICAgICBVbnJldmlld2VkIGNvbW1l
bnQgZm9sbG93LXVwIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwNzUyLgorCisgICAgICAgICogaHRtbC9jYW52YXMvR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdD
b250ZXh0Lmg6CisKIDIwMTktMDgtMjAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0ZUV10gRml4IHNjcm9sbGluZyBpbiBtb2Rlcm4gV2ViS2l0IHZpZXdz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVCYXNlZENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDBlZDdmYjMyZjZhNmUwNzQ4MjE5YTE1MjJlNWQx
YmM2ODU3MDRmN2YuLjc3ODU5Mjc4ZmZiYmIwNDI1NzJiMmVmYmMyNzY5YzUxYzgyMDA5NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0dQVUJhc2VkQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgbWFya0xheWVyQ29tcG9zaXRlZCgpID0gMDsKIAogcHJvdGVjdGVkOgotICAgIEdQ
VUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CisgICAgZXhwbGljaXQg
R1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmKTsKIAogICAgIEhUTUxD
YW52YXNFbGVtZW50KiBodG1sQ2FudmFzKCkgY29uc3Q7CiAgICAgdm9pZCBub3RpZnlDYW52YXND
b250ZW50Q2hhbmdlZCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>