<?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>67543</bug_id>
          
          <creation_ts>2011-09-02 17:31:14 -0700</creation_ts>
          <short_desc>Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow</short_desc>
          <delta_ts>2012-11-26 22:58:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>
          <dependson>67746</dependson>
          <blocked>78332</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461655</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 17:31:14 -0700</bug_when>
    <thetext>Splitting this off from 65643, since it&apos;s totally unrelated to that bug (and was just exposed by a bug in the patch):

&gt; If we set the shadow on a group, a transparency layer is created, and the shadow is cleared (because it&apos;s applied to the group, not the children). Then, when we go to draw the text shadow, if it has no blur (and can be rendered by simply redrawing the text), we a) store the shadow b) draw the text by hand in the shadow color c) restore the shadow. But, if we&apos;re in a transparency layer, the shadow is not clearable!
&gt;
&gt; So what happens in effect is that we draw the text shadow into the transparency layer, then when it&apos;s composited onto the screen, the group&apos;s shadow is applied, leading to the *shadow* having its own shadow!
&gt;
&gt;So, we can&apos;t use simple shadows inside a transparency layer. I assume the behavior is the same on other platforms (with the shadow clearing and all) because that makes the most sense. I think perhaps we should make the increment/decrement/inTransparencyLayer() stuff enabled on all platforms.
&gt;
&gt;I might be able to concoct a test for this that still exhibits after we fix the overdraw, but for right now it&apos;s made blindingly obvious in a variety of other tests because of that flaw in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461656</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-02 17:31:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/10070536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461662</commentid>
    <comment_count>2</comment_count>
      <attachid>106229</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 17:36:03 -0700</bug_when>
    <thetext>Created attachment 106229
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461678</commentid>
    <comment_count>3</comment_count>
      <attachid>106233</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 18:06:58 -0700</bug_when>
    <thetext>Created attachment 106233
initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461714</commentid>
    <comment_count>4</comment_count>
      <attachid>106233</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 20:42:29 -0700</bug_when>
    <thetext>Comment on attachment 106233
initial patch

Attachment 106233 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9583831

New failing tests:
svg/custom/simple-text-double-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461819</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-03 08:49:04 -0700</bug_when>
    <thetext>Windows build failure:

3&gt;..\platform\win\ScrollbarThemeWin.cpp(274) : error C2039: &apos;inTransparencyLayer&apos; : is not a member of &apos;WebCore::GraphicsContext&apos;
3&gt;..\platform\win\ScrollbarThemeWin.cpp(328) : error C2039: &apos;inTransparencyLayer&apos; : is not a member of &apos;WebCore::GraphicsContext&apos;
3&gt;..\platform\win\ScrollbarThemeWin.cpp(387) : error C2039: &apos;inTransparencyLayer&apos; : is not a member of &apos;WebCore::GraphicsContext&apos;

3&gt;c:\cygwin\home\buildbot\webkit\source\webcore\rendering\RenderThemeWin.cpp(677) : error C2039: &apos;inTransparencyLayer&apos; : is not a member of &apos;WebCore::GraphicsContext&apos;

3&gt;..\plugins\win\PluginViewWin.cpp(639) : error C2039: &apos;inTransparencyLayer&apos; : is not a member of &apos;WebCore::GraphicsContext&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462822</commentid>
    <comment_count>6</comment_count>
      <attachid>106477</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-06 13:43:04 -0700</bug_when>
    <thetext>Created attachment 106477
fix windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463105</commentid>
    <comment_count>7</comment_count>
      <attachid>106477</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-06 20:05:20 -0700</bug_when>
    <thetext>Comment on attachment 106477
fix windows build

Attachment 106477 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9601403

New failing tests:
svg/custom/simple-text-double-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463657</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-07 14:34:34 -0700</bug_when>
    <thetext>Landed in 94714; now for grabbing new baselines and checking for build failures!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463752</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-07 16:19:36 -0700</bug_when>
    <thetext>It seems like this patch caused a whole bunch of tests to crash on GTK:
http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r94717%20(25820)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463753</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-07 16:21:19 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; It seems like this patch caused a whole bunch of tests to crash on GTK:
&gt; http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r94717%20(25820)/results.html

On second thought, this might be an issue with the bot. Other GTK+ bots are fine even after your changeset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463765</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-07 16:39:35 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; It seems like this patch caused a whole bunch of tests to crash on GTK:
&gt; &gt; http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r94717%20(25820)/results.html
&gt; 
&gt; On second thought, this might be an issue with the bot. Other GTK+ bots are fine even after your changeset.

Nope. The same thing started to happen on Windows XP (Debug):
http://build.webkit.org/results/Windows%20XP%20Debug%20(Tests)/r94714%20(31934)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463778</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-07 16:51:03 -0700</bug_when>
    <thetext>Reopening due to rollout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464147</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-08 10:37:29 -0700</bug_when>
    <thetext>Quick debugging on gtk-linux shows that m_transparencyCount rolls over to 32768. Not sure why; it&apos;s only manipulated in one place which has an assert (which isn&apos;t being hit) to guard against this (also, stepping through and printing m_transparencyCount shows that it&apos;s not a problem there, it becomes garbage in between). I&apos;ll debug more carefully tonight, since it&apos;s less clear what&apos;s going on now...

