<?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>200487</bug_id>
          
          <creation_ts>2019-08-06 16:12:49 -0700</creation_ts>
          <short_desc>[iOS] Position image information should respect the image orientation</short_desc>
          <delta_ts>2019-08-08 12:13:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1558975</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-06 16:12:49 -0700</bug_when>
    <thetext>imagePositionInformation() should respect the image orientation when drawing the image in a shared bitmap context. This shared image will be drawn as a position information before showing the image in the preview widow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558976</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-06 16:14:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/53925073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558978</commentid>
    <comment_count>2</comment_count>
      <attachid>375663</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-06 16:24:04 -0700</bug_when>
    <thetext>Created attachment 375663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558980</commentid>
    <comment_count>3</comment_count>
      <attachid>375663</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-06 16:30:53 -0700</bug_when>
    <thetext>Comment on attachment 375663
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2638
&gt; -    graphicsContext-&gt;drawImage(*image, FloatRect(0, 0, bitmapSize.width(), bitmapSize.height()));
&gt; +    graphicsContext-&gt;drawImage(*image, FloatRect(0, 0, bitmapSize.width(), bitmapSize.height()), ImageOrientationDescription(RespectImageOrientation));

Isn&apos;t bitmapSize above also going to need a fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558984</commentid>
    <comment_count>4</comment_count>
      <attachid>375663</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-06 16:36:56 -0700</bug_when>
    <thetext>Comment on attachment 375663
Patch

Can we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559150</commentid>
    <comment_count>5</comment_count>
      <attachid>375663</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-07 10:06:38 -0700</bug_when>
    <thetext>Comment on attachment 375663
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2638
&gt;&gt; +    graphicsContext-&gt;drawImage(*image, FloatRect(0, 0, bitmapSize.width(), bitmapSize.height()), ImageOrientationDescription(RespectImageOrientation));
&gt; 
&gt; Isn&apos;t bitmapSize above also going to need a fix?

You explained that it doesn&apos;t. but you also need to follow the current state of the RenderImage&apos;s respect, not just respect willy-nilly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559179</commentid>
    <comment_count>6</comment_count>
      <attachid>375713</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-07 10:45:59 -0700</bug_when>
    <thetext>Created attachment 375713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559183</commentid>
    <comment_count>7</comment_count>
      <attachid>375663</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-07 11:05:09 -0700</bug_when>
    <thetext>Comment on attachment 375663
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2638
&gt;&gt;&gt; +    graphicsContext-&gt;drawImage(*image, FloatRect(0, 0, bitmapSize.width(), bitmapSize.height()), ImageOrientationDescription(RespectImageOrientation));
&gt;&gt; 
&gt;&gt; Isn&apos;t bitmapSize above also going to need a fix?
&gt; 
&gt; You explained that it doesn&apos;t. but you also need to follow the current state of the RenderImage&apos;s respect, not just respect willy-nilly.

I was not completely right.

As I mentioned in the ChangeLog boundsPositionInformation() returns the correct boundary because it gets it from the RenderImage which is correct. But you are right about bitmapSize. It should respect the image orientation.  I hit a problem when debugging the API test which I added to the new patch. I think it worked in the Mail case because the position image size is animated from the original size of the image. in the message to the size of the hint window regardless of the position image intrinsic size. I confirmed that we were returning the un-oriented size with this patch. See the fix in the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559188</commentid>
    <comment_count>8</comment_count>
      <attachid>375713</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-07 11:10:56 -0700</bug_when>
    <thetext>Comment on attachment 375713
Patch

Is there a reason the test image has blurry edges between the colors? I think a PNG would be better for testing (no compression artifacts).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559201</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-07 11:19:40 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Comment on attachment 375713 [details]
&gt; Patch
&gt; 
&gt; Is there a reason the test image has blurry edges between the colors? I
&gt; think a PNG would be better for testing (no compression artifacts).

I did not made this image. I copied it from LayoutTests/fast/images/resources/exif-orientation-8-llo.jpg.

And the test checks for the four pixels at the four corners. I made sure if I do not pass respectImageOrientation to drawImage() in imagePositionInformation(), the four tests at the end of RequestActivatedElementInfoForRotatedImage() fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559232</commentid>
    <comment_count>10</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-07 12:05:34 -0700</bug_when>
    <thetext>From July 2017, PNG officially supports storing the EXIF metadata, see https://stackoverflow.com/questions/9542359/does-png-contain-exif-data-like-jpg. Some online tools support writing EXIF data to PNG images, like this one https://www.thexifer.net/#exif-general. So I was able to create a PNG and set its EXIF data. The problem is CG supports EXIF data for JPEG, TIFF and ASTC images. Finally I tried to create a lossless JPEG image but I could not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559277</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-07 13:18:28 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #10)
&gt; From July 2017, PNG officially supports storing the EXIF metadata, see
&gt; https://stackoverflow.com/questions/9542359/does-png-contain-exif-data-like-
&gt; jpg. Some online tools support writing EXIF data to PNG images, like this
&gt; one https://www.thexifer.net/#exif-general. So I was able to create a PNG
&gt; and set its EXIF data. The problem is CG supports EXIF data for JPEG, TIFF
&gt; and ASTC images. Finally I tried to create a lossless JPEG image but I could
&gt; not.

No no don&apos;t bother just use the existing one and ignore smfr :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559342</commentid>
    <comment_count>12</comment_count>
      <attachid>375713</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-07 14:59:41 -0700</bug_when>
    <thetext>Comment on attachment 375713
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2630
&gt; +    auto respectImageOrientation = renderImage.shouldRespectImageOrientation();
&gt; +
&gt; +    FloatSize imageSize;
&gt; +    if (is&lt;BitmapImage&gt;(image) &amp;&amp; respectImageOrientation == RespectImageOrientation)
&gt; +        imageSize = downcast&lt;BitmapImage&gt;(*image).sizeRespectingOrientation();
&gt; +    else
&gt; +        imageSize = image-&gt;size();

This code should be factored into a separate function. Could have it be a helper function right here in this file that takes a RenderImage&amp; plus an Image&amp;, or it could even be a RenderImage member function. It’s basically &quot;size respecting orientation policy&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559343</commentid>
    <comment_count>13</comment_count>
      <attachid>375713</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-07 15:00:21 -0700</bug_when>
    <thetext>Comment on attachment 375713
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2630
&gt;&gt; +        imageSize = image-&gt;size();
&gt; 
&gt; This code should be factored into a separate function. Could have it be a helper function right here in this file that takes a RenderImage&amp; plus an Image&amp;, or it could even be a RenderImage member function. It’s basically &quot;size respecting orientation policy&quot;.

I’m really leaning toward a RenderImage member function if we can figure out the right name for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559377</commentid>
    <comment_count>14</comment_count>
      <attachid>375765</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-07 16:42:20 -0700</bug_when>
    <thetext>Created attachment 375765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559379</commentid>
    <comment_count>15</comment_count>
      <attachid>375713</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-07 16:45:56 -0700</bug_when>
    <thetext>Comment on attachment 375713
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2630
&gt;&gt;&gt; +        imageSize = image-&gt;size();
&gt;&gt; 
&gt;&gt; This code should be factored into a separate function. Could have it be a helper function right here in this file that takes a RenderImage&amp; plus an Image&amp;, or it could even be a RenderImage member function. It’s basically &quot;size respecting orientation policy&quot;.
&gt; 
&gt; I’m really leaning toward a RenderImage member function if we can figure out the right name for it.

I re-factored CachedImage::imageSizeForRenderer() instead of repeating the same code here and there. I used the same name to create a new function which returns FloatSize because it does not scale the imageSize. The old function imageSizeForRenderer() will call the new function and will scale it if needed. It still returns LayoutSize since it scales the image size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559622</commentid>
    <comment_count>16</comment_count>
      <attachid>375765</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-08 12:13:18 -0700</bug_when>
    <thetext>Comment on attachment 375765
Patch

Clearing flags on attachment: 375765

Committed r248438: &lt;https://trac.webkit.org/changeset/248438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559623</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-08 12:13:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375663</attachid>
            <date>2019-08-06 16:24:04 -0700</date>
            <delta_ts>2019-08-07 10:45:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200487-20190806162403.patch</filename>
            <type>text/plain</type>
            <size>1787</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc1YjM4MTQ4MTE4ZjE2MzE2
ZDY5ODBjN2I3NGU3NWRjN2QwMzQwZGMuLmFkZjNmZGM3NTE0OWVlZGM2NTkxZWM0ODZlNDJkMWYx
ZWVjODFhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDgtMDYgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBQb3Np
dGlvbiBpbWFnZSBpbmZvcm1hdGlvbiBzaG91bGQgcmVzcGVjdCB0aGUgaW1hZ2Ugb3JpZW50YXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDQ4
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGltYWdl
UG9zaXRpb25JbmZvcm1hdGlvbigpIHNob3VsZCByZXNwZWN0IHRoZSBpbWFnZSBvcmllbnRhdGlv
biB3aGVuCisgICAgICAgIGRyYXdpbmcgYW4gSW1hZ2UgdG8gYSBTaGFyZWFibGVCaXRtYXAgY29u
dGV4dC4KKworICAgICAgICBib3VuZHNQb3NpdGlvbkluZm9ybWF0aW9uKCkgYWxyZWFkeSB0YWtl
cyBjYXJlIG9mIHRoZSBpbWFnZSBvcmllbnRhdGlvbgorICAgICAgICBiZWNhdXNlIGl0IGdldHMg
UmVuZGVySW1hZ2U6OmVuY2xvc2luZ0JvdW5kaW5nQm94KCkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmltYWdlUG9z
aXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTktMDctMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjQ3NDg2Pyk6IEZsYWt5IEFQSSBUZXN0
IFRlc3RXZWJLaXRBUEkuV0tXZWJWaWV3LkxvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCBmMzY3MmNhMGIzMjFjMzI1OTFhZGM1ZmM5ZTlkNDAxOWQ1Nzg1NGY5Li41MjJiOTBlNDk1
MWEzNmE0NzJkZDk3ZDY0NTlhNGU0MmU3NDE3M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjYzNSw3ICsyNjM1LDcg
QEAgc3RhdGljIHZvaWQgaW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludGUKICAgICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBG
bG9hdFJlY3QoMCwgMCwgYml0bWFwU2l6ZS53aWR0aCgpLCBiaXRtYXBTaXplLmhlaWdodCgpKSk7
CisgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBGbG9hdFJlY3QoMCwgMCwg
Yml0bWFwU2l6ZS53aWR0aCgpLCBiaXRtYXBTaXplLmhlaWdodCgpKSwgSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSk7CiAgICAgaW5mby5pbWFnZSA9
IHNoYXJlZEJpdG1hcDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375713</attachid>
            <date>2019-08-07 10:45:59 -0700</date>
            <delta_ts>2019-08-07 16:42:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200487-20190807104558.patch</filename>
            <type>text/plain</type>
            <size>25336</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjMjFhMDI1ZWFhNzZm