Also, I found an extra m_transparencyCount(0) on GraphicsContextPlatformPrivateCairo which would break gtk-windows build, so I&apos;ll remove that too. (that&apos;s certainly not causing this problem, though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464971</commentid>
    <comment_count>14</comment_count>
      <attachid>106901</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-09 12:20:43 -0700</bug_when>
    <thetext>Created attachment 106901
Fix crashes on Windows and Gtk

Turns out WindowsCG, WindowsCairo and Cairo overload the GraphicsContext constructor, so I just needed to add my initialization there (showed up instantly in valgrind).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465172</commentid>
    <comment_count>15</comment_count>
      <attachid>106901</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-09 18:47:22 -0700</bug_when>
    <thetext>Comment on attachment 106901
Fix crashes on Windows and Gtk

review+ on the fix; Simon is still the reviewer on the change itself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465198</commentid>
    <comment_count>16</comment_count>
      <attachid>106901</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 19:55:36 -0700</bug_when>
    <thetext>Comment on attachment 106901
Fix crashes on Windows and Gtk

Clearing flags on attachment: 106901

Committed r94897: &lt;http://trac.webkit.org/changeset/94897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465199</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 19:55:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559100</commentid>
    <comment_count>18</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-17 03:19:10 -0800</bug_when>
    <thetext>This patch caused Qt bug 78332, uncovered by my repaint.js refactoring.
See my comment there:
&quot;Hmpf, the problem is the m_transparencyCount generalization. Qt maintains a different count &quot;layerCount&quot; returned by isInTransparentLayer(), and it calls endTransparencyLayer too often, compared to all other ports - to support image clipping.

Cairo has similar needs (mask image operation during restore()) but doesn&apos;t suffer from the problem - can this be reused instead? I hope Zoltan can have a look.&quot;

The Qt code uses for (i=0; i &lt; layerCount) endTransparencyLayer().
Layer count may be higher than m_transparencyCount, leading to the assertion that m_transparenyCount should always be &gt; 0. Why is that? Qt doesn&apos;t always perform --m_layerCount, as endTransparencyLayer() does for m_transparencyCount.

The whole code is only needed to properly support ImageBuffer::clip() - Zoltan Herczeg is currently working on eliminating that, replacing by composite operations. Once that&apos;s done the custom layer count stuff could be removed from Qt again, fixing the assertion. That&apos;s probably the easiest - the current code from Tim makes a lot of sense!

(Note: Cairo/Gtk don&apos;t suffer from this problem, they don&apos;t maintain a separated &apos;layer count&apos;, but rely on m_transparencyCount)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589173</commentid>
    <comment_count>19</comment_count>
      <attachid>106477</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-27 12:51:19 -0700</bug_when>
    <thetext>Comment on attachment 106477
fix windows build

Cleared Simon Fraser&apos;s review+ from obsolete attachment 106477 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776383</commentid>
    <comment_count>20</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-26 22:58:54 -0800</bug_when>
    <thetext>Niko, is there a reason you reopened this? The fix is still in, and bug 78332 is mysteriously fixed. I&apos;m going to re-close it, feel free to let me know/reopen again if there was a reason.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>106229</attachid>
            <date>2011-09-02 17:36:03 -0700</date>
            <delta_ts>2011-09-02 17:36:03 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>simple-text-shadow.svg</filename>
            <type>image/svg+xml</type>
            <size>240</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJhc2RmIiBzdHlsZT0i
LXdlYmtpdC1zdmctc2hhZG93OiA1MHB4IDUwcHggMHB4IHJlZDsiPgo8dGV4dCB4PSIyMCIgeT0i
NDAiIGZpbGw9ImJsYWNrIj5UaGlzIHRleHQgc2hvdWxkIGFwcGVhciBvbmx5IHR3aWNlPC90ZXh0
Pgo8cmVjdCB4PSIxMDAiIHk9IjEwMCIgaGVpZ2h0PSIyMCIgd2lkdGg9IjIwMCIgZmlsbD0iYmx1
ZSIgLz4KPC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106233</attachid>
            <date>2011-09-02 18:06:58 -0700</date>
            <delta_ts>2011-09-06 13:43:04 -0700</delta_ts>
            <desc>initial patch</desc>
            <filename>simple-shadow-transparency-layer.patch</filename>
            <type>text/plain</type>
            <size>39554</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ODNiZDEwLi45NmJiNzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MDIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4
dCByZW5kZXJlZCB3aXRoIGEgc2ltcGxlIChpLmUuIDBweCBibHVyKSBzaGFkb3cgaW5zaWRlIGEg
dHJhbnNwYXJlbmN5IGxheWVyIGhhcyBhIGRvdWJsZSBzaGFkb3cKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTQzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDA3MDUzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRoYXQgdGV4dCB3aXRoIDBweCBibHVyIENTUyBz
aGFkb3cgZG9lc24ndCBnZXQgcmVuZGVyZWQKKyAgICAgICAgd2l0aCBhIHNlY29uZCBzaGFkb3cg
d2hlbiBpbnNpZGUgYSB0cmFuc3BhcmVuY3kgbGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91Ymxl
LXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vc2ltcGxl
LXRleHQtZG91YmxlLXNoYWRvdy5zdmc6IEFkZGVkLgorCiAyMDExLTA5LTAyICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHByaXZhdGUgYnJvd3Np
bmcgc3RhdGUgaXNuJ3Qgc2F2ZWQgd2hlbiBpdCBjaGFuZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10
ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwODg0ZGIwYTRmM2Ux
NjQzZjllOGI2NTY3MzFhOTVlMTI5ZDVlNzEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE3NjMx
CnpjbWVIdmN8NFNEK3JRI1kzc0txJC02Z3FnV29nSlZOK2wkZkIxO3FAeVJpI3tscjJtfUNpYDdO
V3k/T3NHUmFtWgp6V1NmYlpGXz5sc1ZgbDdRajR8KDM+RilXd3p1KXREfDl3QnQ+I3YjWG9hO1Eh
XkUlR3NJTF9ueUo8ZTw1RT8rVmIKei1nO213QTBNQnY7ZjFxVGBTfCN5YFM+PjgqdGBqN05le1Ux
NFNkTT9veDk9WmFNI2huJkRZPDlQeENsUE1lX3MqCno8bWhsKkwoUiFTVH1BYnpoUlZxa2p2NWEz
NGpfQXtKSCtBQTNfeXljaUB5RzRMdyRZZSVSWExDRjdBJGVkX2Z4Pwp6VUwoNW9VRVp9aTxlMnF0
XndCQmo5YjB0b0tKbU9gPUJKLW8/UGhgT3czPDl3YkxjYHd6SzJiRStZdmhTbyM1YWoKenVUIW1v
R2xJSG9MN35BWXVhS3cwWk0kd1M2fitFfWFxLVdKPjxsIyVTdV80eFJ2blNlKDNHV3F2O0NWNXZG
aDhVCnpFVkFwbW5RN35YbTZtVjJoX2Y0UENHX1EyP3dVTWAtZVl2c0t1QEh2SmVYTkF3X1VRJC1I
K2kjRUw/Uk1OUGl9QAp6Vl9ISkdGLTUpUSZyIT8yVTJPWE8jNn5jMiUmWmdZQTM4N2stWTV7KkJJ
VF4lPHEkY1ZrYSMlTk5samZaZWFpPkkKeiktJEohNXFjV1dUfUl9RnpqajZMYFgrbnklflBkRStK
KXo/RHdGUz1EO0hYdm1oejM3d1JgdEVXZz9AUER3Xm4jCnp6Vy04QlgjQjkwV3woJlpnPlJxPFlg
M3JCRyRQQ1Ujenw3SElgbUJFayYrIXA4PmtGRm0qO2ZIYmh4RzVQOG8/Swp6XzRlMEZSTlktRCt4
WCtzRFNoPCQlVE0zc3NHLXpVRSQyd3wlZytSOEN0NFI0am5CXmA4P2QtMSQkfSh4LTJ5cEcKenha
WXw1WXIhWDs5UTxeZVJ3PGJ7Rm1MX3psc09MZnR1eX57YjQlYkFGI20tIV9tZD48OTI8RlpNKEIz
QkwoQUt4CnppK2xGfVk0b2JzI3FVfmh4ZHVrLVNhSz58IVhXNkEtRkFmU28oMWMyI05yNGluOz9U
dHNeOSZ2d0k9dUw2PyM/Vgp6MWhRTiNUfENfWGMzIVVNRDUjZDRBP3tKUVpTJDRZY3lpZVZUZ01M
NWAmWTMzQ249QjM7NEEqeXg+WnNiRzY2ZXAKejJxQkI2Wkl9TFgtKWoxQj8qfS1sfDZ8djFAZVh0
WkxfeFBPK3BNIX5OflpUPkZZT0tqNn5BeiVaNkV2YjM0Tj1xCnojdj4rfkB0VShrbSQlN28zY09G
RmpNKnEtMSsoaXUteUJgOC1DVjVYYjIjYjQtaTMzYWhvJjE8OCtHayF5a2MoYAp6OzJRaHgmfmle
JChkem8xQVlZYzxPTSY1SjdqPUB9aXRSNWlZYj1BQlo8ZW9vPkVMUXE7YitSbkZYTTN1S0tEbTUK
emJIe15pcHxLXjNhai0mcmlecnomVGZOZVJZfmV6TnI1NlUzLWY2Kzt7TUJaZG4tbXYyVShMQ3t5
ZUd1RCVgXyNACnpeLVo/Pi19bT9gP2ZxTlR8SiM7I3B8JVJOLThkPWo/MyMhdFN+IVBkOWdvfHtO
NG47UEk2b3o4JHFqV1BnIyRVPQp6WndDbX1ae2dkNWEjdUZKSWxMOX47ZjArRkFEPVh6O25+eUlm
O1B8eiFDd0x2UnNeVExqUSVveVU3Mml1XzJ0Y3UKelIyaiFEZDFyOzZ3UzdfUCtqcCo3PSV9JHUh
ZytAVEBZOXJJI3lmaEI4b1FXMlFGTD44OSlEcUlYfDs9YjNOP3FQCnpIWD0pRCRlZElkNzBKWT1Q
MUw0Vmdtd2pJaVREbTxFZzU4Miltezc+SFZTTU9tRFk+azFIU0FPa2JIVnNmNktxTAp6WSEoc181
S2E4fj55Tyo/KGopa3VvLVk+dG11PyRsQ0Q7MFl6ZUN6WWtJeWpJSm9kWjFITmhMc2l1QFZAWG5B
fjgKekleeHc4YExqUHB7QmNKRi0lRylAVGZnX1lBU1NCVWArRTFFemVtO00+KjQ8OzQ3bFVmbWQo
O0d7YWJoWjkjdU1HCnp7UCVEaDEkcVNwOTs+LU57MT0mYGRoYEQ+cF5ZdlpIKG9lVWI+PzRXWmtF
M0hkcVJBWFk4eTVqTndobGombShMRQp6KVMmWndMSnxLdilpNGJmbWFaV0xTaE0/YlJASG96QHU3
Ml9XR3JmUjtvfVQ/SHI1YXE1UlQ8YFgpelZSdDF+YkkKekI/XzN3SGY2VWVMcj9ndSpkSUxjaVFX
e0RNIytaMF5IOWs3c2ozP2k4JTJXbmc0dCswVGEwWjh5JlVJUl93MmhnCnpNPlpMKkViZFd4V3ph
YiV0bUJkMCVHbTY/N0BlWF8/Kzt0Wnticl5JRlJ+c2dodShmUSZselNsbVU5PyZGYlB5cQp6KCh+
P1dMWEpPYnpTa0pOaTFQeVhRc1UpSGojK3koX3leQnI1SlNUfDZjRTkod1R8eDdtNVlBU2kzZmZ6
JT08Q1gKenAhZlZBfDAqb0gzU0ZKY2Z0UUJTLURFenIwekdlSmJNVnd1VyQ0VCFhdmhRRHNYNWFr
aERQelklPF57MGtkJGBkCnpgNWQwWGJlRzN7NzYrWVNTeHpOU2MqfEgrTUB7MkdhcVc0PGcrUHww
PD1rTChwNiEhaUEpST9mciE7PHtGP31IYgp6dHltLVJ5ITczTnRyZC1TUSZMQjNKS0wjXl5aTWJu
dGZ+U0lkT0NafWUyI2ExU0JtRVI3ayN2WTxsT1RvTUAjUHcKejZkRmxMd35HcFgxU0hAO3gqWXlv
UjcqKWA5azZxMnp5PWNiMWBfLSZnNlZFeyk9RzYjPCV+a2szUWBTeXpfdEtiCnpqVTA8ZnAwaDtO
M1U4SCNpam9gcStAfis4NjNpTTdWLVh4STlFMGtqV3dYX3dMQ2NKfVM0ZWBOJFVOOz40WkdobQp6
OWxFY297KSYhez5waH5fbikmWlpmQilAcGU7JDYhUyUrcm5Lbil0I20kSiY5TnBNejNKSWM1bzFu
aD03OHNmQTQKejEtZXg+eipNM2pBaVRGZWRwWlZlbGc8OUB0ZHpGK0UhazhsMmwoMT9xRnVyKTtP
cCVlODZ0fSk1aShVcTRrMj1FCnoqPT9aNEU4OF9qQjZneH41UTlqR1dEbDxwPilAdHN3d0o0aVRu
bEFibXUjU0h2TGlKc1AkfE9gPkIwdHsjQk9Zawp6bEhzTVI7Vlh2RGJoRzRJJXxQKnw1e0lndkdv
XlMtMkFiYTw+diFPWXRCYlJmN05+cEV4KX1CNyhvbkx6QmYlZWcKenVwaWM0a20rTUkyI2tXWjkt
ZDhJKHg4ZzZHOWBqV0JGWHd2JWE9OG1NeHhMJWEycGs+OXwzLVF6NlM9YTQ0cUJSCnpRN0cjIUt+
QkRIZFJAX1ZzJkp8YllmSUspMkFnV0dPZ0UjZys9e1BiMDJBOXVZKE1UMmRRcjdRdDFhPHUkVn1e
QQp6SUgrTzVCbm0wREc5cmtjRUcpSCEwJi1kdUR4eDh0KUopJjVUTGNsVXNkdXgzLU92RTwyfEVP
THU/Q2VAbUI0NioKekhfcW9aSE53IUYhVTIhaS1xPVY8Y2lSTjdJUl9SSlkzN1BAV0g3MnFWazth
WFBadj8/b3Y0bzRYWEU7SFZNYlBXCnpDYSE3bEhHKn1nQnMoYz13SXJ+aUZtJWQ2Tj9kQGRxMkRW
XmxCamQzLT9fR29gSXI3P3xHX3paKEE+JTs0QHJiXwp6SXhSXlByczRNcF9LeUBOfEpaQURJVX1s
Z05GWnxQTDNDNFA0Y15EdFdCVjYzLXc0bldlcjRHdldCVDE0JkNiKEsKejleMHFrcCR5ZEV0dGVx
dlV1b1Q/eDlxJElNbWJ1a04+aWAyYjEtczlBYD80Y1plNHM1IzRwbTg2VFpyWm9YWDNGCnp3QyFK
Kj89dmsweGAkdD5MS1JzYVA4VDZ6VD0zUGNfdFpBTCZHemR4ajVebkw+TGttcnxFUTNuVCN2KiZI
YUY+JQp6Pm5Hfkk4ZnRjazVfeyMxWTFyRzdxcWwkdEIwZlpBTmRnVUgyTSlPdSRkRVcqMzxOMUAy
d3p+PHQ7TVd3IVpPMm8Kejk1LUs0b3VGezswdjFhdEc5ITM1MyVpTUpvcVZ8MF9DXk5CJntacyFx
N0tidUEme04+MyE5KVc4JUoofCl0cX0+CnplTVB+cTJmMz1CPT1tOSpaJXU8YyVyXjFWUHJvQFN4
WjxCfGE/LU5idFNzfCg0SFhEdz5aYFFxOCQ4TlJCIWtwbwp6OF5nSmNeUWclaEFTI0VCWmxnNTxM
Rmk4N2NwKVhicG91en5vdXVycj80OShZSHFpT1lCYUAmYWw3eWZiQyszJVgKej1XUF5PK1ckRHU8
ZCQ7Q0FpQmRoZG9Ic3tuY2YqV0A+Q1lvPlMpdjE8bHRmPl8tRitmJj1SYGJtJFNXVmQmXiEoCnps
dDBMYEIlUDNWdi0zMng3RXBfa3VlNjNuQF5xfCRfUkUmISp6Xy18Jip7UDRBLTJLSTs9YEFSKjxG
RiMrb2IleQp6b011X3MpRCheR05YRUdJU0dSS0lXQHUyY1cxQWkmcHpqWWF3U2wmR0RGTjBBLVdR
NCRzSWkwPjZ4WXZvUk9xcz4KejxRVllFPSpaX1lWajckNStMci0/UkhtRCUoOEJRVzNmP001eHB0
VDV6O3oybkVEKUAzckVBUlhiaz8/PWlNTDNoCnpqTkozeV5tZmFjQ184M3A8TUwhdlN7ajdaOXQ8
bEtjZ2BQa1oqfEo+RmJARnk0YEBDciZ9cWRxXmZZOz1VPlo2bQp6aFZJSz10WmNIM15+WUVpb0hn
WUY0eDMoO3hmPTY1aXNvJjNWVm9iUURuKipJQUJLVi1rT0NYJHZVV1B4Kj8peiEKekEyYiViVntC
OGhUT1pIYjwmM2MzJEMlaSttb1h9I0ZWLWY9eH1ZOypYIV9URypFZXNEdU5WQ001JnRNZDw8KWNv
Cnpnc3t9RXlJN1hUY0M0K1pzRiV1eEZkSkFTeT5MWUw/ZngmRmRqKiN2NmBiVXBtMlhZcWtTfGlF
YGpkOGw/U1ozTwp6TkQtdj57dzE4Rk5Kbjk4ZGdVYzlkbHxPfVpxUy17WUtKIVJieylOMXl1TSsh
TCV5eiohYVo+TnVNYjFIa18pZTgKej0ye3Z5YWhId0h0OWd4YUh0JEFwMitSJXgtUHRGbl9yKTZ7
a2Naaz4ybWgybDl+NWh4WH09RXlTbWk2XjQmPExfCno2QW47RmQoXzhKcDBWJXUhQC1GTXt5ZF5Q
eTJXJiMmQ3VTeXZ6TjJ4emc0WnlsQXlVTEY1UWNhX3c3RUk2OG1gMQp6PXdZU253MG9NMT1Sb3NW
PEAqamIjSlpXOE5gd0o7eGhFPTI8JjlUZUBiM1UlYyNFPCpYZSh5ZkgtfT5yWEJSYGQKemtgTVY/
UWc5ZHx5bFNII18mQTdHVChpOV5yTnpPO0spNXNTRyNMVTUhSD9ZMT9tQnhgVl9idyN6RClGSSFr
d35eCnohUmN0WDQhaE1eY3ZCY1o8bFRPS2U5WD9zQlc7VEdYfjFNX1RmIW1kVSF6TDZ0WS05N211
bzBzej4qVDd5bTE1WQp6ZiRUZTxzMlpHfGY8MFhSMzdOd2dBbnJfWkp2YHFOYi1xNlFaLVJaPWo+
QHFqMyV1OFNxKTYhQlhPKysxa08wbCEKekJvJj57RVFeekUpUn16KFF8TnsrUnRRUSRIWFhpaTdg
VyhBTFJOPC0yczU8Ty1TOWArWWJpNGEqT0llYTJMeDhCCnomVSV6YnlQU19mY15vNEFhRldKTDhe
NH0mPGtFMDFaQTloU21BT0U7XlNON1dBbS17SUNoOVV5RHQkVU5fZ1M/TAp6TSplc2hycUliMW1G
Yz0kUGRkb0ZGJm9DcHc+RD9oaFRJKFRwUUpvT0MpZmk8P0dJYFo/a0taOFE2Zkd6N2FHMHYKejJZ
N25gWTExVEkydlFNLXphdDM+VlR0NCRiYyh+U0N1SjFIZ2NtZE9uSl83OEwjMk5tSWswcmpwTyZB
KWJiSFZoCnpxfkBvK09JcV5VYWhIOUo3Plo9VT5fOTJCTitKKnNrcns0SkxuNElhbHsoYE1GMmZG
dD9XX1A/UUtWd2dgYXV6Owp6RzJgQD8/RWFlRVI5ZVZkI2B3Tm1WZnliKWsyTkJhJn57X2spIUp5
cGxxQDU2SmJEUl8rSTZoMClsczNkdnB0RyQKemhwQSV4QXhSUHJmNVI0STd0Wnk+U2VFV00wdEZI
eHEzeUV7JFIlflFlYHlGb2BoNSRSWnt9PGYxSWcqVHF+JFN2Cnp0cHZlM3F8fHo5YiV8dGJiRCZS
ez4pMmAqeDImKUkjSElnS0JDZE1yeTdxUW1QSSUhRnJFUU83eSZKflFESVo5UQp6TU9wNCg5ZXI+
YkZEcHRUbHU4TUhDZ2h6Zl5PekJve0dKSmxQIWMmaSMlX1ZUO18qLXBvcUp1Zm89MX02WCNeI3IK
elVQKz9ral8+SiRPcDlZcW9SeXg4NClWRksoWUVhMHtDWn1sVURoRGpec1A4dFhATTFQUTVjZDF2
KDlXOVhTQnolCnpLYV9APnpoUG4mS313dmgmRXBTKXs9Xl98bXEyND4tP1psMG1TdCplK3NUUy12
OCtUKWQxO0krZ3ElezYzMC1RSQp6KG5ZKkZlb3UrUGk8OFoyP0hnJitPdEo9KGUmejF5ZGM4Un1N
d0UmZ181K3IoaU9eJmdtTDYzO3EtfFN5UVpWMXgKelJVTE1geFJiMExDQSZ2bTVVcmtsemFSZz1D
V0NXb0BfVSoobHUzVHdzbXpGQ1hTNmRnbCY2SkZWc0Z5eihnYUJ2CnpYZVU9Tz9eSzBTOTtKYTkj
PU8tPztxI2lWRUlmTHhwUTdAakRYPXMwSGtTZklYK0UjN0VxS3ZKclI9RFQ+aDZxJAp6ZE1ISmBI
Rj53Y0FFcTF3U0FSYXU8R0ZOY2U2R0VlVCY/S0QxNXlSXjQ3KyhqUShGOWppKTVHPD9UdS10Jkwy
PykKelhWZ0pndUBuZlJEITdGKTVAJEgkU01iaXwlLTM1WFZ7ZE1uaGAjQTteN1QrVV9faX5RenBE
MWc+eXpQZShDSnNqCno2Y087RU1ldWF2N01VbkVYXlozU3sqfCkhQXNidXVwYm01RyFOTSl6c0Z9
e2V7R3JUKVo8VHtUOE18c1h5JTlmfQp6Q2BIeU9AJSRgQzZFeilpbUdyPHJMdDwkZkg5PkRKX08q
eUxqIW9SMHglTVV+LU5LaD1iZFplTTlWPVU9JmEoNTkKekdINlZpalFNSXtHSmFGVj9qbVNxUzFH
VjlheG84M08oI0otZ0RhcSt5U1lPR0p1PktoV1c9M35VY2M3RD9BU1ktCnpxQiloRXJ8RypCPj9v
dnJUKlIocHRFbUBPZTYmNGRYKjNRaXJsb1dRXjY4cFFpNWkybFBAQWUqVSp3c2RjZUI4PQp6YW4m
dkpQMjU3VHtvSCoxPSVLRjdFdjBNLT58OVp9SX0zM0xRP08tZzZnXjNHMUg9cnQ+ZXwjJj9sNyhs
PyVMaigKenJ3PWhiZCRCSnQhOV9OYW5Ge0kleGtoO0kpITN8MiEmYkAjLSZgUik3QyFtKSo3U1ZR
RCRCUGFyJS1DbHthV1YzCnokPmBCOzAmdn5ONkNnZVBQYGYlIztaRVJjVUQtKSV5WmJiMSYtMygq
RkxlYmZ7dlokMmB7S0hIbGNIRm8/WmBgMwp6PVJ3ZFFPOUlRZD9oK3hDaSR5cndfbHVmbFBldlAj
OT9wTlhGb0UmRXgpZUs2SEAkO053U3FwVmhuKTdwRkZ9VHIKekMpPGBVOSUhcElOdntGeEQjZ1cq
aHtEc3RmWlVKKUpIVCNLV3RlXnVrKCVMN1EmJWdTbkl4NnMrN0FYN0wweW1fCnpQMkZGS2Q7YU4+
KCt6QG00KTdJYCsjQHZ9P1BNa1NnP3xjSntKTUN0QTJITTFyO05AYTw8QTYtVUg2Xm44ITNHIQp6
TE0keSlENlI4OXlvTiRBN1FYTWR4dnlVUXpPUTtYaHFwcENwMkwwLUVJakMoRmgtZUwxQGhoU0F4
Q2JRTyRpMkgKellHJXZzdXQ7NlhlWW9pdG9RKUs7KThoLUNQUTNtYkxGPGsxezs7ezl4QkomeHVq
QkF2WG4mb0tfXzJGYFNBKm97CnpOdH54ViopO3E+IT5iSDBDNGdJeSlQWShgcz1EQTlPZThWYlNx
fDd3I2BBI2VJQiNXYVoqSUZYPTBxfUgoakQlPwp6bT1NSVomMklUWTAhNVo+LTF6WldIWEshLVFp
V0E9dFJXWiRiN3t0d1ExO2M2TCQ2Yzk3VWpzVCUxWSRoQkokKTEKelZuJihee1EqZFRPejN9VjZp
bm44NFRpQ0xOYnJGWjBEOStDRnlPWFU5Zzg/dmI/c1JFKSNfbm4zSkFxc3k9RUNTCnpjZ1k5K2I8
Qmw2QXRiSzspMCk/WXlseVQ+cmg9OHBaZyVvTlNjS0dCZkoyeVZSWmc4SEZqSVpUO18/OWFtTiEq
cQp6QU97T3lkN1cyRGxuVjJjYkkjRiRycXtOdSgoTGo9WTFZMXBtZGl7QXh8fndzVlQ/TWU+ZyEl
JUJGPURYT3loY0AKejZ8THVYbj9MN3I/UmpkU0phbHpnY35aO2hoRWc0WlR7TFRyJXlfdj1SUFFg
fVFDfiFuZDsrIyN5KmtDQjtjYmVCCnpVZWNsTWtLeHVPVlBHdDNoWkR3VFpySClLZmZZeXExcm59
ejBJV2ZXQml4XmVYSlBYIUcxSTNeaE4/TUA9SmQ/bQp6UjM0RjZPKEZyNTBpYEVEa2Y7TVNpTFAt
QW5sdlFFNmZrdjcte01TSWRaOzl5NEFaUTxpSV4qQkBxeGJGZTNzNXkKejUoWVJyMSMrazZMVUh5
JihUdz0mbXpkUHExbjE4ZSNhTXNVYXxyYW8je2c1MUxNdzQ9Q3dTfTJOdihSemIlIzx1CnpTSVh3
dGJVNXBwMFZGfDZkR21IdmZGZHs7O3d9ZGUxYWljc15LeWFgbXlLNUohJF5zRl4+bU5DYGpKMksr
XllzWQp6SDtCUlFZJipLTjtOPXRmZDcoVGBVSkpEbzxrZ0xEUUs0Rnlxczs1MllBKXFnRF5mVl5V
P1lHUnhIYFBMYy01OVcKenhmb1hEQ1M9RHBsQjFSMkZ5QVNHc352NlBAWSZSd21WKCtDMW9oaXtl
cTs4UjckYmxWeFQ7aXBoY1NXbFk5N3koCnpRWH5VWmZYdzNIYiZEem9mQ3h4d1Nve2toMF80Y2sm
Qm01KSNhQSlicjcyNmcoU3tfNF5lZStCSmcqVFIwWEFtaAp6PHd9RTJOOTdlWS1qZjVmNExfZDwq
KyZpTih4ZkEkMCZkOVZhTlI/R3FXPW5iUHVPeFZkPy11YEUpMys9XmN0KjkKenBZOEEtP3MwNylt
aWBwe01tT1QoRyY5XndTPCVLSmFxKCglMkBFX0Z4OUVOaUsqSldNP1lpT0VJd1NWaV9NczY4Cno9
TF5XJm5HVD50aT1SPlcqMzlOPiVfez10UiZPeGUjZipAbDAmb0xIdkhKREd7Y1d4ZEdpX0VOTE00
V09gYHY7RAp6YTtsWXg8fTF2QWclX0NVWiY3VVJwPGE+TXl1RU0lJXU4ZUEhKXV5MFJZQXd+PjdZ
UjNPYDF8JnwyPj5YNitwc04Kek5ycmtDN1ojaC1JemN0MFpaSF95VClMMjs+Wi0kP3d9UjxacWg0
OFkoQ0lxKTd6ajx4NktBZ3pAYnZ7SWBCSilOCnpKSDRqVnBQSj9UUzVie152QjUkMEluNmVERSVo
QE1mY1RneU9nZFlGV1U1b2VVNCFeZXAqK0lEejwlVzdQKnJ4SQp6RXItcV8rUiskd0hPeHt9QlNz
eHQ8UFUpUmhOVXFwPEAkRys7K2hoRmY8Tl47anpTPmVIISUhMlU8YShgN2NyUTcKejFiPmZDMkdQ
KEhNN1R5WCVrRXRiIzhfNGhkK1FmeHhVMk43TDM8UXRzWmB2YSVsZXdqQG5kMn5wPGVAVmdJdzsx
Cnp5JTszM1FGWlF8VTYlSjVQQjVaP2duTz09PjN8ckV1aW1SJWB3OWF8cVc3PUx7RVhweShqcnUp
TVhxNSYyaG0ycwp6VUF7d2hMJUBjYV81O3ZveGJOKXd5TGk0a0pheDcmcmBsTz9FQ2JQbTZiRTZF
ZSgtPVN6cEhYQXlqalA3PVN0X0QKemt+NlZhI3wrUXp3ZldNdVApfmd9OHgyYUM/RnlfV2lKVGZB
SG0wU2pZZGlJUnJAMFZkODdQNzErWl8tR3ZIVClWCnp7Rjs0cHNZenNyMzZNSUFXRWM1VFpIe21G
UDNUaGQ7Xno7U3c1b2AwLXl1OSMmSXR3TV8kKDVgRE9WOHlkP3lkTgp6O2F0Vyg4KXdjMHdhT2F9
MkgrTmpgbVkjTnBAIXxrezZuMGF6R29oISQrb21OOHJFZmxQSSomRUg9d2F1KnR3Sy0KenEtTVpl
bypaWVlLejE+OD5wb0xkYVk/U240N0VIa01WPCNZMEg4ZkhlRCQqJGd5TjhTXkR+WWE8R3M9cVhj
U2oqCnpeVFpVd0w5UVVqKjY5QlE/YWgwdkR9UjlZeWFacU9mPEAoQDBwIzZCMG08QEApdlA4UWV6
bk8pVnNqdzsoN0QhcQp6KnU/TkQyampzJjsjSiRaXnM5QCpicShffTRCdmd+ZXNpc25RMmY7REhg
eTlxPio7Vzk7V3khTFpySDV1Z3orY3cKelZgfnsxPEVpUjRab1FgI3M1Q0VZOF9DYDkkK09lcihl
IUZKOz59PTNSX0JWeztmdj5QZyFKYitRUXxeYG1sdkdkCnpEdjFXS21rM05GX0Q2JUU8R2JNQXtg
I00+ZncyKyRNaF9gTDslfFJmJkl1eW8tLUM1fVVmMmx9ZmROQlBUYmVTTQp6MGIwZnBqV2sqSz5O
NXsySCVtZEBTWWdwKyVFJVdlPW5qY0c/cjxXa3BqQnROaHB3Qn1VcWpIZ1VFOTlTOXJ+aT4Kelcz
dmxhPWtFVEVzJXY0aWEhTFpHbEV9WkhGYGVXI08rQTImWU8oaDY9PkNiKjFNeWNuTlJuOHxnIVop
OSY0U3opCnoqNTxyQTJEaTchM31sTHI7S0VVckVhOD9XQ24xUUdrLSRAcWtNQ2oqJiZGdEZ1ayhY
dCtFNiZySmRJdFdSWDgoWQp6U3xkbVY9emBDUChMbChlJT1WV1khQ3RQKkdEJFhBKkBPVTE0QzNr
NHdXPUp4K2lGPmdBZGQ0KDloMTN0PSkpTXwKejFAbk5qYGRFVUFfNiF8Qj1qNmR8Ql5tODhxNE5V
Q2pIen1UYmxwViRWcTxQP25+NmBSbjxSMHFqPFVfX1oleCt8Cnp1ZVBAQWswPGdQUXd9RWBCZm9y
UCNIUUtkcVV4ezZfdVMwaDlaQUwhSi13RDBgSDlCbVVEXzMjWWFMR3ZRaGtQbAp6XklHO04yRyU9
SklFPFMkTUdSalN2WGEpe3hmaX5fUmZXXz5eTmJad2FjSG8mMGt1JXNMTm5XLTU+c3Uke2Q0PXIK
em9IJlMyK01iSUhzZikwNWtZdTMqJFdueDdNS21Fd2Z4QUxuWGFRKVpFdFE1YjBUWiNDdnU1cyYy
T1pQWGV0b089CnpJOWBOOXg5RzR5UyM/MCNwWTNGbEY1YXw+LVZKd1pKXmIyMDchbyVxd1IkYFJi
P3pmX2BvcWIpcmp4aVU9IUxhaQp6QDE2Nz8wKn4yS24xMnQqWFlMTExFbm1eREl1OyQyeipNU0JE
UExXdFElQSFPVXMkMWw9JT05PF9vOXhYODIlbSsKemFod2ZmYVdARzV0YiMwej9sWEJ0U2dkaGI2
MVh1MXBfVlZjakUqblp4ZSlVc3RkM2RDWGU+P2Zpa343QjZ0ZHFoCnp5eGQjMGQoNnVgR2FPMTJW
e0tgPCREKn13QEN8Z2k7JT5iWCokeFlAJmpLK0ZWeHpia0A7KDN0U05BMEhXPyohOwp6NmA2JF9t
bVpYUENxKXElQ21NSWVBYGZOVD5gcDMhNXt8b3V1RlFQOEAqUlRZOEZSVkJma3w1YFheLT05QjxG
O0UKejxNQGtKJWUrU0c4YSFmM1VNUDFqRms0Ynw/ZWR9UVM5ez8xVDdBWThKfDx+WkpOSnkwcWVk
Z0olbjN4d15yKG9KCnp2UnAjO0JUbzMzcTRTSXkwK0t8K2JaZXxfUT0/bEkkfTw+bnNCZFdfNjJv
UHxpMUJWPS13d08hRVJTME8pZio+Rwp6VjF1VVZPWk11UGpuQVVwNSh9Z34+TEpCd1dqaCljV2xL
QV5jS31IVXBzeFV4MT09JTxZU1VNejc+SXpDKH1EeHsKenheLTAxRyprI1Axamh6cU1jQn41T2dr
MWkrZCZVPkU0bzRocCQwRjdiIWs/JFE0MzM0IUZDfVkjcXZkJFkwST5sCnoxcmwhNXZDNkVQWFkx
UkVyPlZLJT49YC1TQjI0RT13O2FyRlNfUmcmQjRebztRQTs7XzBkU1U+V3w3aWBfeHcyNwp6cXBm
e2VBRHF5TklDQCtgMDNxMTl4RkV9JV9PPWtTeWFiRiVFMiZ+c1RYUzkmaTx3VDlMTzgzN0lOVDU1
P1lCNXMKelJaPyFtTmh1QzAkRFlKaGwzKkd5Rl42R0Ezb149WSlVIXdXZ19HTjB2eXY3ZE59UFlK
dGFuelprSHk0ckRHQUBECnpSak04PDhgfDFlSH0+WjBqOVRlI2l6NUZOWWx9bktFIUV3K2dvMipa
K35xQHlKemh7JSkhKG8/ZlJhVygrME1ISgp6PGk4a1c8dClwI1c5P35qXj1tazkmeSk4KVd5Ulkt
d3Uoe0tkcitVLTduVUolbXNiPkBFUmxvb3FGNX04REgzUGIKek0wKXhMVmRIfURyMT5pUDB4KHU+
NGFSRGlpUDZNTnkkKG9AQ0ZyZkJPUjt2ZkVWbD4xI089ZDhZeDQqVTRLWSFXCnpLVExlZ1R+OSRQ
OFh6dkdGNTheaSNYOCVmN1N7ZWVwbSloTElKZSRsQWR5WWNPN1A4S3N4MEBsNWB9QHYhczNKXwp6
bXIxPGB3ZzkmYnpTaF9fQWwjZiYyVjV1ZTxsfklEUWtRY3hTT3MzeHdgOHB+PnY4P1Z7UH5iTnVz
WTFfaigkUj0KemoqQ3tiTklHZEdZXmtneUlraEtJJUdSOTQ/SlkzXys0MG1GWTVVWSRrXyhXeHpo
aUN0RnI8SWhFP3hVJnJPKn5tCnpaS344RUZQa3NvS1opMmYtRElGcmxUNHcqVjgkPjEpTSM7WnZS
bX5EfDIpcGhmYHJGSW10dlZRVXs9OUZzMSkzIwp6YkdOUU41fFklNm89SUQpWG54dClgNk41P3ts
O0NmNn5gZFYzb0xrajM8JVBARyYldCVjU0hKdXZ9YXMlNk5nWUEKemJWRV5YPEBGM3E7I3hQcWpZ
Pl5jZXMhVHcreU5UWnU0NGdQQlFFfm1mcCRRTFR3ZVhgdiVENTVNWVVobT8kcH5HCnpIciZ9aXRa
QlhgMiFQd34meG08JSFKTlY2Unt0dEYwQnRHPyhoJjtIVEozTkREUVEhRGRVfTRIMXJXVik3bDJJ
dgp6VzAhdygrbGFeeEI/cW5jOVBiLSMwa0gjP2AydTZHVih+UnhHX2w4Zig7WHgkciVMdTAqcCl0
aDlUQDh4VH1qXmYKenBLfHl1Qm9JMyVoUWwkeFlNe1czdUteYF52I1BveGcqOHdTITUyQlBNXnJD
QWdsR0FTMHRJd3VDTDxramFlekA/Cnp7PTNrZ1o+YDZkI141XkJle1FHV3lJKmAzIUtaUyk0JkN2
cTZ0LUZQeGhKNXd8Rm5xfTlsITJZeDdvWkpiTUQ9Zgp6bFRYJHREWk5gZ1RRJkkwPyo9dnF8NllY
MCVGKz92RzcyeUpVVkAmam8yNEhHVX4lMyp7cCRNPFl+VHotVntRQ3oKeikkUz5kOzlEMjtBRUJk
blhQfTA9X2RhfkBnSTB8MXRiOEtDTlkqUTZ4dHZ0fTVnI0hTTns8TUFKb0VLWWI+dUgyCnppZz0m
MDhGMHcqK0BobnU5ckI/eDVMRiZEKytGa2JBRmRWJHhTRVZzaHdFPXd5UnJGdWE5SjFqbGJyaGg+
Z0BlaQp6ditgX24teXMzbHRaTWJAIyh6OSslZl95VkJodkR4fDhkZ0BKJGN8SGxFN350e1hjc1dZ
NWhSZjQ8bEd0IUAzJU4KeipJM3JBVmNpPG10enJHPj8pbk1sSE1xSGNrbyFqaHpwalJMSFQqdHp2
MkczUCowNjMzPiN6TCRwYyZUSHUmIyFHCnp4T3UmR1lnbzYyYiElOUVJZHVJVSopX18ye2NQQCFh
P2lSTnsqJT88X3c0Q1dLRTRnZy1+U2gyIX1gMVFLTiFeaQpmTmUlQ0w4e0F5ITJWKnBzXm5pYVg7
V0lwVT4xQGZGVGxmRDlIJUt9UAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNo
YWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9z
aW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jNTNhNWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSAzODB4MTk0CisgICAgUmVu
ZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIwLDI2KSBzaXplIDIxN3gxOCBjb250YWlucyAxIGNodW5r
KHMpCisgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMTd4
MTgKKyAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCw0MC4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgMzQgd2lkdGggMjE3LjAwOiAiVGhpcyB0ZXh0IHNob3VsZCBhcHBlYXIg
b25seSB0d2ljZSIKKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTAwLDEwMCkgc2l6ZSAy
NTB4NzAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbeD0xMDAuMDBdIFt5
PTEwMC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy5zdmcgYi9MYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyZWNiMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCkBAIC0wLDAg
KzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJhc2Rm
IiBzdHlsZT0iLXdlYmtpdC1zdmctc2hhZG93OiA1MHB4IDUwcHggMHB4IHJlZDsiPgorPHRleHQg
eD0iMjAiIHk9IjQwIiBmaWxsPSJibGFjayI+VGhpcyB0ZXh0IHNob3VsZCBhcHBlYXIgb25seSB0
d2ljZTwvdGV4dD4KKzxyZWN0IHg9IjEwMCIgeT0iMTAwIiBoZWlnaHQ9IjIwIiB3aWR0aD0iMjAw
IiBmaWxsPSJibHVlIiAvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgxZmMzNDkuLjNmMGM0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAor
MjAxMS0wOS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXh0IHJlbmRlcmVkIHdpdGggYSBzaW1wbGUgKGkuZS4gMHB4IGJsdXIpIHNoYWRvdyBp
bnNpZGUgYSB0cmFuc3BhcmVuY3kgbGF5ZXIgaGFzIGEgZG91YmxlIHNoYWRvdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NDMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwMDcwNTM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEdlbmVyYWxpemUgKGJlZ2lufGVuZClUcmFuc3BhcmVuY3lMYXllciwg
d2hpY2ggbm93IGZvcndhcmQKKyAgICAgICAgdGhyb3VnaCB0byAoYmVnaW58ZW5kKVBsYXRmb3Jt
VHJhbnNwYXJlbmN5TGF5ZXIsIHNvIHRoYXQKKyAgICAgICAgaXNJblRyYW5zcGFyZW5jeUxheWVy
IGNhbiBleGlzdCBvbiBldmVyeSBwbGF0Zm9ybS4KKworICAgICAgICBNYWtlIHVzZSBvZiBpc0lu
VHJhbnNwYXJlbmN5TGF5ZXIgaW4gRm9udE1hYyB0byBkaXNhYmxlCisgICAgICAgICJzaW1wbGUi
IHNoYWRvdyBkcmF3aW5nIHdoZW4gdGhlIHRleHQgaXMgYmVpbmcgcmVuZGVyZWQKKyAgICAgICAg
aW50byBhIHRyYW5zcGFyZW5jeSBsYXllci4KKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3Np
bXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojp+
R3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVn
aW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmVuZFRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6aXNJblRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZv
cm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250
ZXh0UGxhdGZvcm1Qcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9H
cmFwaGljc0NvbnRleHRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmlzSW5UcmFuc3BhcmVuY3lMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFu
c3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmVuZFBs
YXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5
TGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRyYXdHRElHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cmVsZWFzZVdpbmRvd3NDb250ZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Z2V0V2luZG93c0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFu
c3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBv
cnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9H
cmFwaGljc0NvbnRleHRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisKIDIw
MTEtMDktMDIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUg
QmVmb3JlUHJvY2Vzc0V2ZW50LCBpdCB3YXMgbmV2ZXIgbWVhbnQgdG8gYmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4
IGM1YmVkNzMuLjJiOTEwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzgsNiArNzgsNyBAQCBwcml2YXRlOgog
CiBHcmFwaGljc0NvbnRleHQ6OkdyYXBoaWNzQ29udGV4dChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dCogcGxhdGZvcm1HcmFwaGljc0NvbnRleHQpCiAgICAgOiBtX3VwZGF0aW5nQ29udHJvbFRpbnRz
KGZhbHNlKQorICAgICwgbV90cmFuc3BhcmVuY3lDb3VudCgwKQogewogICAgIHBsYXRmb3JtSW5p
dChwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCk7CiB9CkBAIC04NSw2ICs4Niw3IEBAIEdyYXBoaWNz
Q29udGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9y
bUdyYXBoaWNzQ29udGV4CiBHcmFwaGljc0NvbnRleHQ6On5HcmFwaGljc0NvbnRleHQoKQogewog
ICAgIEFTU0VSVChtX3N0YWNrLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX3RyYW5zcGFyZW5j
eUNvdW50KTsKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KIApAQCAtMzMwLDYgKzMzMiwyNiBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDo6c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSBjb25zdAog
ICAgIHJldHVybiBtX3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwogfQogCit2b2lkIEdy
YXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQorewor
ICAgIGJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihvcGFjaXR5KTsKKyAgICArK21fdHJh
bnNwYXJlbmN5Q291bnQ7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVu
Y3lMYXllcigpCit7CisgICAgZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpOworICAgIEFT
U0VSVChtX3RyYW5zcGFyZW5jeUNvdW50ID4gMCk7CisgICAgLS1tX3RyYW5zcGFyZW5jeUNvdW50
OworfQorCisjaWYgIVBMQVRGT1JNKFFUKQorYm9vbCBHcmFwaGljc0NvbnRleHQ6OmlzSW5UcmFu
c3BhcmVuY3lMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3RyYW5zcGFyZW5jeUNvdW50
ID4gMCkgJiYgc3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMoKTsKK30KKyNlbmRpZgorCiBib29s
IEdyYXBoaWNzQ29udGV4dDo6dXBkYXRpbmdDb250cm9sVGludHMoKSBjb25zdAogewogICAgIHJl
dHVybiBtX3VwZGF0aW5nQ29udHJvbFRpbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAyNmFkMDJlLi44NTE0N2Y0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaApAQCAtMzcwLDYgKzM3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7CiAgICAgICAgIHZvaWQg
ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAgICAgICAgYm9vbCBpc0luVHJhbnNwYXJlbmN5TGF5
ZXIoKSBjb25zdDsKIAogICAgICAgICBib29sIGhhc1NoYWRvdygpIGNvbnN0OwogICAgICAgICB2
b2lkIHNldFNoYWRvdyhjb25zdCBGbG9hdFNpemUmLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYs
IENvbG9yU3BhY2UpOwpAQCAtNDI1LDEzICs0MjYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIGRyYXdCaXRtYXAoU2hhcmVkQml0bWFwKiwgY29uc3QgSW50UmVjdCYgZHN0
UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKTsKICAgICAgICAgdm9pZCBkcmF3Qml0bWFw
UGF0dGVybihTaGFyZWRCaXRtYXAqLCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0SW4sIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50U2l6ZSYgb3JpZ1NvdXJjZVNpemUpOwog
ICAgICAgICB2b2lkIGRyYXdJY29uKEhJQ09OIGljb24sIGNvbnN0IEludFJlY3QmIGRzdFJlY3Qs
IFVJTlQgZmxhZ3MpOwotICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50
UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQgPSBmYWxzZSwgYm9vbCBtYXlDcmVhdGVCaXRt
YXAgPSB0cnVlKTsgLy8gVGhlIHBhc3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0
bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KICAgICAgICAg
dm9pZCByZWxlYXNlV2luZG93c0NvbnRleHQoSERDLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBw
b3J0QWxwaGFCbGVuZCA9IGZhbHNlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAgICAv
LyBUaGUgcGFzc2VkIGluIEhEQyBzaG91bGQgYmUgdGhlIG9uZSBoYW5kZWQgYmFjayBieSBnZXRX
aW5kb3dzQ29udGV4dC4KICAgICAgICAgdm9pZCBkcmF3Um91bmRDb3JuZXIoYm9vbCBuZXdDbGlw
LCBSRUNUIGNsaXBSZWN0LCBSRUNUIHJlY3RXaW4sIEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KTsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAgICAgR3JhcGhpY3NDb250ZXh0KEhEQywg
Ym9vbCBoYXNBbHBoYSA9IGZhbHNlKTsgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQuCi0gICAgICAg
IGJvb2wgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0OwogICAgICAgICBIREMgZ2V0V2luZG93
c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQgPSB0cnVlLCBi
b29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUgcGFzc2VkIGluIHJlY3QgaXMgdXNl
ZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5nIGluc2lkZSB0cmFuc3BhcmVuY3kg
bGF5ZXJzLgogICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMsIGNvbnN0IElu
dFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRt
YXAgPSB0cnVlKTsgICAgLy8gVGhlIHBhc3NlZCBpbiBIREMgc2hvdWxkIGJlIHRoZSBvbmUgaGFu
ZGVkIGJhY2sgYnkgZ2V0V2luZG93c0NvbnRleHQuCiAKQEAgLTQ4MSwxMSArNDgwLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIG9mIGEg
YnVnIHdoZXJlYnkgZ2V0dGluZyBhbiBIREMgZnJvbSBhIEdESSsgY29udGV4dAogICAgICAgICAv
LyBsb3NlcyB0aGUgc2NhbGUgb3BlcmF0aW9ucyBhcHBsaWVkIHRvIHRoZSBjb250ZXh0LgogICAg
ICAgICBGbG9hdFNpemUgY3VycmVudFNjYWxlKCk7IAotICAgICAgICBib29sIGluVHJhbnNwYXJl
bmN5TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShRVCkKLSAgICAgICAgYm9vbCBpblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3Q7CiAgICAgICAg
IHZvaWQgcHVzaFRyYW5zcGFyZW5jeUxheWVySW50ZXJuYWwoY29uc3QgUVJlY3QgJnJlY3QsIHFy
ZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFzayk7CiAgICAgICAgIHZvaWQgdGFrZU93bmVy
c2hpcE9mUGxhdGZvcm1Db250ZXh0KCk7CiAjZW5kaWYKQEAgLTUzOCwxMSArNTM1LDE2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldFBsYXRmb3JtQ29tcG9zaXRlT3Bl
cmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yKTsKIAorICAgICAgICB2b2lkIGJlZ2luUGxhdGZvcm1U
cmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKKyAgICAgICAgdm9pZCBlbmRQbGF0Zm9y
bVRyYW5zcGFyZW5jeUxheWVyKCk7CisgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzVHJhbnNw
YXJlbmN5TGF5ZXJzKCk7CisKICAgICAgICAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
KiBtX2RhdGE7CiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbV9zdGF0ZTsKICAgICAg
ICAgVmVjdG9yPEdyYXBoaWNzQ29udGV4dFN0YXRlPiBtX3N0YWNrOwogICAgICAgICBib29sIG1f
dXBkYXRpbmdDb250cm9sVGludHM7CisgICAgICAgIHVuc2lnbmVkIG1fdHJhbnNwYXJlbmN5Q291
bnQ7CiAgICAgfTsKIAogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGE4NTlmODcuLmE3MGJhZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTg3OSw3ICs4NzksNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvdygpCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNo
YWRvd0JsdXIoKS5jbGVhcigpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
UGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTg4NywxMCArODg3LDkgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkK
ICAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dCgpLT5jcigpOwogICAgIGNhaXJvX3B1
c2hfZ3JvdXAoY3IpOwogICAgIG1fZGF0YS0+bGF5ZXJzLmFwcGVuZChvcGFjaXR5KTsKLSAgICBt
X2RhdGEtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0
Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQog
ICAgICAgICByZXR1cm47CkBAIC05MDAsNyArODk5LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShj
cik7CiAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5sYXllcnMubGFzdCgp
KTsKICAgICBtX2RhdGEtPmxheWVycy5yZW1vdmVMYXN0KCk7Ci0gICAgbV9kYXRhLT5lbmRUcmFu
c3BhcmVuY3lMYXllcigpOworfQorCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFu
c3BhcmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZUNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCmluZGV4IGQ4ZmYyMDUuLjlk
ZmY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRl
Q2Fpcm8uaApAQCAtNzcsOCArNzcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFuc2xhdGUoZmxv
YXQsIGZsb2F0KTsKICAgICB2b2lkIGNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsK
ICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKLSAgICB2b2lkIGJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNwYXJlbmN5Q291bnQrKzsgfQotICAgIHZvaWQg
ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNwYXJlbmN5Q291bnQtLTsgfQogICAgIHZv
aWQgc3luY0NvbnRleHQoY2Fpcm9fdCogY3IpOwogI2Vsc2UKICAgICAvLyBPbiBldmVyeXRoaW5n
IGVsc2UsIHdlIGRvIG5vdGhpbmcuCkBAIC05Miw4ICs5MCw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHRyYW5zbGF0ZShmbG9hdCwgZmxvYXQpIHt9CiAgICAgdm9pZCBjb25jYXRDVE0oY29uc3QgQWZm
aW5lVHJhbnNmb3JtJikge30KICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
KSB7fQotICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpIHt9Ci0gICAgdm9pZCBlbmRU
cmFuc3BhcmVuY3lMYXllcigpIHt9CiAgICAgdm9pZCBzeW5jQ29udGV4dChjYWlyb190KiBjcikg
e30KICNlbmRpZgogCkBAIC0xMDUsNyArMTAxLDYgQEAgcHVibGljOgogICAgIEdka0V2ZW50RXhw
b3NlKiBleHBvc2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgSERDIG1faGRjOwotICAgIHVu
c2lnbmVkIG1fdHJhbnNwYXJlbmN5Q291bnQ7CiAgICAgYm9vbCBtX3Nob3VsZEluY2x1ZGVDaGls
ZFdpbmRvd3M7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZTE4ZmEwYS4uYzRm
ODQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtOTYzLDcgKzk2Myw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0LCBp
bnQgdGhpY2tuZXNzCiAgICAgQ0dDb250ZXh0RU9DbGlwKGNvbnRleHQpOwogfQogCi12b2lkIEdy
YXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBv
cGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTk3MywyMSArOTczLDI0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFy
ZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0
Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRTZXRBbHBoYShjb250ZXh0LCBvcGFjaXR5KTsK
ICAgICBDR0NvbnRleHRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGNvbnRleHQsIDApOwotICAgIG1f
ZGF0YS0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcigpOwogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZp
Y2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmVu
ZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3Jt
Q29udGV4dCgpOwogICAgIENHQ29udGV4dEVuZFRyYW5zcGFyZW5jeUxheWVyKGNvbnRleHQpOwot
ICAgIG1fZGF0YS0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIAogICAgIHJlc3RvcmUoKTsKIH0K
IAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3Jt
U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYg
Y29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxl
ZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmgKaW5kZXggZjRm
YTEyMi4uNWMwMDMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVD
Ry5oCkBAIC00NiwxOCArNDYsMTAgQEAgcHVibGljOgogICAgICAgICAsIG1faGRjKDApCiAgICAg
ICAgICwgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGZhbHNlKQogI2VuZGlmCi0jaWYgUExB
VEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECi0gICAgICAgICwgbV90cmFuc3BhcmVuY3lD
b3VudCgwKQotI2VuZGlmCiAgICAgICAgICwgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRv
QmVJZGVudGl0eShmYWxzZSkKICAgICAgICAgLCBtX2NvbnRleHRGbGFncyhmbGFncykKICAgICB7
CiAgICAgfQotICAgIAotICAgIH5HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKCFtX3RyYW5zcGFyZW5jeUNvdW50KTsKLSAgICB9CiAKICNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIFRoZXNlIG1ldGhvZHMg
ZG8gbm90aGluZyBvbiBNYWMuCkBAIC05MCwyNCArODIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBt
X3Nob3VsZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIAotICAgIHZvaWQgYmVnaW5UcmFu
c3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JNKFdJTikgfHwgIUFTU0VSVF9ESVNB
QkxFRAotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50Kys7Ci0jZW5kaWYKLSAgICB9Ci0gICAg
dm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JNKFdJTikgfHwg
IUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBBU1NFUlQobV90cmFuc3BhcmVuY3lDb3VudCA+IDAp
OwotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50LS07Ci0jZW5kaWYKLSAgICB9Ci0KICAgICBS
ZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NnQ29udGV4dDsKLSNpZiBQTEFURk9STShXSU4pIHx8
ICFBU1NFUlRfRElTQUJMRUQKLSAgICBpbnQgbV90cmFuc3BhcmVuY3lDb3VudDsKLSNlbmRpZgog
ICAgIGJvb2wgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eTsKICAgICBH
cmFwaGljc0NvbnRleHRDR0ZsYWdzIG1fY29udGV4dEZsYWdzOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29u
dGV4dEhhaWt1LmNwcAppbmRleCBiM2Y2YzA2Li40ZGFmZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250
ZXh0SGFpa3UuY3BwCkBAIC0yNDksNyArMjQ5LDcgQEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4
dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgcmV0dXJu
IHJlY3Q7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5z
cGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVy
KCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkK
IHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNjUs
NiArMjY1LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBv
cnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250TWFjLm1tCmluZGV4IDA2N2Q3MzQuLmY1NGY4ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCkBAIC0yMjIsNyAr
MjIyLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGNvbnMKICAgICBDb2xvclNwYWNlIGZpbGxDb2xv
clNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3BhY2UoKTsKICAgICBjb250ZXh0LT5nZXRTaGFk
b3coc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvciwgc2hhZG93Q29sb3JTcGFj
ZSk7CiAKLSAgICBib29sIGhhc1NpbXBsZVNoYWRvdyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9k
ZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFkb3dDb2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd0Js
dXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpICYmICghY29udGV4dC0+c2hh
ZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBjb250ZXh0LT5nZXRDVE0oKS5pc0lkZW50aXR5T3JU
cmFuc2xhdGlvbk9yRmxpcHBlZCgpKTsKKyAgICBib29sIGhhc1NpbXBsZVNoYWRvdyA9IGNvbnRl
eHQtPnRleHREcmF3aW5nTW9kZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFkb3dDb2xvci5pc1Zh
bGlkKCkgJiYgIXNoYWRvd0JsdXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgp
ICYmICghY29udGV4dC0+c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBjb250ZXh0LT5nZXRD
VE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKSAmJiAhY29udGV4dC0+aXNJ
blRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgaWYgKGhhc1NpbXBsZVNoYWRvdykgewogICAgICAg
ICAvLyBQYWludCBzaW1wbGUgc2hhZG93cyBvdXJzZWx2ZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9u
IENHIHNoYWRvd3MsIHRvIGF2b2lkIGxvc2luZyBzdWJwaXhlbCBhbnRpYWxpYXNpbmcuCiAgICAg
ICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcu
Y3BwCmluZGV4IDE1OTU2OTIuLjQ0MTdkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVu
VkcuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUGxh
dGZvcm1TaGFkb3coKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkp
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjk0
LDcgKzI5NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpCiAgICAgVU5VU0VEX1BBUkFNKG9wYWNpdHkpOwogfQogCi12b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogewogICAgIGlmIChwYWludGluZ0Rp
c2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMwMiw2ICszMDIsMTEgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMo
KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFy
UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBo
aWNzQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzQ29udGV4dFF0LmNwcAppbmRleCBhMDg5ZmVmLi40NGNkZDk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
UXQuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgcHVibGljOgogICAgIGJvb2wgYW50aUFsaWFzaW5n
Rm9yUmVjdHNBbmRMaW5lczsKIAogICAgIFFTdGFjazxUcmFuc3BhcmVuY3lMYXllcio+IGxheWVy
czsKLSAgICAvLyBDb3VudGluZyByZWFsIGxheWVycy4gUmVxdWlyZWQgYnkgaW5UcmFuc3BhcmVu
Y3lMYXllcigpIGNhbGxzCisgICAgLy8gQ291bnRpbmcgcmVhbCBsYXllcnMuIFJlcXVpcmVkIGJ5
IGlzSW5UcmFuc3BhcmVuY3lMYXllcigpIGNhbGxzCiAgICAgLy8gRm9yIGV4YW1wbGUsIGxheWVy
cyB3aXRoIHZhbGlkIGFscGhhTWFzayBhcmUgbm90IHJlYWwgbGF5ZXJzCiAgICAgaW50IGxheWVy
Q291bnQ7CiAKQEAgLTc2Myw3ICs3NjMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZgogICAg
IHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRoKCksIFFDb2xvcihjb2xvcikpOwogfQogCi1i
b29sIEdyYXBoaWNzQ29udGV4dDo6aW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0Citib29sIEdy
YXBoaWNzQ29udGV4dDo6aXNJblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9kYXRhLT5sYXllckNvdW50OwogfQpAQCAtMTA2MCw3ICsxMDYwLDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnB1c2hUcmFuc3BhcmVuY3lMYXllckludGVybmFsKGNvbnN0IFFSZWN0ICZy
ZWN0LCBxcmVhbCBvcGEKICAgICBtX2RhdGEtPmxheWVycy5wdXNoKG5ldyBUcmFuc3BhcmVuY3lM
YXllcihwLCBkZXZpY2VDbGlwLCAxLjAsIGFscGhhTWFzaykpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFw
aGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5
KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEw
ODQsNyArMTA4NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxh
eWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgKyttX2RhdGEtPmxheWVyQ291bnQ7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpCiB7CiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTEwOCw2ICsxMTA4LDExIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAgZGVsZXRlIGxheWVy
OwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMo
KQoreworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFw
aGljc0NvbnRleHRTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5kZXggODlkNmZhMy4uZDdhYzNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRl
eHRTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dy
YXBoaWNzQ29udGV4dFNraWEuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cmVz
dG9yZSgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXll
cihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4MywxMyArMjgzLDE4IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNrQ2FudmFzOjprRnVsbENvbG9yTGF5ZXJf
U2F2ZUZsYWcpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxh
eWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVy
KCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAg
cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5yZXN0b3JlKCk7CiB9CiAKK2Jvb2wgR3JhcGhp
Y3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycygpCit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIC8vIEdyYXBoaWNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgdGhpY2tu
ZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENH
V2luLmNwcAppbmRleCA5ZDA3M2FjLi5mNTk2Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBA
IHN0YXRpYyB2b2lkIGRyYXdHRElHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRl
eHQsIGNvbnN0IFNpbXBsZUZvbnREYXRhCiAgICAgICAgIGlmICghZmlsbENvbG9yLmFscGhhKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZHJhd0ludG9CaXRtYXAgPSBmaWxsQ29s
b3IuYWxwaGEoKSAhPSAyNTUgfHwgZ3JhcGhpY3NDb250ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVy
KCk7CisgICAgICAgIGRyYXdJbnRvQml0bWFwID0gZmlsbENvbG9yLmFscGhhKCkgIT0gMjU1IHx8
IGdyYXBoaWNzQ29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgICAgIGlmICgh
ZHJhd0ludG9CaXRtYXApIHsKICAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQ7CiAgICAgICAg
ICAgICBmbG9hdCBibHVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKaW5kZXggY2IwYzlhNy4u
NWZiY2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUluaXQoSERDIGhkYywgYm9vbCBoYXNBbHBoYSkK
IC8vIHN1aXRhYmxlIGZvciBhbGwgY2xpZW50cz8KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZWxl
YXNlV2luZG93c0NvbnRleHQoSERDIGhkYywgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgYm9vbCBz
dXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVhdGVCaXRtYXApCiB7Ci0gICAgYm9vbCBjcmVh
dGVkQml0bWFwID0gbWF5Q3JlYXRlQml0bWFwICYmICghbV9kYXRhLT5tX2hkYyB8fCBpblRyYW5z
cGFyZW5jeUxheWVyKCkpOworICAgIGJvb2wgY3JlYXRlZEJpdG1hcCA9IG1heUNyZWF0ZUJpdG1h
cCAmJiAoIW1fZGF0YS0+bV9oZGMgfHwgaXNJblRyYW5zcGFyZW5jeUxheWVyKCkpOwogICAgIGlm
ICghY3JlYXRlZEJpdG1hcCkgewogICAgICAgICBtX2RhdGEtPnJlc3RvcmUoKTsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAKaW5kZXggOWY3YWVjZS4uMjJi
Zjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dENhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwCkBAIC0xMjIsNyArMTIyLDcg
QEAgc3RhdGljIHZvaWQgZHJhd0JpdG1hcFRvQ29udGV4dChHcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGUqIGNvbnRleHQsIGNhaXJvX3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlbGVh
c2VXaW5kb3dzQ29udGV4dChIREMgaGRjLCBjb25zdCBJbnRSZWN0JiBkc3RSZWN0LCBib29sIHN1
cHBvcnRBbHBoYUJsZW5kLCBib29sIG1heUNyZWF0ZUJpdG1hcCkKIHsKLSAgICBib29sIGNyZWF0
ZWRCaXRtYXAgPSBtYXlDcmVhdGVCaXRtYXAgJiYgKCFtX2RhdGEtPm1faGRjIHx8IGluVHJhbnNw
YXJlbmN5TGF5ZXIoKSk7CisgICAgYm9vbCBjcmVhdGVkQml0bWFwID0gbWF5Q3JlYXRlQml0bWFw
ICYmICghbV9kYXRhLT5tX2hkYyB8fCBpc0luVHJhbnNwYXJlbmN5TGF5ZXIoKSk7CiAgICAgaWYg
KCFoZGMgfHwgIWNyZWF0ZWRCaXRtYXApIHsKICAgICAgICAgbV9kYXRhLT5yZXN0b3JlKCk7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKaW5kZXggZjAzNDQ4Ny4uZTMxOWJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKQEAgLTUxLDggKzUxLDYgQEAgc3RhdGljIHZvaWQg
ZmlsbFdpdGhDbGVhckNvbG9yKEhCSVRNQVAgYml0bWFwKQogICAgIG1lbXNldChibXBJbmZvLmJt
Qml0cywgMCwgYnVmZmVyU2l6ZSk7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0OjppblRyYW5z
cGFyZW5jeUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT5tX3RyYW5zcGFyZW5jeUNvdW50
OyB9Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dz
KGJvb2wgaW5jbHVkZSkKIHsKICAgICBtX2RhdGEtPm1fc2hvdWxkSW5jbHVkZUNoaWxkV2luZG93
cyA9IGluY2x1ZGU7CkBAIC0xMDAsNyArOTgsNyBAQCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4
dDo6V2luZG93c0JpdG1hcD4gR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVXaW5kb3dzQml0bWFwKAog
SERDIEdyYXBoaWNzQ29udGV4dDo6Z2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYgZHN0
UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVhdGVCaXRtYXApCiB7CiAg
ICAgLy8gRklYTUU6IFNob3VsZCBhIGJpdG1hcCBiZSBjcmVhdGVkIGFsc28gd2hlbiBhIHNoYWRv
dyBpcyBzZXQ/Ci0gICAgaWYgKG1heUNyZWF0ZUJpdG1hcCAmJiAoIW1fZGF0YS0+bV9oZGMgfHwg
aW5UcmFuc3BhcmVuY3lMYXllcigpKSkgeworICAgIGlmIChtYXlDcmVhdGVCaXRtYXAgJiYgKCFt
X2RhdGEtPm1faGRjIHx8IGlzSW5UcmFuc3BhcmVuY3lMYXllcigpKSkgewogICAgICAgICBpZiAo
ZHN0UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2lu
Q0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3ND
b250ZXh0V2luQ0UuY3BwCmluZGV4IDVmYjQzZDcuLjY2ODVjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0Nv
bnRleHRXaW5DRS5jcHAKQEAgLTExMTMsMTcgKzExMTMsMjIgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCB3aWR0aCkKICAgICBT
ZWxlY3RPYmplY3QoZGMsIG9sZFBlbik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdp
blRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgbV9k
YXRhLT5zYXZlKCk7CiAgICAgbV9kYXRhLT5tX29wYWNpdHkgKj0gb3BhY2l0eTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAgICBtX2RhdGEtPnJl
c3RvcmUoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5
TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKIHsKICAgICBtX2Rh
dGEtPmNvbmNhdENUTSh0cmFuc2Zvcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCmluZGV4IGYwMzI1Mzcu
LjYxZTdhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4
L0dyYXBoaWNzQ29udGV4dFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAKQEAgLTY0MiwxNiArNjQyLDIxIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KCkKICAgICBub3RJbXBsZW1lbnRl
ZCgpOyAKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
ZmxvYXQpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lM
YXllcihmbG9hdCkKIHsgCiAgICAgbm90SW1wbGVtZW50ZWQoKTsgCiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6
OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogeyAKICAgICBub3RJbXBsZW1lbnRlZCgp
OyAKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJz
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVh
clJlY3QoY29uc3QgRmxvYXRSZWN0JikgCiB7IAogICAgIG5vdEltcGxlbWVudGVkKCk7IAo=
</data>
<flag name="commit-queue"
          id="102606"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106477</attachid>
            <date>2011-09-06 13:43:04 -0700</date>
            <delta_ts>2012-03-27 12:51:19 -0700</delta_ts>
            <desc>fix windows build</desc>
            <filename>simple-shadow-transparency-layer.patch</filename>
            <type>text/plain</type>
            <size>42388</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZWNlYjAxLi44ZWRiYTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4
dCByZW5kZXJlZCB3aXRoIGEgc2ltcGxlIChpLmUuIDBweCBibHVyKSBzaGFkb3cgaW5zaWRlIGEg
dHJhbnNwYXJlbmN5IGxheWVyIGhhcyBhIGRvdWJsZSBzaGFkb3cKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTQzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDA3MDUzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRoYXQgdGV4dCB3aXRoIDBweCBibHVyIENTUyBz
aGFkb3cgZG9lc24ndCBnZXQgcmVuZGVyZWQKKyAgICAgICAgd2l0aCBhIHNlY29uZCBzaGFkb3cg
d2hlbiBpbnNpZGUgYSB0cmFuc3BhcmVuY3kgbGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91Ymxl
LXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vc2ltcGxl
LXRleHQtZG91YmxlLXNoYWRvdy5zdmc6IEFkZGVkLgorCiAyMDExLTA5LTA2ICBNaWtlIFJlZWQg
IDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAgW3NraWFdIG5ldmVyIGRyYXcgd2l0aCBHREks
IHNvIHRoYXQgYWxsIHRleHQgY2FuIGJlIGdwdS1hY2NlbGVyYXRlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRv
dy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zaW1w
bGUtdGV4dC1kb3VibGUtc2hhZG93LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDg4NGRiMGE0
ZjNlMTY0M2Y5ZThiNjU2NzMxYTk1ZTEyOWQ1ZTcxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAx
NzYzMQp6Y21lSHZjfDRTRCtyUSNZM3NLcSQtNmdxZ1dvZ0pWTitsJGZCMTtxQHlSaSN7bHIybX1D
aWA3Tld5P09zR1JhbVoKeldTZmJaRl8+bHNWYGw3UWo0fCgzPkYpV3d6dSl0RHw5d0J0PiN2I1hv
YTtRIV5FJUdzSUxfbnlKPGU8NUU/K1ZiCnotZzttd0EwTUJ2O2YxcVRgU3wjeWBTPj44KnRgajdO
ZXtVMTRTZE0/b3g5PVphTSNobiZEWTw5UHhDbFBNZV9zKgp6PG1obCpMKFIhU1R9QWJ6aFJWcWtq
djVhMzRqX0F7SkgrQUEzX3l5Y2lAeUc0THckWWUlUlhMQ0Y3QSRlZF9meD8KelVMKDVvVUVafWk8
ZTJxdF53QkJqOWIwdG9LSm1PYD1CSi1vP1BoYE93Mzw5d2JMY2B3eksyYkUrWXZoU28jNWFqCnp1
VCFtb0dsSUhvTDd+QVl1YUt3MFpNJHdTNn4rRX1hcS1XSj48bCMlU3VfNHhSdm5TZSgzR1dxdjtD
VjV2Rmg4VQp6RVZBcG1uUTd+WG02bVYyaF9mNFBDR19RMj93VU1gLWVZdnNLdUBIdkplWE5Bd19V
USQtSCtpI0VMP1JNTlBpfUAKelZfSEpHRi01KVEmciE/MlUyT1hPIzZ+YzIlJlpnWUEzODdrLVk1
eypCSVReJTxxJGNWa2EjJU5ObGpmWmVhaT5JCnopLSRKITVxY1dXVH1JfUZ6amo2TGBYK255JX5Q
ZEUrSil6P0R3RlM9RDtIWHZtaHozN3dSYHRFV2c/QFBEd15uIwp6elctOEJYI0I5MFd8KCZaZz5S
cTxZYDNyQkckUENVI3p8N0hJYG1CRWsmKyFwOD5rRkZtKjtmSGJoeEc1UDhvP0sKel80ZTBGUk5Z
LUQreFgrc0RTaDwkJVRNM3NzRy16VUUkMnd8JWcrUjhDdDRSNGpuQl5gOD9kLTEkJH0oeC0yeXBH
Cnp4Wll8NVlyIVg7OVE8XmVSdzxie0ZtTF96bHNPTGZ0dXl+e2I0JWJBRiNtLSFfbWQ+PDkyPEZa
TShCM0JMKEFLeAp6aStsRn1ZNG9icyNxVX5oeGR1ay1TYUs+fCFYVzZBLUZBZlNvKDFjMiNOcjRp
bjs/VHRzXjkmdndJPXVMNj8jP1YKejFoUU4jVHxDX1hjMyFVTUQ1I2Q0QT97SlFaUyQ0WWN5aWVW
VGdNTDVgJlkzM0NuPUIzOzRBKnl4PlpzYkc2NmVwCnoycUJCNlpJfUxYLSlqMUI/Kn0tbHw2fHYx
QGVYdFpMX3hQTytwTSF+Tn5aVD5GWU9LajZ+QXolWjZFdmIzNE49cQp6I3Y+K35AdFUoa20kJTdv
M2NPRkZqTSpxLTErKGl1LXlCYDgtQ1Y1WGIyI2I0LWkzM2FobyYxPDgrR2sheWtjKGAKejsyUWh4
Jn5pXiQoZHpvMUFZWWM8T00mNUo3aj1AfWl0UjVpWWI9QUJaPGVvbz5FTFFxO2IrUm5GWE0zdUtL
RG01CnpiSHteaXB8S14zYWotJnJpXnJ6JlRmTmVSWX5lek5yNTZVMy1mNis7e01CWmRuLW12MlUo
TEN7eWVHdUQlYF8jQAp6Xi1aPz4tfW0/YD9mcU5UfEojOyNwfCVSTi04ZD1qPzMjIXRTfiFQZDln
b3x7TjRuO1BJNm96OCRxaldQZyMkVT0Kelp3Q219WntnZDVhI3VGSklsTDl+O2YwK0ZBRD1Yejtu
fnlJZjtQfHohQ3dMdlJzXlRMalElb3lVNzJpdV8ydGN1CnpSMmohRGQxcjs2d1M3X1AranAqNz0l
fSR1IWcrQFRAWTlySSN5ZmhCOG9RVzJRRkw+ODkpRHFJWHw7PWIzTj9xUAp6SFg9KUQkZWRJZDcw
Slk9UDFMNFZnbXdqSWlURG08RWc1ODIpbXs3PkhWU01PbURZPmsxSFNBT2tiSFZzZjZLcUwKelkh
KHNfNUthOH4+eU8qPyhqKWt1by1ZPnRtdT8kbENEOzBZemVDellrSXlqSUpvZFoxSE5oTHNpdUBW
QFhuQX44CnpJXnh3OGBMalBwe0JjSkYtJUcpQFRmZ19ZQVNTQlVgK0UxRXplbTtNPio0PDs0N2xV
Zm1kKDtHe2FiaFo5I3VNRwp6e1AlRGgxJHFTcDk7Pi1OezE9JmBkaGBEPnBeWXZaSChvZVViPj80
V1prRTNIZHFSQVhZOHk1ak53aGxqJm0oTEUKeilTJlp3TEp8S3YpaTRiZm1hWldMU2hNP2JSQEhv
ekB1NzJfV0dyZlI7b31UP0hyNWFxNVJUPGBYKXpWUnQxfmJJCnpCP18zd0hmNlVlTHI/Z3UqZElM
Y2lRV3tETSMrWjBeSDlrN3NqMz9pOCUyV25nNHQrMFRhMFo4eSZVSVJfdzJoZwp6TT5aTCpFYmRX
eFd6YWIldG1CZDAlR202PzdAZVhfPys7dFp7YnJeSUZSfnNnaHUoZlEmbHpTbG1VOT8mRmJQeXEK
eigofj9XTFhKT2J6U2tKTmkxUHlYUXNVKUhqIyt5KF95XkJyNUpTVHw2Y0U5KHdUfHg3bTVZQVNp
M2ZmeiU9PENYCnpwIWZWQXwwKm9IM1NGSmNmdFFCUy1ERXpyMHpHZUpiTVZ3dVckNFQhYXZoUURz
WDVha2hEUHpZJTxeezBrZCRgZAp6YDVkMFhiZUczezc2K1lTU3h6TlNjKnxIK01AezJHYXFXNDxn
K1B8MDw9a0wocDYhIWlBKUk/ZnIhOzx7Rj99SGIKenR5bS1SeSE3M050cmQtU1EmTEIzSktMI15e
Wk1ibnRmflNJZE9DWn1lMiNhMVNCbUVSN2sjdlk8bE9Ub01AI1B3Cno2ZEZsTHd+R3BYMVNIQDt4
Kll5b1I3KilgOWs2cTJ6eT1jYjFgXy0mZzZWRXspPUc2IzwlfmtrM1FgU3l6X3RLYgp6alUwPGZw
MGg7TjNVOEgjaWpvYHErQH4rODYzaU03Vi1YeEk5RTBrald3WF93TENjSn1TNGVgTiRVTjs+NFpH
aG0KejlsRWNveykmIXs+cGh+X24pJlpaZkIpQHBlOyQ2IVMlK3JuS24pdCNtJEomOU5wTXozSklj
NW8xbmg9NzhzZkE0CnoxLWV4PnoqTTNqQWlURmVkcFpWZWxnPDlAdGR6RitFIWs4bDJsKDE/cUZ1
cik7T3AlZTg2dH0pNWkoVXE0azI9RQp6Kj0/WjRFODhfakI2Z3h+NVE5akdXRGw8cD4pQHRzd3dK
NGlUbmxBYm11I1NIdkxpSnNQJHxPYD5CMHR7I0JPWWsKemxIc01SO1ZYdkRiaEc0SSV8UCp8NXtJ
Z3ZHb15TLTJBYmE8PnYhT1l0QmJSZjdOfnBFeCl9Qjcob25MekJmJWVnCnp1cGljNGttK01JMiNr
V1o5LWQ4SSh4OGc2RzlgaldCRlh3diVhPThtTXh4TCVhMnBrPjl8My1RejZTPWE0NHFCUgp6UTdH
IyFLfkJESGRSQF9WcyZKfGJZZklLKTJBZ1dHT2dFI2crPXtQYjAyQTl1WShNVDJkUXI3UXQxYTx1
JFZ9XkEKeklIK081Qm5tMERHOXJrY0VHKUghMCYtZHVEeHg4dClKKSY1VExjbFVzZHV4My1PdkU8
MnxFT0x1P0NlQG1CNDYqCnpIX3FvWkhOdyFGIVUyIWktcT1WPGNpUk43SVJfUkpZMzdQQFdINzJx
Vms7YVhQWnY/P292NG80WFhFO0hWTWJQVwp6Q2EhN2xIRyp9Z0JzKGM9d0lyfmlGbSVkNk4/ZEBk
cTJEVl5sQmpkMy0/X0dvYElyNz98R196WihBPiU7NEByYl8Kekl4Ul5QcnM0TXBfS3lATnxKWkFE
SVV9bGdORlp8UEwzQzRQNGNeRHRXQlY2My13NG5XZXI0R3ZXQlQxNCZDYihLCno5XjBxa3AkeWRF
dHRlcXZVdW9UP3g5cSRJTW1idWtOPmlgMmIxLXM5QWA/NGNaZTRzNSM0cG04NlRaclpvWFgzRgp6
d0MhSio/PXZrMHhgJHQ+TEtSc2FQOFQ2elQ9M1BjX3RaQUwmR3pkeGo1Xm5MPkxrbXJ8RVEzblQj
diomSGFGPiUKej5uR35JOGZ0Y2s1X3sjMVkxckc3cXFsJHRCMGZaQU5kZ1VIMk0pT3UkZEVXKjM8
TjFAMnd6fjx0O01XdyFaTzJvCno5NS1LNG91Rns7MHYxYXRHOSEzNTMlaU1Kb3FWfDBfQ15OQiZ7
WnMhcTdLYnVBJntOPjMhOSlXOCVKKHwpdHF9Pgp6ZU1QfnEyZjM9Qj09bTkqWiV1PGMlcl4xVlBy
b0BTeFo8QnxhPy1OYnRTc3woNEhYRHc+WmBRcTgkOE5SQiFrcG8KejheZ0pjXlFnJWhBUyNFQlps
ZzU8TEZpODdjcClYYnBvdXp+b3V1cnI/NDkoWUhxaU9ZQmFAJmFsN3lmYkMrMyVYCno9V1BeTytX
JER1PGQkO0NBaUJkaGRvSHN7bmNmKldAPkNZbz5TKXYxPGx0Zj5fLUYrZiY9UmBibSRTV1ZkJl4h
KAp6bHQwTGBCJVAzVnYtMzJ4N0VwX2t1ZTYzbkBecXwkX1JFJiEqel8tfCYqe1A0QS0yS0k7PWBB
Uio8RkYjK29iJXkKem9NdV9zKUQoXkdOWEVHSVNHUktJV0B1MmNXMUFpJnB6allhd1NsJkdERk4w
QS1XUTQkc0lpMD42eFl2b1JPcXM+Cno8UVZZRT0qWl9ZVmo3JDUrTHItP1JIbUQlKDhCUVczZj9N
NXhwdFQ1ejt6Mm5FRClAM3JFQVJYYms/Pz1pTUwzaAp6ak5KM3lebWZhY0NfODNwPE1MIXZTe2o3
Wjl0PGxLY2dgUGtaKnxKPkZiQEZ5NGBAQ3ImfXFkcV5mWTs9VT5aNm0KemhWSUs9dFpjSDNefllF
aW9IZ1lGNHgzKDt4Zj02NWlzbyYzVlZvYlFEbioqSUFCS1Yta09DWCR2VVdQeCo/KXohCnpBMmIl
YlZ7QjhoVE9aSGI8JjNjMyRDJWkrbW9YfSNGVi1mPXh9WTsqWCFfVEcqRWVzRHVOVkNNNSZ0TWQ8
PCljbwp6Z3N7fUV5STdYVGNDNCtac0YldXhGZEpBU3k+TFlMP2Z4JkZkaiojdjZgYlVwbTJYWXFr
U3xpRWBqZDhsP1NaM08Kek5ELXY+e3cxOEZOSm45OGRnVWM5ZGx8T31acVMte1lLSiFSYnspTjF5
dU0rIUwleXoqIWFaPk51TWIxSGtfKWU4Cno9Mnt2eWFoSHdIdDlneGFIdCRBcDIrUiV4LVB0Rm5f
cik2e2tjWms+Mm1oMmw5fjVoeFh9PUV5U21pNl40JjxMXwp6NkFuO0ZkKF84SnAwViV1IUAtRk17
eWReUHkyVyYjJkN1U3l2ek4yeHpnNFp5bEF5VUxGNVFjYV93N0VJNjhtYDEKej13WVNudzBvTTE9
Um9zVjxAKmpiI0paVzhOYHdKO3hoRT0yPCY5VGVAYjNVJWMjRTwqWGUoeWZILX0+clhCUmBkCnpr
YE1WP1FnOWR8eWxTSCNfJkE3R1QoaTleck56TztLKTVzU0cjTFU1IUg/WTE/bUJ4YFZfYncjekQp
Rkkha3d+Xgp6IVJjdFg0IWhNXmN2QmNaPGxUT0tlOVg/c0JXO1RHWH4xTV9UZiFtZFUhekw2dFkt
OTdtdW8wc3o+KlQ3eW0xNVkKemYkVGU8czJaR3xmPDBYUjM3TndnQW5yX1pKdmBxTmItcTZRWi1S
Wj1qPkBxajMldThTcSk2IUJYTysrMWtPMGwhCnpCbyY+e0VRXnpFKVJ9eihRfE57K1J0UVEkSFhY
aWk3YFcoQUxSTjwtMnM1PE8tUzlgK1liaTRhKk9JZWEyTHg4Qgp6JlUlemJ5UFNfZmNebzRBYUZX
Skw4XjR9JjxrRTAxWkE5aFNtQU9FO15TTjdXQW0te0lDaDlVeUR0JFVOX2dTP0wKek0qZXNocnFJ
YjFtRmM9JFBkZG9GRiZvQ3B3PkQ/aGhUSShUcFFKb09DKWZpPD9HSWBaP2tLWjhRNmZHejdhRzB2
CnoyWTduYFkxMVRJMnZRTS16YXQzPlZUdDQkYmMoflNDdUoxSGdjbWRPbkpfNzhMIzJObUlrMHJq
cE8mQSliYkhWaAp6cX5AbytPSXFeVWFoSDlKNz5aPVU+XzkyQk4rSipza3J7NEpMbjRJYWx7KGBN
RjJmRnQ/V19QP1FLVndnYGF1ejsKekcyYEA/P0VhZUVSOWVWZCNgd05tVmZ5YilrMk5CYSZ+e19r
KSFKeXBscUA1NkpiRFJfK0k2aDApbHMzZHZwdEckCnpocEEleEF4UlByZjVSNEk3dFp5PlNlRVdN
MHRGSHhxM3lFeyRSJX5RZWB5Rm9gaDUkUlp7fTxmMUlnKlRxfiRTdgp6dHB2ZTNxfHx6OWIlfHRi
YkQmUns+KTJgKngyJilJI0hJZ0tCQ2RNcnk3cVFtUEklIUZyRVFPN3kmSn5RRElaOVEKek1PcDQo
OWVyPmJGRHB0VGx1OE1IQ2doemZeT3pCb3tHSkpsUCFjJmkjJV9WVDtfKi1wb3FKdWZvPTF9Nlgj
XiNyCnpVUCs/a2pfPkokT3A5WXFvUnl4ODQpVkZLKFlFYTB7Q1p9bFVEaERqXnNQOHRYQE0xUFE1
Y2Qxdig5VzlYU0J6JQp6S2FfQD56aFBuJkt9d3ZoJkVwUyl7PV5ffG1xMjQ+LT9abDBtU3QqZStz
VFMtdjgrVClkMTtJK2dxJXs2MzAtUUkKeihuWSpGZW91K1BpPDhaMj9IZyYrT3RKPShlJnoxeWRj
OFJ9TXdFJmdfNStyKGlPXiZnbUw2MztxLXxTeVFaVjF4CnpSVUxNYHhSYjBMQ0Emdm01VXJrbHph
Umc9Q1dDV29AX1UqKGx1M1R3c216RkNYUzZkZ2wmNkpGVnNGeXooZ2FCdgp6WGVVPU8/XkswUzk7
SmE5Iz1PLT87cSNpVkVJZkx4cFE3QGpEWD1zMEhrU2ZJWCtFIzdFcUt2SnJSPURUPmg2cSQKemRN
SEpgSEY+d2NBRXExd1NBUmF1PEdGTmNlNkdFZVQmP0tEMTV5Ul40NysoalEoRjlqaSk1Rzw/VHUt
dCZMMj8pCnpYVmdKZ3VAbmZSRCE3Rik1QCRIJFNNYml8JS0zNVhWe2RNbmhgI0E7XjdUK1VfX2l+
UXpwRDFnPnl6UGUoQ0pzagp6NmNPO0VNZXVhdjdNVW5FWF5aM1N7KnwpIUFzYnV1cGJtNUchTk0p
enNGfXtle0dyVClaPFR7VDhNfHNYeSU5Zn0KekNgSHlPQCUkYEM2RXopaW1HcjxyTHQ8JGZIOT5E
Sl9PKnlMaiFvUjB4JU1Vfi1OS2g9YmRaZU05Vj1VPSZhKDU5CnpHSDZWaWpRTUl7R0phRlY/am1T
cVMxR1Y5YXhvODNPKCNKLWdEYXEreVNZT0dKdT5LaFdXPTN+VWNjN0Q/QVNZLQp6cUIpaEVyfEcq
Qj4/b3ZyVCpSKHB0RW1AT2U2JjRkWCozUWlybG9XUV42OHBRaTVpMmxQQEFlKlUqd3NkY2VCOD0K
emFuJnZKUDI1N1R7b0gqMT0lS0Y3RXYwTS0+fDlafUl9MzNMUT9PLWc2Z14zRzFIPXJ0PmV8IyY/
bDcobD8lTGooCnpydz1oYmQkQkp0ITlfTmFuRntJJXhraDtJKSEzfDIhJmJAIy0mYFIpN0MhbSkq
N1NWUUQkQlBhciUtQ2x7YVdWMwp6JD5gQjswJnZ+TjZDZ2VQUGBmJSM7WkVSY1VELSkleVpiYjEm
LTMoKkZMZWJme3ZaJDJge0tISGxjSEZvP1pgYDMKej1Sd2RRTzlJUWQ/aCt4Q2kkeXJ3X2x1ZmxQ
ZXZQIzk/cE5YRm9FJkV4KWVLNkhAJDtOd1NxcFZobik3cEZGfVRyCnpDKTxgVTklIXBJTnZ7RnhE
I2dXKmh7RHN0ZlpVSilKSFQjS1d0ZV51ayglTDdRJiVnU25JeDZzKzdBWDdMMHltXwp6UDJGRktk
O2FOPigrekBtNCk3SWArI0B2fT9QTWtTZz98Y0p7Sk1DdEEySE0xcjtOQGE8PEE2LVVINl5uOCEz
RyEKekxNJHkpRDZSODl5b04kQTdRWE1keHZ5VVF6T1E7WGhxcHBDcDJMMC1FSWpDKEZoLWVMMUBo
aFNBeENiUU8kaTJICnpZRyV2c3V0OzZYZVlvaXRvUSlLOyk4aC1DUFEzbWJMRjxrMXs7O3s5eEJK
Jnh1akJBdlhuJm9LX18yRmBTQSpvewp6TnR+eFYqKTtxPiE+YkgwQzRnSXkpUFkoYHM9REE5T2U4
VmJTcXw3dyNgQSNlSUIjV2FaKklGWD0wcX1IKGpEJT8Kem09TUlaJjJJVFkwITVaPi0xelpXSFhL
IS1RaVdBPXRSV1okYjd7dHdRMTtjNkwkNmM5N1Vqc1QlMVkkaEJKJCkxCnpWbiYoXntRKmRUT3oz
fVY2aW5uODRUaUNMTmJyRlowRDkrQ0Z5T1hVOWc4P3ZiP3NSRSkjX25uM0pBcXN5PUVDUwp6Y2dZ
OStiPEJsNkF0Yks7KTApP1l5bHlUPnJoPThwWmclb05TY0tHQmZKMnlWUlpnOEhGaklaVDtfPzlh
bU4hKnEKekFPe095ZDdXMkRsblYyY2JJI0YkcnF7TnUoKExqPVkxWTFwbWRpe0F4fH53c1ZUP01l
PmchJSVCRj1EWE95aGNACno2fEx1WG4/TDdyP1JqZFNKYWx6Z2N+WjtoaEVnNFpUe0xUciV5X3Y9
UlBRYH1RQ34hbmQ7KyMjeSprQ0I7Y2JlQgp6VWVjbE1rS3h1T1ZQR3QzaFpEd1RackgpS2ZmWXlx
MXJufXowSVdmV0JpeF5lWEpQWCFHMUkzXmhOP01APUpkP20KelIzNEY2TyhGcjUwaWBFRGtmO01T
aUxQLUFubHZRRTZma3Y3LXtNU0lkWjs5eTRBWlE8aUleKkJAcXhiRmUzczV5Cno1KFlScjEjK2s2
TFVIeSYoVHc9Jm16ZFBxMW4xOGUjYU1zVWF8cmFvI3tnNTFMTXc0PUN3U30yTnYoUnpiJSM8dQp6
U0lYd3RiVTVwcDBWRnw2ZEdtSHZmRmR7Ozt3fWRlMWFpY3NeS3lhYG15SzVKISRec0ZePm1OQ2Bq
SjJLK15Zc1kKekg7QlJRWSYqS047Tj10ZmQ3KFRgVUpKRG88a2dMRFFLNEZ5cXM7NTJZQSlxZ0Re
ZlZeVT9ZR1J4SGBQTGMtNTlXCnp4Zm9YRENTPURwbEIxUjJGeUFTR3N+djZQQFkmUndtVigrQzFv
aGl7ZXE7OFI3JGJsVnhUO2lwaGNTV2xZOTd5KAp6UVh+VVpmWHczSGImRHpvZkN4eHdTb3traDBf
NGNrJkJtNSkjYUEpYnI3MjZnKFN7XzReZWUrQkpnKlRSMFhBbWgKejx3fUUyTjk3ZVktamY1ZjRM
X2Q8KismaU4oeGZBJDAmZDlWYU5SP0dxVz1uYlB1T3hWZD8tdWBFKTMrPV5jdCo5CnpwWThBLT9z
MDcpbWlgcHtNbU9UKEcmOV53UzwlS0phcSgoJTJARV9GeDlFTmlLKkpXTT9ZaU9FSXdTVmlfTXM2
OAp6PUxeVyZuR1Q+dGk9Uj5XKjM5Tj4lX3s9dFImT3hlI2YqQGwwJm9MSHZISkRHe2NXeGRHaV9F
TkxNNFdPYGB2O0QKemE7bFl4PH0xdkFnJV9DVVomN1VScDxhPk15dUVNJSV1OGVBISl1eTBSWUF3
fj43WVIzT2AxfCZ8Mj4+WDYrcHNOCnpOcnJrQzdaI2gtSXpjdDBaWkhfeVQpTDI7PlotJD93fVI8
WnFoNDhZKENJcSk3emo8eDZLQWd6QGJ2e0lgQkopTgp6Skg0alZwUEo/VFM1YntedkI1JDBJbjZl
REUlaEBNZmNUZ3lPZ2RZRldVNW9lVTQhXmVwKitJRHo8JVc3UCpyeEkKekVyLXFfK1IrJHdIT3h7
fUJTc3h0PFBVKVJoTlVxcDxAJEcrOytoaEZmPE5eO2p6Uz5lSCElITJVPGEoYDdjclE3CnoxYj5m
QzJHUChITTdUeVgla0V0YiM4XzRoZCtRZnh4VTJON0wzPFF0c1pgdmElbGV3akBuZDJ+cDxlQFZn
SXc7MQp6eSU7MzNRRlpRfFU2JUo1UEI1Wj9nbk89PT4zfHJFdWltUiVgdzlhfHFXNz1Me0VYcHko
anJ1KU1YcTUmMmhtMnMKelVBe3doTCVAY2FfNTt2b3hiTil3eUxpNGtKYXg3JnJgbE8/RUNiUG02
YkU2RWUoLT1TenBIWEF5ampQNz1TdF9ECnprfjZWYSN8K1F6d2ZXTXVQKX5nfTh4MmFDP0Z5X1dp
SlRmQUhtMFNqWWRpSVJyQDBWZDg3UDcxK1pfLUd2SFQpVgp6e0Y7NHBzWXpzcjM2TUlBV0VjNVRa
SHttRlAzVGhkO156O1N3NW9gMC15dTkjJkl0d01fJCg1YERPVjh5ZD95ZE4KejthdFcoOCl3YzB3
YU9hfTJIK05qYG1ZI05wQCF8a3s2bjBhekdvaCEkK29tTjhyRWZsUEkqJkVIPXdhdSp0d0stCnpx
LU1aZW8qWllZS3oxPjg+cG9MZGFZP1NuNDdFSGtNVjwjWTBIOGZIZUQkKiRneU44U15EfllhPEdz
PXFYY1NqKgp6XlRaVXdMOVFVaio2OUJRP2FoMHZEfVI5WXlhWnFPZjxAKEAwcCM2QjBtPEBAKXZQ
OFFlem5PKVZzanc7KDdEIXEKeip1P05EMmpqcyY7I0okWl5zOUAqYnEoX300QnZnfmVzaXNuUTJm
O0RIYHk5cT4qO1c5O1d5IUxackg1dWd6K2N3CnpWYH57MTxFaVI0Wm9RYCNzNUNFWThfQ2A5JCtP
ZXIoZSFGSjs+fT0zUl9CVns7ZnY+UGchSmIrUVF8XmBtbHZHZAp6RHYxV0ttazNORl9ENiVFPEdi
TUF7YCNNPmZ3MiskTWhfYEw7JXxSZiZJdXlvLS1DNX1VZjJsfWZkTkJQVGJlU00KejBiMGZwaldr
Kks+TjV7MkglbWRAU1lncCslRSVXZT1uamNHP3I8V2twakJ0Tmhwd0J9VXFqSGdVRTk5Uzlyfmk+
CnpXM3ZsYT1rRVRFcyV2NGlhIUxaR2xFfVpIRmBlVyNPK0EyJllPKGg2PT5DYioxTXljbk5Sbjh8
ZyFaKTkmNFN6KQp6KjU8ckEyRGk3ITN9bExyO0tFVXJFYTg/V0NuMVFHay0kQHFrTUNqKiYmRnRG
dWsoWHQrRTYmckpkSXRXUlg4KFkKelN8ZG1WPXpgQ1AoTGwoZSU9VldZIUN0UCpHRCRYQSpAT1Ux
NEMzazR3Vz1KeCtpRj5nQWRkNCg5aDEzdD0pKU18CnoxQG5OamBkRVVBXzYhfEI9ajZkfEJebTg4
cTROVUNqSHp9VGJscFYkVnE8UD9ufjZgUm48UjBxajxVX19aJXgrfAp6dWVQQEFrMDxnUFF3fUVg
QmZvclAjSFFLZHFVeHs2X3VTMGg5WkFMIUotd0QwYEg5Qm1VRF8zI1lhTEd2UWhrUGwKel5JRztO
MkclPUpJRTxTJE1HUmpTdlhhKXt4Zml+X1JmV18+Xk5iWndhY0hvJjBrdSVzTE5uVy01PnN1JHtk
ND1yCnpvSCZTMitNYklIc2YpMDVrWXUzKiRXbng3TUttRXdmeEFMblhhUSlaRXRRNWIwVFojQ3Z1
NXMmMk9aUFhldG9PPQp6STlgTjl4OUc0eVMjPzAjcFkzRmxGNWF8Pi1WSndaSl5iMjA3IW8lcXdS
JGBSYj96Zl9gb3FiKXJqeGlVPSFMYWkKekAxNjc/MCp+MktuMTJ0KlhZTExMRW5tXkRJdTskMnoq
TVNCRFBMV3RRJUEhT1VzJDFsPSU9OTxfbzl4WDgyJW0rCnphaHdmZmFXQEc1dGIjMHo/bFhCdFNn
ZGhiNjFYdTFwX1ZWY2pFKm5aeGUpVXN0ZDNkQ1hlPj9maWt+N0I2dGRxaAp6eXhkIzBkKDZ1YEdh
TzEyVntLYDwkRCp9d0BDfGdpOyU+YlgqJHhZQCZqSytGVnh6YmtAOygzdFNOQTBIVz8qITsKejZg
NiRfbW1aWFBDcSlxJUNtTUllQWBmTlQ+YHAzITV7fG91dUZRUDhAKlJUWThGUlZCZmt8NWBYXi09
OUI8RjtFCno8TUBrSiVlK1NHOGEhZjNVTVAxakZrNGJ8P2VkfVFTOXs/MVQ3QVk4Snw8flpKTkp5
MHFlZGdKJW4zeHdecihvSgp6dlJwIztCVG8zM3E0U0l5MCtLfCtiWmV8X1E9P2xJJH08Pm5zQmRX
XzYyb1B8aTFCVj0td3dPIUVSUzBPKWYqPkcKelYxdVVWT1pNdVBqbkFVcDUofWd+PkxKQndXamgp
Y1dsS0FeY0t9SFVwc3hVeDE9PSU8WVNVTXo3Pkl6Qyh9RHh7Cnp4Xi0wMUcqayNQMWpoenFNY0J+
NU9nazFpK2QmVT5FNG80aHAkMEY3YiFrPyRRNDMzNCFGQ31ZI3F2ZCRZMEk+bAp6MXJsITV2QzZF
UFhZMVJFcj5WSyU+PWAtU0IyNEU9dzthckZTX1JnJkI0Xm87UUE7O18wZFNVPld8N2lgX3h3MjcK
enFwZntlQURxeU5JQ0ArYDAzcTE5eEZFfSVfTz1rU3lhYkYlRTImfnNUWFM5Jmk8d1Q5TE84MzdJ
TlQ1NT9ZQjVzCnpSWj8hbU5odUMwJERZSmhsMypHeUZeNkdBM29ePVkpVSF3V2dfR04wdnl2N2RO
fVBZSnRhbnpaa0h5NHJER0FARAp6UmpNODw4YHwxZUh9PlowajlUZSNpejVGTllsfW5LRSFFdytn
bzIqWit+cUB5SnpoeyUpIShvP2ZSYVcoKzBNSEoKejxpOGtXPHQpcCNXOT9+al49bWs5JnkpOClX
eVJZLXd1KHtLZHIrVS03blVKJW1zYj5ARVJsb29xRjV9OERIM1BiCnpNMCl4TFZkSH1EcjE+aVAw
eCh1PjRhUkRpaVA2TU55JChvQENGcmZCT1I7dmZFVmw+MSNPPWQ4WXg0KlU0S1khVwp6S1RMZWdU
fjkkUDhYenZHRjU4XmkjWDglZjdTe2VlcG0paExJSmUkbEFkeVljTzdQOEtzeDBAbDVgfUB2IXMz
Sl8Kem1yMTxgd2c5JmJ6U2hfX0FsI2YmMlY1dWU8bH5JRFFrUWN4U09zM3h3YDhwfj52OD9We1B+
Yk51c1kxX2ooJFI9CnpqKkN7Yk5JR2RHWV5rZ3lJa2hLSSVHUjk0P0pZM18rNDBtRlk1VVkka18o
V3h6aGlDdEZyPEloRT94VSZyTyp+bQp6Wkt+OEVGUGtzb0taKTJmLURJRnJsVDR3KlY4JD4xKU0j
O1p2Um1+RHwyKXBoZmByRkltdHZWUVV7PTlGczEpMyMKemJHTlFONXxZJTZvPUlEKVhueHQpYDZO
NT97bDtDZjZ+YGRWM29Ma2ozPCVQQEcmJXQlY1NISnV2fWFzJTZOZ1lBCnpiVkVeWDxARjNxOyN4
UHFqWT5eY2VzIVR3K3lOVFp1NDRnUEJRRX5tZnAkUUxUd2VYYHYlRDU1TVlVaG0/JHB+Rwp6SHIm
fWl0WkJYYDIhUHd+JnhtPCUhSk5WNlJ7dHRGMEJ0Rz8oaCY7SFRKM05ERFFRIURkVX00SDFyV1Yp
N2wySXYKelcwIXcoK2xhXnhCP3FuYzlQYi0jMGtIIz9gMnU2R1YoflJ4R19sOGYoO1h4JHIlTHUw
KnApdGg5VEA4eFR9al5mCnpwS3x5dUJvSTMlaFFsJHhZTXtXM3VLXmBediNQb3hnKjh3UyE1MkJQ
TV5yQ0FnbEdBUzB0SXd1Q0w8a2phZXpAPwp6ez0za2daPmA2ZCNeNV5CZXtRR1d5SSpgMyFLWlMp
NCZDdnE2dC1GUHhoSjV3fEZucX05bCEyWXg3b1pKYk1EPWYKemxUWCR0RFpOYGdUUSZJMD8qPXZx
fDZZWDAlRis/dkc3MnlKVVZAJmpvMjRIR1V+JTMqe3AkTTxZflR6LVZ7UUN6CnopJFM+ZDs5RDI7
QUVCZG5YUH0wPV9kYX5AZ0kwfDF0YjhLQ05ZKlE2eHR2dH01ZyNIU057PE1BSm9FS1liPnVIMgp6
aWc9JjA4RjB3KitAaG51OXJCP3g1TEYmRCsrRmtiQUZkViR4U0VWc2h3RT13eVJyRnVhOUoxamxi
cmhoPmdAZWkKenYrYF9uLXlzM2x0Wk1iQCMoejkrJWZfeVZCaHZEeHw4ZGdASiRjfEhsRTd+dHtY
Y3NXWTVoUmY0PGxHdCFAMyVOCnoqSTNyQVZjaTxtdHpyRz4/KW5NbEhNcUhja28hamh6cGpSTEhU
KnR6djJHM1AqMDYzMz4jekwkcGMmVEh1JiMhRwp6eE91JkdZZ282MmIhJTlFSWR1SVUqKV9fMntj
UEAhYT9pUk57KiU/PF93NENXS0U0Z2ctflNoMiF9YDFRS04hXmkKZk5lJUNMOHtBeSEyVipwc15u
aWFYO1dJcFU+MUBmRlRsZkQ5SCVLfVAKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJs
ZS1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzYTVmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsMjYpIHNpemUgMzgweDE5NAorICAg
IFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgyMCwyNikgc2l6ZSAyMTd4MTggY29udGFpbnMgMSBj
aHVuayhzKQorICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjE3eDE4CisgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMjAuMDAsNDAuMDApIHN0YXJ0
T2Zmc2V0IDAgZW5kT2Zmc2V0IDM0IHdpZHRoIDIxNy4wMDogIlRoaXMgdGV4dCBzaG91bGQgYXBw
ZWFyIG9ubHkgdHdpY2UiCisgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDEwMCwxMDApIHNp
emUgMjUweDcwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW3g9MTAwLjAw
XSBbeT0xMDAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAuMDBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmVjYjJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2ZwpAQCAt
MCwwICsxLDQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0i
YXNkZiIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogNTBweCA1MHB4IDBweCByZWQ7Ij4KKzx0
ZXh0IHg9IjIwIiB5PSI0MCIgZmlsbD0iYmxhY2siPlRoaXMgdGV4dCBzaG91bGQgYXBwZWFyIG9u
bHkgdHdpY2U8L3RleHQ+Cis8cmVjdCB4PSIxMDAiIHk9IjEwMCIgaGVpZ2h0PSIyMCIgd2lkdGg9
IjIwMCIgZmlsbD0iYmx1ZSIgLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ODY5YTJjLi4xNzU4MjhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4
IEBACisyMDExLTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFRleHQgcmVuZGVyZWQgd2l0aCBhIHNpbXBsZSAoaS5lLiAwcHggYmx1cikgc2hh
ZG93IGluc2lkZSBhIHRyYW5zcGFyZW5jeSBsYXllciBoYXMgYSBkb3VibGUgc2hhZG93CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU0MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTAwNzA1MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgR2VuZXJhbGl6ZSAoYmVnaW58ZW5kKVRyYW5zcGFyZW5jeUxh
eWVyLCB3aGljaCBub3cgZm9yd2FyZAorICAgICAgICB0aHJvdWdoIHRvIChiZWdpbnxlbmQpUGxh
dGZvcm1UcmFuc3BhcmVuY3lMYXllciwgc28gdGhhdAorICAgICAgICBpc0luVHJhbnNwYXJlbmN5
TGF5ZXIgY2FuIGV4aXN0IG9uIGV2ZXJ5IHBsYXRmb3JtLgorCisgICAgICAgIE1ha2UgdXNlIG9m
IGlzSW5UcmFuc3BhcmVuY3lMYXllciBpbiBGb250TWFjIHRvIGRpc2FibGUKKyAgICAgICAgInNp
bXBsZSIgc2hhZG93IGRyYXdpbmcgd2hlbiB0aGUgdGV4dCBpcyBiZWluZyByZW5kZXJlZAorICAg
ICAgICBpbnRvIGEgdHJhbnNwYXJlbmN5IGxheWVyLgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0
b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy5zdmcKKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OkdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6On5HcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0Ojppc0luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGVDYWlyby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVnaW5Q
bGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lM
YXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6aXNJblRyYW5zcGFyZW5j
eUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9y
bVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3Bh
cmVuY3lMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q0dXaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0dESUdseXBocyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6cmVsZWFzZVdpbmRvd3NDb250ZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpyZWxlYXNlV2luZG93c0NvbnRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpnZXRXaW5kb3dzQ29udGV4dCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJl
bmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9y
bVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4uY3BwOgorICAgICAgICAq
IHBsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZVdpbi5jcHA6CisKIDIwMTEtMDktMDYgIEFhcm9uIENvbHdlbGwgIDxhY29sd2VsbEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWxsb3cgTWVkaWFTb3VyY2UgQVBJIHRvIGJlIGVuYWJs
ZWQgYXQgcnVudGltZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IGM1YmVkNzMuLjJiOTEwZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApA
QCAtNzgsNiArNzgsNyBAQCBwcml2YXRlOgogCiBHcmFwaGljc0NvbnRleHQ6OkdyYXBoaWNzQ29u
dGV4dChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1HcmFwaGljc0NvbnRleHQpCiAg
ICAgOiBtX3VwZGF0aW5nQ29udHJvbFRpbnRzKGZhbHNlKQorICAgICwgbV90cmFuc3BhcmVuY3lD
b3VudCgwKQogewogICAgIHBsYXRmb3JtSW5pdChwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCk7CiB9
CkBAIC04NSw2ICs4Niw3IEBAIEdyYXBoaWNzQ29udGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4CiBHcmFwaGljc0NvbnRl
eHQ6On5HcmFwaGljc0NvbnRleHQoKQogewogICAgIEFTU0VSVChtX3N0YWNrLmlzRW1wdHkoKSk7
CisgICAgQVNTRVJUKCFtX3RyYW5zcGFyZW5jeUNvdW50KTsKICAgICBwbGF0Zm9ybURlc3Ryb3ko
KTsKIH0KIApAQCAtMzMwLDYgKzMzMiwyNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDo6c2hhZG93
c0lnbm9yZVRyYW5zZm9ybXMoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlLnNoYWRvd3NJZ25v
cmVUcmFuc2Zvcm1zOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihmbG9hdCBvcGFjaXR5KQoreworICAgIGJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lM
YXllcihvcGFjaXR5KTsKKyAgICArK21fdHJhbnNwYXJlbmN5Q291bnQ7Cit9CisKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit7CisgICAgZW5kUGxhdGZvcm1U
cmFuc3BhcmVuY3lMYXllcigpOworICAgIEFTU0VSVChtX3RyYW5zcGFyZW5jeUNvdW50ID4gMCk7
CisgICAgLS1tX3RyYW5zcGFyZW5jeUNvdW50OworfQorCisjaWYgIVBMQVRGT1JNKFFUKQorYm9v
bCBHcmFwaGljc0NvbnRleHQ6OmlzSW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIChtX3RyYW5zcGFyZW5jeUNvdW50ID4gMCkgJiYgc3VwcG9ydHNUcmFuc3BhcmVuY3lM
YXllcnMoKTsKK30KKyNlbmRpZgorCiBib29sIEdyYXBoaWNzQ29udGV4dDo6dXBkYXRpbmdDb250
cm9sVGludHMoKSBjb25zdAogewogICAgIHJldHVybiBtX3VwZGF0aW5nQ29udHJvbFRpbnRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCAyNmFkMDJlLi44NTE0N2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzcwLDYgKzM3MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxv
YXQgb3BhY2l0eSk7CiAgICAgICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAgICAg
ICAgYm9vbCBpc0luVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsKIAogICAgICAgICBib29sIGhh
c1NoYWRvdygpIGNvbnN0OwogICAgICAgICB2b2lkIHNldFNoYWRvdyhjb25zdCBGbG9hdFNpemUm
LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOwpAQCAtNDI1LDEzICs0MjYs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdCaXRtYXAoU2hhcmVk
Qml0bWFwKiwgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
KTsKICAgICAgICAgdm9pZCBkcmF3Qml0bWFwUGF0dGVybihTaGFyZWRCaXRtYXAqLCBjb25zdCBG
bG9hdFJlY3QmIHRpbGVSZWN0SW4sIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
SW50U2l6ZSYgb3JpZ1NvdXJjZVNpemUpOwogICAgICAgICB2b2lkIGRyYXdJY29uKEhJQ09OIGlj
b24sIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIFVJTlQgZmxhZ3MpOwotICAgICAgICBib29sIGlu
VHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBIREMg
Z2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQg
PSBmYWxzZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhlIHBhc3NlZCBpbiBy
ZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUgdHJh
bnNwYXJlbmN5IGxheWVycy4KICAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0NvbnRleHQoSERD
LCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IGZhbHNlLCBib29sIG1h
eUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAgICAvLyBUaGUgcGFzc2VkIGluIEhEQyBzaG91bGQgYmUg
dGhlIG9uZSBoYW5kZWQgYmFjayBieSBnZXRXaW5kb3dzQ29udGV4dC4KICAgICAgICAgdm9pZCBk
cmF3Um91bmRDb3JuZXIoYm9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNUIHJlY3RXaW4s
IEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0KEhEQywgYm9vbCBoYXNBbHBoYSA9IGZhbHNlKTsgLy8gRklY
TUU6IFRvIGJlIHJlbW92ZWQuCi0gICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNv
bnN0OwogICAgICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wg
c3VwcG9ydEFscGhhQmxlbmQgPSB0cnVlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAv
LyBUaGUgcGFzc2VkIGluIHJlY3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBv
c2l0aW5nIGluc2lkZSB0cmFuc3BhcmVuY3kgbGF5ZXJzLgogICAgICAgICB2b2lkIHJlbGVhc2VX
aW5kb3dzQ29udGV4dChIREMsIGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5k
ID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgICAgLy8gVGhlIHBhc3NlZCBp
biBIREMgc2hvdWxkIGJlIHRoZSBvbmUgaGFuZGVkIGJhY2sgYnkgZ2V0V2luZG93c0NvbnRleHQu
CiAKQEAgLTQ4MSwxMSArNDgwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBU
aGlzIGlzIG5lZWRlZCBiZWNhdXNlIG9mIGEgYnVnIHdoZXJlYnkgZ2V0dGluZyBhbiBIREMgZnJv
bSBhIEdESSsgY29udGV4dAogICAgICAgICAvLyBsb3NlcyB0aGUgc2NhbGUgb3BlcmF0aW9ucyBh
cHBsaWVkIHRvIHRoZSBjb250ZXh0LgogICAgICAgICBGbG9hdFNpemUgY3VycmVudFNjYWxlKCk7
IAotICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLSAgICAgICAgYm9vbCBpblRyYW5zcGFy
ZW5jeUxheWVyKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgcHVzaFRyYW5zcGFyZW5jeUxheWVySW50
ZXJuYWwoY29uc3QgUVJlY3QgJnJlY3QsIHFyZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFz
ayk7CiAgICAgICAgIHZvaWQgdGFrZU93bmVyc2hpcE9mUGxhdGZvcm1Db250ZXh0KCk7CiAjZW5k
aWYKQEAgLTUzOCwxMSArNTM1LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
b2lkIHNldFBsYXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yKTsKIAor
ICAgICAgICB2b2lkIGJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5
KTsKKyAgICAgICAgdm9pZCBlbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCk7CisgICAgICAg
IHN0YXRpYyBib29sIHN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCk7CisKICAgICAgICAgR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKiBtX2RhdGE7CiAKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGUgbV9zdGF0ZTsKICAgICAgICAgVmVjdG9yPEdyYXBoaWNzQ29udGV4dFN0YXRl
PiBtX3N0YWNrOwogICAgICAgICBib29sIG1fdXBkYXRpbmdDb250cm9sVGludHM7CisgICAgICAg
IHVuc2lnbmVkIG1fdHJhbnNwYXJlbmN5Q291bnQ7CiAgICAgfTsKIAogICAgIGNsYXNzIEdyYXBo
aWNzQ29udGV4dFN0YXRlU2F2ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4
IGE4NTlmODcuLmE3MGJhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTg3
OSw3ICs4NzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvdygp
CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNoYWRvd0JsdXIoKS5jbGVhcigpOwogfQogCi12b2lk
IEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9h
dCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTg4NywxMCArODg3LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNw
YXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKICAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpOwogICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOwogICAgIG1fZGF0YS0+bGF5
ZXJzLmFwcGVuZChvcGFjaXR5KTsKLSAgICBtX2RhdGEtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC05MDAsNyArODk5
LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAg
Y2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShjcik7CiAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBo
YShjciwgbV9kYXRhLT5sYXllcnMubGFzdCgpKTsKICAgICBtX2RhdGEtPmxheWVycy5yZW1vdmVM
YXN0KCk7Ci0gICAgbV9kYXRhLT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitib29sIEdy
YXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMoKQoreworICAgIHJldHVy
biB0cnVlOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGVDYWlyby5oCmluZGV4IGQ4ZmYyMDUuLjlkZmY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZUNhaXJvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaApAQCAtNzcsOCArNzcsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCB0cmFuc2xhdGUoZmxvYXQsIGZsb2F0KTsKICAgICB2b2lkIGNvbmNhdENU
TShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKTsKLSAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNw
YXJlbmN5Q291bnQrKzsgfQotICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJh
bnNwYXJlbmN5Q291bnQtLTsgfQogICAgIHZvaWQgc3luY0NvbnRleHQoY2Fpcm9fdCogY3IpOwog
I2Vsc2UKICAgICAvLyBPbiBldmVyeXRoaW5nIGVsc2UsIHdlIGRvIG5vdGhpbmcuCkBAIC05Miw4
ICs5MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCwgZmxvYXQpIHt9CiAg
ICAgdm9pZCBjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJikge30KICAgICB2b2lkIHNl
dENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKSB7fQotICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVu
Y3lMYXllcigpIHt9Ci0gICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpIHt9CiAgICAgdm9p
ZCBzeW5jQ29udGV4dChjYWlyb190KiBjcikge30KICNlbmRpZgogCkBAIC0xMDUsNyArMTAxLDYg
QEAgcHVibGljOgogICAgIEdka0V2ZW50RXhwb3NlKiBleHBvc2U7CiAjZWxpZiBQTEFURk9STShX
SU4pCiAgICAgSERDIG1faGRjOwotICAgIHVuc2lnbmVkIG1fdHJhbnNwYXJlbmN5Q291bnQ7CiAg
ICAgYm9vbCBtX3Nob3VsZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHAKaW5kZXggZTE4ZmEwYS4uYzRmODQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAt
OTYzLDcgKzk2Myw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0
Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgdGhpY2tuZXNzCiAgICAgQ0dDb250ZXh0RU9D
bGlwKGNvbnRleHQpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZv
cm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rp
c2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk3MywyMSArOTczLDI0IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAg
Q0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRT
ZXRBbHBoYShjb250ZXh0LCBvcGFjaXR5KTsKICAgICBDR0NvbnRleHRCZWdpblRyYW5zcGFyZW5j
eUxheWVyKGNvbnRleHQsIDApOwotICAgIG1fZGF0YS0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcigp
OwogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9
IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIo
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBDR0Nv
bnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dEVuZFRy
YW5zcGFyZW5jeUxheWVyKGNvbnRleHQpOwotICAgIG1fZGF0YS0+ZW5kVHJhbnNwYXJlbmN5TGF5
ZXIoKTsKIAogICAgIHJlc3RvcmUoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBv
cnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBH
cmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0
LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkK
IHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZUNHLmgKaW5kZXggZjRmYTEyMi4uNWMwMDMwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oCkBAIC00NiwxOCArNDYsMTAgQEAgcHVibGlj
OgogICAgICAgICAsIG1faGRjKDApCiAgICAgICAgICwgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5k
b3dzKGZhbHNlKQogI2VuZGlmCi0jaWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVE
Ci0gICAgICAgICwgbV90cmFuc3BhcmVuY3lDb3VudCgwKQotI2VuZGlmCiAgICAgICAgICwgbV91
c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eShmYWxzZSkKICAgICAgICAgLCBt
X2NvbnRleHRGbGFncyhmbGFncykKICAgICB7CiAgICAgfQotICAgIAotICAgIH5HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGUoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3RyYW5zcGFy
ZW5jeUNvdW50KTsKLSAgICB9CiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9N
SVVNKQogICAgIC8vIFRoZXNlIG1ldGhvZHMgZG8gbm90aGluZyBvbiBNYWMuCkBAIC05MCwyNCAr
ODIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX3Nob3VsZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAj
ZW5kaWYKIAotICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBM
QVRGT1JNKFdJTikgfHwgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBtX3RyYW5zcGFyZW5jeUNv
dW50Kys7Ci0jZW5kaWYKLSAgICB9Ci0gICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpCi0g
ICAgewotI2lmIFBMQVRGT1JNKFdJTikgfHwgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBBU1NF
UlQobV90cmFuc3BhcmVuY3lDb3VudCA+IDApOwotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50
LS07Ci0jZW5kaWYKLSAgICB9Ci0KICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NnQ29u
dGV4dDsKLSNpZiBQTEFURk9STShXSU4pIHx8ICFBU1NFUlRfRElTQUJMRUQKLSAgICBpbnQgbV90
cmFuc3BhcmVuY3lDb3VudDsKLSNlbmRpZgogICAgIGJvb2wgbV91c2VyVG9EZXZpY2VUcmFuc2Zv
cm1Lbm93blRvQmVJZGVudGl0eTsKICAgICBHcmFwaGljc0NvbnRleHRDR0ZsYWdzIG1fY29udGV4
dEZsYWdzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcAppbmRleCBiM2Y2YzA2Li40
ZGFmZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlr
dS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwCkBAIC0yNDksNyArMjQ5LDcg
QEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiB7
CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjU3LDcg
KzI1Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZs
b2F0IG9wYWNpdHkpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQ
bGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
KQogICAgICAgICByZXR1cm47CkBAIC0yNjUsNiArMjY1LDExIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAor
Ym9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCmluZGV4IDA2
N2Q3MzQuLmY1NGY4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250TWFjLm1tCkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGNv
bnMKICAgICBDb2xvclNwYWNlIGZpbGxDb2xvclNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3Bh
Y2UoKTsKICAgICBjb250ZXh0LT5nZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyLCBz
aGFkb3dDb2xvciwgc2hhZG93Q29sb3JTcGFjZSk7CiAKLSAgICBib29sIGhhc1NpbXBsZVNoYWRv
dyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFkb3dD
b2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd0JsdXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0
bWFwRm9udCgpICYmICghY29udGV4dC0+c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBjb250
ZXh0LT5nZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKTsKKyAgICBi
b29sIGhhc1NpbXBsZVNoYWRvdyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IFRleHRN
b2RlRmlsbCAmJiBzaGFkb3dDb2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd0JsdXIgJiYgIXBsYXRm
b3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpICYmICghY29udGV4dC0+c2hhZG93c0lnbm9yZVRy
YW5zZm9ybXMoKSB8fCBjb250ZXh0LT5nZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9y
RmxpcHBlZCgpKSAmJiAhY29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgaWYg
KGhhc1NpbXBsZVNoYWRvdykgewogICAgICAgICAvLyBQYWludCBzaW1wbGUgc2hhZG93cyBvdXJz
ZWx2ZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIENHIHNoYWRvd3MsIHRvIGF2b2lkIGxvc2luZyBz
dWJwaXhlbCBhbnRpYWxpYXNpbmcuCiAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhp
Y3NDb250ZXh0T3BlblZHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwCmluZGV4IDE1OTU2OTIuLjQ0MTdkN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGlj
c0NvbnRleHRPcGVuVkcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUGxhdGZvcm1TaGFkb3coKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5z
cGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgVU5VU0VEX1BB
UkFNKG9wYWNpdHkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5
TGF5ZXIoKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5
ZXIoKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTMwMiw2ICszMDIsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxh
eWVyKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6
c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7
CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAppbmRleCBhMDg5
ZmVmLi40NGNkZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgYW50aUFsaWFzaW5nRm9yUmVjdHNBbmRMaW5lczsKIAogICAgIFFTdGFj
azxUcmFuc3BhcmVuY3lMYXllcio+IGxheWVyczsKLSAgICAvLyBDb3VudGluZyByZWFsIGxheWVy
cy4gUmVxdWlyZWQgYnkgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNhbGxzCisgICAgLy8gQ291bnRp
bmcgcmVhbCBsYXllcnMuIFJlcXVpcmVkIGJ5IGlzSW5UcmFuc3BhcmVuY3lMYXllcigpIGNhbGxz
CiAgICAgLy8gRm9yIGV4YW1wbGUsIGxheWVycyB3aXRoIHZhbGlkIGFscGhhTWFzayBhcmUgbm90
IHJlYWwgbGF5ZXJzCiAgICAgaW50IGxheWVyQ291bnQ7CiAKQEAgLTc2Myw3ICs3NjMsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qs
IGNvbnN0IEludFNpemUmIHRvcExlZgogICAgIHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRo
KCksIFFDb2xvcihjb2xvcikpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDo6aW5UcmFuc3Bh
cmVuY3lMYXllcigpIGNvbnN0Citib29sIEdyYXBoaWNzQ29udGV4dDo6aXNJblRyYW5zcGFyZW5j
eUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kYXRhLT5sYXllckNvdW50OwogfQpAQCAt
MTA2MCw3ICsxMDYwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnB1c2hUcmFuc3BhcmVuY3lM
YXllckludGVybmFsKGNvbnN0IFFSZWN0ICZyZWN0LCBxcmVhbCBvcGEKICAgICBtX2RhdGEtPmxh
eWVycy5wdXNoKG5ldyBUcmFuc3BhcmVuY3lMYXllcihwLCBkZXZpY2VDbGlwLCAxLjAsIGFscGhh
TWFzaykpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXll
cihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgKyttX2Rh
dGEtPmxheWVyQ291bnQ7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVu
Y3lMYXllcigpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lM
YXllcigpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMTEwOCw2ICsxMTA4LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVu
Y3lMYXllcigpCiAgICAgZGVsZXRlIGxheWVyOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6
c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsK
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5k
ZXggODlkNmZhMy4uZDdhYzNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCkBAIC0yNjIs
NyArMjYyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkK
ICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cmVzdG9yZSgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4Mywx
MyArMjgzLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNrQ2FudmFzOjprRnVsbENvbG9yTGF5ZXJfU2F2ZUZsYWcpKTsKIH0KIAotdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpl
bmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5y
ZXN0b3JlKCk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5j
eUxheWVycygpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIC8vIEdyYXBoaWNzIHByaW1pdGl2
ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25z
dCBJbnRSZWN0JiByZWN0LCBpbnQgdGhpY2tuZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAppbmRleCA5ZDA3M2FjLi5mNTk2Njk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENH
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENH
V2luLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdHRElHbHlwaHMoR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0IFNpbXBsZUZvbnREYXRhCiAgICAg
ICAgIGlmICghZmlsbENvbG9yLmFscGhhKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgZHJhd0ludG9CaXRtYXAgPSBmaWxsQ29sb3IuYWxwaGEoKSAhPSAyNTUgfHwgZ3JhcGhpY3ND
b250ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVyKCk7CisgICAgICAgIGRyYXdJbnRvQml0bWFwID0g
ZmlsbENvbG9yLmFscGhhKCkgIT0gMjU1IHx8IGdyYXBoaWNzQ29udGV4dC0+aXNJblRyYW5zcGFy
ZW5jeUxheWVyKCk7CiAgICAgICAgIGlmICghZHJhd0ludG9CaXRtYXApIHsKICAgICAgICAgICAg
IEZsb2F0U2l6ZSBvZmZzZXQ7CiAgICAgICAgICAgICBmbG9hdCBibHVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHRDR1dpbi5jcHAKaW5kZXggY2IwYzlhNy4uNWZiY2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dX
aW4uY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUlu
aXQoSERDIGhkYywgYm9vbCBoYXNBbHBoYSkKIC8vIHN1aXRhYmxlIGZvciBhbGwgY2xpZW50cz8K
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZWxlYXNlV2luZG93c0NvbnRleHQoSERDIGhkYywgY29u
c3QgSW50UmVjdCYgZHN0UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVh
dGVCaXRtYXApCiB7Ci0gICAgYm9vbCBjcmVhdGVkQml0bWFwID0gbWF5Q3JlYXRlQml0bWFwICYm
ICghbV9kYXRhLT5tX2hkYyB8fCBpblRyYW5zcGFyZW5jeUxheWVyKCkpOworICAgIGJvb2wgY3Jl
YXRlZEJpdG1hcCA9IG1heUNyZWF0ZUJpdG1hcCAmJiAoIW1fZGF0YS0+bV9oZGMgfHwgaXNJblRy
YW5zcGFyZW5jeUxheWVyKCkpOwogICAgIGlmICghY3JlYXRlZEJpdG1hcCkgewogICAgICAgICBt
X2RhdGEtPnJlc3RvcmUoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWly
b1dpbi5jcHAKaW5kZXggOWY3YWVjZS4uMjJiZjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fp
cm9XaW4uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgc3RhdGljIHZvaWQgZHJhd0JpdG1hcFRvQ29u
dGV4dChHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUqIGNvbnRleHQsIGNhaXJvX3QKIAog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMgaGRjLCBjb25z
dCBJbnRSZWN0JiBkc3RSZWN0LCBib29sIHN1cHBvcnRBbHBoYUJsZW5kLCBib29sIG1heUNyZWF0
ZUJpdG1hcCkKIHsKLSAgICBib29sIGNyZWF0ZWRCaXRtYXAgPSBtYXlDcmVhdGVCaXRtYXAgJiYg
KCFtX2RhdGEtPm1faGRjIHx8IGluVHJhbnNwYXJlbmN5TGF5ZXIoKSk7CisgICAgYm9vbCBjcmVh
dGVkQml0bWFwID0gbWF5Q3JlYXRlQml0bWFwICYmICghbV9kYXRhLT5tX2hkYyB8fCBpc0luVHJh
bnNwYXJlbmN5TGF5ZXIoKSk7CiAgICAgaWYgKCFoZGMgfHwgIWNyZWF0ZWRCaXRtYXApIHsKICAg
ICAgICAgbV9kYXRhLT5yZXN0b3JlKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdp
bi5jcHAKaW5kZXggZjAzNDQ4Ny4uZTMxOWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKQEAg
LTUxLDggKzUxLDYgQEAgc3RhdGljIHZvaWQgZmlsbFdpdGhDbGVhckNvbG9yKEhCSVRNQVAgYml0
bWFwKQogICAgIG1lbXNldChibXBJbmZvLmJtQml0cywgMCwgYnVmZmVyU2l6ZSk7CiB9CiAKLWJv
b2wgR3JhcGhpY3NDb250ZXh0OjppblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9kYXRhLT5tX3RyYW5zcGFyZW5jeUNvdW50OyB9Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
ZXRTaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGJvb2wgaW5jbHVkZSkKIHsKICAgICBtX2RhdGEt
Pm1fc2hvdWxkSW5jbHVkZUNoaWxkV2luZG93cyA9IGluY2x1ZGU7CkBAIC0xMDAsNyArOTgsNyBA
QCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDo6V2luZG93c0JpdG1hcD4gR3JhcGhpY3NDb250
ZXh0OjpjcmVhdGVXaW5kb3dzQml0bWFwKAogSERDIEdyYXBoaWNzQ29udGV4dDo6Z2V0V2luZG93
c0NvbnRleHQoY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwg
Ym9vbCBtYXlDcmVhdGVCaXRtYXApCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCBhIGJpdG1hcCBi
ZSBjcmVhdGVkIGFsc28gd2hlbiBhIHNoYWRvdyBpcyBzZXQ/Ci0gICAgaWYgKG1heUNyZWF0ZUJp
dG1hcCAmJiAoIW1fZGF0YS0+bV9oZGMgfHwgaW5UcmFuc3BhcmVuY3lMYXllcigpKSkgeworICAg
IGlmIChtYXlDcmVhdGVCaXRtYXAgJiYgKCFtX2RhdGEtPm1faGRjIHx8IGlzSW5UcmFuc3BhcmVu
Y3lMYXllcigpKSkgewogICAgICAgICBpZiAoZHN0UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCmluZGV4IDVmYjQzZDcu
LjY2ODVjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHAKQEAgLTExMTMsMTcgKzEx
MTMsMjIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBmbG9hdCB3aWR0aCkKICAgICBTZWxlY3RPYmplY3QoZGMsIG9sZFBlbik7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNp
dHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgbV9kYXRhLT5zYXZlKCk7CiAgICAgbV9kYXRhLT5tX29w
YWNpdHkgKj0gb3BhY2l0eTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFy
ZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5j
eUxheWVyKCkKIHsKICAgICBtX2RhdGEtPnJlc3RvcmUoKTsKIH0KIAorYm9vbCBHcmFwaGljc0Nv
bnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkKIHsKICAgICBtX2RhdGEtPmNvbmNhdENUTSh0cmFuc2Zvcm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250
ZXh0V3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3ND
b250ZXh0V3guY3BwCmluZGV4IGI4MjJiY2YuLjBkYmFmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAK
QEAgLTY2NSwxNiArNjY1LDIxIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3Jt
U2hhZG93KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOyAKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6
OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCkKIHsgCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsgCiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXll
cigpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIo
KQogeyAKICAgICBub3RJbXBsZW1lbnRlZCgpOyAKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6
OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0JikgCiB7IAog
ICAgIG5vdEltcGxlbWVudGVkKCk7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TY3JvbGxiYXJUaGVtZVdpbi5jcHAKaW5kZXggOThjNmZjNi4uN2Q1NDRmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsYmFyVGhlbWVXaW4uY3BwCkBAIC0y
NzEsNyArMjcxLDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZVdpbjo6cGFpbnRUcmFja1BpZWNlKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3IKICAgICB9CiAKICNpZiAhT1Mo
V0lOQ0UpCi0gICAgaWYgKCFhbHBoYUJsZW5kICYmICFjb250ZXh0LT5pblRyYW5zcGFyZW5jeUxh
eWVyKCkpCisgICAgaWYgKCFhbHBoYUJsZW5kICYmICFjb250ZXh0LT5pc0luVHJhbnNwYXJlbmN5
TGF5ZXIoKSkKICAgICAgICAgRElCUGl4ZWxEYXRhOjpzZXRSR0JBQml0bWFwQWxwaGEod2luZG93
c0NvbnRleHQuaGRjKCksIHJlY3QsIDI1NSk7CiAjZW5kaWYKIH0KQEAgLTMyNSw3ICszMjUsNyBA
QCB2b2lkIFNjcm9sbGJhclRoZW1lV2luOjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYgogICAgICAgICA6OkRyYXdGcmFtZUNvbnRyb2wod2lu
ZG93c0NvbnRleHQuaGRjKCksICZ0aGVtZVJlY3QsIERGQ19TQ1JPTEwsIGNsYXNzaWNTdGF0ZSk7
CiAKICNpZiAhT1MoV0lOQ0UpCi0gICAgaWYgKCFhbHBoYUJsZW5kICYmICFjb250ZXh0LT5pblRy
YW5zcGFyZW5jeUxheWVyKCkpCisgICAgaWYgKCFhbHBoYUJsZW5kICYmICFjb250ZXh0LT5pc0lu
VHJhbnNwYXJlbmN5TGF5ZXIoKSkKICAgICAgICAgRElCUGl4ZWxEYXRhOjpzZXRSR0JBQml0bWFw
QWxwaGEod2luZG93c0NvbnRleHQuaGRjKCksIHJlY3QsIDI1NSk7CiAjZW5kaWYKIH0KQEAgLTM4
NCw3ICszODQsNyBAQCB2b2lkIFNjcm9sbGJhclRoZW1lV2luOjpwYWludFRodW1iKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3JvbGxiYQogICAgICAgICA6OkRyYXdFZGdl
KGhkYywgJnRoZW1lUmVjdCwgRURHRV9SQUlTRUQsIEJGX1JFQ1QgfCBCRl9NSURETEUpOwogCiAj
aWYgIU9TKFdJTkNFKQotICAgIGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aW5UcmFuc3Bh
cmVuY3lMYXllcigpKQorICAgIGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aXNJblRyYW5z
cGFyZW5jeUxheWVyKCkpCiAgICAgICAgIERJQlBpeGVsRGF0YTo6c2V0UkdCQUJpdG1hcEFscGhh
KGhkYywgcmVjdCwgMjU1KTsKICNlbmRpZgogICAgIGNvbnRleHQtPnJlbGVhc2VXaW5kb3dzQ29u
dGV4dChoZGMsIHJlY3QsIGFscGhhQmxlbmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dp
bi9QbHVnaW5WaWV3V2luLmNwcAppbmRleCAwZGU1OTRkLi5hMGEyZTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcApAQCAtNjM2LDcgKzYzNiw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogICAgIC8vIEluIHRoZSBRdCBwb3J0IHdlIGFsd2F5cyBkcmF3IGluIGFu
IG9mZnNjcmVlbiBidWZmZXIgYW5kIHRoZXJlZm9yZSBuZWVkIHRvIHByZXNlcnZlCiAgICAgLy8g
dGhlIHRyYW5zbGF0aW9uIHNldCBpbiBnZXRXaW5kb3dzQ29udGV4dC4KICNpZiAhUExBVEZPUk0o
UVQpICYmICFPUyhXSU5DRSkKLSAgICBpZiAoIWNvbnRleHQtPmluVHJhbnNwYXJlbmN5TGF5ZXIo
KSkgeworICAgIGlmICghY29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCkpIHsKICAgICAg
ICAgWEZPUk0gdHJhbnNmb3JtOwogICAgICAgICBHZXRXb3JsZFRyYW5zZm9ybSh3aW5kb3dzQ29u
dGV4dC5oZGMoKSwgJnRyYW5zZm9ybSk7CiAgICAgICAgIHRyYW5zZm9ybS5lRHggPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggN2E3YWZjYy4u
ZDVjZTQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3Bw
CkBAIC02NzQsNyArNjc0LDcgQEAgc3RhdGljIHZvaWQgZHJhd0NvbnRyb2woR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBSZW5kZXJPYmplY3QqIG8sIEhBTkRMRSB0aGVtZSwKIAogCiAjaWYgIU9T
KFdJTkNFKQotICAgIGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aW5UcmFuc3BhcmVuY3lM
YXllcigpKQorICAgIGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aXNJblRyYW5zcGFyZW5j
eUxheWVyKCkpCiAgICAgICAgIERJQlBpeGVsRGF0YTo6c2V0UkdCQUJpdG1hcEFscGhhKHdpbmRv
d3NDb250ZXh0LmhkYygpLCByLCAyNTUpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106901</attachid>
            <date>2011-09-09 12:20:43 -0700</date>
            <delta_ts>2011-09-09 19:55:36 -0700</delta_ts>
            <desc>Fix crashes on Windows and Gtk</desc>
            <filename>67543.patch</filename>
            <type>text/plain</type>
            <size>43688</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxODdlYzA4Li4yZTM1MzRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MDkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4
dCByZW5kZXJlZCB3aXRoIGEgc2ltcGxlIChpLmUuIDBweCBibHVyKSBzaGFkb3cgaW5zaWRlIGEg
dHJhbnNwYXJlbmN5IGxheWVyIGhhcyBhIGRvdWJsZSBzaGFkb3cKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTQzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDA3MDUzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRoYXQgdGV4dCB3aXRoIDBweCBibHVyIENTUyBz
aGFkb3cgZG9lc24ndCBnZXQgcmVuZGVyZWQKKyAgICAgICAgd2l0aCBhIHNlY29uZCBzaGFkb3cg
d2hlbiBpbnNpZGUgYSB0cmFuc3BhcmVuY3kgbGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91Ymxl
LXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vc2ltcGxl
LXRleHQtZG91YmxlLXNoYWRvdy5zdmc6IEFkZGVkLgorCiAyMDExLTA5LTA4ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0QW5p
bWF0aW9uRXZlbnQgY29uc3RydWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1z
aGFkb3ctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwODg0ZGIwYTRmM2UxNjQzZjllOGI2NTY3
MzFhOTVlMTI5ZDVlNzEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE3NjMxCnpjbWVIdmN8NFNE
K3JRI1kzc0txJC02Z3FnV29nSlZOK2wkZkIxO3FAeVJpI3tscjJtfUNpYDdOV3k/T3NHUmFtWgp6
V1NmYlpGXz5sc1ZgbDdRajR8KDM+RilXd3p1KXREfDl3QnQ+I3YjWG9hO1EhXkUlR3NJTF9ueUo8
ZTw1RT8rVmIKei1nO213QTBNQnY7ZjFxVGBTfCN5YFM+PjgqdGBqN05le1UxNFNkTT9veDk9WmFN
I2huJkRZPDlQeENsUE1lX3MqCno8bWhsKkwoUiFTVH1BYnpoUlZxa2p2NWEzNGpfQXtKSCtBQTNf
eXljaUB5RzRMdyRZZSVSWExDRjdBJGVkX2Z4Pwp6VUwoNW9VRVp9aTxlMnF0XndCQmo5YjB0b0tK
bU9gPUJKLW8/UGhgT3czPDl3YkxjYHd6SzJiRStZdmhTbyM1YWoKenVUIW1vR2xJSG9MN35BWXVh
S3cwWk0kd1M2fitFfWFxLVdKPjxsIyVTdV80eFJ2blNlKDNHV3F2O0NWNXZGaDhVCnpFVkFwbW5R
N35YbTZtVjJoX2Y0UENHX1EyP3dVTWAtZVl2c0t1QEh2SmVYTkF3X1VRJC1IK2kjRUw/Uk1OUGl9
QAp6Vl9ISkdGLTUpUSZyIT8yVTJPWE8jNn5jMiUmWmdZQTM4N2stWTV7KkJJVF4lPHEkY1ZrYSMl
Tk5samZaZWFpPkkKeiktJEohNXFjV1dUfUl9RnpqajZMYFgrbnklflBkRStKKXo/RHdGUz1EO0hY
dm1oejM3d1JgdEVXZz9AUER3Xm4jCnp6Vy04QlgjQjkwV3woJlpnPlJxPFlgM3JCRyRQQ1Ujenw3
SElgbUJFayYrIXA4PmtGRm0qO2ZIYmh4RzVQOG8/Swp6XzRlMEZSTlktRCt4WCtzRFNoPCQlVE0z
c3NHLXpVRSQyd3wlZytSOEN0NFI0am5CXmA4P2QtMSQkfSh4LTJ5cEcKenhaWXw1WXIhWDs5UTxe
ZVJ3PGJ7Rm1MX3psc09MZnR1eX57YjQlYkFGI20tIV9tZD48OTI8RlpNKEIzQkwoQUt4CnppK2xG
fVk0b2JzI3FVfmh4ZHVrLVNhSz58IVhXNkEtRkFmU28oMWMyI05yNGluOz9UdHNeOSZ2d0k9dUw2
PyM/Vgp6MWhRTiNUfENfWGMzIVVNRDUjZDRBP3tKUVpTJDRZY3lpZVZUZ01MNWAmWTMzQ249QjM7
NEEqeXg+WnNiRzY2ZXAKejJxQkI2Wkl9TFgtKWoxQj8qfS1sfDZ8djFAZVh0WkxfeFBPK3BNIX5O
flpUPkZZT0tqNn5BeiVaNkV2YjM0Tj1xCnojdj4rfkB0VShrbSQlN28zY09GRmpNKnEtMSsoaXUt
eUJgOC1DVjVYYjIjYjQtaTMzYWhvJjE8OCtHayF5a2MoYAp6OzJRaHgmfmleJChkem8xQVlZYzxP
TSY1SjdqPUB9aXRSNWlZYj1BQlo8ZW9vPkVMUXE7YitSbkZYTTN1S0tEbTUKemJIe15pcHxLXjNh
ai0mcmlecnomVGZOZVJZfmV6TnI1NlUzLWY2Kzt7TUJaZG4tbXYyVShMQ3t5ZUd1RCVgXyNACnpe
LVo/Pi19bT9gP2ZxTlR8SiM7I3B8JVJOLThkPWo/MyMhdFN+IVBkOWdvfHtONG47UEk2b3o4JHFq
V1BnIyRVPQp6WndDbX1ae2dkNWEjdUZKSWxMOX47ZjArRkFEPVh6O25+eUlmO1B8eiFDd0x2UnNe
VExqUSVveVU3Mml1XzJ0Y3UKelIyaiFEZDFyOzZ3UzdfUCtqcCo3PSV9JHUhZytAVEBZOXJJI3lm
aEI4b1FXMlFGTD44OSlEcUlYfDs9YjNOP3FQCnpIWD0pRCRlZElkNzBKWT1QMUw0Vmdtd2pJaVRE
bTxFZzU4Miltezc+SFZTTU9tRFk+azFIU0FPa2JIVnNmNktxTAp6WSEoc181S2E4fj55Tyo/KGop
a3VvLVk+dG11PyRsQ0Q7MFl6ZUN6WWtJeWpJSm9kWjFITmhMc2l1QFZAWG5BfjgKekleeHc4YExq
UHB7QmNKRi0lRylAVGZnX1lBU1NCVWArRTFFemVtO00+KjQ8OzQ3bFVmbWQoO0d7YWJoWjkjdU1H
Cnp7UCVEaDEkcVNwOTs+LU57MT0mYGRoYEQ+cF5ZdlpIKG9lVWI+PzRXWmtFM0hkcVJBWFk4eTVq
TndobGombShMRQp6KVMmWndMSnxLdilpNGJmbWFaV0xTaE0/YlJASG96QHU3Ml9XR3JmUjtvfVQ/
SHI1YXE1UlQ8YFgpelZSdDF+YkkKekI/XzN3SGY2VWVMcj9ndSpkSUxjaVFXe0RNIytaMF5IOWs3
c2ozP2k4JTJXbmc0dCswVGEwWjh5JlVJUl93MmhnCnpNPlpMKkViZFd4V3phYiV0bUJkMCVHbTY/
N0BlWF8/Kzt0Wnticl5JRlJ+c2dodShmUSZselNsbVU5PyZGYlB5cQp6KCh+P1dMWEpPYnpTa0pO
aTFQeVhRc1UpSGojK3koX3leQnI1SlNUfDZjRTkod1R8eDdtNVlBU2kzZmZ6JT08Q1gKenAhZlZB
fDAqb0gzU0ZKY2Z0UUJTLURFenIwekdlSmJNVnd1VyQ0VCFhdmhRRHNYNWFraERQelklPF57MGtk
JGBkCnpgNWQwWGJlRzN7NzYrWVNTeHpOU2MqfEgrTUB7MkdhcVc0PGcrUHwwPD1rTChwNiEhaUEp
ST9mciE7PHtGP31IYgp6dHltLVJ5ITczTnRyZC1TUSZMQjNKS0wjXl5aTWJudGZ+U0lkT0NafWUy
I2ExU0JtRVI3ayN2WTxsT1RvTUAjUHcKejZkRmxMd35HcFgxU0hAO3gqWXlvUjcqKWA5azZxMnp5
PWNiMWBfLSZnNlZFeyk9RzYjPCV+a2szUWBTeXpfdEtiCnpqVTA8ZnAwaDtOM1U4SCNpam9gcStA
fis4NjNpTTdWLVh4STlFMGtqV3dYX3dMQ2NKfVM0ZWBOJFVOOz40WkdobQp6OWxFY297KSYhez5w
aH5fbikmWlpmQilAcGU7JDYhUyUrcm5Lbil0I20kSiY5TnBNejNKSWM1bzFuaD03OHNmQTQKejEt
ZXg+eipNM2pBaVRGZWRwWlZlbGc8OUB0ZHpGK0UhazhsMmwoMT9xRnVyKTtPcCVlODZ0fSk1aShV
cTRrMj1FCnoqPT9aNEU4OF9qQjZneH41UTlqR1dEbDxwPilAdHN3d0o0aVRubEFibXUjU0h2TGlK
c1AkfE9gPkIwdHsjQk9Zawp6bEhzTVI7Vlh2RGJoRzRJJXxQKnw1e0lndkdvXlMtMkFiYTw+diFP
WXRCYlJmN05+cEV4KX1CNyhvbkx6QmYlZWcKenVwaWM0a20rTUkyI2tXWjktZDhJKHg4ZzZHOWBq
V0JGWHd2JWE9OG1NeHhMJWEycGs+OXwzLVF6NlM9YTQ0cUJSCnpRN0cjIUt+QkRIZFJAX1ZzJkp8
YllmSUspMkFnV0dPZ0UjZys9e1BiMDJBOXVZKE1UMmRRcjdRdDFhPHUkVn1eQQp6SUgrTzVCbm0w
REc5cmtjRUcpSCEwJi1kdUR4eDh0KUopJjVUTGNsVXNkdXgzLU92RTwyfEVPTHU/Q2VAbUI0NioK
ekhfcW9aSE53IUYhVTIhaS1xPVY8Y2lSTjdJUl9SSlkzN1BAV0g3MnFWazthWFBadj8/b3Y0bzRY
WEU7SFZNYlBXCnpDYSE3bEhHKn1nQnMoYz13SXJ+aUZtJWQ2Tj9kQGRxMkRWXmxCamQzLT9fR29g
SXI3P3xHX3paKEE+JTs0QHJiXwp6SXhSXlByczRNcF9LeUBOfEpaQURJVX1sZ05GWnxQTDNDNFA0
Y15EdFdCVjYzLXc0bldlcjRHdldCVDE0JkNiKEsKejleMHFrcCR5ZEV0dGVxdlV1b1Q/eDlxJElN
bWJ1a04+aWAyYjEtczlBYD80Y1plNHM1IzRwbTg2VFpyWm9YWDNGCnp3QyFKKj89dmsweGAkdD5M
S1JzYVA4VDZ6VD0zUGNfdFpBTCZHemR4ajVebkw+TGttcnxFUTNuVCN2KiZIYUY+JQp6Pm5Hfkk4
ZnRjazVfeyMxWTFyRzdxcWwkdEIwZlpBTmRnVUgyTSlPdSRkRVcqMzxOMUAyd3p+PHQ7TVd3IVpP
Mm8Kejk1LUs0b3VGezswdjFhdEc5ITM1MyVpTUpvcVZ8MF9DXk5CJntacyFxN0tidUEme04+MyE5
KVc4JUoofCl0cX0+CnplTVB+cTJmMz1CPT1tOSpaJXU8YyVyXjFWUHJvQFN4WjxCfGE/LU5idFNz
fCg0SFhEdz5aYFFxOCQ4TlJCIWtwbwp6OF5nSmNeUWclaEFTI0VCWmxnNTxMRmk4N2NwKVhicG91
en5vdXVycj80OShZSHFpT1lCYUAmYWw3eWZiQyszJVgKej1XUF5PK1ckRHU8ZCQ7Q0FpQmRoZG9I
c3tuY2YqV0A+Q1lvPlMpdjE8bHRmPl8tRitmJj1SYGJtJFNXVmQmXiEoCnpsdDBMYEIlUDNWdi0z
Mng3RXBfa3VlNjNuQF5xfCRfUkUmISp6Xy18Jip7UDRBLTJLSTs9YEFSKjxGRiMrb2IleQp6b011
X3MpRCheR05YRUdJU0dSS0lXQHUyY1cxQWkmcHpqWWF3U2wmR0RGTjBBLVdRNCRzSWkwPjZ4WXZv
Uk9xcz4KejxRVllFPSpaX1lWajckNStMci0/UkhtRCUoOEJRVzNmP001eHB0VDV6O3oybkVEKUAz
ckVBUlhiaz8/PWlNTDNoCnpqTkozeV5tZmFjQ184M3A8TUwhdlN7ajdaOXQ8bEtjZ2BQa1oqfEo+
RmJARnk0YEBDciZ9cWRxXmZZOz1VPlo2bQp6aFZJSz10WmNIM15+WUVpb0hnWUY0eDMoO3hmPTY1
aXNvJjNWVm9iUURuKipJQUJLVi1rT0NYJHZVV1B4Kj8peiEKekEyYiViVntCOGhUT1pIYjwmM2Mz
JEMlaSttb1h9I0ZWLWY9eH1ZOypYIV9URypFZXNEdU5WQ001JnRNZDw8KWNvCnpnc3t9RXlJN1hU
Y0M0K1pzRiV1eEZkSkFTeT5MWUw/ZngmRmRqKiN2NmBiVXBtMlhZcWtTfGlFYGpkOGw/U1ozTwp6
TkQtdj57dzE4Rk5Kbjk4ZGdVYzlkbHxPfVpxUy17WUtKIVJieylOMXl1TSshTCV5eiohYVo+TnVN
YjFIa18pZTgKej0ye3Z5YWhId0h0OWd4YUh0JEFwMitSJXgtUHRGbl9yKTZ7a2Naaz4ybWgybDl+
NWh4WH09RXlTbWk2XjQmPExfCno2QW47RmQoXzhKcDBWJXUhQC1GTXt5ZF5QeTJXJiMmQ3VTeXZ6
TjJ4emc0WnlsQXlVTEY1UWNhX3c3RUk2OG1gMQp6PXdZU253MG9NMT1Sb3NWPEAqamIjSlpXOE5g
d0o7eGhFPTI8JjlUZUBiM1UlYyNFPCpYZSh5ZkgtfT5yWEJSYGQKemtgTVY/UWc5ZHx5bFNII18m
QTdHVChpOV5yTnpPO0spNXNTRyNMVTUhSD9ZMT9tQnhgVl9idyN6RClGSSFrd35eCnohUmN0WDQh
aE1eY3ZCY1o8bFRPS2U5WD9zQlc7VEdYfjFNX1RmIW1kVSF6TDZ0WS05N211bzBzej4qVDd5bTE1
WQp6ZiRUZTxzMlpHfGY8MFhSMzdOd2dBbnJfWkp2YHFOYi1xNlFaLVJaPWo+QHFqMyV1OFNxKTYh
QlhPKysxa08wbCEKekJvJj57RVFeekUpUn16KFF8TnsrUnRRUSRIWFhpaTdgVyhBTFJOPC0yczU8
Ty1TOWArWWJpNGEqT0llYTJMeDhCCnomVSV6YnlQU19mY15vNEFhRldKTDheNH0mPGtFMDFaQTlo
U21BT0U7XlNON1dBbS17SUNoOVV5RHQkVU5fZ1M/TAp6TSplc2hycUliMW1GYz0kUGRkb0ZGJm9D
cHc+RD9oaFRJKFRwUUpvT0MpZmk8P0dJYFo/a0taOFE2Zkd6N2FHMHYKejJZN25gWTExVEkydlFN
LXphdDM+VlR0NCRiYyh+U0N1SjFIZ2NtZE9uSl83OEwjMk5tSWswcmpwTyZBKWJiSFZoCnpxfkBv
K09JcV5VYWhIOUo3Plo9VT5fOTJCTitKKnNrcns0SkxuNElhbHsoYE1GMmZGdD9XX1A/UUtWd2dg
YXV6Owp6RzJgQD8/RWFlRVI5ZVZkI2B3Tm1WZnliKWsyTkJhJn57X2spIUp5cGxxQDU2SmJEUl8r
STZoMClsczNkdnB0RyQKemhwQSV4QXhSUHJmNVI0STd0Wnk+U2VFV00wdEZIeHEzeUV7JFIlflFl
YHlGb2BoNSRSWnt9PGYxSWcqVHF+JFN2Cnp0cHZlM3F8fHo5YiV8dGJiRCZSez4pMmAqeDImKUkj
SElnS0JDZE1yeTdxUW1QSSUhRnJFUU83eSZKflFESVo5UQp6TU9wNCg5ZXI+YkZEcHRUbHU4TUhD
Z2h6Zl5PekJve0dKSmxQIWMmaSMlX1ZUO18qLXBvcUp1Zm89MX02WCNeI3IKelVQKz9ral8+SiRP
cDlZcW9SeXg4NClWRksoWUVhMHtDWn1sVURoRGpec1A4dFhATTFQUTVjZDF2KDlXOVhTQnolCnpL
YV9APnpoUG4mS313dmgmRXBTKXs9Xl98bXEyND4tP1psMG1TdCplK3NUUy12OCtUKWQxO0krZ3El
ezYzMC1RSQp6KG5ZKkZlb3UrUGk8OFoyP0hnJitPdEo9KGUmejF5ZGM4Un1Nd0UmZ181K3IoaU9e
JmdtTDYzO3EtfFN5UVpWMXgKelJVTE1geFJiMExDQSZ2bTVVcmtsemFSZz1DV0NXb0BfVSoobHUz
VHdzbXpGQ1hTNmRnbCY2SkZWc0Z5eihnYUJ2CnpYZVU9Tz9eSzBTOTtKYTkjPU8tPztxI2lWRUlm
THhwUTdAakRYPXMwSGtTZklYK0UjN0VxS3ZKclI9RFQ+aDZxJAp6ZE1ISmBIRj53Y0FFcTF3U0FS
YXU8R0ZOY2U2R0VlVCY/S0QxNXlSXjQ3KyhqUShGOWppKTVHPD9UdS10JkwyPykKelhWZ0pndUBu
ZlJEITdGKTVAJEgkU01iaXwlLTM1WFZ7ZE1uaGAjQTteN1QrVV9faX5RenBEMWc+eXpQZShDSnNq
Cno2Y087RU1ldWF2N01VbkVYXlozU3sqfCkhQXNidXVwYm01RyFOTSl6c0Z9e2V7R3JUKVo8VHtU
OE18c1h5JTlmfQp6Q2BIeU9AJSRgQzZFeilpbUdyPHJMdDwkZkg5PkRKX08qeUxqIW9SMHglTVV+
LU5LaD1iZFplTTlWPVU9JmEoNTkKekdINlZpalFNSXtHSmFGVj9qbVNxUzFHVjlheG84M08oI0ot
Z0RhcSt5U1lPR0p1PktoV1c9M35VY2M3RD9BU1ktCnpxQiloRXJ8RypCPj9vdnJUKlIocHRFbUBP
ZTYmNGRYKjNRaXJsb1dRXjY4cFFpNWkybFBAQWUqVSp3c2RjZUI4PQp6YW4mdkpQMjU3VHtvSCox
PSVLRjdFdjBNLT58OVp9SX0zM0xRP08tZzZnXjNHMUg9cnQ+ZXwjJj9sNyhsPyVMaigKenJ3PWhi
ZCRCSnQhOV9OYW5Ge0kleGtoO0kpITN8MiEmYkAjLSZgUik3QyFtKSo3U1ZRRCRCUGFyJS1DbHth
V1YzCnokPmBCOzAmdn5ONkNnZVBQYGYlIztaRVJjVUQtKSV5WmJiMSYtMygqRkxlYmZ7dlokMmB7
S0hIbGNIRm8/WmBgMwp6PVJ3ZFFPOUlRZD9oK3hDaSR5cndfbHVmbFBldlAjOT9wTlhGb0UmRXgp
ZUs2SEAkO053U3FwVmhuKTdwRkZ9VHIKekMpPGBVOSUhcElOdntGeEQjZ1cqaHtEc3RmWlVKKUpI
VCNLV3RlXnVrKCVMN1EmJWdTbkl4NnMrN0FYN0wweW1fCnpQMkZGS2Q7YU4+KCt6QG00KTdJYCsj
QHZ9P1BNa1NnP3xjSntKTUN0QTJITTFyO05AYTw8QTYtVUg2Xm44ITNHIQp6TE0keSlENlI4OXlv
TiRBN1FYTWR4dnlVUXpPUTtYaHFwcENwMkwwLUVJakMoRmgtZUwxQGhoU0F4Q2JRTyRpMkgKellH
JXZzdXQ7NlhlWW9pdG9RKUs7KThoLUNQUTNtYkxGPGsxezs7ezl4QkomeHVqQkF2WG4mb0tfXzJG
YFNBKm97CnpOdH54ViopO3E+IT5iSDBDNGdJeSlQWShgcz1EQTlPZThWYlNxfDd3I2BBI2VJQiNX
YVoqSUZYPTBxfUgoakQlPwp6bT1NSVomMklUWTAhNVo+LTF6WldIWEshLVFpV0E9dFJXWiRiN3t0
d1ExO2M2TCQ2Yzk3VWpzVCUxWSRoQkokKTEKelZuJihee1EqZFRPejN9VjZpbm44NFRpQ0xOYnJG
WjBEOStDRnlPWFU5Zzg/dmI/c1JFKSNfbm4zSkFxc3k9RUNTCnpjZ1k5K2I8Qmw2QXRiSzspMCk/
WXlseVQ+cmg9OHBaZyVvTlNjS0dCZkoyeVZSWmc4SEZqSVpUO18/OWFtTiEqcQp6QU97T3lkN1cy
RGxuVjJjYkkjRiRycXtOdSgoTGo9WTFZMXBtZGl7QXh8fndzVlQ/TWU+ZyElJUJGPURYT3loY0AK
ejZ8THVYbj9MN3I/UmpkU0phbHpnY35aO2hoRWc0WlR7TFRyJXlfdj1SUFFgfVFDfiFuZDsrIyN5
KmtDQjtjYmVCCnpVZWNsTWtLeHVPVlBHdDNoWkR3VFpySClLZmZZeXExcm59ejBJV2ZXQml4XmVY
SlBYIUcxSTNeaE4/TUA9SmQ/bQp6UjM0RjZPKEZyNTBpYEVEa2Y7TVNpTFAtQW5sdlFFNmZrdjct
e01TSWRaOzl5NEFaUTxpSV4qQkBxeGJGZTNzNXkKejUoWVJyMSMrazZMVUh5JihUdz0mbXpkUHEx
bjE4ZSNhTXNVYXxyYW8je2c1MUxNdzQ9Q3dTfTJOdihSemIlIzx1CnpTSVh3dGJVNXBwMFZGfDZk
R21IdmZGZHs7O3d9ZGUxYWljc15LeWFgbXlLNUohJF5zRl4+bU5DYGpKMksrXllzWQp6SDtCUlFZ
JipLTjtOPXRmZDcoVGBVSkpEbzxrZ0xEUUs0Rnlxczs1MllBKXFnRF5mVl5VP1lHUnhIYFBMYy01
OVcKenhmb1hEQ1M9RHBsQjFSMkZ5QVNHc352NlBAWSZSd21WKCtDMW9oaXtlcTs4UjckYmxWeFQ7
aXBoY1NXbFk5N3koCnpRWH5VWmZYdzNIYiZEem9mQ3h4d1Nve2toMF80Y2smQm01KSNhQSlicjcy
NmcoU3tfNF5lZStCSmcqVFIwWEFtaAp6PHd9RTJOOTdlWS1qZjVmNExfZDwqKyZpTih4ZkEkMCZk
OVZhTlI/R3FXPW5iUHVPeFZkPy11YEUpMys9XmN0KjkKenBZOEEtP3MwNyltaWBwe01tT1QoRyY5
XndTPCVLSmFxKCglMkBFX0Z4OUVOaUsqSldNP1lpT0VJd1NWaV9NczY4Cno9TF5XJm5HVD50aT1S
PlcqMzlOPiVfez10UiZPeGUjZipAbDAmb0xIdkhKREd7Y1d4ZEdpX0VOTE00V09gYHY7RAp6YTts
WXg8fTF2QWclX0NVWiY3VVJwPGE+TXl1RU0lJXU4ZUEhKXV5MFJZQXd+PjdZUjNPYDF8JnwyPj5Y
Nitwc04Kek5ycmtDN1ojaC1JemN0MFpaSF95VClMMjs+Wi0kP3d9UjxacWg0OFkoQ0lxKTd6ajx4
NktBZ3pAYnZ7SWBCSilOCnpKSDRqVnBQSj9UUzVie152QjUkMEluNmVERSVoQE1mY1RneU9nZFlG
V1U1b2VVNCFeZXAqK0lEejwlVzdQKnJ4SQp6RXItcV8rUiskd0hPeHt9QlNzeHQ8UFUpUmhOVXFw
PEAkRys7K2hoRmY8Tl47anpTPmVIISUhMlU8YShgN2NyUTcKejFiPmZDMkdQKEhNN1R5WCVrRXRi
IzhfNGhkK1FmeHhVMk43TDM8UXRzWmB2YSVsZXdqQG5kMn5wPGVAVmdJdzsxCnp5JTszM1FGWlF8
VTYlSjVQQjVaP2duTz09PjN8ckV1aW1SJWB3OWF8cVc3PUx7RVhweShqcnUpTVhxNSYyaG0ycwp6
VUF7d2hMJUBjYV81O3ZveGJOKXd5TGk0a0pheDcmcmBsTz9FQ2JQbTZiRTZFZSgtPVN6cEhYQXlq
alA3PVN0X0QKemt+NlZhI3wrUXp3ZldNdVApfmd9OHgyYUM/RnlfV2lKVGZBSG0wU2pZZGlJUnJA
MFZkODdQNzErWl8tR3ZIVClWCnp7Rjs0cHNZenNyMzZNSUFXRWM1VFpIe21GUDNUaGQ7Xno7U3c1
b2AwLXl1OSMmSXR3TV8kKDVgRE9WOHlkP3lkTgp6O2F0Vyg4KXdjMHdhT2F9MkgrTmpgbVkjTnBA
IXxrezZuMGF6R29oISQrb21OOHJFZmxQSSomRUg9d2F1KnR3Sy0KenEtTVplbypaWVlLejE+OD5w
b0xkYVk/U240N0VIa01WPCNZMEg4ZkhlRCQqJGd5TjhTXkR+WWE8R3M9cVhjU2oqCnpeVFpVd0w5
UVVqKjY5QlE/YWgwdkR9UjlZeWFacU9mPEAoQDBwIzZCMG08QEApdlA4UWV6bk8pVnNqdzsoN0Qh
cQp6KnU/TkQyampzJjsjSiRaXnM5QCpicShffTRCdmd+ZXNpc25RMmY7REhgeTlxPio7Vzk7V3kh
TFpySDV1Z3orY3cKelZgfnsxPEVpUjRab1FgI3M1Q0VZOF9DYDkkK09lcihlIUZKOz59PTNSX0JW
eztmdj5QZyFKYitRUXxeYG1sdkdkCnpEdjFXS21rM05GX0Q2JUU8R2JNQXtgI00+ZncyKyRNaF9g
TDslfFJmJkl1eW8tLUM1fVVmMmx9ZmROQlBUYmVTTQp6MGIwZnBqV2sqSz5ONXsySCVtZEBTWWdw
KyVFJVdlPW5qY0c/cjxXa3BqQnROaHB3Qn1VcWpIZ1VFOTlTOXJ+aT4KelczdmxhPWtFVEVzJXY0
aWEhTFpHbEV9WkhGYGVXI08rQTImWU8oaDY9PkNiKjFNeWNuTlJuOHxnIVopOSY0U3opCnoqNTxy
QTJEaTchM31sTHI7S0VVckVhOD9XQ24xUUdrLSRAcWtNQ2oqJiZGdEZ1ayhYdCtFNiZySmRJdFdS
WDgoWQp6U3xkbVY9emBDUChMbChlJT1WV1khQ3RQKkdEJFhBKkBPVTE0QzNrNHdXPUp4K2lGPmdB
ZGQ0KDloMTN0PSkpTXwKejFAbk5qYGRFVUFfNiF8Qj1qNmR8Ql5tODhxNE5VQ2pIen1UYmxwViRW
cTxQP25+NmBSbjxSMHFqPFVfX1oleCt8Cnp1ZVBAQWswPGdQUXd9RWBCZm9yUCNIUUtkcVV4ezZf
dVMwaDlaQUwhSi13RDBgSDlCbVVEXzMjWWFMR3ZRaGtQbAp6XklHO04yRyU9SklFPFMkTUdSalN2
WGEpe3hmaX5fUmZXXz5eTmJad2FjSG8mMGt1JXNMTm5XLTU+c3Uke2Q0PXIKem9IJlMyK01iSUhz
ZikwNWtZdTMqJFdueDdNS21Fd2Z4QUxuWGFRKVpFdFE1YjBUWiNDdnU1cyYyT1pQWGV0b089CnpJ
OWBOOXg5RzR5UyM/MCNwWTNGbEY1YXw+LVZKd1pKXmIyMDchbyVxd1IkYFJiP3pmX2BvcWIpcmp4
aVU9IUxhaQp6QDE2Nz8wKn4yS24xMnQqWFlMTExFbm1eREl1OyQyeipNU0JEUExXdFElQSFPVXMk
MWw9JT05PF9vOXhYODIlbSsKemFod2ZmYVdARzV0YiMwej9sWEJ0U2dkaGI2MVh1MXBfVlZjakUq
blp4ZSlVc3RkM2RDWGU+P2Zpa343QjZ0ZHFoCnp5eGQjMGQoNnVgR2FPMTJWe0tgPCREKn13QEN8
Z2k7JT5iWCokeFlAJmpLK0ZWeHpia0A7KDN0U05BMEhXPyohOwp6NmA2JF9tbVpYUENxKXElQ21N
SWVBYGZOVD5gcDMhNXt8b3V1RlFQOEAqUlRZOEZSVkJma3w1YFheLT05QjxGO0UKejxNQGtKJWUr
U0c4YSFmM1VNUDFqRms0Ynw/ZWR9UVM5ez8xVDdBWThKfDx+WkpOSnkwcWVkZ0olbjN4d15yKG9K
Cnp2UnAjO0JUbzMzcTRTSXkwK0t8K2JaZXxfUT0/bEkkfTw+bnNCZFdfNjJvUHxpMUJWPS13d08h
RVJTME8pZio+Rwp6VjF1VVZPWk11UGpuQVVwNSh9Z34+TEpCd1dqaCljV2xLQV5jS31IVXBzeFV4
MT09JTxZU1VNejc+SXpDKH1EeHsKenheLTAxRyprI1Axamh6cU1jQn41T2drMWkrZCZVPkU0bzRo
cCQwRjdiIWs/JFE0MzM0IUZDfVkjcXZkJFkwST5sCnoxcmwhNXZDNkVQWFkxUkVyPlZLJT49YC1T
QjI0RT13O2FyRlNfUmcmQjRebztRQTs7XzBkU1U+V3w3aWBfeHcyNwp6cXBme2VBRHF5TklDQCtg
MDNxMTl4RkV9JV9PPWtTeWFiRiVFMiZ+c1RYUzkmaTx3VDlMTzgzN0lOVDU1P1lCNXMKelJaPyFt
Tmh1QzAkRFlKaGwzKkd5Rl42R0Ezb149WSlVIXdXZ19HTjB2eXY3ZE59UFlKdGFuelprSHk0ckRH
QUBECnpSak04PDhgfDFlSH0+WjBqOVRlI2l6NUZOWWx9bktFIUV3K2dvMipaK35xQHlKemh7JSkh
KG8/ZlJhVygrME1ISgp6PGk4a1c8dClwI1c5P35qXj1tazkmeSk4KVd5Ulktd3Uoe0tkcitVLTdu
VUolbXNiPkBFUmxvb3FGNX04REgzUGIKek0wKXhMVmRIfURyMT5pUDB4KHU+NGFSRGlpUDZNTnkk
KG9AQ0ZyZkJPUjt2ZkVWbD4xI089ZDhZeDQqVTRLWSFXCnpLVExlZ1R+OSRQOFh6dkdGNTheaSNY
OCVmN1N7ZWVwbSloTElKZSRsQWR5WWNPN1A4S3N4MEBsNWB9QHYhczNKXwp6bXIxPGB3ZzkmYnpT
aF9fQWwjZiYyVjV1ZTxsfklEUWtRY3hTT3MzeHdgOHB+PnY4P1Z7UH5iTnVzWTFfaigkUj0Kemoq
Q3tiTklHZEdZXmtneUlraEtJJUdSOTQ/SlkzXys0MG1GWTVVWSRrXyhXeHpoaUN0RnI8SWhFP3hV
JnJPKn5tCnpaS344RUZQa3NvS1opMmYtRElGcmxUNHcqVjgkPjEpTSM7WnZSbX5EfDIpcGhmYHJG
SW10dlZRVXs9OUZzMSkzIwp6YkdOUU41fFklNm89SUQpWG54dClgNk41P3tsO0NmNn5gZFYzb0xr
ajM8JVBARyYldCVjU0hKdXZ9YXMlNk5nWUEKemJWRV5YPEBGM3E7I3hQcWpZPl5jZXMhVHcreU5U
WnU0NGdQQlFFfm1mcCRRTFR3ZVhgdiVENTVNWVVobT8kcH5HCnpIciZ9aXRaQlhgMiFQd34meG08
JSFKTlY2Unt0dEYwQnRHPyhoJjtIVEozTkREUVEhRGRVfTRIMXJXVik3bDJJdgp6VzAhdygrbGFe
eEI/cW5jOVBiLSMwa0gjP2AydTZHVih+UnhHX2w4Zig7WHgkciVMdTAqcCl0aDlUQDh4VH1qXmYK
enBLfHl1Qm9JMyVoUWwkeFlNe1czdUteYF52I1BveGcqOHdTITUyQlBNXnJDQWdsR0FTMHRJd3VD
TDxramFlekA/Cnp7PTNrZ1o+YDZkI141XkJle1FHV3lJKmAzIUtaUyk0JkN2cTZ0LUZQeGhKNXd8
Rm5xfTlsITJZeDdvWkpiTUQ9Zgp6bFRYJHREWk5gZ1RRJkkwPyo9dnF8NllYMCVGKz92RzcyeUpV
VkAmam8yNEhHVX4lMyp7cCRNPFl+VHotVntRQ3oKeikkUz5kOzlEMjtBRUJkblhQfTA9X2RhfkBn
STB8MXRiOEtDTlkqUTZ4dHZ0fTVnI0hTTns8TUFKb0VLWWI+dUgyCnppZz0mMDhGMHcqK0BobnU5
ckI/eDVMRiZEKytGa2JBRmRWJHhTRVZzaHdFPXd5UnJGdWE5SjFqbGJyaGg+Z0BlaQp6ditgX24t
eXMzbHRaTWJAIyh6OSslZl95VkJodkR4fDhkZ0BKJGN8SGxFN350e1hjc1dZNWhSZjQ8bEd0IUAz
JU4KeipJM3JBVmNpPG10enJHPj8pbk1sSE1xSGNrbyFqaHpwalJMSFQqdHp2MkczUCowNjMzPiN6
TCRwYyZUSHUmIyFHCnp4T3UmR1lnbzYyYiElOUVJZHVJVSopX18ye2NQQCFhP2lSTnsqJT88X3c0
Q1dLRTRnZy1+U2gyIX1gMVFLTiFeaQpmTmUlQ0w4e0F5ITJWKnBzXm5pYVg7V0lwVT4xQGZGVGxm
RDlIJUt9UAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1k
b3VibGUtc2hhZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jNTNhNWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSAzODB4MTk0CisgICAgUmVuZGVyU1ZHVGV4dCB7
dGV4dH0gYXQgKDIwLDI2KSBzaXplIDIxN3gxOCBjb250YWlucyAxIGNodW5rKHMpCisgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMTd4MTgKKyAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCw0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZz
ZXQgMzQgd2lkdGggMjE3LjAwOiAiVGhpcyB0ZXh0IHNob3VsZCBhcHBlYXIgb25seSB0d2ljZSIK
KyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTAwLDEwMCkgc2l6ZSAyNTB4NzAgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbeD0xMDAuMDBdIFt5PTEwMC4wMF0gW3dp
ZHRoPTIwMC4wMF0gW2hlaWdodD0yMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQyZWNiMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCkBAIC0wLDAgKzEsNCBAQAorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJhc2RmIiBzdHlsZT0iLXdl
YmtpdC1zdmctc2hhZG93OiA1MHB4IDUwcHggMHB4IHJlZDsiPgorPHRleHQgeD0iMjAiIHk9IjQw
IiBmaWxsPSJibGFjayI+VGhpcyB0ZXh0IHNob3VsZCBhcHBlYXIgb25seSB0d2ljZTwvdGV4dD4K
KzxyZWN0IHg9IjEwMCIgeT0iMTAwIiBoZWlnaHQ9IjIwIiB3aWR0aD0iMjAwIiBmaWxsPSJibHVl
IiAvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgz
ZDdmMGIuLjY2ODViODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxMS0wOS0wOSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBUZXh0IHJl
bmRlcmVkIHdpdGggYSBzaW1wbGUgKGkuZS4gMHB4IGJsdXIpIHNoYWRvdyBpbnNpZGUgYSB0cmFu
c3BhcmVuY3kgbGF5ZXIgaGFzIGEgZG91YmxlIHNoYWRvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzEwMDcwNTM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEdlbmVyYWxpemUgKGJlZ2lufGVuZClUcmFuc3BhcmVuY3lMYXllciwgd2hpY2ggbm93IGZv
cndhcmQKKyAgICAgICAgdGhyb3VnaCB0byAoYmVnaW58ZW5kKVBsYXRmb3JtVHJhbnNwYXJlbmN5
TGF5ZXIsIHNvIHRoYXQKKyAgICAgICAgaXNJblRyYW5zcGFyZW5jeUxheWVyIGNhbiBleGlzdCBv
biBldmVyeSBwbGF0Zm9ybS4KKworICAgICAgICBNYWtlIHVzZSBvZiBpc0luVHJhbnNwYXJlbmN5
TGF5ZXIgaW4gRm9udE1hYyB0byBkaXNhYmxlCisgICAgICAgICJzaW1wbGUiIHNoYWRvdyBkcmF3
aW5nIHdoZW4gdGhlIHRleHQgaXMgYmVpbmcgcmVuZGVyZWQKKyAgICAgICAgaW50byBhIHRyYW5z
cGFyZW5jeSBsYXllci4KKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRv
dWJsZS1zaGFkb3cuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpHcmFwaGljc0Nv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojp+R3JhcGhpY3NDb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVu
Y3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFy
ZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6aXNJblRyYW5z
cGFyZW5jeUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZv
cm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVu
Y3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3Jt
VHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpz
dXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRl
eHRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxh
dGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpk
cmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3ND
b250ZXh0T3BlblZHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVn
aW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmlzSW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNw
YXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0
c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHRTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRyYXdHRElHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6cmVsZWFzZVdpbmRvd3NDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6Z2V0V2luZG93c0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJl
bmN5TGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRl
eHRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZv
cm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9QbHVn
aW5WaWV3V2luLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgor
CiAyMDExLTA5LTA4ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IGEgV2ViS2l0QW5pbWF0aW9uRXZlbnQgY29uc3RydWN0b3IuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApp
bmRleCBjNWJlZDczLi5kM2IzOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNs
dWRlICJSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKIAorI2luY2x1ZGUgInN0
ZGlvLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTc4LDYgKzgwLDcgQEAgcHJpdmF0ZToKIAogR3JhcGhpY3NDb250ZXh0OjpHcmFwaGljc0NvbnRl
eHQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KQogICAg
IDogbV91cGRhdGluZ0NvbnRyb2xUaW50cyhmYWxzZSkKKyAgICAsIG1fdHJhbnNwYXJlbmN5Q291
bnQoMCkKIHsKICAgICBwbGF0Zm9ybUluaXQocGxhdGZvcm1HcmFwaGljc0NvbnRleHQpOwogfQpA
QCAtODUsNiArODgsNyBAQCBHcmFwaGljc0NvbnRleHQ6OkdyYXBoaWNzQ29udGV4dChQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dCogcGxhdGZvcm1HcmFwaGljc0NvbnRleAogR3JhcGhpY3NDb250ZXh0
Ojp+R3JhcGhpY3NDb250ZXh0KCkKIHsKICAgICBBU1NFUlQobV9zdGFjay5pc0VtcHR5KCkpOwor
ICAgIEFTU0VSVCghbV90cmFuc3BhcmVuY3lDb3VudCk7CiAgICAgcGxhdGZvcm1EZXN0cm95KCk7
CiB9CiAKQEAgLTMzMCw2ICszMzQsMjYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQ6OnNoYWRvd3NJ
Z25vcmVUcmFuc2Zvcm1zKCkgY29uc3QKICAgICByZXR1cm4gbV9zdGF0ZS5zaGFkb3dzSWdub3Jl
VHJhbnNmb3JtczsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5
TGF5ZXIoZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5
ZXIob3BhY2l0eSk7CisgICAgKyttX3RyYW5zcGFyZW5jeUNvdW50OworfQorCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQoreworICAgIGVuZFBsYXRmb3JtVHJh
bnNwYXJlbmN5TGF5ZXIoKTsKKyAgICBBU1NFUlQobV90cmFuc3BhcmVuY3lDb3VudCA+IDApOwor
ICAgIC0tbV90cmFuc3BhcmVuY3lDb3VudDsKK30KKworI2lmICFQTEFURk9STShRVCkKK2Jvb2wg
R3JhcGhpY3NDb250ZXh0Ojppc0luVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdAoreworICAgIHJl
dHVybiAobV90cmFuc3BhcmVuY3lDb3VudCA+IDApICYmIHN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5
ZXJzKCk7Cit9CisjZW5kaWYKKwogYm9vbCBHcmFwaGljc0NvbnRleHQ6OnVwZGF0aW5nQ29udHJv
bFRpbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91cGRhdGluZ0NvbnRyb2xUaW50czsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgK
aW5kZXggMjZhZDAyZS4uODUxNDdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM3MCw2ICszNzAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0
IG9wYWNpdHkpOwogICAgICAgICB2b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CisgICAgICAg
IGJvb2wgaXNJblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3Q7CiAKICAgICAgICAgYm9vbCBoYXNT
aGFkb3coKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRTaGFkb3coY29uc3QgRmxvYXRTaXplJiwg
ZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKTsKQEAgLTQyNSwxMyArNDI2LDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkcmF3Qml0bWFwKFNoYXJlZEJp
dG1hcCosIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCk7
CiAgICAgICAgIHZvaWQgZHJhd0JpdG1hcFBhdHRlcm4oU2hhcmVkQml0bWFwKiwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdEluLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IElu
dFNpemUmIG9yaWdTb3VyY2VTaXplKTsKICAgICAgICAgdm9pZCBkcmF3SWNvbihISUNPTiBpY29u
LCBjb25zdCBJbnRSZWN0JiBkc3RSZWN0LCBVSU5UIGZsYWdzKTsKLSAgICAgICAgYm9vbCBpblRy
YW5zcGFyZW5jeUxheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgSERDIGdl
dFdpbmRvd3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0g
ZmFsc2UsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7IC8vIFRoZSBwYXNzZWQgaW4gcmVj
dCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGJpdG1hcCBmb3IgY29tcG9zaXRpbmcgaW5zaWRlIHRyYW5z
cGFyZW5jeSBsYXllcnMuCiAgICAgICAgIHZvaWQgcmVsZWFzZVdpbmRvd3NDb250ZXh0KEhEQywg
Y29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQgPSBmYWxzZSwgYm9vbCBtYXlD
cmVhdGVCaXRtYXAgPSB0cnVlKTsgICAgLy8gVGhlIHBhc3NlZCBpbiBIREMgc2hvdWxkIGJlIHRo
ZSBvbmUgaGFuZGVkIGJhY2sgYnkgZ2V0V2luZG93c0NvbnRleHQuCiAgICAgICAgIHZvaWQgZHJh
d1JvdW5kQ29ybmVyKGJvb2wgbmV3Q2xpcCwgUkVDVCBjbGlwUmVjdCwgUkVDVCByZWN0V2luLCBI
REMgZGMsIGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIEdyYXBoaWNzQ29udGV4dChIREMsIGJvb2wgaGFzQWxwaGEgPSBmYWxzZSk7IC8vIEZJWE1F
OiBUbyBiZSByZW1vdmVkLgotICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25z
dDsKICAgICAgICAgSERDIGdldFdpbmRvd3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBib29sIHN1
cHBvcnRBbHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8g
VGhlIHBhc3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3Np
dGluZyBpbnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KICAgICAgICAgdm9pZCByZWxlYXNlV2lu
ZG93c0NvbnRleHQoSERDLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9
IHRydWUsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0gdHJ1ZSk7ICAgIC8vIFRoZSBwYXNzZWQgaW4g
SERDIHNob3VsZCBiZSB0aGUgb25lIGhhbmRlZCBiYWNrIGJ5IGdldFdpbmRvd3NDb250ZXh0Lgog
CkBAIC00ODEsMTEgKzQ4MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhp
cyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBhIGJ1ZyB3aGVyZWJ5IGdldHRpbmcgYW4gSERDIGZyb20g
YSBHREkrIGNvbnRleHQKICAgICAgICAgLy8gbG9zZXMgdGhlIHNjYWxlIG9wZXJhdGlvbnMgYXBw
bGllZCB0byB0aGUgY29udGV4dC4KICAgICAgICAgRmxvYXRTaXplIGN1cnJlbnRTY2FsZSgpOyAK
LSAgICAgICAgYm9vbCBpblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCi0gICAgICAgIGJvb2wgaW5UcmFuc3BhcmVu
Y3lMYXllcigpIGNvbnN0OwogICAgICAgICB2b2lkIHB1c2hUcmFuc3BhcmVuY3lMYXllckludGVy
bmFsKGNvbnN0IFFSZWN0ICZyZWN0LCBxcmVhbCBvcGFjaXR5LCBRUGl4bWFwJiBhbHBoYU1hc2sp
OwogICAgICAgICB2b2lkIHRha2VPd25lcnNoaXBPZlBsYXRmb3JtQ29udGV4dCgpOwogI2VuZGlm
CkBAIC01MzgsMTEgKzUzNSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9p
ZCBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcik7CiAKKyAg
ICAgICAgdm9pZCBiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7
CisgICAgICAgIHZvaWQgZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpOworICAgICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycygpOworCiAgICAgICAgIEdyYXBo
aWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZSogbV9kYXRhOwogCiAgICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlIG1fc3RhdGU7CiAgICAgICAgIFZlY3RvcjxHcmFwaGljc0NvbnRleHRTdGF0ZT4g
bV9zdGFjazsKICAgICAgICAgYm9vbCBtX3VwZGF0aW5nQ29udHJvbFRpbnRzOworICAgICAgICB1
bnNpZ25lZCBtX3RyYW5zcGFyZW5jeUNvdW50OwogICAgIH07CiAKICAgICBjbGFzcyBHcmFwaGlj
c0NvbnRleHRTdGF0ZVNhdmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCBh
ODU5Zjg3Li4yMDEyYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0xNzQs
NyArMTc0LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHNoYWRvd0FuZFN0cm9rZUN1cnJlbnRDYWly
b1BhdGgoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQogfQogCiBHcmFwaGljc0NvbnRleHQ6Okdy
YXBoaWNzQ29udGV4dChjYWlyb190KiBjcikKLSAgICA6IG1fdXBkYXRpbmdDb250cm9sVGludHMo
ZmFsc2UpCisgICAgOiBtX3VwZGF0aW5nQ29udHJvbFRpbnRzKGZhbHNlKSwKKyAgICAgIG1fdHJh
bnNwYXJlbmN5Q291bnQoMCkKIHsKICAgICBtX2RhdGEgPSBuZXcgR3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlVG9wbGV2ZWwobmV3IFBsYXRmb3JtQ29udGV4dENhaXJvKGNyKSk7CiB9CkBA
IC04NzksNyArODgwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUGxhdGZvcm1TaGFk
b3coKQogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zaGFkb3dCbHVyKCkuY2xlYXIoKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0
eSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIo
ZmxvYXQgb3BhY2l0eSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CkBAIC04ODcsMTAgKzg4OCw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRy
YW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9y
bUNvbnRleHQoKS0+Y3IoKTsKICAgICBjYWlyb19wdXNoX2dyb3VwKGNyKTsKICAgICBtX2RhdGEt
PmxheWVycy5hcHBlbmQob3BhY2l0eSk7Ci0gICAgbV9kYXRhLT5iZWdpblRyYW5zcGFyZW5jeUxh
eWVyKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpCiB7
CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTAwLDcg
KzkwMCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQog
ICAgIGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UoY3IpOwogICAgIGNhaXJvX3BhaW50X3dpdGhf
YWxwaGEoY3IsIG1fZGF0YS0+bGF5ZXJzLmxhc3QoKSk7CiAgICAgbV9kYXRhLT5sYXllcnMucmVt
b3ZlTGFzdCgpOwotICAgIG1fZGF0YS0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKK30KKworYm9v
bCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ2Fpcm8uaAppbmRleCBkOGZmMjA1Li5iOTBlOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGVDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgKQEAgLTU1LDcgKzU1LDYgQEAg
cHVibGljOgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgICAgICAvLyBOT1RFOiAgVGhlc2UgbWF5
IG5vdGUgYmUgbmVlZGVkOiByZXZpZXcgYW5kIHJlbW92ZSBvbmNlIENhaXJvIGltcGxlbWVudGF0
aW9uIGlzIGNvbXBsZXRlCiAgICAgICAgICwgbV9oZGMoMCkKLSAgICAgICAgLCBtX3RyYW5zcGFy
ZW5jeUNvdW50KDApCiAgICAgICAgICwgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGZhbHNl
KQogI2VuZGlmCiAgICAgewpAQCAtNzcsOCArNzYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFu
c2xhdGUoZmxvYXQsIGZsb2F0KTsKICAgICB2b2lkIGNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mKTsKICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKLSAgICB2
b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNwYXJlbmN5Q291bnQrKzsgfQot
ICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNwYXJlbmN5Q291bnQtLTsg
fQogICAgIHZvaWQgc3luY0NvbnRleHQoY2Fpcm9fdCogY3IpOwogI2Vsc2UKICAgICAvLyBPbiBl
dmVyeXRoaW5nIGVsc2UsIHdlIGRvIG5vdGhpbmcuCkBAIC05Miw4ICs4OSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCwgZmxvYXQpIHt9CiAgICAgdm9pZCBjb25jYXRDVE0o
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJikge30KICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKSB7fQotICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpIHt9Ci0gICAg
dm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpIHt9CiAgICAgdm9pZCBzeW5jQ29udGV4dChjYWly
b190KiBjcikge30KICNlbmRpZgogCkBAIC0xMDUsNyArMTAwLDYgQEAgcHVibGljOgogICAgIEdk
a0V2ZW50RXhwb3NlKiBleHBvc2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgSERDIG1faGRj
OwotICAgIHVuc2lnbmVkIG1fdHJhbnNwYXJlbmN5Q291bnQ7CiAgICAgYm9vbCBtX3Nob3VsZElu
Y2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZTE4
ZmEwYS4uYzRmODQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtOTYzLDcgKzk2Myw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25zdCBJbnRSZWN0
JiByZWN0LCBpbnQgdGhpY2tuZXNzCiAgICAgQ0dDb250ZXh0RU9DbGlwKGNvbnRleHQpOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFj
aXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXll
cihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTk3MywyMSArOTczLDI0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdp
blRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRl
eHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRTZXRBbHBoYShjb250ZXh0LCBv
cGFjaXR5KTsKICAgICBDR0NvbnRleHRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGNvbnRleHQsIDAp
OwotICAgIG1fZGF0YS0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcigpOwogICAgIG1fZGF0YS0+bV91
c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQordm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dEVuZFRyYW5zcGFyZW5jeUxheWVyKGNv
bnRleHQpOwotICAgIG1fZGF0YS0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIAogICAgIHJlc3Rv
cmUoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5
ZXJzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjb25z
dCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmgK
aW5kZXggZjRmYTEyMi4uNWMwMDMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGVDRy5oCkBAIC00NiwxOCArNDYsMTAgQEAgcHVibGljOgogICAgICAgICAsIG1faGRj
KDApCiAgICAgICAgICwgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGZhbHNlKQogI2VuZGlm
Ci0jaWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECi0gICAgICAgICwgbV90cmFu
c3BhcmVuY3lDb3VudCgwKQotI2VuZGlmCiAgICAgICAgICwgbV91c2VyVG9EZXZpY2VUcmFuc2Zv
cm1Lbm93blRvQmVJZGVudGl0eShmYWxzZSkKICAgICAgICAgLCBtX2NvbnRleHRGbGFncyhmbGFn
cykKICAgICB7CiAgICAgfQotICAgIAotICAgIH5HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGUoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3RyYW5zcGFyZW5jeUNvdW50KTsKLSAgICB9
CiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIFRoZXNl
IG1ldGhvZHMgZG8gbm90aGluZyBvbiBNYWMuCkBAIC05MCwyNCArODIsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBtX3Nob3VsZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIAotICAgIHZvaWQg
YmVnaW5UcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JNKFdJTikgfHwgIUFT
U0VSVF9ESVNBQkxFRAotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50Kys7Ci0jZW5kaWYKLSAg
ICB9Ci0gICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JN
KFdJTikgfHwgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBBU1NFUlQobV90cmFuc3BhcmVuY3lD
b3VudCA+IDApOwotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50LS07Ci0jZW5kaWYKLSAgICB9
Ci0KICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NnQ29udGV4dDsKLSNpZiBQTEFURk9S
TShXSU4pIHx8ICFBU1NFUlRfRElTQUJMRUQKLSAgICBpbnQgbV90cmFuc3BhcmVuY3lDb3VudDsK
LSNlbmRpZgogICAgIGJvb2wgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0
eTsKICAgICBHcmFwaGljc0NvbnRleHRDR0ZsYWdzIG1fY29udGV4dEZsYWdzOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29u
dGV4dEhhaWt1LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dy
YXBoaWNzQ29udGV4dEhhaWt1LmNwcAppbmRleCBiM2Y2YzA2Li40ZGFmZTU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRI
YWlrdS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3Jh
cGhpY3NDb250ZXh0SGFpa3UuY3BwCkBAIC0yNDksNyArMjQ5LDcgQEAgRmxvYXRSZWN0IEdyYXBo
aWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAg
ICAgcmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFy
ZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0
Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFy
ZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5j
eUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0yNjUsNiArMjY1LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVu
Y3lMYXllcigpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRl
eHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCmluZGV4IDA2N2Q3MzQuLmY1NGY4ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCkBA
IC0yMjIsNyArMjIyLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGNvbnMKICAgICBDb2xvclNwYWNl
IGZpbGxDb2xvclNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3BhY2UoKTsKICAgICBjb250ZXh0
LT5nZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvciwgc2hhZG93
Q29sb3JTcGFjZSk7CiAKLSAgICBib29sIGhhc1NpbXBsZVNoYWRvdyA9IGNvbnRleHQtPnRleHRE
cmF3aW5nTW9kZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFkb3dDb2xvci5pc1ZhbGlkKCkgJiYg
IXNoYWRvd0JsdXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpICYmICghY29u
dGV4dC0+c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBjb250ZXh0LT5nZXRDVE0oKS5pc0lk
ZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKTsKKyAgICBib29sIGhhc1NpbXBsZVNoYWRv
dyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFkb3dD
b2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd0JsdXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0
bWFwRm9udCgpICYmICghY29udGV4dC0+c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBjb250
ZXh0LT5nZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKSAmJiAhY29u
dGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgaWYgKGhhc1NpbXBsZVNoYWRvdykg
ewogICAgICAgICAvLyBQYWludCBzaW1wbGUgc2hhZG93cyBvdXJzZWx2ZXMgaW5zdGVhZCBvZiBy
ZWx5aW5nIG9uIENHIHNoYWRvd3MsIHRvIGF2b2lkIGxvc2luZyBzdWJwaXhlbCBhbnRpYWxpYXNp
bmcuCiAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRl
eHRPcGVuVkcuY3BwCmluZGV4IDE1OTU2OTIuLjQ0MTdkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0Nv
bnRleHRPcGVuVkcuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmNsZWFyUGxhdGZvcm1TaGFkb3coKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2
b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0
IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFy
ZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgVU5VU0VEX1BBUkFNKG9wYWNpdHkpOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQordm9pZCBHcmFw
aGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogewogICAgIGlmIChw
YWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMwMiw2ICszMDIsMTEgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVu
Y3lMYXllcnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAppbmRleCBhMDg5ZmVmLi40NGNkZDk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRl
eHRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhp
Y3NDb250ZXh0UXQuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgcHVibGljOgogICAgIGJvb2wgYW50
aUFsaWFzaW5nRm9yUmVjdHNBbmRMaW5lczsKIAogICAgIFFTdGFjazxUcmFuc3BhcmVuY3lMYXll
cio+IGxheWVyczsKLSAgICAvLyBDb3VudGluZyByZWFsIGxheWVycy4gUmVxdWlyZWQgYnkgaW5U
cmFuc3BhcmVuY3lMYXllcigpIGNhbGxzCisgICAgLy8gQ291bnRpbmcgcmVhbCBsYXllcnMuIFJl
cXVpcmVkIGJ5IGlzSW5UcmFuc3BhcmVuY3lMYXllcigpIGNhbGxzCiAgICAgLy8gRm9yIGV4YW1w
bGUsIGxheWVycyB3aXRoIHZhbGlkIGFscGhhTWFzayBhcmUgbm90IHJlYWwgbGF5ZXJzCiAgICAg
aW50IGxheWVyQ291bnQ7CiAKQEAgLTc2Myw3ICs3NjMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRv
cExlZgogICAgIHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRoKCksIFFDb2xvcihjb2xvcikp
OwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDo6aW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0
Citib29sIEdyYXBoaWNzQ29udGV4dDo6aXNJblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9kYXRhLT5sYXllckNvdW50OwogfQpAQCAtMTA2MCw3ICsxMDYwLDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnB1c2hUcmFuc3BhcmVuY3lMYXllckludGVybmFsKGNvbnN0
IFFSZWN0ICZyZWN0LCBxcmVhbCBvcGEKICAgICBtX2RhdGEtPmxheWVycy5wdXNoKG5ldyBUcmFu
c3BhcmVuY3lMYXllcihwLCBkZXZpY2VDbGlwLCAxLjAsIGFscGhhTWFzaykpOwogfQogCi12b2lk
IEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9h
dCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5z
cGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgKyttX2RhdGEtPmxheWVyQ291bnQ7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpCiB7CiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTEwOCw2ICsxMTA4LDEx
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAgZGVs
ZXRlIGxheWVyOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVu
Y3lMYXllcnMoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdE
aXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5kZXggODlkNmZhMy4uZDdhYzNh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFw
aGljc0NvbnRleHRTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBwbGF0Zm9ybUNvbnRl
eHQoKS0+cmVzdG9yZSgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3Bh
cmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxh
dGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4MywxMyArMjgzLDE4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNrQ2FudmFzOjprRnVsbENv
bG9yTGF5ZXJfU2F2ZUZsYWcpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5z
cGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFy
ZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5yZXN0b3JlKCk7CiB9CiAKK2Jv
b2wgR3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycygpCit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIC8vIEdyYXBoaWNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0LCBp
bnQgdGhpY2tuZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udENHV2luLmNwcAppbmRleCA5ZDA3M2FjLi5mNTk2Njk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcApAQCAtMTM4LDcg
KzEzOCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdHRElHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBncmFw
aGljc0NvbnRleHQsIGNvbnN0IFNpbXBsZUZvbnREYXRhCiAgICAgICAgIGlmICghZmlsbENvbG9y
LmFscGhhKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZHJhd0ludG9CaXRtYXAg
PSBmaWxsQ29sb3IuYWxwaGEoKSAhPSAyNTUgfHwgZ3JhcGhpY3NDb250ZXh0LT5pblRyYW5zcGFy
ZW5jeUxheWVyKCk7CisgICAgICAgIGRyYXdJbnRvQml0bWFwID0gZmlsbENvbG9yLmFscGhhKCkg
IT0gMjU1IHx8IGdyYXBoaWNzQ29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAg
ICAgIGlmICghZHJhd0ludG9CaXRtYXApIHsKICAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQ7
CiAgICAgICAgICAgICBmbG9hdCBibHVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKaW5kZXgg
Y2IwYzlhNy4uZjNhOTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCkBAIC02Nyw3ICs2
Nyw4IEBAIHN0YXRpYyBDR0NvbnRleHRSZWYgQ0dDb250ZXh0V2l0aEhEQyhIREMgaGRjLCBib29s
IGhhc0FscGhhKQogfQogCiBHcmFwaGljc0NvbnRleHQ6OkdyYXBoaWNzQ29udGV4dChIREMgaGRj
LCBib29sIGhhc0FscGhhKQotICAgIDogbV91cGRhdGluZ0NvbnRyb2xUaW50cyhmYWxzZSkKKyAg
ICA6IG1fdXBkYXRpbmdDb250cm9sVGludHMoZmFsc2UpLAorICAgICAgbV90cmFuc3BhcmVuY3lD
b3VudCgwKQogewogICAgIHBsYXRmb3JtSW5pdChoZGMsIGhhc0FscGhhKTsKIH0KQEAgLTg5LDcg
KzkwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtSW5pdChIREMgaGRjLCBib29s
IGhhc0FscGhhKQogLy8gc3VpdGFibGUgZm9yIGFsbCBjbGllbnRzPwogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMgaGRjLCBjb25zdCBJbnRSZWN0JiBkc3RS
ZWN0LCBib29sIHN1cHBvcnRBbHBoYUJsZW5kLCBib29sIG1heUNyZWF0ZUJpdG1hcCkKIHsKLSAg
ICBib29sIGNyZWF0ZWRCaXRtYXAgPSBtYXlDcmVhdGVCaXRtYXAgJiYgKCFtX2RhdGEtPm1faGRj
IHx8IGluVHJhbnNwYXJlbmN5TGF5ZXIoKSk7CisgICAgYm9vbCBjcmVhdGVkQml0bWFwID0gbWF5
Q3JlYXRlQml0bWFwICYmICghbV9kYXRhLT5tX2hkYyB8fCBpc0luVHJhbnNwYXJlbmN5TGF5ZXIo
KSk7CiAgICAgaWYgKCFjcmVhdGVkQml0bWFwKSB7CiAgICAgICAgIG1fZGF0YS0+cmVzdG9yZSgp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcAppbmRleCA5
ZjdhZWNlLi5lMmRlZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAKQEAgLTY1
LDcgKzY1LDggQEAgc3RhdGljIGNhaXJvX3QqIGNyZWF0ZUNhaXJvQ29udGV4dFdpdGhIREMoSERD
IGhkYywgYm9vbCBoYXNBbHBoYSkKIH0KIAogR3JhcGhpY3NDb250ZXh0OjpHcmFwaGljc0NvbnRl
eHQoSERDIGRjLCBib29sIGhhc0FscGhhKQotICAgIDogbV91cGRhdGluZ0NvbnRyb2xUaW50cyhm
YWxzZSkKKyAgICA6IG1fdXBkYXRpbmdDb250cm9sVGludHMoZmFsc2UpLAorICAgICAgbV90cmFu
c3BhcmVuY3lDb3VudCgwKQogewogICAgIHBsYXRmb3JtSW5pdChkYywgaGFzQWxwaGEpOwogfQpA
QCAtMTIyLDcgKzEyMyw3IEBAIHN0YXRpYyB2b2lkIGRyYXdCaXRtYXBUb0NvbnRleHQoR3JhcGhp
Y3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKiBjb250ZXh0LCBjYWlyb190CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpyZWxlYXNlV2luZG93c0NvbnRleHQoSERDIGhkYywgY29uc3QgSW50UmVjdCYg
ZHN0UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVhdGVCaXRtYXApCiB7
Ci0gICAgYm9vbCBjcmVhdGVkQml0bWFwID0gbWF5Q3JlYXRlQml0bWFwICYmICghbV9kYXRhLT5t
X2hkYyB8fCBpblRyYW5zcGFyZW5jeUxheWVyKCkpOworICAgIGJvb2wgY3JlYXRlZEJpdG1hcCA9
IG1heUNyZWF0ZUJpdG1hcCAmJiAoIW1fZGF0YS0+bV9oZGMgfHwgaXNJblRyYW5zcGFyZW5jeUxh
eWVyKCkpOwogICAgIGlmICghaGRjIHx8ICFjcmVhdGVkQml0bWFwKSB7CiAgICAgICAgIG1fZGF0
YS0+cmVzdG9yZSgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3BwCmluZGV4
IGYwMzQ0ODcuLmUzMTliYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3BwCkBAIC01MSw4ICs1MSw2
IEBAIHN0YXRpYyB2b2lkIGZpbGxXaXRoQ2xlYXJDb2xvcihIQklUTUFQIGJpdG1hcCkKICAgICBt
ZW1zZXQoYm1wSW5mby5ibUJpdHMsIDAsIGJ1ZmZlclNpemUpOwogfQogCi1ib29sIEdyYXBoaWNz
Q29udGV4dDo6aW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+bV90
cmFuc3BhcmVuY3lDb3VudDsgfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U2hvdWxkSW5j
bHVkZUNoaWxkV2luZG93cyhib29sIGluY2x1ZGUpCiB7CiAgICAgbV9kYXRhLT5tX3Nob3VsZElu
Y2x1ZGVDaGlsZFdpbmRvd3MgPSBpbmNsdWRlOwpAQCAtMTAwLDcgKzk4LDcgQEAgUGFzc093blB0
cjxHcmFwaGljc0NvbnRleHQ6OldpbmRvd3NCaXRtYXA+IEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRl
V2luZG93c0JpdG1hcCgKIEhEQyBHcmFwaGljc0NvbnRleHQ6OmdldFdpbmRvd3NDb250ZXh0KGNv
bnN0IEludFJlY3QmIGRzdFJlY3QsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQsIGJvb2wgbWF5Q3Jl
YXRlQml0bWFwKQogewogICAgIC8vIEZJWE1FOiBTaG91bGQgYSBiaXRtYXAgYmUgY3JlYXRlZCBh
bHNvIHdoZW4gYSBzaGFkb3cgaXMgc2V0PwotICAgIGlmIChtYXlDcmVhdGVCaXRtYXAgJiYgKCFt
X2RhdGEtPm1faGRjIHx8IGluVHJhbnNwYXJlbmN5TGF5ZXIoKSkpIHsKKyAgICBpZiAobWF5Q3Jl
YXRlQml0bWFwICYmICghbV9kYXRhLT5tX2hkYyB8fCBpc0luVHJhbnNwYXJlbmN5TGF5ZXIoKSkp
IHsKICAgICAgICAgaWYgKGRzdFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dy
YXBoaWNzQ29udGV4dFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcAppbmRleCA1ZmI0M2Q3Li42Njg1YzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGlj
c0NvbnRleHRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCkBAIC0xMTEzLDE3ICsxMTEzLDIyIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxv
YXQgd2lkdGgpCiAgICAgU2VsZWN0T2JqZWN0KGRjLCBvbGRQZW4pOwogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFj
aXR5KQogewogICAgIG1fZGF0YS0+c2F2ZSgpOwogICAgIG1fZGF0YS0+bV9vcGFjaXR5ICo9IG9w
YWNpdHk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpCiB7
CiAgICAgbV9kYXRhLT5yZXN0b3JlKCk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpzdXBw
b3J0c1RyYW5zcGFyZW5jeUxheWVycygpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQg
R3JhcGhpY3NDb250ZXh0Ojpjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0pCiB7CiAgICAgbV9kYXRhLT5jb25jYXRDVE0odHJhbnNmb3JtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNw
cAppbmRleCBiODIyYmNmLi4wZGJhZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCkBAIC02NjUsMTYg
KzY2NSwyMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvdygpCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsgCiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRy
YW5zcGFyZW5jeUxheWVyKGZsb2F0KSAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRm
b3JtVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQpCiB7IAogICAgIG5vdEltcGxlbWVudGVkKCk7IAog
fQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSAKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsgCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsgCiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1Ry
YW5zcGFyZW5jeUxheWVycygpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIAogeyAKICAgICBub3RJbXBs
ZW1lbnRlZCgpOyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3Jv
bGxiYXJUaGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Nyb2xsYmFy
VGhlbWVXaW4uY3BwCmluZGV4IDk4YzZmYzYuLjdkNTQ0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbGJhclRoZW1lV2luLmNwcApAQCAtMjcxLDcgKzI3MSw3
IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVXaW46OnBhaW50VHJhY2tQaWVjZShHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIFNjcm9sbGJhciogc2NyCiAgICAgfQogCiAjaWYgIU9TKFdJTkNFKQotICAg
IGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aW5UcmFuc3BhcmVuY3lMYXllcigpKQorICAg
IGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCkpCiAg
ICAgICAgIERJQlBpeGVsRGF0YTo6c2V0UkdCQUJpdG1hcEFscGhhKHdpbmRvd3NDb250ZXh0Lmhk
YygpLCByZWN0LCAyNTUpOwogI2VuZGlmCiB9CkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBTY3Jv
bGxiYXJUaGVtZVdpbjo6cGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBTY3Jv
bGxiYXIqIHNjcm9sbGIKICAgICAgICAgOjpEcmF3RnJhbWVDb250cm9sKHdpbmRvd3NDb250ZXh0
LmhkYygpLCAmdGhlbWVSZWN0LCBERkNfU0NST0xMLCBjbGFzc2ljU3RhdGUpOwogCiAjaWYgIU9T
KFdJTkNFKQotICAgIGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aW5UcmFuc3BhcmVuY3lM
YXllcigpKQorICAgIGlmICghYWxwaGFCbGVuZCAmJiAhY29udGV4dC0+aXNJblRyYW5zcGFyZW5j
eUxheWVyKCkpCiAgICAgICAgIERJQlBpeGVsRGF0YTo6c2V0UkdCQUJpdG1hcEFscGhhKHdpbmRv
d3NDb250ZXh0LmhkYygpLCByZWN0LCAyNTUpOwogI2VuZGlmCiB9CkBAIC0zODQsNyArMzg0LDcg
QEAgdm9pZCBTY3JvbGxiYXJUaGVtZVdpbjo6cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYmEKICAgICAgICAgOjpEcmF3RWRnZShoZGMsICZ0aGVt
ZVJlY3QsIEVER0VfUkFJU0VELCBCRl9SRUNUIHwgQkZfTUlERExFKTsKIAogI2lmICFPUyhXSU5D
RSkKLSAgICBpZiAoIWFscGhhQmxlbmQgJiYgIWNvbnRleHQtPmluVHJhbnNwYXJlbmN5TGF5ZXIo
KSkKKyAgICBpZiAoIWFscGhhQmxlbmQgJiYgIWNvbnRleHQtPmlzSW5UcmFuc3BhcmVuY3lMYXll
cigpKQogICAgICAgICBESUJQaXhlbERhdGE6OnNldFJHQkFCaXRtYXBBbHBoYShoZGMsIHJlY3Qs
IDI1NSk7CiAjZW5kaWYKICAgICBjb250ZXh0LT5yZWxlYXNlV2luZG93c0NvbnRleHQoaGRjLCBy
ZWN0LCBhbHBoYUJsZW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2lu
L1BsdWdpblZpZXdXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHAKaW5kZXggMGRlNTk0ZC4uYTBhMmU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKQEAgLTYzNiw3ICs2MzYsNyBAQCB2b2lkIFBsdWdp
blZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICAvLyBJbiB0aGUgUXQgcG9ydCB3ZSBhbHdheXMgZHJhdyBpbiBhbiBvZmZzY3JlZW4g
YnVmZmVyIGFuZCB0aGVyZWZvcmUgbmVlZCB0byBwcmVzZXJ2ZQogICAgIC8vIHRoZSB0cmFuc2xh
dGlvbiBzZXQgaW4gZ2V0V2luZG93c0NvbnRleHQuCiAjaWYgIVBMQVRGT1JNKFFUKSAmJiAhT1Mo
V0lOQ0UpCi0gICAgaWYgKCFjb250ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVyKCkpIHsKKyAgICBp
ZiAoIWNvbnRleHQtPmlzSW5UcmFuc3BhcmVuY3lMYXllcigpKSB7CiAgICAgICAgIFhGT1JNIHRy
YW5zZm9ybTsKICAgICAgICAgR2V0V29ybGRUcmFuc2Zvcm0od2luZG93c0NvbnRleHQuaGRjKCks
ICZ0cmFuc2Zvcm0pOwogICAgICAgICB0cmFuc2Zvcm0uZUR4ID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IDdhN2FmY2MuLmQ1Y2U0MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAtNjc0LDcg
KzY3NCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdDb250cm9sKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgUmVuZGVyT2JqZWN0KiBvLCBIQU5ETEUgdGhlbWUsCiAKIAogI2lmICFPUyhXSU5DRSkKLSAg
ICBpZiAoIWFscGhhQmxlbmQgJiYgIWNvbnRleHQtPmluVHJhbnNwYXJlbmN5TGF5ZXIoKSkKKyAg
ICBpZiAoIWFscGhhQmxlbmQgJiYgIWNvbnRleHQtPmlzSW5UcmFuc3BhcmVuY3lMYXllcigpKQog
ICAgICAgICBESUJQaXhlbERhdGE6OnNldFJHQkFCaXRtYXBBbHBoYSh3aW5kb3dzQ29udGV4dC5o
ZGMoKSwgciwgMjU1KTsKICNlbmRpZgogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>