Yzc0YWFmMjVmMjFiMGU4NzQyMTY4ZjY5Zi4uYjUyY2IwNjZhNmE3ODhjMTM4YzUzMTA2NzIyYzU5
MmZhMTIzMmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA4LTA3ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
UG9zaXRpb24gaW1hZ2UgaW5mb3JtYXRpb24gc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdlIG9yaWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHBvcnQgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpIGFuZCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbigpCisgICAgICAgIGZyb20gV2ViQ29yZSBzbyB0aGV5IGNhbiBiZSBhY2Nlc3Nl
ZCBmcm9tIFdlYktpdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKwogMjAxOS0wNy0zMSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgT3duZXJzIG9mIE11
bHRpQ2hhbm5lbFJlc2FtcGxlciBzaG91bGQgbWFrZSBzdXJlIHRoYXQgdGhlIG91dHB1dCBidXMg
Z2l2ZW4gdG8gaXQgaGFzIHRoZSBzYW1lIG51bWJlciBvZiBjaGFubmVscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3
NWIzODE0ODExOGYxNjMxNmQ2OTgwYzdiNzRlNzVkYzdkMDM0MGRjLi44NGNkMDVkNTJjMTYwMmQy
OTMxNTMyODk1NDY2MzI1MmYyMGNkYWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5
LTA4LTA3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gUG9zaXRpb24gaW1hZ2UgaW5mb3JtYXRpb24gc2hvdWxkIHJlc3BlY3QgdGhl
IGltYWdlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDA0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBpbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24oKSBzaG91bGQgcmVzcGVjdCB0aGUg
aW1hZ2Ugb3JpZW50YXRpb24gd2hlbgorICAgICAgICBkcmF3aW5nIGFuIEltYWdlIHRvIGEgU2hh
cmVhYmxlQml0bWFwIGNvbnRleHQuCisKKyAgICAgICAgYm91bmRzUG9zaXRpb25JbmZvcm1hdGlv
bigpIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUgaW1hZ2Ugb3JpZW50YXRpb24KKyAgICAgICAg
YmVjYXVzZSBpdCBnZXRzIFJlbmRlckltYWdlOjplbmNsb3NpbmdCb3VuZGluZ0JveCgpLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjppbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24pOgorCiAyMDE5LTA3LTMxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI0NzQ4Nj8p
OiBGbGFreSBBUEkgVGVzdCBUZXN0V2ViS2l0QVBJLldLV2ViVmlldy5Mb2NhbFN0b3JhZ2VQcm9j
ZXNzU3VzcGVuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5oCmluZGV4IGMwNWMxMWQwOTU1NDU1NzRjZmRmYjQ4ZDI2NTAxMGU4N2M5ZmE4NjYuLjM0
MGM5ZDBkOGVlYzNlM2JlYTk3NTUzOTQ3YTM5MWUxMGU5OWMzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtOTYsNyArOTYsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBjYWxjdWxhdGVkIGZyb20g
dGhlIGZpcnN0IEltYWdlRnJhbWUuCiAgICAgV0VCQ09SRV9FWFBPUlQgSW50U2l6ZSBzaXplKCk7
Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAgICAgQ29sb3Igc2lu
Z2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgU3Vic2FtcGxpbmdMZXZlbCBtYXhpbXVtU3Vic2Ft
cGxpbmdMZXZlbCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApp
bmRleCBiZTIyZTQzNWFmZjliZGIxYzVkM2NlOWM0YjA0NDI3NDJlNWVlN2M4Li42MzgyNGU0MGIx
NGVjMzhmYzg2NmFkOTc0ZmI0YjE4OGFiYTE0ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmgKQEAgLTIwNCw3ICsyMDQsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
QmxvY2sqIGNvbnRhaW5pbmdCbG9ja0ZvckZpeGVkUG9zaXRpb24oKSBjb25zdDsKICAgICBSZW5k
ZXJCbG9jayogY29udGFpbmluZ0Jsb2NrRm9yQWJzb2x1dGVQb3NpdGlvbigpIGNvbnN0OwogCi0g
ICAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIHJl
bW92ZUZyb21SZW5kZXJGcmFnbWVudGVkRmxvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXNldEVu
Y2xvc2luZ0ZyYWdtZW50ZWRGbG93QW5kQ2hpbGRJbmZvSW5jbHVkaW5nRGVzY2VuZGFudHMoUmVu
ZGVyRnJhZ21lbnRlZEZsb3cqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZjM2NzJjYTBiMzIxYzMyNTkxYWRjNWZjOWU5
ZDQwMTlkNTc4NTRmOS4uMDNlM2Q5NjY2ZGNhNGFlMjI3YzMzMzhkMTlkNGZjYjQ0ODIzMDg3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9BdXRvZmlsbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdXRvZmlsbEVsZW1l
bnRzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0Nocm9tZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRE9NVGltZXJIb2xkaW5nVGFuay5oPgpAQCAtMjYyMCw5ICsyNjIxLDE4
IEBAIHN0YXRpYyB2b2lkIGltYWdlUG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRlCiAgICAgICAgIHJldHVybjsKIAogICAgIEZsb2F0
U2l6ZSBzY3JlZW5TaXplSW5QaXhlbHMgPSBzY3JlZW5TaXplKCk7CisgICAgYXV0byByZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiA9IHJlbmRlckltYWdlLnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKCk7CisKKyAgICBGbG9hdFNpemUgaW1hZ2VTaXplOworICAgIGlmIChpczxCaXRtYXBJbWFn
ZT4oaW1hZ2UpICYmIHJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKQorICAgICAgICBpbWFnZVNpemUgPSBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdl
KS5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CisgICAgZWxzZQorICAgICAgICBpbWFnZVNp
emUgPSBpbWFnZS0+c2l6ZSgpOworICAgIAogICAgIHNjcmVlblNpemVJblBpeGVscy5zY2FsZShw
YWdlLmNvcmVQYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgIEZsb2F0U2l6ZSBzY2Fs
ZWRTaXplID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KGltYWdlLT5zaXpl
KCkud2lkdGgoKSAvIGltYWdlLT5zaXplKCkuaGVpZ2h0KCksIEZsb2F0UmVjdCgwLCAwLCBzY3Jl
ZW5TaXplSW5QaXhlbHMud2lkdGgoKSwgc2NyZWVuU2l6ZUluUGl4ZWxzLmhlaWdodCgpKSkuc2l6
ZSgpOwotICAgIEZsb2F0U2l6ZSBiaXRtYXBTaXplID0gc2NhbGVkU2l6ZS53aWR0aCgpIDwgaW1h
Z2UtPnNpemUoKS53aWR0aCgpID8gc2NhbGVkU2l6ZSA6IGltYWdlLT5zaXplKCk7CisgICAgRmxv
YXRTaXplIHNjYWxlZFNpemUgPSBsYXJnZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3Qo
aW1hZ2VTaXplLndpZHRoKCkgLyBpbWFnZVNpemUuaGVpZ2h0KCksIEZsb2F0UmVjdCgwLCAwLCBz
Y3JlZW5TaXplSW5QaXhlbHMud2lkdGgoKSwgc2NyZWVuU2l6ZUluUGl4ZWxzLmhlaWdodCgpKSku
c2l6ZSgpOworICAgIEZsb2F0U2l6ZSBiaXRtYXBTaXplID0gc2NhbGVkU2l6ZS53aWR0aCgpIDwg
aW1hZ2VTaXplLndpZHRoKCkgPyBzY2FsZWRTaXplIDogaW1hZ2VTaXplOworICAgIAogICAgIC8v
IEZJWE1FOiBPbmx5IHNlbGVjdCBFeHRlbmRlZENvbG9yIG9uIGltYWdlcyBrbm93biB0byBuZWVk
IHdpZGUgZ2FtdXQKICAgICBTaGFyZWFibGVCaXRtYXA6OkNvbmZpZ3VyYXRpb24gYml0bWFwQ29u
ZmlndXJhdGlvbjsKICAgICBiaXRtYXBDb25maWd1cmF0aW9uLmNvbG9yU3BhY2UuY2dDb2xvclNw
YWNlID0gc2NyZWVuQ29sb3JTcGFjZShwYWdlLmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXco
KSk7CkBAIC0yNjM1LDcgKzI2NDUsNyBAQCBzdGF0aWMgdm9pZCBpbWFnZVBvc2l0aW9uSW5mb3Jt
YXRpb24oV2ViUGFnZSYgcGFnZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50ZQogICAgIGlm
ICghZ3JhcGhpY3NDb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBncmFwaGljc0NvbnRl
eHQtPmRyYXdJbWFnZSgqaW1hZ2UsIEZsb2F0UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCks
IGJpdG1hcFNpemUuaGVpZ2h0KCkpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZSgq
aW1hZ2UsIEZsb2F0UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCksIGJpdG1hcFNpemUuaGVp
Z2h0KCkpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24ocmVzcGVjdEltYWdlT3JpZW50YXRp
b24pKTsKICAgICBpbmZvLmltYWdlID0gc2hhcmVkQml0bWFwOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTkwMDkxZjE4YTQwM2QxZTdj
NDc2MWJmOTlhNzQ5YTQwMzQ1M2M4MS4uNmM4MzIyMjZjNzA1NGY4NDVlOGQ1NGU4NjU1ZjhmMDMw
NWVhN2ZjOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA4LTA3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gUG9zaXRpb24gaW1hZ2UgaW5mb3Jt
YXRpb24gc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA0ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gQVBJIHRlc3QgdG8gdmVy
aWZ5IHRoZSBwb3NpdGlvbiBpbWFnZSBpbmZvcm1hdGlvbiBpcyBkcmF3biByb3RhdGVkCisgICAg
ICAgIGJlY2F1c2Ugb2YgcmVzcGVjdGluZyBpdHMgaW1hZ2Ugb3JpZW50YXRpb24uCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUmVxdWVzdEFj
dGl2YXRlZEVsZW1lbnRJbmZvLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA3LTMxICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI0
NzQ4Nj8pOiBGbGFreSBBUEkgVGVzdCBUZXN0V2ViS2l0QVBJLldLV2ViVmlldy5Mb2NhbFN0b3Jh
Z2VQcm9jZXNzU3VzcGVuZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWQ2MTdmZDRjNmJm
MWZiNmY3ZmQ4ODcyZDFhZmYyMDQ5NjVkNWVkMi4uYjAwYzNlNDM4M2QxMmU3NTZhOTQwZDY2YjYy
NjAwYzc0ZWIzYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5MSw2ICszOTEsOCBA
QAogCQk2QjlBQkUxMjIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI5QUJFMTEyMDg2OTUyRjAw
RDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCAqLzsgfTsKIAkJNkJGRDI5NEMxRDVFNkMxRDAwOEVD
OTY4IC8qIEhhc2hDb3VudGVkU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBMzhEN0U1MUM3NTJENUYwMDRGMTU3RCAvKiBIYXNoQ291bnRlZFNl
dC5jcHAgKi87IH07CiAJCTcyNUMzRUYzMjIwNThBNUIwMDdDMzZGQyAvKiBBZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovOyB9OworCQk3MjgzQTlEMDIyRkE3NTQ5MDBCMjFD
N0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyODNBOUNFMjJGQTZCQkUwMEIyMUM3RCAv
KiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgKi87IH07CisJCTcyODNBOUQyMjJGQjFFMDYw
MEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzQTlEMTIyRkIxRDk3MDBCMjFD
N0QgLyogZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgKi87IH07CiAJCTc1MUIwNUQ2MUY4RUFD
NDEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlFIC8qIERh
dGFiYXNlVHJhY2tlclRlc3QubW0gKi87IH07CiAJCTc1NENFQzgxMUY2NzIyRjIwMEQwMDM5QSAv
KiBBdXRvRmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NENFQzgwMUY2NzIyREMwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJs
ZS5tbSAqLzsgfTsKIAkJNzY3MzQ5OUQxOTMwQzVCQjAwRTQ0REY5IC8qIFN0b3BMb2FkaW5nRHVy
aW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9idW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY3MzQ5OUExOTMwMTgyRTAwRTQ0REY5IC8qIFN0
b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9idW5kbGUuY3BwICovOyB9OwpA
QCAtMTE3OSw2ICsxMTgxLDcgQEAKIAkJCQlGNDA3RkUzOTFGMUQwREZDMDAxN0NGMjUgLyogZW5v
cm1vdXMuc3ZnIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTA3NDkyQjNDMURGOEI4NjYwMDYz
M0RFMSAvKiBlbnVtZXJhdGVNZWRpYURldmljZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlDNUUxQUZGRTE2QjIyMUYxMDA2Q0MxRjIgLyogZXhlY0NvcHkuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQk3MjgzQTlEMjIyRkIxRTA2MDBCMjFDN0QgLyogZXhpZi1vcmllbnRh
dGlvbi04LWxsby5qcGcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlCMkIyMEZEMzU4
NDAwRjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCUY0MUFCOUEzMUVGNDY5NkIwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUJDMkQwMDY0MTJBQTA0Q0UwMEU3MzJBMyAv
KiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMjIwLDYg
KzEyMjMsNyBAQAogCQkJCUY0MUFCOUE1MUVGNDY5NkIwMDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4
dGFyZWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNERFRjZFRDFFOUI0REI2MDA0
OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlGNDVCNjNGQjFGMTk3RjRBMDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCisJCQkJNzI4M0E5RDAyMkZBNzU0OTAwQjIxQzdEIC8qIGltZy13aXRo
LXJvdGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZDRDIw
RjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZDQzIwRjZBMjcwMDAwMENERkMgLyogSW5k
ZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTg2OSw2ICsxODcz
LDggQEAKIAkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZ2lzdHJhYmxlRG9tYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkI5QUJFMTEyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBQYXJzZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzI1QzNFRjIyMjA1ODRCQTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBBZGRpdGlv
bmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3MjgzQTlDRTIyRkE2QkJFMDBCMjFDN0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODNBOUQxMjJGQjFEOTcwMEIyMUM3
RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLmpwZWc7IHBhdGggPSAiZXhpZi1vcmllbnRh
dGlvbi04LWxsby5qcGciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTFCMDVENTFG
OEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERhdGFiYXNlVHJhY2tlclRlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1NENFQzgwMUY2NzIyREMwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJsZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEF1dG9GaWxsQXZhaWxhYmxlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTYwOTE3NzE5MjU5QzU5MDA5RUYwNkUgLyogTWVtb3J5Q2FjaGVBZGRJ
bWFnZVRvQ2FjaGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMxMzYsNiArMzE0Miw3IEBACiAJCQkJNTFDOEUxQTgxRjI3RjQ3MzAwQkY3MzFC
IC8qIEVtcHR5R3JhbmRmYXRoZXJlZFJlc291cmNlTG9hZFN0YXRpc3RpY3MucGxpc3QgKi8sCiAJ
CQkJRjRDMkFCMjExREQ2RDk0MTAwRTA2RDVCIC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQu
aHRtbCAqLywKIAkJCQlGNDA3RkUzODFGMUQwREU2MDAxN0NGMjUgLyogZW5vcm1vdXMuc3ZnICov
LAorCQkJCTcyODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxv
LmpwZyAqLywKIAkJCQlDREEyOUIyQTIwRkQzNDRFMDBGMTVDRUQgLyogRXhpdEZ1bGxzY3JlZW5P
bkVudGVyUGlQLmh0bWwgKi8sCiAJCQkJRjQxQUI5OUIxRUY0NjkyQzAwODNGQTA4IC8qIGZpbGUt
dXBsb2FkaW5nLmh0bWwgKi8sCiAJCQkJQTE3RUFDNTQyMDgzMDU2RTAwODRCNDFCIC8qIGZpbmQu
cGRmICovLApAQCAtMzE2MCw2ICszMTY3LDcgQEAKIAkJCQlGNDFBQjk5MzFFRjQ2OTJDMDA4M0ZB
MDggLyogaW1hZ2UtYW5kLXRleHRhcmVhLmh0bWwgKi8sCiAJCQkJRjRERUY2RUMxRTlCNEQ5NTAw
NDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJRjQ1QjYzRkEx
RjE5N0YzMzAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sICovLAorCQkJCTcyODNBOUNFMjJGQTZC
QkUwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgKi8sCiAJCQkJOTM0RkE1
QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzICovLAogCQkJCTkzNEZBNUM2
MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8sCiAJCQkJOTM0RkE1
QzUyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZh
dGVkRWxlbWVudEluZm8ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCmluZGV4IDZlNzkzZDAyM2M1Nzk1MjY4
YzE5MGUzZTI1YmUzNzBiNWY0NWE5NjkuLjU1NmE1YTk3NmQzYzFhNGRlM2FhZjNhZTJiYWMxNWZk
NjA3MmUyNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQpA
QCAtOTYsNyArOTYsNTEgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5m
b0ZvckltYWdlKQogICAgIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQp
OwogfQotICAgIAorCitURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9y
Um90YXRlZEltYWdlKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Cisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW1nLXdpdGgtcm90YXRlZC1p
bWFnZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAg
W3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgX19ibG9j
ayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX3JlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSg1MCwgNTApIGNvbXBsZXRpb25CbG9jazogXihf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqZWxlbWVudEluZm8pIHsKKworICAgICAgICBhdXRvIGlt
YWdlID0gZWxlbWVudEluZm8uaW1hZ2UuQ0dJbWFnZTsKKyAgICAgICAgYXV0byBkYXRhID0gYWRv
cHRDRihDR0RhdGFQcm92aWRlckNvcHlEYXRhKENHSW1hZ2VHZXREYXRhUHJvdmlkZXIoaW1hZ2Up
KSk7CisgICAgICAgIGF1dG8gYnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25l
ZCo+KENGRGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSkpOworCisgICAgICAgIGF1dG8gcGl4ZWxB
dCA9IFsmXSh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KSB7CisgICAgICAgICAgICB1bnNpZ25lZCBp
ID0geSAqIGVsZW1lbnRJbmZvLmltYWdlLnNpemUud2lkdGggKyB4OworICAgICAgICAgICAgcmV0
dXJuIGJ1ZmZlcltpXTsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCB5ZWxsb3cgPSAweEZGRkZGRjAwOworICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcmVkID0gMHhGRkY1MTkwMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGdy
ZWVuID0gMHhGRjI3ODAwMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGJsdWUgPSAw
eEZGMDAwMEZGOworCisgICAgICAgIEVYUEVDVF9UUlVFKGVsZW1lbnRJbmZvLnR5cGUgPT0gX1dL
QWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSk7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShlbGVt
ZW50SW5mby5pbWFnZVVSTC5sYXN0UGF0aENvbXBvbmVudCwgImV4aWYtb3JpZW50YXRpb24tOC1s
bG8uanBnIik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChlbGVtZW50SW5mby5pbWFnZSk7Cisg
ICAgICAgIEVYUEVDVF9FUShlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Quc2l6ZS53aWR0aCwgNTAp
OworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uYm91bmRpbmdSZWN0LnNpemUuaGVpZ2h0
LCAxMDApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS53aWR0aCwg
NTApOworICAgICAgICBFWFBFQ1RfRVEoZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS5oZWlnaHQsIDEw
MCk7CisKKyAgICAgICAgRVhQRUNUX0VRKHBpeGVsQXQoMCwgMCksIHllbGxvdyk7CisgICAgICAg
IEVYUEVDVF9FUShwaXhlbEF0KGVsZW1lbnRJbmZvLmltYWdlLnNpemUud2lkdGggLSAxLCAwKSwg
cmVkKTsKKyAgICAgICAgRVhQRUNUX0VRKHBpeGVsQXQoMCwgZWxlbWVudEluZm8uaW1hZ2Uuc2l6
ZS5oZWlnaHQgLSAxKSwgZ3JlZW4pOworICAgICAgICBFWFBFQ1RfRVEocGl4ZWxBdChlbGVtZW50
SW5mby5pbWFnZS5zaXplLndpZHRoIC0gMSwgZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS5oZWlnaHQg
LSAxKSwgYmx1ZSk7CisKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH1dOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisKIFRFU1QoV2ViS2l0LCBS
ZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm9Gb3JCbGFuaykKIHsKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzRiODk1ZjkxM2FjYTIyNGJjYjFmM2ZhMTZmMGM5ZDI1OTQ2NTVmNwpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgODYwMgp6Y21kVVVjVVRsbnZ2MUY0bVIoPjtsNUBeTWYqPzV1Qn1ZWWEm
TilhQlAhTDI9UjZzejlmezIxNTB3UCgwMFl5OzIKemgock5KMVFFJlg4NFUwRC1Gd2IrcExAPTh8
R0IrOEdyejVfdUNENT8/dytiOHpiMjBaOGJlKEpUPndFNCgxJDtPCnpKT1BxKXFQI3ItSUNLYnow
MDN8UjRiY0s1ajM1e1RoeXxkM1ZFX3l2KV88QCRCPW07fDBZSXVaSz5ndmRobzVAfAp6bUpHTjVg
JFFCWXteNCpkTSpmM2tfRT0jWkNZaVNsdzZxKmUlfXNPLWpDRWs7MEFPQmw0aHIlXiY7Wn5jNUVm
I3QKenJeI2gmWFV+T3czLUl1VjA0UlcqdnVrTE9oTi1GWFp5RXA5e3BaTHA5bCVUUkp6NCkxJE56
eXdhJnIlTGdeZShVCnpkMGdCPVVIeEhQNCope2JIN0Z6dTBPVUdNZS1SbEwxWV5gQTd9Sk5xM2N+
cFA5YF5pPW0tZXZCRk8xJEJBXkgkWQp6YjFlWVNPejwhaG9TajJGMFUrfGhiZ2w/alBnbzk3OHZx
UCNmU1kjITBDY3U2UigxN3FjN3crdjU5U2ZgX1lkNXwKei03cHElYDhQUzl8QXc4TlVIKn5qP0Nr
anV7JXM0fjY3RT5ySjJjNDhJcmBVK3xDY3ZeemlAY0dlaWQ1eVA2K1RqCnp5Zi0oREBIT1k9dFpm
ODgrMkN0OCRuViNqITh7Tylkd2BWJU94d2ReMFdPRDR7JE4jKTVNNlReISkrbmNwZkpybgp6NDM4
UCk1Zm8tPmBHKzFLPEUzPk4jc3J2dChMR2U+dWJnNVpYVCFaWXFrYCNtQT5ybSRGeUAxQ01gKG5G
NHZiLXMKemZ+STQ8RU4lWXF7QlUjRXt6RkZ+SmlLKWNlKUF3YHl+N09sYGw1JkRvWDBvTlhpbz5Z
Rk44Y1cwKURfOWdvNjxICno5c3RDRkcwKzBxZjl+U0kxMzFHcTVwWjI3QENCYj4+PF9tSGd4ZHRk
bkNsT3ApXzxidHslWXE1eEJGaXVhc2dNRQp6SH5nUElmQV9gKF94Vj8qSCprYVRVJUU1ZyQ2bm9A
Y0E8e21OJm84ZUZVT3Z8VSlvNGpPVStBZHxKNGE0ZlJhSlUKenApXnF7Q3tAJH16PWRLJnU+ZihA
ZXZ+M2cxRXEjaWhVKlJoVGAmenhfV1l+a29fem0wa0JHZCRYZURiZXhPVUhXCnptJXB7WmBXTHRO
S2ZuS3oyRWhDSUxnVF87NEZDdnBrQWx8JDA5dGBUKElNV1JVU1Y3c0BYQj07PDF6P3ZsQFF+Uwp6
ayY+MyR0TiNDez9Dbns8bTBkQ2F3SEhCKjFPSzlWJF5hbUA0RXZQZXppOGdNMDZjKkc4WE5wQ25n
SHh+UkdrMWsKenpVVWVyNjdnRmVZVlUhRF9kO3NlTHp3e3ctfn5lUElMaVFlcGJYVDM0bG8ySnoh
S1BqVzNjfnQhOUV4UUIwKCVqCnoxUyNNUUkwcjYpZHs2fCt6OyRwNylQWTlPMHk7cjJjblYmQ1Zl
ayUmZ0JrRHpFUDxiMzNxQn5ZNUR9dC1tPzJKeAp6OX08T1JBVm8rTyh0KFUyYkkxO0lmO14hQkM+
KUF+bEEkd0RIazEjUUt2bUVrPXN3ZzVKJSRGTUhfIXckNH1GST0KejVsOTM5TDYyWloycH1YOGlV
PHZhNXlCR1RmYmN7RkJWcklJNXQpY1FMQERBWHE1O3V+YyMwVENqM2Q0dlIqP1duCnppRFgxX0Jn
Syk1Tkcrclooak11NzNfLT50KH4mdklRZStMWDhRRig/aTV5MlJBVTlBTDZkajVTQkBYK2tLRlNL
Xgp6aVY4LT5xY1R3V3NPelcoUjUkNytZNjcpeytDPng1WS1teG02NTBUNWl9cGxFcUVwYTA9bkN7
YmJQc3dNSiVqIzwKeiFDKTlNZioxdmlLRUA4P2dFQH1MeitBITlWbWRIYG0/X0xFN0s+JVppZWdv
O0NSa0B8NyZabGE4Rzk0a2p2ZDB6CnpWQXBZIUk4S31sUDhWbTczJjE3ZWEmUnxyWk1ZJWFFTitX
fWhKdjMkaU5iYCFqVXQqTmk9diNPblBQeHFoR0dqKAp6IVZCVjZAUm9RVmQ/RyMlVXhWKyN6c0lq
b1FkMDZ6OS11VSVecmsjUG5NWms+QCk2fCg8cHpQNEFWU2IwOTNfTWsKekc2fEswNCNGRzQzWHc8
QEFnVUFYaURBU3tWaW9acmFnNFo1TU1vdDtXa0JVZGx8V1RNKWolfnd3TWIxdCV9PWRDCnplVCtK
V0kqMGwkXiNKdCg0RiF6PWpUVmhGTyp+QmomMyYzdG5wRn1WTnQkRnJAK1cxR1pqY182PTRpM0Iw
PD0xYAp6Wm5QKDklVjswY1BTR0xoYzxIcTBUPE1iTyVJU0xPWDZQfldnN2dPVEtKO2hrWl96KWVV
dCp3VCp3MHxpNVhEZnkKeig4QDUqaC00SUNHK157JiV3bnUjOUFWdHQkRyVUdnBabVZGZUtxQHJf
Tl82b0dPMDdVR28+QHRHN1UzckdJS0hPCnpGIzlyfVhLck52ej1DMkNWS0hOZ1dWeT1IIT9NNmkm
I0tKbyU5X3F2JE5IOEghNnczSCZVVCF3aklFei1tN1JsSwp6azNFUn1HVyRkSjFyQTBJYnEqaG5p
eVVubl5QRl4/cytgYE83ZGhLR0tYV2x+WD5qPio8I0JhJEVwZkFQPnZNOzUKem12QkdsLXJeRER2
RW9WTXNwYXs9aXwxQTNfMjlrOCtyXylZJEh7a3lGUDUqRz89MyRDemFxYUVlPWRJP3xDKWZICnpm
UT4rXkslPkIlQWR7ZWhWMm9oMztDbXNXa2VYMWlQXnIpPlZUYGIldSY/a0g7VEl3WjVqaGJya3Bo
dGNRR30/eAp6c0pHfTkoTHBoXiphNUtzdX5NOzdhZX15cGMhWVNoXz1FKGJndDBgRE01RHhfQiVo
P2M8YXg8SCR6M1RxREw8KWwKenNkdih9KHVVR1coI19KfVdraDZMV2VRfG8kcjVGQ1dmTnFaV1M5
NGc/c3dtUmJebUtRST1NcX5zZDhPJUpNcyRoCnpBQFZpeV45cDxsUDZ+d3pxbCl5M3Jpdk1nan1E
KkBYZFh5NyZ+aml5Tm5SO1RzWlF5ZXZiZUlaQCh0eT1nTXRVJAp6NTApUkNRc0dmP1J3Kz4jU0xJ
VDVRWX1eO1NMMFQ1Ung0R1RST2VOOVE/RjI7KWV6UzMoWVVGeHM0MWx4cUlwa3EKek8tbzVEUE9D
IzNzamE3LXVLaXF4Uj53KndVdVI2ME43cXhnVDZhbExQVmN5MGhkeF4wTmRMVjRyfiRpeXQzajIp
CnpsQShmT29NRT5TIU58ZlctKVBjVSM1bHliYDRIbGU7aF90TS1YRz5hOUJ7Yk4xZWgzQFRybH15
RHJnI1Bgb0lpaAp6V0A9Vm9fUV9uQEpsNEY9ZzNpTHg7KWNhZk9ISW94JVhkfm5SXmU3JSoze05W
dCpmbHBZX3g1JVpOX2FTWlIyZDgKeitPZ1BxK2NudV4/WEIlQT57cE5JOUp6RjQ9QlY3IWwlcGRL
Zih9cyprQl9rJl5FPWsrTmJUdENjLUlOLVdhRChoCnpZMWBTdnh6dV5wI2xXU3xXeXd7YEhQYGl2
bzRWVVl3fFJGSl9pWG9CNDs3RFdrMnl+aiZrTFVPVVRSKUJVSktxQAp6LXVkM2tLS2VkSUs1TT12
ekxtYVlLTzRWVmYxSk9RfE5Re2swTjtTX0sjc3R1emAtRVZwcD5CVFY1UShvIUFsYFYKekFyK3hl
czYlS3w3KE0pUSpkSHp3ZWt5ei1MTiVmd1ZtO0QyQEBeQzxEaj0jcVN8bUN4ZE54S2s9R3QtOGFv
NktyCnp2RH5xVnVAaTlgYVY3Q2t5aTBzbjAmbHt9Z3FhaDFDJDE7cjZNWWsoQn1wWV5DO2RwYU5w
MyNMZSk3YzBzWilCVgp6cyNCO15MUStPa2x+YXBPcWZVRkRleDQ/cWJ+JFl+LTdXcGU4TDJabFhT
T3EzR29HQjRLQVUlem9hdkdJSldEPzcKej5OKDgwZk84fH4peWBrZkNTfUtEUGhCezRxMlZJZSNx
XjZtRTsoTCRvVT1jdEM+TmdfbzsjanJvWSE9akBBQTNKCnoreGNHayF2JmZKd1N7YmpYQHpUNyte
ITU9Umxpek8jOW5sIVh0VVY2XztyYjFOa2dlWFgtKmxZRVRaZ0Z4cGpIcAp6SE58VUg2KVk4SkR0
ME9aRCN4I3pVKz1DYHNIKGNiYnxiNEFRNXt9QWZBaT9nN3FfJTtIUHdqTWwrLWZUcDFCUWYKemh1
ezh1JExZPlVvbCN4YVVCJGFLXzVBZ1BfdnI0V0gkVjsxNE5IdylqcEkjck9Ac0ZoP3tfc1RIe1d8
OEB1MEdXCnp5UVFGJnAqNT13LSomUSUrI2JgdSs3WjtUKENPSlopI2Nkcj94RjMmU0tWZ2Emd0dx
fDlgKSs+S0ozJXpZayNFagp6c083UUo8TkhxKHBFTiN8Zjc7TTUqTUlNcytfUVZuPCkxZVVDPTR7
Y0lQanUqQFplekVrbElrXk9ZTjd2dU1BIzIKejlYPm9mSUFTJk9kaTNiJV8tblY8YjhyMEtFV2VG
LXlZPXFHZC1WSkM0PlRXZyNATlA2S01IQFc5aFY8KG96Un0+CnpwUnx+S0h8MDlAV2piX3ZkKjxY
UDste1FoJmVeSXRuWW9zRS1UND12azk/bF82NyokakE+fUxTWXZIMk1WKk5NdQp6Wn5hVFFPRWIk
TSVqRUFGRTZnakVLbGNDVlN+WG9BYHwxQzRZYnx9OWRId29eO3pyLTUmRjFWQDxUaUZZWiUyNWkK
emREbSQ3Sj12ZDM0c3M1MHtgREBmN3BveVc7MFckfUJeKlE4IUxoPiYwUHIyWlZ+U3JLYUpUfSZK
VFNJfihoJEsmCnpNZmx4cjJLQCtBaU9zQEFRQEc9Z1ArQWVwaH1LbCopYj16XkJybjxreClrfnpN
JCowYE9jbChfdE93YXIrMjMkVgp6YW05MUw7dVltZj1LbW41QiRPeG9RYEF6ZFVWPWR+VDUzWVpT
aGh9JU8rSDI4K1d8fFptVi1QaHImU2wjJXtBXzYKekY9PEVYeXdPd0Mmb3gqenZOV3pmRy1YMChz
JHU0RG9APiEqYE48a0BCVyRae2NnI05JTmI9RWg0aDY/Yjk0bmx6CnpKNkYwP3h8WD9KYndCNWs7
MkdkYCU9QHM8TDA/Zm5SKTAkVyY0QnM5KkZrOzNqVWtueElibzs1IXk7VEcmNyhBOwp6I2JXanlo
bUo0QWo+ZEp5LSVROW9rKGxWOFdTZ3ZZUXNOWCMzT1ojdV81SkJiWTR6I0ZYRUhMKnAzVGI0JSpz
NU0KemRIIXRubkcyXmNDUzhpbDNDczElYkdkQXRaJjA5SUQwWVNJRCZeSjlxRUUlb09ZV0JEbUJw
NjNUK14/UnNIQ3NsCnp4O3xPOzxpPyVxe0ZfTyl7QSNSZilvdSZscH1WdE5IK1QxQ2ViYz9kaDcq
bWhPKjsxbG57bXheNUJnZkp3STtTNQp6WkNCYF4+NnF7QT84PHU+KDU9PE8rX1QqS3FWTWpib1gw
VXdqeT1gdjdrV25aWjF3czNmJGtTSzJRTGw5end+QCUKekk7PUZwSjR6Zn5kcCtASD14eGAjeTcj
M1kmWDFrPTcmemBRVkteeF8jV2p0ZXt5eXtPUX5QWkJUPFd+PD1SO3A0Cno3Nj1RWVV5QiFnemJQ
IUNtcXdSd2VtfVk1XmgwQm58MG5nJm93Y1IpeHNBIXEkKnJtRlBkaV9DZX5gKCk9M2ZWKQp6ZnN7
bHBxQl95Mzd6P1pmanNaN0koVGxJMyVwZ1AlOWpXeEc2PT5LPWwlIW9jTiV+Xzk3YTlBUmtqeDQh
VWFUYy0KekEyP1Z6JkEya1RgKzR6dmRpPHZaOXQrYHc0TWozVlV4ey17Y3VDJXFNI2BBVFVmdz8/
RlJsPSYqcmkwTlk7bXdhCnpXa085QC1Ddl9sYjM8RUlDdDBeZUAzc0VDIU1ZS35tfkBFYXUlTDtn
c2pRajJ4eDlzfXJNTU5wSExER15Fd0tHJgp6SClqOXJOYn1KV2haRHorSUxiTHVKSXk8SHlBLTx+
Y2U4U3JedVQrfWN5QFJkY3RgcX1gSEp+cntVLWZlMTE8LUsKejFRYGJsZ24qRUBwP0FhMWhJPlk2
TTZ5UXloPFlBZjhJeUdVTmJMU05MZm9oTF9KcTY+cF4zSWhzPiFAM2FWSGx+Cnp5LUkwTEVrMW9K
JXtTZmpqOWRuRDJLbnJDPUEqMmRiSl4hM3ZYNUwpeVUyQTNUPjY7UG8/RCFrYy1jOCR2dypoewp6
UlhCNXs/YGw9aW5jeyNGKF5BPG9oTytoWWNofWt+Ti1MQUR5SHNpMztIZ0dkUHUrWll0R3AoOyo2
cF9UOWxrbkwKei1TcGpfYGZLLTJIbj1ydkh9VCFhKytTIU9lJGR1WilxMF5WelRMT091MlppfDto
fDdCT0FsMnFxSWJQLUB6S29WCno0Xkt2KDQpaX5NKjhoQjlWRFFEdSFJN2NZRlc8ZztLUmgtdksw
NWgmYHB1YGV2K3E4P1UtKzt6dyh7fWtfe0puTwp6I1hvJmBDaSt3NT8zO1BnPWZodmxGVDdiNGBJ
ZnZpXzEkPm8hSyY9ZitJODhEMlYxKF5xcjJYSj0zZkgoZzFDYVQKeks7Y21MKEdlSlYlcmRxSzdm
KyMmWFR2WDFiYHhAbEsyJG8/K3w7YHkzQHN5XzI+ayZEOVkqVllLMT9UPUZSfFFXCno/T197Wi17
aHB7bEh4d2g2VWR2JWNaK3tPVWAyPllTV1UhSkcoK3NSX144Qj02dH1kbGpGKVdzeytue288UUVo
UAp6MlpXVUxtRThefHMxJk4hczh5PzkpeVVGfSpZZWYyKWx0X0soNCl8cyk5KjMzWThZbXVZZk51
RWUoMSpHNUVGVG0KelAxOURoY3lsSDVSZzJxfXpFPUVKQUZjQ2tFTiFXNWB8SnwhbUYhb0orJnQ+
KCEwOWwwPzN8OzQ2WGV3NTlPSDdwCnpXekR0MEV6RGlVZWM3WWQpODkrUFl0Rm1FJElYfF5fayYt
KXpqWGp6eihDLWNBcEt4O0BXWVZBUH1SYHd1PjBYcgp6NXBvZ0JrdV8xaShTcCVhRi01U2FGdmJx
V1d5YjMjQVFLKiokYmZ4P0tXUkMrXjw/QGY+bEVJVVo+Yk1Ycj4yPncKemJFSlBoYjEmbj5TKSl3
RyUhI2E8PU9XSClXPmFVc3pmZzVDOyp3U2xEUTdJVkl4cVVOWmEjaGYxYmt9N1RgfDdPCnphJkBr
I3E0O0VwTUphI2pSQHE0VD9RN3szWmsxfStTK0Q9QjhvRShpb3BJQ3FtUl5sT0V2azA8X1FOfTZi
Oyk8Iwp6Pko5SEhIQXBvSUhnVm8oWU5tZmNZOVkxS3gzUllLY2dTPlZjaUJBKj9hdTB7P0glZ2Rj
K0I8MDtweFApKCp5Zm8KeiVuVEwzQCpHaXBFJUh8VXtoX2d9QCRYWXtwVHlfRW16OGgkPzs1TEY+
bnEhVmQtTU4weDNxVUFWQmBUUHItY3VNCnpWRjBXYGVgOV8lYDI2U3h6PzJBcDxwRj49I1FfbGVA
QnFyX3xMNlJHOzhPJHhEQis5XjMhR0p2MVA5P2IoKz5FNgp6O34pITtDaHg9WDwyOzBmU203d3E1
T1JnJHBnZ0ReanNtfFNzMVZ8YUx4QDFjY3w8K3BIRFUrSmdFVCt9QUBoKSgKeiRTPzMmcT1eYlo2
ezRQP0hxYihGVCRZWSpMNFUqV1ZyKCYpbXxufi1Sc2tEPXlAbWFaNlUyR29EJlhCcG44S2dwCno0
I2dUPzZgejcxcGskJFJyQFRZSjVTJDZFTF5maDlAZ3RRTVJUVldJYnYqU35ucXhGQ05rKmh6SUZ7
KzlHb35BKwp6Y2N4IXZOTT5ZYXl0QmBJLSNTdzx2bXhedU9DX3J2ODxETT5KKVQyfVZ9ckFxRH4/
LT5ocnNpaXd9TE57LSV4OzAKejVFMnwwPkpxTW1jZSpHc2NYMH58OVo0bEFYPXhEfDBhXmIyZl53
cXJHNzhGeShnJWM8Xz8zQU5AfkhAXk5+JFRUCno4KV9XWTRBYVdldUYpQ04tUDlLX3VyXkZMPk40
SXJ0WmtCUUklVGVDYVRZJVBHO0U0JiRAYjFpZEw2YCU8djJtawp6Zmk1NTIlLSNEdSl4R1pmWCEh
UX45fVFSdk4oJkpQZUg8UGYkcjwlM0NOdEl+bzw4QVk7X2MrclEhYzZNWH5ndT0KempNQmAmYkwh
Y28zKTdlRz1WbzJARCR1JlpiKExIXlFRQXtwUTt+UTUpUSN8KV9CQzMhQ0Y/bHJYJmRsTz13P2d7
Cnp2NW1QeXZgZWVveGl7cmUtSUt7QCVtWT9+SWo+a29EJk5TeWRvWlJuZXNfdnpDVXRpNXYrUDM1
ViQ7JiUzZkhSUAp6VElqfip0cF97Znp4RUZaJmlaMkRKUXk4ZGh3fX5sO1leYlNvTSh5eFhGKWxm
TGxefXM1RGc+KlgrbFMjRENpPG8KejJoYVU/MVJYKlNWVCpgYDxOSFU1Ql90RDQ2WH1uPGpPPDBP
cG08UmhzRlFHZkpgWUZiV15nUnRpdkVFUyQ5UTdPCnpGZHduKCpyVjcmPjwxaGQmSjk8RVRjU3s7
TlRsZTtHdlZGd2NQV3ZTbVhzOSkxaV9RPW9UeH1GaG9qelBzeEBrVgp6PlJCM0Jua2tZZVhefVJY
NG9pMkxVWHVQMWdCdSk9Ul93RTQhWlNUJlBHQ2BDKj02bHdPSn0jXztPMUU3P0JVQWkKejQmeVE5
bUVAITRgXmk1cEBKejVwczgrWl9xKTQ8LXRVJnkjTTdkOypSSX5JR25LOVdfSWNqK14xdFl+ezJm
fiVJCnpsJmNSdVFDVXpVc1ZpeD9ZaEtqcSkheCNUKEZAUzhIdSEySlY7cHM7JEFzQjUqc1J8fCp6
JmExZnttR052JVNFUAp6aXdAe3hRSTNud1VNXkVedUl8JkdLMys+Y2lHSzl7KXEmYlU2Q3NJVmVC
dTMoO25CUD91VlBRZnQwaW5DSFlHPSYKelFjSzAwP29CX0xwX1BmdT5OfXIpO3FXRThvSHV6emA1
dU1oUzV9SyFPSCN8c3VXP29eVHpfIW0lKzEzIWJoUkp1CnpSTmFsZHJ7Qm9od0F9byhySzBVcmhr
S1Zud2A0RWxCazF3TSkzP3VfNHp2IzVjXk5WK0p+STJkX15yKSp7RDtQbQp6dGBpaUtIPlVNeCMl
MlROSGF7bVZBaXRoaSsqJTQrbz81WnwoZVlEc0VvVEY0ZFR1QDJrPXJmIUd5ZjwhX2Y3KD0Kektv
SEl9PkI0S0BBMCZlVSY7VytPNTxLQH1rTzc8I05gLVNre20+R0UwZFd4RmhCJTk4TFFFcWBOT2dG
e21tcHVGCnp1JjlIbVB9Qnw3NnErNGc/SEFFUTcrUT00PGBVKSZtSntvTnQ7S0dfUyhKO29YJHBD
WUc+VlVTSWVhRjVvPkdVaAp6ajZnfDxCWVk/TjVJQDJCalhDTi0+TWZjSzUtK0twKWBnQ2V1OS1m
Tkw2cVNPeXN7SVN0ZUtAKXM5MlUqTjc9Z0EKej5vX1ZuaT98Qjd1a2UpZCo2XzlQS05jN2pvRUxe
ZipoSDFaOUt9eWQrPmB0eSVfZF9ibzRmeT1KZkF8NFZ3KTA0CnorNTJGUkR4WEBLYGlpRUQpYCpV
WVpval5YIUhBS29AeWcpPGxObUVkXkQjP0R0NH10OHchOE17anRWKy1JeXlPewp6VCZtcXtKVFJV
UXlufW9Oe1UhcDY7ZGdWdihCPCY5JGdGN0I7fEpweTw1eTMtUEhIPEBtNkNIaENmekRTQ1grNX0K
entydVI0ekRzcXYjaDE/JkJ3ZExwQCspeUtiR3FoT2Q5MkYwK1R4YVVFJW9pTWJeWX0+OGQ5NUZu
dzQ2cFRnVGdMCnpJLT8ke15ubCo+TjVgTVlKXmxLdWJpaShxWUFFZ0goX3ZedFZidCQrQHRkSns7
Sng/PCVkeUNoSXBafUdvcy1YfAp6TXk3e24yMHdNciozQXtwJDk7REVBX3U9UWUpdzlzODFoYTIr
eHBWfDwqQEcoLXspNWZmMChReVImVzF3U2lgVD8KenVSQ21ESGcwWDJaPzExJCo7ZD0wKmgke3kt
UiZZZj9haEN2aGIpfTRnYlBIX2d3dX4+V2IlcHRvVTY8UlZDT3VVCnp5ajRtakAwN3Y4MksqbUxo
dWBvMkVCMlQlYUwmRTNhUyEhc29qa0dre1Aja0IyayM7WDItXkUxOzRmVHxYeWpoTwp6cGlvRk83
NllmPDtKaDNiTUBmT2o7Yyp4WTEoNTx6Tmw3M091b09mcEI3cThxbHpUJDwrOUgzb01Oe0gxSTU/
QmAKei16Pyt+SypHVChSNXY4VjB9dnojTnJLNFRmRF5WQjRXfmlqQD5ndkxma2RIVWpiSkBzaEk9
JXlgYlo9S1J1K3dkCnpeUm49PGhrKmElQkI1IXlyOE97Z1gza2lpVjB4THZeQ2RXNSV7IWU4PTdV
Um92TXdQPjZuTXNjT3cyNiYwKWolcQp6Qkt6ZyE2JS1GQlg9JkB8PmdnTDhUM0F8SCtyU0I2UzJ1
U0xQY0x0dSg2STFgJGYpUjs8ZGRnVFFjdEkpWEo1RUAKekRKTTdZYSgtITlgTCZBNT5zMkBFPyQr
T0hYbCVPUS0xVkAjcj8+Q1g8MG5IZVVrIzZwekpCdnxWc2RKRj1Ge3hsCnp7TzlIR0Q/ZTYkdUJ+
cnU/JTQoSjwtZzdQJEZsIztFKXJ9UDAtZ2dEY0YhJmQ1ZVoqTjUoPj5OamlKPnIhI1c0awp6QHlJ
ME49cnp4bS0wN3M/bHtIXnRhMHdhMkd4RmA5Ozl1U3w/VSFaJGNaTWJYazFZR2d1eiVWMDc3KlpB
N2VQWGoKemZFcmtATmYpWX0zMCpHfkRvcURNSEZgR2RHWlU+Oyt3WGk3bHVsZ3U+ZHw4eVdBKG1A
Wn5YaVdaQEdAY2BheG1BCno8UmZrU21MME0oPlBIXkQ7TEZqc3dtI01KbmxFd2kpeEBRMjljdlYp
blMtMkVSSnhSdmgoLTM5Jm83Tz5EVH0oVgp6LSZCI2F6OXA8SFMkKVJubkBgX2o8MkdxISpLQmE8
K3dQPn1YNlM/M1loT05QdEBGLXFtejdPPy0wNSFyRiZwVjwKekBHejMwS2xAdENva3ZTKnhneW1G
U08xY1IrWTFxT2cmZkArdEduKk9adilkcDlrKzB8JGVAeGhBdWg7cWBAKTtSCnpvdjNTTVAlJndz
THZRb0EkZTcrdDJrYyE1YEA/TFdlcTZkT19pZEItbkdEdk0xPDhPeFooRUZiZF5iNiFlSFVYdQp6
MjBiPUE+SXBzYWluK1V+dU1AV1NuZUd6Rnp8NUJuMkloQTlIJmZDI2pfKSNKVEZGNDgpc1lPNGR9
Sl9yb2VXTVQKeikrVzNOdj59NnokNzxfMClGdW5xakwxTjFMMlp9dklfR0VjZ3BEMX1gJlM8PEtm
JkZTSmMhR2dYRVBpVlltQj1BCnooM2JfcGY8R0paVTdhM0lOTHpkUFZjVmM/WHtWdClwVERpNyhq
PTFnUihIPFhAR3hkZVBJKCMxe2EmKG42YGtVcAp6R31EKms7eSpod0pSQDhjJTA2VWg2bmk+PEtJ
MGk8dzZjKldKSiFUN3FQXjs5Ukx4dFZTaEhaJllYdEZUI2w+PTIKejVqSXlZWClkPGxXNndFJWhB
cEd7alM1dFgtJjxiVGRBfUFnVSl9MEk4fkFGSUFXM1clTnhFe1JOeDAoYyRmNWUtCnp2NClrIzNu
b15aJiRqcXVCYkY7VyQ+MkBwXy15Kk5NJExMclBaMihoVTgwTFU9MVhUQVByOyR+ckwhO0JFNnNa
PQp6IT49TGtkflZuYHNkJWVFS3JAWi1qSyh+SzM8QWlZbFA2WlcrJCZPekxvbF9RV3dFbTY9KGdS
bU81dz1jK19acEkKelk2OzNDUSo2ZExGWi1YO3B8YmhDOElYJEsqWH13OHVVfXFMd3JnbyNHRCEo
UFVodHF3JlZmZndwbSs2fVlwfm4tCnpWQEFRV0lzJWJBPF40bX4lQEdlNm5PeVVLNEIlc1pteH5l
KWRlXlJCPS04RTVSeXtpQCQ8UHd3OCo/cVFUQlVYSQp6X0Z4alBmPDsrcztkS3hFKFpUQDVGT0pp
QzhFclcwNHYhNW9BVXRHWDhtPiZjYj1WQH5zSD1pdU9Man0zdVk7alkKemRWMmlLe0wwRiErfDdj
Q1otWWpQMTV1dHJ7UyRkWjhLUn5TaHN9YTY0UDdHRSpTKllGNXw9MTI1T20qUkhnZz12CnotSWg9
N21FMDhOcSRQdTskfkgyWHMhdz82NzMpRjxyRldKayRwQy0rK3BlPFhiSGA9ej0lTzkkT1cwVDM7
PmNqegp6UChCY0w2KHpAWSFvWnctYGZoQ2RNN15xWCFsM1BYRjY+cStZaD1KKXcjJXdEd1FxK1pE
PWxIJjskeTx7VGVWNjEKejZ9MygzTi17WHtOTnYqV1pvKCQ+NUc+OWtMOElQZ1dyaHJoQ0NnYGEp
QkMjSHd9cnA4dVlhWGE9KVUoVTtSbU0pCno4OT9VfXkzMEpzO0Q7PXtJOE85JHVhfkJhPyFGb0w5
YDxYdyElS2NzVk8odUhgPmcyaHlNKCNmbnpzQVlDJj1LdAp6O3JgayFlPTtiJCtQcH55YDIrMGoo
PSkrKEpFPkRAdDJgeFNwZ3UtT2MtJWZRdSFaUEttYGBfeCpWfk5WeW9MX0YKekRGazJHTWAzMDwz
Qnd2PkFVRS1zR31zUTIhU3FGTSREaS1XS3U7ejdobmVHdy1CamF0VlR9K08rfWAld0V3QHlnCmVX
OWBoXlB9bnt8MjJRcG5KSlFDbWUlc2V+ZyNNflllKUF1P2ptQlI5CgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L2ltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0Yjlm
MDVlYmEwMzBkMmU0M2U3MTdjMTFkYjJlNDU0ZjliY2ExN2YKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2ltZy13aXRoLXJvdGF0ZWQtaW1h
Z2UuaHRtbApAQCAtMCwwICsxLDMgQEAKKzxib2R5PgorICAgIDxpbWcgc3JjPSJleGlmLW9yaWVu
dGF0aW9uLTgtbGxvLmpwZyI+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375765</attachid>
            <date>2019-08-07 16:42:20 -0700</date>
            <delta_ts>2019-08-08 12:13:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200487-20190807164220.patch</filename>
            <type>text/plain</type>
            <size>27600</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjMjFhMDI1ZWFhNzZm
Yzc0YWFmMjVmMjFiMGU4NzQyMTY4ZjY5Zi4uZTU4ODE0NGU0NDNmNTIzMjJjNjIzZDYwMGY0MTI4
MDQ2YzVlMTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA4LTA3ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
UG9zaXRpb24gaW1hZ2UgaW5mb3JtYXRpb24gc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdlIG9yaWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZS1mYWN0b3IgQ2FjaGVkSW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKCkgaW50byBhbm90aGVy
IG92ZXJyaWRpbmcKKyAgICAgICAgZnVuY3Rpb24gd2hpY2ggZG9lcyBub3Qgc2NhbGUgdGhlIGlt
YWdlU2l6ZS4gVGhlcmVmb3JlIHRoZSBuZXcgZnVuY3Rpb24KKyAgICAgICAgcmV0dXJucyBGbG9h
dFNpemUgd2hpbGUgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIHJldHVybnMgTGF5b3V0U2l6ZS4KKwor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVt
ZW50Lmg6CisKIDIwMTktMDctMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIE93bmVycyBvZiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIgc2hvdWxkIG1ha2Ugc3Vy
ZSB0aGF0IHRoZSBvdXRwdXQgYnVzIGdpdmVuIHRvIGl0IGhhcyB0aGUgc2FtZSBudW1iZXIgb2Yg
Y2hhbm5lbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNzViMzgxNDgxMThmMTYzMTZkNjk4MGM3Yjc0ZTc1ZGM3ZDAz
NDBkYy4uODRjZDA1ZDUyYzE2MDJkMjkzMTUzMjg5NTQ2NjMyNTJmMjBjZGFiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxOS0wOC0wNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFBvc2l0aW9uIGltYWdlIGluZm9ybWF0
aW9uIHNob3VsZCByZXNwZWN0IHRoZSBpbWFnZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNDg3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9u
KCkgc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdlIG9yaWVudGF0aW9uIHdoZW4KKyAgICAgICAgZHJh
d2luZyBhbiBJbWFnZSB0byBhIFNoYXJlYWJsZUJpdG1hcCBjb250ZXh0LgorCisgICAgICAgIGJv
dW5kc1Bvc2l0aW9uSW5mb3JtYXRpb24oKSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgdGhlIGltYWdl
IG9yaWVudGF0aW9uCisgICAgICAgIGJlY2F1c2UgaXQgZ2V0cyBSZW5kZXJJbWFnZTo6ZW5jbG9z
aW5nQm91bmRpbmdCb3goKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6aW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKToK
KwogMjAxOS0wNy0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIyNDc0ODY/KTogRmxha3kgQVBJIFRlc3QgVGVzdFdlYktpdEFQSS5XS1dl
YlZpZXcuTG9jYWxTdG9yYWdlUHJvY2Vzc1N1c3BlbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCBhN2MxMDAwMWJjNDE4MGViZTZiNGZjNmVkY2Yz
Mjc5OGFhOTkyMDUxLi5mMzEyOTA3MjhmNjk5MGQ4MDA4YmEyNjQ0MDIxY2IxZDg4NWI5NDU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTI3NSwy
MyArMjc1LDI2IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OnNldENvbnRhaW5lckNvbnRleHRGb3JDbGll
bnQoY29uc3QgQ2FjaGVkSW1hZ2VDbGllbnQmIGNsaWVudCwKICAgICBtX3N2Z0ltYWdlQ2FjaGUt
PnNldENvbnRhaW5lckNvbnRleHRGb3JDbGllbnQoY2xpZW50LCBjb250YWluZXJTaXplLCBjb250
YWluZXJab29tLCBpbWFnZVVSTCk7CiB9CiAKLUxheW91dFNpemUgQ2FjaGVkSW1hZ2U6OmltYWdl
U2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBmbG9hdCBtdWx0
aXBsaWVyLCBTaXplVHlwZSBzaXplVHlwZSkKK0Zsb2F0U2l6ZSBDYWNoZWRJbWFnZTo6aW1hZ2VT
aXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFNpemVUeXBlIHNp
emVUeXBlKSBjb25zdAogewogICAgIGlmICghbV9pbWFnZSkKLSAgICAgICAgcmV0dXJuIExheW91
dFNpemUoKTsKLQotICAgIExheW91dFNpemUgaW1hZ2VTaXplOworICAgICAgICByZXR1cm4geyB9
OwogCiAgICAgaWYgKGlzPEJpdG1hcEltYWdlPigqbV9pbWFnZSkgJiYgcmVuZGVyZXIgJiYgcmVu
ZGVyZXItPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24pCi0gICAgICAgIGltYWdlU2l6ZSA9IExheW91dFNpemUoZG93bmNhc3Q8Qml0bWFw
SW1hZ2U+KCptX2ltYWdlKS5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkpOwotICAgIGVsc2Ug
aWYgKGlzPFNWR0ltYWdlPigqbV9pbWFnZSkgJiYgc2l6ZVR5cGUgPT0gVXNlZFNpemUpCi0gICAg
ICAgIGltYWdlU2l6ZSA9IExheW91dFNpemUobV9zdmdJbWFnZUNhY2hlLT5pbWFnZVNpemVGb3JS
ZW5kZXJlcihyZW5kZXJlcikpOwotICAgIGVsc2UKLSAgICAgICAgaW1hZ2VTaXplID0gTGF5b3V0
U2l6ZShtX2ltYWdlLT5zaXplKCkpOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8Qml0bWFwSW1h
Z2U+KCptX2ltYWdlKS5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAKLSAgICBpZiAobXVs
dGlwbGllciA9PSAxLjBmKQorICAgIGlmIChpczxTVkdJbWFnZT4oKm1faW1hZ2UpICYmIHNpemVU
eXBlID09IFVzZWRTaXplKQorICAgICAgICByZXR1cm4gbV9zdmdJbWFnZUNhY2hlLT5pbWFnZVNp
emVGb3JSZW5kZXJlcihyZW5kZXJlcik7CisKKyAgICByZXR1cm4gbV9pbWFnZS0+c2l6ZSgpOwor
fQorCitMYXlvdXRTaXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBS
ZW5kZXJFbGVtZW50KiByZW5kZXJlciwgZmxvYXQgbXVsdGlwbGllciwgU2l6ZVR5cGUgc2l6ZVR5
cGUpIGNvbnN0Cit7CisgICAgTGF5b3V0U2l6ZSBpbWFnZVNpemUgPSBMYXlvdXRTaXplKGltYWdl
U2l6ZUZvclJlbmRlcmVyKHJlbmRlcmVyLCBzaXplVHlwZSkpOworICAgIGlmIChpbWFnZVNpemUu
aXNFbXB0eSgpIHx8IG11bHRpcGxpZXIgPT0gMS4wZikKICAgICAgICAgcmV0dXJuIGltYWdlU2l6
ZTsKLSAgICAgICAgCisKICAgICAvLyBEb24ndCBsZXQgaW1hZ2VzIHRoYXQgaGF2ZSBhIHdpZHRo
L2hlaWdodCA+PSAxIHNocmluayBiZWxvdyAxIHdoZW4gem9vbWVkLgogICAgIGZsb2F0IHdpZHRo
U2NhbGUgPSBtX2ltYWdlLT5oYXNSZWxhdGl2ZVdpZHRoKCkgPyAxLjBmIDogbXVsdGlwbGllcjsK
ICAgICBmbG9hdCBoZWlnaHRTY2FsZSA9IG1faW1hZ2UtPmhhc1JlbGF0aXZlSGVpZ2h0KCkgPyAx
LjBmIDogbXVsdGlwbGllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmgKaW5kZXggZDNiODdmYzI0YmRiZWIzYjU2OTgzMmZmZmFjYjMyMWNlODRkZjY1Zi4uNGFiMzU1
MzhjOGJhMDhmOTFmZDQ1OTVhYzAwNTdiN2Q4YzRiMTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTc1LDggKzc1LDkgQEAgcHVibGljOgogICAgICAg
ICBVc2VkU2l6ZSwKICAgICAgICAgSW50cmluc2ljU2l6ZQogICAgIH07CisgICAgV0VCQ09SRV9F
WFBPUlQgRmxvYXRTaXplIGltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyLCBTaXplVHlwZSA9IFVzZWRTaXplKSBjb25zdDsKICAgICAvLyBUaGlzIG1ldGhv
ZCB0YWtlcyBhIHpvb20gbXVsdGlwbGllciB0aGF0IGNhbiBiZSB1c2VkIHRvIGluY3JlYXNlIHRo
ZSBuYXR1cmFsIHNpemUgb2YgdGhlIGltYWdlIGJ5IHRoZSB6b29tLgotICAgIExheW91dFNpemUg
aW1hZ2VTaXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCosIGZsb2F0IG11bHRpcGxp
ZXIsIFNpemVUeXBlID0gVXNlZFNpemUpOyAvLyByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBjb21w
bGV0ZSBpbWFnZS4KKyAgICBMYXlvdXRTaXplIGltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJl
bmRlckVsZW1lbnQqLCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSA9IFVzZWRTaXplKSBjb25z
dDsgLy8gcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgY29tcGxldGUgaW1hZ2UuCiAgICAgdm9pZCBj
b21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgm
IGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBib29s
IGlzTWFudWFsbHlDYWNoZWQoKSBjb25zdCB7IHJldHVybiBtX2lzTWFudWFsbHlDYWNoZWQ7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IGJlMjJlNDM1YWZm
OWJkYjFjNWQzY2U5YzRiMDQ0Mjc0MmU1ZWU3YzguLjYzODI0ZTQwYjE0ZWMzOGZjODY2YWQ5NzRm
YjRiMTg4YWJhMTQ4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
aApAQCAtMjA0LDcgKzIwNCw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogY29udGFpbmlu
Z0Jsb2NrRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0OwogICAgIFJlbmRlckJsb2NrKiBjb250YWlu
aW5nQmxvY2tGb3JBYnNvbHV0ZVBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24oKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlRnJvbVJlbmRlckZy
YWdtZW50ZWRGbG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0RW5jbG9zaW5nRnJhZ21lbnRl
ZEZsb3dBbmRDaGlsZEluZm9JbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJGcmFnbWVudGVkRmxv
dyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCBmMzY3MmNhMGIzMjFjMzI1OTFhZGM1ZmM5ZTlkNDAxOWQ1Nzg1NGY5Li4z
MGMwY2JlMzAyMWJjMDM5ZjBmMmE5NjY1N2ZkNGM1MGU1MmMzMzViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjYyMCw5
ICsyNjIwLDEyIEBAIHN0YXRpYyB2b2lkIGltYWdlUG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdl
JiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRlCiAgICAgICAgIHJldHVybjsKIAog
ICAgIEZsb2F0U2l6ZSBzY3JlZW5TaXplSW5QaXhlbHMgPSBzY3JlZW5TaXplKCk7CisgICAgRmxv
YXRTaXplIGltYWdlU2l6ZSA9IHJlbmRlckltYWdlLmNhY2hlZEltYWdlKCktPmltYWdlU2l6ZUZv
clJlbmRlcmVyKCZyZW5kZXJJbWFnZSk7CisgICAgCiAgICAgc2NyZWVuU2l6ZUluUGl4ZWxzLnNj
YWxlKHBhZ2UuY29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgRmxvYXRTaXpl
IHNjYWxlZFNpemUgPSBsYXJnZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3QoaW1hZ2Ut
PnNpemUoKS53aWR0aCgpIC8gaW1hZ2UtPnNpemUoKS5oZWlnaHQoKSwgRmxvYXRSZWN0KDAsIDAs
IHNjcmVlblNpemVJblBpeGVscy53aWR0aCgpLCBzY3JlZW5TaXplSW5QaXhlbHMuaGVpZ2h0KCkp
KS5zaXplKCk7Ci0gICAgRmxvYXRTaXplIGJpdG1hcFNpemUgPSBzY2FsZWRTaXplLndpZHRoKCkg
PCBpbWFnZS0+c2l6ZSgpLndpZHRoKCkgPyBzY2FsZWRTaXplIDogaW1hZ2UtPnNpemUoKTsKKyAg
ICBGbG9hdFNpemUgc2NhbGVkU2l6ZSA9IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRl
UmVjdChpbWFnZVNpemUud2lkdGgoKSAvIGltYWdlU2l6ZS5oZWlnaHQoKSwgRmxvYXRSZWN0KDAs
IDAsIHNjcmVlblNpemVJblBpeGVscy53aWR0aCgpLCBzY3JlZW5TaXplSW5QaXhlbHMuaGVpZ2h0
KCkpKS5zaXplKCk7CisgICAgRmxvYXRTaXplIGJpdG1hcFNpemUgPSBzY2FsZWRTaXplLndpZHRo
KCkgPCBpbWFnZVNpemUud2lkdGgoKSA/IHNjYWxlZFNpemUgOiBpbWFnZVNpemU7CisgICAgCiAg
ICAgLy8gRklYTUU6IE9ubHkgc2VsZWN0IEV4dGVuZGVkQ29sb3Igb24gaW1hZ2VzIGtub3duIHRv
IG5lZWQgd2lkZSBnYW11dAogICAgIFNoYXJlYWJsZUJpdG1hcDo6Q29uZmlndXJhdGlvbiBiaXRt
YXBDb25maWd1cmF0aW9uOwogICAgIGJpdG1hcENvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5jZ0Nv
bG9yU3BhY2UgPSBzY3JlZW5Db2xvclNwYWNlKHBhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpKTsKQEAgLTI2MzUsNyArMjYzOCw4IEBAIHN0YXRpYyB2b2lkIGltYWdlUG9zaXRpb25J
bmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRlCiAg
ICAgaWYgKCFncmFwaGljc0NvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGdyYXBoaWNz
Q29udGV4dC0+ZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRSZWN0KDAsIDAsIGJpdG1hcFNpemUud2lk
dGgoKSwgYml0bWFwU2l6ZS5oZWlnaHQoKSkpOworICAgIGF1dG8gc2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24gPSByZW5kZXJJbWFnZS5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigp
OworICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRSZWN0KDAsIDAs
IGJpdG1hcFNpemUud2lkdGgoKSwgYml0bWFwU2l6ZS5oZWlnaHQoKSksIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikpOwogICAgIGluZm8u
aW1hZ2UgPSBzaGFyZWRCaXRtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhOTAwOTFmMThhNDAzZDFlN2M0NzYxYmY5OWE3NDlhNDAz
NDUzYzgxLi42YzgzMjIyNmM3MDU0Zjg0NWU4ZDU0ZTg2NTVmOGYwMzA1ZWE3ZmM5IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTktMDgtMDcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBQb3NpdGlvbiBpbWFnZSBpbmZvcm1hdGlvbiBzaG91bGQgcmVz
cGVjdCB0aGUgaW1hZ2Ugb3JpZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byB2ZXJpZnkgdGhlIHBvc2l0aW9u
IGltYWdlIGluZm9ybWF0aW9uIGlzIGRyYXduIHJvdGF0ZWQKKyAgICAgICAgYmVjYXVzZSBvZiBy
ZXNwZWN0aW5nIGl0cyBpbWFnZSBvcmllbnRhdGlvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudElu
Zm8ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnOiBBZGRl
ZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2ltZy13aXRoLXJv
dGF0ZWQtaW1hZ2UuaHRtbDogQWRkZWQuCisKIDIwMTktMDctMzEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjQ3NDg2Pyk6IEZsYWt5IEFQ
SSBUZXN0IFRlc3RXZWJLaXRBUEkuV0tXZWJWaWV3LkxvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5k
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZDYxN2ZkNGM2YmYxZmI2ZjdmZDg4NzJkMWFm
ZjIwNDk2NWQ1ZWQyLi5iMDBjM2U0MzgzZDEyZTc1NmE5NDBkNjZiNjI2MDBjNzRlYjNhM2ZiIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzkxLDYgKzM5MSw4IEBACiAJCTZCOUFCRTEyMjA4
Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjlBQkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRUUFBh
cnNlcnMuY3BwICovOyB9OwogCQk2QkZEMjk0QzFENUU2QzFEMDA4RUM5NjggLyogSGFzaENvdW50
ZWRTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0EzOEQ3RTUxQzc1MkQ1RjAwNEYxNTdEIC8qIEhhc2hDb3VudGVkU2V0LmNwcCAqLzsgfTsKIAkJ
NzI1QzNFRjMyMjA1OEE1QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzI1QzNFRjIyMjA1ODRCQTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzLmh0bWwgKi87IH07CisJCTcyODNBOUQwMjJGQTc1NDkwMEIyMUM3RCAvKiBpbWctd2l0aC1y
b3RhdGVkLWltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0
ZWQtaW1hZ2UuaHRtbCAqLzsgfTsKKwkJNzI4M0E5RDIyMkZCMUUwNjAwQjIxQzdEIC8qIGV4aWYt
b3JpZW50YXRpb24tOC1sbG8uanBnIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcyODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVu
dGF0aW9uLTgtbGxvLmpwZyAqLzsgfTsKIAkJNzUxQjA1RDYxRjhFQUM0MTAwMjhBMDlFIC8qIERh
dGFiYXNlVHJhY2tlclRlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVz
dC5tbSAqLzsgfTsKIAkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1dG9GaWxsQXZhaWxh
YmxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0
Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8qIEF1dG9GaWxsQXZhaWxhYmxlLm1tICovOyB9OwogCQk3
NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdE
aWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi87IH07CkBAIC0xMTc5LDYgKzExODEs
NyBAQAogCQkJCUY0MDdGRTM5MUYxRDBERkMwMDE3Q0YyNSAvKiBlbm9ybW91cy5zdmcgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMDc0OTJCM0MxREY4Qjg2NjAwNjMzREUxIC8qIGVudW1lcmF0
ZU1lZGlhRGV2aWNlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM1RTFBRkZFMTZC
MjIxRjEwMDZDQzFGMiAvKiBleGVjQ29weS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJ
CTcyODNBOUQyMjJGQjFFMDYwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDREEyOUIyQjIwRkQzNTg0MDBGMTVDRUQgLyogRXhp
dEZ1bGxzY3JlZW5PbkVudGVyUGlQLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQx
QUI5QTMxRUY0Njk2QjAwODNGQTA4IC8qIGZpbGUtdXBsb2FkaW5nLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQkMyRDAwNjQxMkFBMDRDRTAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNo
b3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEyMjAsNiArMTIyMyw3IEBACiAJCQkJ
RjQxQUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCUY0REVGNkVEMUU5QjREQjYwMDQ4RUY2MSAvKiBpbWFnZS1p
bi1saW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NUI2M0ZC
MUYxOTdGNEEwMDlEMzhCOSAvKiBpbWFnZS1tYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQk3MjgzQTlEMDIyRkE3NTQ5MDBCMjFDN0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNTc4NkNEMjBGNkEyOTEwMDAwQ0RGQyAv
KiBJbmRleGVkREIuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZDRTIw
RjZBMkExMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTkzNTc4NkNDMjBGNkEyNzAwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy13
YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODY5LDYgKzE4NzMsOCBAQAogCQk2QjRFODYx
QjIyMjBBNTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVnaXN0cmFibGVEb21haW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2QjlBQkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRUUFBhcnNlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFn
ZVR5cGVzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODNBOUNFMjJGQTZC
QkUwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzI4M0E5RDEyMkZCMUQ5NzAwQjIxQzdEIC8qIGV4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gaW1hZ2UuanBlZzsgcGF0aCA9ICJleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAv
KiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VU
cmFja2VyVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0Q0VDODAxRjY3
MjJEQzAwRDAwMzlBIC8qIEF1dG9GaWxsQXZhaWxhYmxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQXV0b0ZpbGxBdmFpbGFibGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlQWRk
SW1hZ2VUb0NhY2hlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEzNiw2
ICszMTQyLDcgQEAKIAkJCQk1MUM4RTFBODFGMjdGNDczMDBCRjczMUIgLyogRW1wdHlHcmFuZGZh
dGhlcmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5wbGlzdCAqLywKIAkJCQlGNEMyQUIyMTFERDZE
OTQxMDBFMDZENUIgLyogZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sICovLAogCQkJCUY0
MDdGRTM4MUYxRDBERTYwMDE3Q0YyNSAvKiBlbm9ybW91cy5zdmcgKi8sCisJCQkJNzI4M0E5RDEy
MkZCMUQ5NzAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnICovLAogCQkJCUNE
QTI5QjJBMjBGRDM0NEUwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAuaHRtbCAq
LywKIAkJCQlGNDFBQjk5QjFFRjQ2OTJDMDA4M0ZBMDggLyogZmlsZS11cGxvYWRpbmcuaHRtbCAq
LywKIAkJCQlBMTdFQUM1NDIwODMwNTZFMDA4NEI0MUIgLyogZmluZC5wZGYgKi8sCkBAIC0zMTYw
LDYgKzMxNjcsNyBAQAogCQkJCUY0MUFCOTkzMUVGNDY5MkMwMDgzRkEwOCAvKiBpbWFnZS1hbmQt
dGV4dGFyZWEuaHRtbCAqLywKIAkJCQlGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2Ut
aW4tbGluay1hbmQtaW5wdXQuaHRtbCAqLywKIAkJCQlGNDVCNjNGQTFGMTk3RjMzMDA5RDM4Qjkg
LyogaW1hZ2UtbWFwLmh0bWwgKi8sCisJCQkJNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGlt
Zy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCAqLywKIAkJCQk5MzRGQTVDNzIwRjY5RkVFMDA0MERD
MUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi8sCiAJCQkJOTM0RkE1QzYyMEY2OUZFRDAwNDBEQzFC
IC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLywKIAkJCQk5MzRGQTVDNTIwRjY5RkVEMDA0MERD
MUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZh
dGVkRWxlbWVudEluZm8ubW0KaW5kZXggNmU3OTNkMDIzYzU3OTUyNjhjMTkwZTNlMjViZTM3MGI1
ZjQ1YTk2OS4uNTU2YTVhOTc2ZDNjMWE0ZGUzYWFmM2FlMmJhYzE1ZmQ2MDcyZTI1NSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1JlcXVlc3RBY3Rp
dmF0ZWRFbGVtZW50SW5mby5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCkBAIC05Niw3ICs5Niw1MSBA
QCBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9ySW1hZ2UpCiAgICAg
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CiB9Ci0gICAgCisKK1RF
U1QoV2ViS2l0LCBSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm9Gb3JSb3RhdGVkSW1hZ2UpCit7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbWctd2l0aC1yb3RhdGVkLWltYWdlIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBbd2ViVmlldyBfdGVzdF93
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWQg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBfcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9u
OkNHUG9pbnRNYWtlKDUwLCA1MCkgY29tcGxldGlvbkJsb2NrOiBeKF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICplbGVtZW50SW5mbykgeworCisgICAgICAgIGF1dG8gaW1hZ2UgPSBlbGVtZW50SW5m
by5pbWFnZS5DR0ltYWdlOworICAgICAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ29weURhdGEoQ0dJbWFnZUdldERhdGFQcm92aWRlcihpbWFnZSkpKTsKKyAgICAgICAgYXV0
byBidWZmZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkKj4oQ0ZEYXRhR2V0Qnl0
ZVB0cihkYXRhLmdldCgpKSk7CisKKyAgICAgICAgYXV0byBwaXhlbEF0ID0gWyZdKHVuc2lnbmVk
IHgsIHVuc2lnbmVkIHkpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGkgPSB5ICogZWxlbWVudElu
Zm8uaW1hZ2Uuc2l6ZS53aWR0aCArIHg7CisgICAgICAgICAgICByZXR1cm4gYnVmZmVyW2ldOwor
ICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHllbGxv
dyA9IDB4RkZGRkZGMDA7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByZWQgPSAweEZG
RjUxOTAwOworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZ3JlZW4gPSAweEZGMjc4MDAw
OworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgYmx1ZSA9IDB4RkYwMDAwRkY7CisKKyAg
ICAgICAgRVhQRUNUX1RSVUUoZWxlbWVudEluZm8udHlwZSA9PSBfV0tBY3RpdmF0ZWRFbGVtZW50
VHlwZUltYWdlKTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGVsZW1lbnRJbmZvLmltYWdlVVJM
Lmxhc3RQYXRoQ29tcG9uZW50LCAiZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciKTsKKyAgICAg
ICAgRVhQRUNUX05PVF9OVUxMKGVsZW1lbnRJbmZvLmltYWdlKTsKKyAgICAgICAgRVhQRUNUX0VR
KGVsZW1lbnRJbmZvLmJvdW5kaW5nUmVjdC5zaXplLndpZHRoLCA1MCk7CisgICAgICAgIEVYUEVD
VF9FUShlbGVtZW50SW5mby5ib3VuZGluZ1JlY3Quc2l6ZS5oZWlnaHQsIDEwMCk7CisgICAgICAg
IEVYUEVDVF9FUShlbGVtZW50SW5mby5pbWFnZS5zaXplLndpZHRoLCA1MCk7CisgICAgICAgIEVY
UEVDVF9FUShlbGVtZW50SW5mby5pbWFnZS5zaXplLmhlaWdodCwgMTAwKTsKKworICAgICAgICBF
WFBFQ1RfRVEocGl4ZWxBdCgwLCAwKSwgeWVsbG93KTsKKyAgICAgICAgRVhQRUNUX0VRKHBpeGVs
QXQoZWxlbWVudEluZm8uaW1hZ2Uuc2l6ZS53aWR0aCAtIDEsIDApLCByZWQpOworICAgICAgICBF
WFBFQ1RfRVEocGl4ZWxBdCgwLCBlbGVtZW50SW5mby5pbWFnZS5zaXplLmhlaWdodCAtIDEpLCBn
cmVlbik7CisgICAgICAgIEVYUEVDVF9FUShwaXhlbEF0KGVsZW1lbnRJbmZvLmltYWdlLnNpemUu
d2lkdGggLSAxLCBlbGVtZW50SW5mby5pbWFnZS5zaXplLmhlaWdodCAtIDEpLCBibHVlKTsKKwor
ICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkKTsKK30KKwogVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50SW5mb0ZvckJsYW5rKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2V4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGI4OTVmOTEz
YWNhMjI0YmNiMWYzZmExNmYwYzlkMjU5NDY1NWY3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4
NjAyCnpjbWRVVWNVVGxudnYxRjRtUig+O2w1QF5NZio/NXVCfVlZYSZOKWFCUCFMMj1SNnN6OWZ7
MjE1MHdQKDAwWXk7Mgp6aChyTkoxUUUmWDg0VTBELUZ3YitwTEA9OHxHQis4R3J6NV91Q0Q1Pz93
K2I4emIyMFo4YmUoSlQ+d0U0KDEkO08KekpPUHEpcVAjci1JQ0tiejAwM3xSNGJjSzVqMzV7VGh5
fGQzVkVfeXYpXzxAJEI9bTt8MFlJdVpLPmd2ZGhvNUB8CnptSkdONWAkUUJZe140KmRNKmYza19F
PSNaQ1lpU2x3NnEqZSV9c08takNFazswQU9CbDRociVeJjtafmM1RWYjdAp6cl4jaCZYVX5PdzMt
SXVWMDRSVyp2dWtMT2hOLUZYWnlFcDl7cFpMcDlsJVRSSno0KTEkTnp5d2EmciVMZ15lKFUKemQw
Z0I9VUh4SFA0Kil7Ykg3Rnp1ME9VR01lLVJsTDFZXmBBN31KTnEzY35wUDlgXmk9bS1ldkJGTzEk
QkFeSCRZCnpiMWVZU096PCFob1NqMkYwVSt8aGJnbD9qUGdvOTc4dnFQI2ZTWSMhMENjdTZSKDE3
cWM3dyt2NTlTZmBfWWQ1fAp6LTdwcSVgOFBTOXxBdzhOVUgqfmo/Q2tqdXslczR+NjdFPnJKMmM0
OElyYFUrfENjdl56aUBjR2VpZDV5UDYrVGoKenlmLShEQEhPWT10WmY4OCsyQ3Q4JG5WI2ohOHtP
KWR3YFYlT3h3ZF4wV09ENHskTiMpNU02VF4hKStuY3BmSnJuCno0MzhQKTVmby0+YEcrMUs8RTM+
TiNzcnZ0KExHZT51Ymc1WlhUIVpZcWtgI21BPnJtJEZ5QDFDTWAobkY0dmItcwp6Zn5JNDxFTiVZ
cXtCVSNFe3pGRn5KaUspY2UpQXdgeX43T2xgbDUmRG9YMG9OWGlvPllGTjhjVzApRF85Z282PEgK
ejlzdENGRzArMHFmOX5TSTEzMUdxNXBaMjdAQ0JiPj48X21IZ3hkdGRuQ2xPcClfPGJ0eyVZcTV4
QkZpdWFzZ01FCnpIfmdQSWZBX2AoX3hWPypIKmthVFUlRTVnJDZub0BjQTx7bU4mbzhlRlVPdnxV
KW80ak9VK0FkfEo0YTRmUmFKVQp6cClecXtDe0AkfXo9ZEsmdT5mKEBldn4zZzFFcSNpaFUqUmhU
YCZ6eF9XWX5rb196bTBrQkdkJFhlRGJleE9VSFcKem0lcHtaYFdMdE5LZm5LejJFaENJTGdUXzs0
RkN2cGtBbHwkMDl0YFQoSU1XUlVTVjdzQFhCPTs8MXo/dmxAUX5TCnprJj4zJHROI0N7P0Nuezxt
MGRDYXdISEIqMU9LOVYkXmFtQDRFdlBlemk4Z00wNmMqRzhYTnBDbmdIeH5SR2sxawp6elVVZXI2
N2dGZVlWVSFEX2Q7c2VMend7dy1+fmVQSUxpUWVwYlhUMzRsbzJKeiFLUGpXM2N+dCE5RXhRQjAo
JWoKejFTI01RSTByNilkezZ8K3o7JHA3KVBZOU8weTtyMmNuViZDVmVrJSZnQmtEekVQPGIzM3FC
flk1RH10LW0/Mkp4Cno5fTxPUkFWbytPKHQoVTJiSTE7SWY7XiFCQz4pQX5sQSR3REhrMSNRS3Zt
RWs9c3dnNUolJEZNSF8hdyQ0fUZJPQp6NWw5MzlMNjJaWjJwfVg4aVU8dmE1eUJHVGZiY3tGQlZy
SUk1dCljUUxAREFYcTU7dX5jIzBUQ2ozZDR2Uio/V24KemlEWDFfQmdLKTVORytyWihqTXU3M18t
PnQofiZ2SVFlK0xYOFFGKD9pNXkyUkFVOUFMNmRqNVNCQFgra0tGU0teCnppVjgtPnFjVHdXc096
VyhSNSQ3K1k2Nyl7K0M+eDVZLW14bTY1MFQ1aX1wbEVxRXBhMD1uQ3tiYlBzd01KJWojPAp6IUMp
OU1mKjF2aUtFQDg/Z0VAfUx6K0EhOVZtZEhgbT9fTEU3Sz4lWmllZ287Q1JrQHw3JlpsYThHOTRr
anZkMHoKelZBcFkhSThLfWxQOFZtNzMmMTdlYSZSfHJaTVklYUVOK1d9aEp2MyRpTmJgIWpVdCpO
aT12I09uUFB4cWhHR2ooCnohVkJWNkBSb1FWZD9HIyVVeFYrI3pzSWpvUWQwNno5LXVVJV5yayNQ
bk1aaz5AKTZ8KDxwelA0QVZTYjA5M19Nawp6RzZ8SzA0I0ZHNDNYdzxAQWdVQVhpREFTe1Zpb1py
YWc0WjVNTW90O1drQlVkbHxXVE0paiV+d3dNYjF0JX09ZEMKemVUK0pXSSowbCReI0p0KDRGIXo9
alRWaEZPKn5CaiYzJjN0bnBGfVZOdCRGckArVzFHWmpjXzY9NGkzQjA8PTFgCnpablAoOSVWOzBj
UFNHTGhjPEhxMFQ8TWJPJUlTTE9YNlB+V2c3Z09US0o7aGtaX3opZVV0KndUKncwfGk1WERmeQp6
KDhANSpoLTRJQ0crXnsmJXdudSM5QVZ0dCRHJVR2cFptVkZlS3FAcl9OXzZvR08wN1VHbz5AdEc3
VTNyR0lLSE8KekYjOXJ9WEtyTnZ6PUMyQ1ZLSE5nV1Z5PUghP002aSYjS0pvJTlfcXYkTkg4SCE2
dzNIJlVUIXdqSUV6LW03UmxLCnprM0VSfUdXJGRKMXJBMElicSpobml5VW5uXlBGXj9zK2BgTzdk
aEtHS1hXbH5YPmo+KjwjQmEkRXBmQVA+dk07NQp6bXZCR2wtcl5ERHZFb1ZNc3Bhez1pfDFBM18y
OWs4K3JfKVkkSHtreUZQNSpHPz0zJEN6YXFhRWU9ZEk/fEMpZkgKemZRPiteSyU+QiVBZHtlaFYy
b2gzO0Ntc1drZVgxaVBecik+VlRgYiV1Jj9rSDtUSXdaNWpoYnJrcGh0Y1FHfT94CnpzSkd9OShM
cGheKmE1S3N1fk07N2FlfXlwYyFZU2hfPUUoYmd0MGBETTVEeF9CJWg/YzxheDxIJHozVHFETDwp
bAp6c2R2KH0odVVHVygjX0p9V2toNkxXZVF8byRyNUZDV2ZOcVpXUzk0Zz9zd21SYl5tS1FJPU1x
fnNkOE8lSk1zJGgKekFAVml5XjlwPGxQNn53enFsKXkzcml2TWdqfUQqQFhkWHk3Jn5qaXlOblI7
VHNaUXlldmJlSVpAKHR5PWdNdFUkCno1MClSQ1FzR2Y/UncrPiNTTElUNVFZfV47U0wwVDVSeDRH
VFJPZU45UT9GMjspZXpTMyhZVUZ4czQxbHhxSXBrcQp6Ty1vNURQT0MjM3NqYTctdUtpcXhSPncq
d1V1UjYwTjdxeGdUNmFsTFBWY3kwaGR4XjBOZExWNHJ+JGl5dDNqMikKemxBKGZPb01FPlMhTnxm
Vy0pUGNVIzVseWJgNEhsZTtoX3RNLVhHPmE5QntiTjFlaDNAVHJsfXlEcmcjUGBvSWloCnpXQD1W
b19RX25ASmw0Rj1nM2lMeDspY2FmT0hJb3glWGR+blJeZTclKjN7TlZ0KmZscFlfeDUlWk5fYVNa
UjJkOAp6K09nUHErY251Xj9YQiVBPntwTkk5SnpGND1CVjchbCVwZEtmKH1zKmtCX2smXkU9aytO
YlR0Q2MtSU4tV2FEKGgKelkxYFN2eHp1XnAjbFdTfFd5d3tgSFBgaXZvNFZVWXd8UkZKX2lYb0I0
OzdEV2syeX5qJmtMVU9VVFIpQlVKS3FACnotdWQza0tLZWRJSzVNPXZ6TG1hWUtPNFZWZjFKT1F8
TlF7azBOO1NfSyNzdHV6YC1FVnBwPkJUVjVRKG8hQWxgVgp6QXIreGVzNiVLfDcoTSlRKmRIendl
a3l6LUxOJWZ3Vm07RDJAQF5DPERqPSNxU3xtQ3hkTnhLaz1HdC04YW82S3IKenZEfnFWdUBpOWBh
VjdDa3lpMHNuMCZse31ncWFoMUMkMTtyNk1ZayhCfXBZXkM7ZHBhTnAzI0xlKTdjMHNaKUJWCnpz
I0I7XkxRK09rbH5hcE9xZlVGRGV4ND9xYn4kWX4tN1dwZThMMlpsWFNPcTNHb0dCNEtBVSV6b2F2
R0lKV0Q/Nwp6Pk4oODBmTzh8fil5YGtmQ1N9S0RQaEJ7NHEyVkllI3FeNm1FOyhMJG9VPWN0Qz5O
Z19vOyNqcm9ZIT1qQEFBM0oKeit4Y0drIXYmZkp3U3tialhAelQ3K14hNT1SbGl6TyM5bmwhWHRV
VjZfO3JiMU5rZ2VYWC0qbFlFVFpnRnhwakhwCnpITnxVSDYpWThKRHQwT1pEI3gjelUrPUNgc0go
Y2JifGI0QVE1e31BZkFpP2c3cV8lO0hQd2pNbCstZlRwMUJRZgp6aHV7OHUkTFk+VW9sI3hhVUIk
YUtfNUFnUF92cjRXSCRWOzE0Tkh3KWpwSSNyT0BzRmg/e19zVEh7V3w4QHUwR1cKenlRUUYmcCo1
PXctKiZRJSsjYmB1KzdaO1QoQ09KWikjY2RyP3hGMyZTS1ZnYSZ3R3F8OWApKz5LSjMlellrI0Vq
CnpzTzdRSjxOSHEocEVOI3xmNztNNSpNSU1zK19RVm48KTFlVUM9NHtjSVBqdSpAWmV6RWtsSWte
T1lON3Z1TUEjMgp6OVg+b2ZJQVMmT2RpM2IlXy1uVjxiOHIwS0VXZUYteVk9cUdkLVZKQzQ+VFdn
I0BOUDZLTUhAVzloVjwob3pSfT4KenBSfH5LSHwwOUBXamJfdmQqPFhQOy17UWgmZV5JdG5Zb3NF
LVQ0PXZrOT9sXzY3KiRqQT59TFNZdkgyTVYqTk11CnpafmFUUU9FYiRNJWpFQUZFNmdqRUtsY0NW
U35Yb0FgfDFDNFlifH05ZEh3b147enItNSZGMVZAPFRpRllaJTI1aQp6ZERtJDdKPXZkMzRzczUw
e2BEQGY3cG95VzswVyR9Ql4qUTghTGg+JjBQcjJaVn5TckthSlR9JkpUU0l+KGgkSyYKek1mbHhy
MktAK0FpT3NAQVFARz1nUCtBZXBofUtsKiliPXpeQnJuPGt4KWt+ek0kKjBgT2NsKF90T3dhcisy
MyRWCnphbTkxTDt1WW1mPUttbjVCJE94b1FgQXpkVVY9ZH5UNTNZWlNoaH0lTytIMjgrV3x8Wm1W
LVBociZTbCMle0FfNgp6Rj08RVh5d093QyZveCp6dk5XemZHLVgwKHMkdTREb0A+ISpgTjxrQEJX
JFp7Y2cjTklOYj1FaDRoNj9iOTRubHoKeko2RjA/eHxYP0pid0I1azsyR2RgJT1AczxMMD9mblIp
MCRXJjRCczkqRms7M2pVa254SWJvOzUheTtURyY3KEE7CnojYldqeWhtSjRBaj5kSnktJVE5b2so
bFY4V1NndllRc05YIzNPWiN1XzVKQmJZNHojRlhFSEwqcDNUYjQlKnM1TQp6ZEghdG5uRzJeY0NT
OGlsM0NzMSViR2RBdFomMDlJRDBZU0lEJl5KOXFFRSVvT1lXQkRtQnA2M1QrXj9Sc0hDc2wKeng7
fE87PGk/JXF7Rl9PKXtBI1JmKW91JmxwfVZ0TkgrVDFDZWJjP2RoNyptaE8qOzFsbntteF41Qmdm
SndJO1M1CnpaQ0JgXj42cXtBPzg8dT4oNT08TytfVCpLcVZNamJvWDBVd2p5PWB2N2tXblpaMXdz
M2Yka1NLMlFMbDl6d35AJQp6STs9RnBKNHpmfmRwK0BIPXh4YCN5NyMzWSZYMWs9NyZ6YFFWS154
XyNXanRle3l5e09RflBaQlQ8V348PVI7cDQKejc2PVFZVXlCIWd6YlAhQ21xd1J3ZW19WTVeaDBC
bnwwbmcmb3djUil4c0EhcSQqcm1GUGRpX0NlfmAoKT0zZlYpCnpmc3tscHFCX3kzN3o/WmZqc1o3
SShUbEkzJXBnUCU5ald4RzY9Pks9bCUhb2NOJX5fOTdhOUFSa2p4NCFVYVRjLQp6QTI/VnomQTJr
VGArNHp2ZGk8dlo5dCtgdzRNajNWVXh7LXtjdUMlcU0jYEFUVWZ3Pz9GUmw9JipyaTBOWTttd2EK
eldrTzlALUN2X2xiMzxFSUN0MF5lQDNzRUMhTVlLfm1+QEVhdSVMO2dzalFqMnh4OXN9ck1NTnBI
TERHXkV3S0cmCnpIKWo5ck5ifUpXaFpEeitJTGJMdUpJeTxIeUEtPH5jZThTcl51VCt9Y3lAUmRj
dGBxfWBISn5ye1UtZmUxMTwtSwp6MVFgYmxnbipFQHA/QWExaEk+WTZNNnlReWg8WUFmOEl5R1VO
YkxTTkxmb2hMX0pxNj5wXjNJaHM+IUAzYVZIbH4KenktSTBMRWsxb0ole1Nmamo5ZG5EMktuckM9
QSoyZGJKXiEzdlg1TCl5VTJBM1Q+NjtQbz9EIWtjLWM4JHZ3Kmh7CnpSWEI1ez9gbD1pbmN7I0Yo
XkE8b2hPK2hZY2h9a35OLUxBRHlIc2kzO0hnR2RQdStaWXRHcCg7KjZwX1Q5bGtuTAp6LVNwal9g
ZkstMkhuPXJ2SH1UIWErK1MhT2UkZHVaKXEwXlZ6VExPT3UyWml8O2h8N0JPQWwycXFJYlAtQHpL
b1YKejReS3YoNClpfk0qOGhCOVZEUUR1IUk3Y1lGVzxnO0tSaC12SzA1aCZgcHVgZXYrcTg/VS0r
O3p3KHt9a197Sm5PCnojWG8mYENpK3c1PzM7UGc9Zmh2bEZUN2I0YElmdmlfMSQ+byFLJj1mK0k4
OEQyVjEoXnFyMlhKPTNmSChnMUNhVAp6SztjbUwoR2VKViVyZHFLN2YrIyZYVHZYMWJgeEBsSzIk
bz8rfDtgeTNAc3lfMj5rJkQ5WSpWWUsxP1Q9RlJ8UVcKej9PX3taLXtocHtsSHh3aDZVZHYlY1or
e09VYDI+WVNXVSFKRygrc1JfXjhCPTZ0fWRsakYpV3N7K257bzxRRWhQCnoyWldVTG1FOF58czEm
TiFzOHk/OSl5VUZ9KlllZjIpbHRfSyg0KXxzKTkqMzNZOFltdVlmTnVFZSgxKkc1RUZUbQp6UDE5
RGhjeWxINVJnMnF9ekU9RUpBRmNDa0VOIVc1YHxKfCFtRiFvSismdD4oITA5bDA/M3w7NDZYZXc1
OU9IN3AKeld6RHQwRXpEaVVlYzdZZCk4OStQWXRGbUUkSVh8Xl9rJi0pempYanp6KEMtY0FwS3g7
QFdZVkFQfVJgd3U+MFhyCno1cG9nQmt1XzFpKFNwJWFGLTVTYUZ2YnFXV3liMyNBUUsqKiRiZng/
S1dSQytePD9AZj5sRUlVWj5iTVhyPjI+dwp6YkVKUGhiMSZuPlMpKXdHJSEjYTw9T1dIKVc+YVVz
emZnNUM7KndTbERRN0lWSXhxVU5aYSNoZjFia303VGB8N08KemEmQGsjcTQ7RXBNSmEjalJAcTRU
P1E3ezNaazF9K1MrRD1COG9FKGlvcElDcW1SXmxPRXZrMDxfUU59NmI7KTwjCno+SjlISEhBcG9J
SGdWbyhZTm1mY1k5WTFLeDNSWUtjZ1M+VmNpQkEqP2F1MHs/SCVnZGMrQjwwO3B4UCkoKnlmbwp6
JW5UTDNAKkdpcEUlSHxVe2hfZ31AJFhZe3BUeV9FbXo4aCQ/OzVMRj5ucSFWZC1NTjB4M3FVQVZC
YFRQci1jdU0KelZGMFdgZWA5XyVgMjZTeHo/MkFwPHBGPj0jUV9sZUBCcXJffEw2Ukc7OE8keERC
KzleMyFHSnYxUDk/YigrPkU2Cno7fikhO0NoeD1YPDI7MGZTbTd3cTVPUmckcGdnRF5qc218U3Mx
VnxhTHhAMWNjfDwrcEhEVStKZ0VUK31BQGgpKAp6JFM/MyZxPV5iWjZ7NFA/SHFiKEZUJFlZKkw0
VSpXVnIoJiltfG5+LVJza0Q9eUBtYVo2VTJHb0QmWEJwbjhLZ3AKejQjZ1Q/NmB6NzFwayQkUnJA
VFlKNVMkNkVMXmZoOUBndFFNUlRWV0lidipTfm5xeEZDTmsqaHpJRnsrOUdvfkErCnpjY3ghdk5N
PllheXRCYEktI1N3PHZteF51T0NfcnY4PERNPkopVDJ9Vn1yQXFEfj8tPmhyc2lpd31MTnstJXg7
MAp6NUUyfDA+SnFNbWNlKkdzY1gwfnw5WjRsQVg9eER8MGFeYjJmXndxckc3OEZ5KGclYzxfPzNB
TkB+SEBeTn4kVFQKejgpX1dZNEFhV2V1RilDTi1QOUtfdXJeRkw+TjRJcnRaa0JRSSVUZUNhVFkl
UEc7RTQmJEBiMWlkTDZgJTx2Mm1rCnpmaTU1MiUtI0R1KXhHWmZYISFRfjl9UVJ2TigmSlBlSDxQ
ZiRyPCUzQ050SX5vPDhBWTtfYytyUSFjNk1Yfmd1PQp6ak1CYCZiTCFjbzMpN2VHPVZvMkBEJHUm
WmIoTEheUVFBe3BRO35RNSlRI3wpX0JDMyFDRj9sclgmZGxPPXc/Z3sKenY1bVB5dmBlZW94aXty
ZS1JS3tAJW1ZP35Jaj5rb0QmTlN5ZG9aUm5lc192ekNVdGk1ditQMzVWJDsmJTNmSFJQCnpUSWp+
KnRwX3tmenhFRlomaVoyREpReThkaHd9fmw7WV5iU29NKHl4WEYpbGZMbF59czVEZz4qWCtsUyNE
Q2k8bwp6MmhhVT8xUlgqU1ZUKmBgPE5IVTVCX3RENDZYfW48ak88ME9wbTxSaHNGUUdmSmBZRmJX
XmdSdGl2RUVTJDlRN08KekZkd24oKnJWNyY+PDFoZCZKOTxFVGNTeztOVGxlO0d2VkZ3Y1BXdlNt
WHM5KTFpX1E9b1R4fUZob2p6UHN4QGtWCno+UkIzQm5ra1llWF59Ulg0b2kyTFVYdVAxZ0J1KT1S
X3dFNCFaU1QmUEdDYEMqPTZsd09KfSNfO08xRTc/QlVBaQp6NCZ5UTltRUAhNGBeaTVwQEp6NXBz
OCtaX3EpNDwtdFUmeSNNN2Q7KlJJfklHbks5V19JY2orXjF0WX57MmZ+JUkKemwmY1J1UUNVelVz
Vml4P1loS2pxKSF4I1QoRkBTOEh1ITJKVjtwczskQXNCNSpzUnx8KnomYTFme21HTnYlU0VQCnpp
d0B7eFFJM253VU1eRV51SXwmR0szKz5jaUdLOXspcSZiVTZDc0lWZUJ1Myg7bkJQP3VWUFFmdDBp
bkNIWUc9Jgp6UWNLMDA/b0JfTHBfUGZ1Pk59cik7cVdFOG9IdXp6YDV1TWhTNX1LIU9II3xzdVc/
b15Uel8hbSUrMTMhYmhSSnUKelJOYWxkcntCb2h3QX1vKHJLMFVyaGtLVm53YDRFbEJrMXdNKTM/
dV80enYjNWNeTlYrSn5JMmRfXnIpKntEO1BtCnp0YGlpS0g+VU14IyUyVE5IYXttVkFpdGhpKyol
NCtvPzVafChlWURzRW9URjRkVHVAMms9cmYhR3lmPCFfZjcoPQp6S29ISX0+QjRLQEEwJmVVJjtX
K081PEtAfWtPNzwjTmAtU2t7bT5HRTBkV3hGaEIlOThMUUVxYE5PZ0Z7bW1wdUYKenUmOUhtUH1C
fDc2cSs0Zz9IQUVRNytRPTQ8YFUpJm1Ke29OdDtLR19TKEo7b1gkcENZRz5WVVNJZWFGNW8+R1Vo
CnpqNmd8PEJZWT9ONUlAMkJqWENOLT5NZmNLNS0rS3ApYGdDZXU5LWZOTDZxU095c3tJU3RlS0Ap
czkyVSpONz1nQQp6Pm9fVm5pP3xCN3VrZSlkKjZfOVBLTmM3am9FTF5mKmhIMVo5S315ZCs+YHR5
JV9kX2JvNGZ5PUpmQXw0VncpMDQKeis1MkZSRHhYQEtgaWlFRClgKlVZWm9qXlghSEFLb0B5Zyk8
bE5tRWReRCM/RHQ0fXQ4dyE4TXtqdFYrLUl5eU97CnpUJm1xe0pUUlVReW59b057VSFwNjtkZ1Z2
KEI8JjkkZ0Y3Qjt8SnB5PDV5My1QSEg8QG02Q0hoQ2Z6RFNDWCs1fQp6e3J1UjR6RHNxdiNoMT8m
QndkTHBAKyl5S2JHcWhPZDkyRjArVHhhVUUlb2lNYl5ZfT44ZDk1Rm53NDZwVGdUZ0wKekktPyR7
Xm5sKj5ONWBNWUpebEt1YmlpKHFZQUVnSChfdl50VmJ0JCtAdGRKeztKeD88JWR5Q2hJcFp9R29z
LVh8CnpNeTd7bjIwd01yKjNBe3AkOTtERUFfdT1RZSl3OXM4MWhhMit4cFZ8PCpARygteyk1ZmYw
KFF5UiZXMXdTaWBUPwp6dVJDbURIZzBYMlo/MTEkKjtkPTAqaCR7eS1SJllmP2FoQ3ZoYil9NGdi
UEhfZ3d1fj5XYiVwdG9VNjxSVkNPdVUKenlqNG1qQDA3djgySyptTGh1YG8yRUIyVCVhTCZFM2FT
ISFzb2prR2t7UCNrQjJrIztYMi1eRTE7NGZUfFh5amhPCnpwaW9GTzc2WWY8O0poM2JNQGZPajtj
KnhZMSg1PHpObDczT3VvT2ZwQjdxOHFselQkPCs5SDNvTU57SDFJNT9CYAp6LXo/K35LKkdUKFI1
djhWMH12eiNOcks0VGZEXlZCNFd+aWpAPmd2TGZrZEhVamJKQHNoST0leWBiWj1LUnUrd2QKel5S
bj08aGsqYSVCQjUheXI4T3tnWDNraWlWMHhMdl5DZFc1JXshZTg9N1VSb3ZNd1A+Nm5Nc2NPdzI2
JjApaiVxCnpCS3pnITYlLUZCWD0mQHw+Z2dMOFQzQXxIK3JTQjZTMnVTTFBjTHR1KDZJMWAkZilS
OzxkZGdUUWN0SSlYSjVFQAp6REpNN1lhKC0hOWBMJkE1PnMyQEU/JCtPSFhsJU9RLTFWQCNyPz5D
WDwwbkhlVWsjNnB6SkJ2fFZzZEpGPUZ7eGwKentPOUhHRD9lNiR1Qn5ydT8lNChKPC1nN1AkRmwj
O0Upcn1QMC1nZ0RjRiEmZDVlWipONSg+Pk5qaUo+ciEjVzRrCnpAeUkwTj1yenhtLTA3cz9se0he
dGEwd2EyR3hGYDk7OXVTfD9VIVokY1pNYlhrMVlHZ3V6JVYwNzcqWkE3ZVBYagp6ZkVya0BOZilZ
fTMwKkd+RG9xRE1IRmBHZEdaVT47K3dYaTdsdWxndT5kfDh5V0EobUBaflhpV1pAR0BjYGF4bUEK
ejxSZmtTbUwwTSg+UEheRDtMRmpzd20jTUpubEV3aSl4QFEyOWN2ViluUy0yRVJKeFJ2aCgtMzkm
bzdPPkRUfShWCnotJkIjYXo5cDxIUyQpUm5uQGBfajwyR3EhKktCYTwrd1A+fVg2Uz8zWWhPTlB0
QEYtcW16N08/LTA1IXJGJnBWPAp6QEd6MzBLbEB0Q29rdlMqeGd5bUZTTzFjUitZMXFPZyZmQCt0
R24qT1p2KWRwOWsrMHwkZUB4aEF1aDtxYEApO1IKem92M1NNUCUmd3NMdlFvQSRlNyt0MmtjITVg
QD9MV2VxNmRPX2lkQi1uR0R2TTE8OE94WihFRmJkXmI2IWVIVVh1CnoyMGI9QT5JcHNhaW4rVX51
TUBXU25lR3pGenw1Qm4ySWhBOUgmZkMjal8pI0pURkY0OClzWU80ZH1KX3JvZVdNVAp6KStXM052
Pn02eiQ3PF8wKUZ1bnFqTDFOMUwyWn12SV9HRWNncEQxfWAmUzw8S2YmRlNKYyFHZ1hFUGlWWW1C
PUEKeigzYl9wZjxHSlpVN2EzSU5MemRQVmNWYz9Ye1Z0KXBURGk3KGo9MWdSKEg8WEBHeGRlUEko
IzF7YSYobjZga1VwCnpHfUQqazt5Kmh3SlJAOGMlMDZVaDZuaT48S0kwaTx3NmMqV0pKIVQ3cVBe
OzlSTHh0VlNoSFomWVh0RlQjbD49Mgp6NWpJeVlYKWQ8bFc2d0UlaEFwR3tqUzV0WC0mPGJUZEF9
QWdVKX0wSTh+QUZJQVczVyVOeEV7Uk54MChjJGY1ZS0KenY0KWsjM25vXlomJGpxdUJiRjtXJD4y
QHBfLXkqTk0kTExyUFoyKGhVODBMVT0xWFRBUHI7JH5yTCE7QkU2c1o9CnohPj1Ma2R+Vm5gc2Ql
ZUVLckBaLWpLKH5LMzxBaVlsUDZaVyskJk96TG9sX1FXd0VtNj0oZ1JtTzV3PWMrX1pwSQp6WTY7
M0NRKjZkTEZaLVg7cHxiaEM4SVgkSypYfXc4dVV9cUx3cmdvI0dEIShQVWh0cXcmVmZmd3BtKzZ9
WXB+bi0KelZAQVFXSXMlYkE8XjRtfiVAR2U2bk95VUs0QiVzWm14fmUpZGVeUkI9LThFNVJ5e2lA
JDxQd3c4Kj9xUVRCVVhJCnpfRnhqUGY8OytzO2RLeEUoWlRANUZPSmlDOEVyVzA0diE1b0FVdEdY
OG0+JmNiPVZAfnNIPWl1T0xqfTN1WTtqWQp6ZFYyaUt7TDBGISt8N2NDWi1ZalAxNXV0cntTJGRa
OEtSflNoc31hNjRQN0dFKlMqWUY1fD0xMjVPbSpSSGdnPXYKei1JaD03bUUwOE5xJFB1OyR+SDJY
cyF3PzY3MylGPHJGV0prJHBDLSsrcGU8WGJIYD16PSVPOSRPVzBUMzs+Y2p6CnpQKEJjTDYoekBZ
IW9ady1gZmhDZE03XnFYIWwzUFhGNj5xK1loPUopdyMld0R3UXErWkQ9bEgmOyR5PHtUZVY2MQp6
Nn0zKDNOLXtYe05OdipXWm8oJD41Rz45a0w4SVBnV3JocmhDQ2dgYSlCQyNId31ycDh1WWFYYT0p
VShVO1JtTSkKejg5P1V9eTMwSnM7RDs9e0k4TzkkdWF+QmE/IUZvTDlgPFh3ISVLY3NWTyh1SGA+
ZzJoeU0oI2ZuenNBWUMmPUt0Cno7cmBrIWU9O2IkK1BwfnlgMiswaig9KSsoSkU+REB0MmB4U3Bn
dS1PYy0lZlF1IVpQS21gYF94KlZ+TlZ5b0xfRgp6REZrMkdNYDMwPDNCd3Y+QVVFLXNHfXNRMiFT
cUZNJERpLVdLdTt6N2huZUd3LUJqYXRWVH0rTyt9YCV3RXdAeWcKZVc5YGheUH1ue3wyMlFwbkpK
UUNtZSVzZX5nI01+WWUpQXU/am1CUjkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW1nLXdpdGgtcm90YXRl
ZC1pbWFnZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pbWct
d2l0aC1yb3RhdGVkLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRiOWYwNWViYTAzMGQyZTQzZTcx
N2MxMWRiMmU0NTRmOWJjYTE3ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sCkBAIC0wLDAg
KzEsMyBAQAorPGJvZHk+CisgICAgPGltZyBzcmM9ImV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBn
Ij4KKzwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>