<?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>218529</bug_id>
          
          <creation_ts>2020-11-03 12:29:22 -0800</creation_ts>
          <short_desc>[GPU Process] Use the Ref counting of ImageBuffer to control its life cycle in Web Process and GPU Process</short_desc>
          <delta_ts>2020-11-06 00:05:14 -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>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217342</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704137</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-03 12:29:22 -0800</bug_when>
    <thetext>DrawImageBuffer will hold a Variant&lt;RefPtr&lt;WebCore::ImageBuffer&gt;, RenderingResourceIdentifier&gt;. The RefPtr&lt;WebCore::ImageBuffer&gt; will be set in the Web Process when drawing an ImageBuffer to another ImageBuffer. The RenderingResourceIdentifier of ImageBuffer will be encoded when sending the DisplayList to the GPU Process. In the GPU process, a DrawImageBuffer will be decoded with RenderingResourceIdentifier. The RemoteRenderingBackend will search for the ImageBuffer in its RemoteResourceCache given the RenderingResourceIdentifier and will draw it to the GraphicsContext. This will remove the need to lock and unlock the remote resource in RemoteResourceCacheProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704146</commentid>
    <comment_count>1</comment_count>
      <attachid>413092</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-03 12:39:23 -0800</bug_when>
    <thetext>Created attachment 413092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704186</commentid>
    <comment_count>2</comment_count>
      <attachid>413100</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-03 13:11:20 -0800</bug_when>
    <thetext>Created attachment 413100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704222</commentid>
    <comment_count>3</comment_count>
      <attachid>413108</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-03 14:48:02 -0800</bug_when>
    <thetext>Created attachment 413108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704947</commentid>
    <comment_count>4</comment_count>
      <attachid>413108</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-05 11:18:21 -0800</bug_when>
    <thetext>Comment on attachment 413108
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:816
&gt; +    if (m_impl &amp;&amp; image.renderingResourceIdentifier()) {
&gt; +        m_impl-&gt;drawImageBuffer(image, destination, source, options);

I think it&apos;s wrong to rely on the presence of a image.renderingResourceIdentifier to control behavior. What&apos;s the real question you&apos;re asking?

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:191
&gt; +    m_displayList.registerImageBuffer(makeRef(imageBuffer));

This seems like a use for willAppendItemOfType().

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:192
&gt;      appendItemAndUpdateExtent(DrawImageBuffer::create(imageBuffer.renderingResourceIdentifier(), destRect, srcRect, options));

Should probably ASSERT(imageBuffer.renderingResourceIdentifier()) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705036</commentid>
    <comment_count>5</comment_count>
      <attachid>413361</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 15:46:39 -0800</bug_when>
    <thetext>Created attachment 413361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705040</commentid>
    <comment_count>6</comment_count>
      <attachid>413108</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 15:56:53 -0800</bug_when>
    <thetext>Comment on attachment 413108
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:816
&gt;&gt; +        m_impl-&gt;drawImageBuffer(image, destination, source, options);
&gt; 
&gt; I think it&apos;s wrong to rely on the presence of a image.renderingResourceIdentifier to control behavior. What&apos;s the real question you&apos;re asking?

I changed the patch such that this question means what is written. The question here is &quot;can we inline the DrawImageBuffer item?&quot;. The DisplayList will keep a HashSet which will be used to control the life cycle of the source ImageBuffers. And it can be used also to resolve the RenderingResourceIdentifier to an ImageBuffer if the display list is replayed back in WebP. if it is replayed In GPUP, we are going to pass the HashSet which is maintained by RemoteResourceCache.

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:191
&gt;&gt; +    m_displayList.registerImageBuffer(makeRef(imageBuffer));
&gt; 
&gt; This seems like a use for willAppendItemOfType().

I might be confused by your comment here. But I think willAppendItemOfType() work on the destination ImageBuffer but we want to cache the source ImageBuffer.

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:192
&gt;&gt;      appendItemAndUpdateExtent(DrawImageBuffer::create(imageBuffer.renderingResourceIdentifier(), destRect, srcRect, options));
&gt; 
&gt; Should probably ASSERT(imageBuffer.renderingResourceIdentifier()) here.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705087</commentid>
    <comment_count>7</comment_count>
      <attachid>413361</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-05 17:46:10 -0800</bug_when>
    <thetext>Comment on attachment 413361
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:815
&gt; +    if (m_impl &amp;&amp; image.renderingResourceIdentifier()) {

image.renderingResourceIdentifier should not change behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705114</commentid>
    <comment_count>8</comment_count>
      <attachid>413391</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 20:20:18 -0800</bug_when>
    <thetext>Created attachment 413391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705116</commentid>
    <comment_count>9</comment_count>
      <attachid>413361</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 20:22:05 -0800</bug_when>
    <thetext>Comment on attachment 413361
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:815
&gt;&gt; +    if (m_impl &amp;&amp; image.renderingResourceIdentifier()) {
&gt; 
&gt; image.renderingResourceIdentifier should not change behavior.

Fixed. The new patch records an inline DrawImageBuffer item for both DL and GPUP cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705119</commentid>
    <comment_count>10</comment_count>
      <attachid>413391</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-05 20:36:11 -0800</bug_when>
    <thetext>Comment on attachment 413391
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:191
&gt; +    m_displayList.cacheImageBuffer(makeRef(imageBuffer));

Rather than this, you should the work in willAppendItemOfType(), because there are going to be other drawing commands that use ImageBuffers (e.g. clipToImageBuffer() which you did not fix in this patch).

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:54
&gt; +    if (item.type() == ItemType::DrawImageBuffer) {
&gt; +        auto&amp; drawItem = static_cast&lt;DrawImageBuffer&amp;&gt;(item);
&gt; +        if (auto* imageBuffer = m_imageBuffers.get(drawItem.renderingResourceIdentifier()))
&gt; +            drawItem.apply(m_context, *imageBuffer);
&gt; +        return;
&gt; +    }

Also needs to deal with clipToImageBuffer().

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:57
&gt; +    if (m_delegate &amp;&amp; m_delegate-&gt;apply(item, m_context))
&gt; +        return;

It&apos;s unclear how someone reading this code would know whether it&apos;s correct for this to be after the ImageBuffer special-casing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705140</commentid>
    <comment_count>11</comment_count>
      <attachid>413406</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 22:41:45 -0800</bug_when>
    <thetext>Created attachment 413406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705141</commentid>
    <comment_count>12</comment_count>
      <attachid>413391</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-05 22:43:56 -0800</bug_when>
    <thetext>Comment on attachment 413391
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:191
&gt;&gt; +    m_displayList.cacheImageBuffer(makeRef(imageBuffer));
&gt; 
&gt; Rather than this, you should the work in willAppendItemOfType(), because there are going to be other drawing commands that use ImageBuffers (e.g. clipToImageBuffer() which you did not fix in this patch).

I will address fixing clipToImageBuffer in a separate patch.

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:57
&gt;&gt; +        return;
&gt; 
&gt; It&apos;s unclear how someone reading this code would know whether it&apos;s correct for this to be after the ImageBuffer special-casing.

I cleaned this function a little. I moved the call to delegate first, then I added DrawImageBuffer special-casing second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705145</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-05 23:27:35 -0800</bug_when>
    <thetext>Committed r269503: &lt;https://trac.webkit.org/changeset/269503&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413406.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705146</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-05 23:28:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71109948&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413092</attachid>
            <date>2020-11-03 12:39:23 -0800</date>
            <delta_ts>2020-11-03 13:50:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218529-20201103123922.patch</filename>
            <type>text/plain</type>
            <size>25960</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEwNTFkOWRlNGNiYjM1
M2VjNzg2ODViZGZiZjc5MTU5YjQ5MmQwMy4uZDE1OTgyMjFiZjk1ZjcxOGU2NTU5NDJkMWYzZDI2
YWY4ODQzNTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
VXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMgbGlmZSBj
eWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBEcmF3SW1hZ2VCdWZmZXIgaXRlbSB3aWxs
IGhvbGQgYSBtZW1iZXIgb2YgdHlwZToKKyAgICAgICAgICAgIFZhcmlhbnQ8UmVmUHRyPFdlYkNv
cmU6OkltYWdlQnVmZmVyPiwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPi4KKyAgICAgICAg
VGhlIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gd2lsbCBiZSBzZXQgaW4gdGhlIFdlYiBQ
cm9jZXNzIHdoZW4gZHJhd2luZworICAgICAgICBhbiBJbWFnZUJ1ZmZlciB0byBhbm90aGVyIElt
YWdlQnVmZmVyLiBUaGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mCisgICAgICAgIElt
YWdlQnVmZmVyIHdpbGwgYmUgZW5jb2RlZCB3aGVuIHNlbmRpbmcgdGhlIERpc3BsYXlMaXN0IHRv
IHRoZSBHUFUgUHJvY2Vzcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1h
Z2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ltYWdlQnVmZmVyOjpyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZm
ZXI6OnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRl
bGVnYXRlOjp+RGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29y
ZGVyOjpEZWxlZ2F0ZTo6bG9ja1JlbW90ZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKwogMjAyMC0x
MS0wMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BV
IFByb2Nlc3NdIE1ha2UgSW1hZ2VCdWZmZXIgUmVmQ291bnRlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZDg3N2Ey
NDc3ZDM2ZTRmMDA0YTgwOTYwNjI1OWI3MjI0YjRiMjIxLi4wM2YyN2M0Njg2ZTQ5OGNmNmE5MjJk
NmY1NWZkY2Y5Yjc3NjRmN2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTExLTAz
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJv
Y2Vzc10gVXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMg
bGlmZSBjeWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBEcmF3SW1hZ2VCdWZmZXIg
aXRlbSBpcyBkZWNvZGVkIGluIEdQVSBQcm9jZXNzLCBpdCB3aWxsIGJlIGRlY29kZWQKKyAgICAg
ICAgd2l0aCB0aGUgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgb2YgdGhlIHNvdXJjZSBJ
bWFnZUJ1ZmZlci4gVGhlCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2lsbCBzZWFy
Y2ggZm9yIHRoaXMgSW1hZ2VCdWZmZXIgaW4gaXRzIFJlbW90ZVJlc291cmNlQ2FjaGUKKyAgICAg
ICAgdGhlbiBpdCB3aWxsIGRyYXcgaXQgdG8gdGhlIEdyYXBoaWNzQ29udGV4dC4gVGhpcyB3aWxs
IHJlbW92ZSB0aGUgbmVlZCB0bworICAgICAgICBsb2NrIGFuZCB1bmxvY2sgdGhlIHJlbW90ZSBy
ZXNvdXJjZSBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6On5SZW1vdGVJbWFnZUJ1ZmZlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4
dEFuZENvbW1pdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZUltYWdlQnVm
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmxvY2tSZW1vdGVJbWFnZUJ1ZmZlckZvclJlbW90ZUNsaWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1Jl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnVubG9ja1JlbW90
ZVJlc291cmNlc0ZvclJlbW90ZUNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjAtMTEtMDMg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9j
ZXNzXSBNYWtlIEltYWdlQnVmZmVyIFJlZkNvdW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDljZjE4MjM4MzIw
ZDYzOTQ5ZGQ0ZDM4MTYzOGQzM2NmMzA2MTYyZTYuLjUyNTYwOTQzNDNmNGMyMTIzYjhhZmRmMGFj
ZjYxYzNlMzcyYWYxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtODEyLDggKzgxMiwxMCBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aQogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRl
c3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpKQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UucmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgbV9pbXBsLT5kcmF3SW1hZ2VC
dWZmZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogICAgICAgICByZXR1
cm47CisgICAgfQogCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9s
YXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9sYXRpb25RdWFs
aXR5KCkpOwogICAgIGltYWdlLmRyYXcoKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlv
bnMpOwpAQCAtODQwLDggKzg0MiwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1
bWluZ0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2UsIGNvbnN0CiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX2ltcGwgJiYgbV9pbXBsLT5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlLCBkZXN0aW5hdGlvbiwg
c291cmNlLCBvcHRpb25zKSkKKyAgICBpZiAobV9pbXBsICYmIGltYWdlLT5yZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIoKSkgeworICAgICAgICBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcigqaW1h
Z2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFs
aXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwog
ICAgIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKFdURk1vdmUoaW1hZ2UpLCAqdGhpcywgZGVz
dGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKaW5kZXggMzUzNmQyZjNiNzNj
ZDQ4OGU5OGVjMmU5ZmRlMjQ4ZjgyMzhjMzljZS4uNmUyMjJjMDJmMmQ5YWUzNjQwNjFiNzNkOWMz
N2I3N2IyOWIwM2I0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZs
b2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1Rp
bGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpU
aWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNv
dXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRp
b24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHAKaW5kZXggNTZiNTdmMDdjM2MzYzkzY2QzZjAxOTBmNWQ0YWNkMWJiNmMy
YTRlOS4uZjI3MGRlN2EyODE5NzE0NDdhNzdjMTg1ODM0OWQwNDhkMGNiNzNhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiRGlzcGxheUxpc3RSZXBsYXllci5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtODMyLDkgKzgzMywx
OCBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
RHJhd1RpbGVkU2NhbGVkSW1hZ2UmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCitEcmF3SW1h
Z2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+JiYgaW1hZ2VCdWZm
ZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBEcmF3aW5nSXRlbShJ
dGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyKQorICAgICwgbV9pbWFnZUJ1ZmZlclN0b3JhZ2UoV1RG
TW92ZShpbWFnZUJ1ZmZlcikpCisgICAgLCBtX2Rlc3RpbmF0aW9uUmVjdChkZXN0UmVjdCkKKyAg
ICAsIG1fc3JjUmVjdChzcmNSZWN0KQorICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCit7Cit9CisK
IERyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyKQot
ICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKQorICAgICwgbV9pbWFnZUJ1ZmZlclN0b3JhZ2UocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKQogICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdFJlY3QpCiAgICAgLCBtX3NyY1Jl
Y3Qoc3JjUmVjdCkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQpAQCAtODQzLDYgKzg1MywxMyBA
QCBEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZAogCiBEcmF3SW1hZ2VCdWZmZXI6On5EcmF3SW1hZ2VC
dWZmZXIoKSA9IGRlZmF1bHQ7CiAKK1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBEcmF3SW1h
Z2VCdWZmZXI6OnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgaWYg
KGF1dG8gcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyID0gV1RGOjpnZXRfaWY8UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyPihtX2ltYWdlQnVmZmVyU3RvcmFnZSkpCisgICAgICAgIHJldHVy
biAqcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOworICAgIHJldHVybiAoKldURjo6Z2V0X2lm
PFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4+KG1faW1hZ2VCdWZmZXJTdG9yYWdlKSktPnJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOworfQorCiB2b2lkIERyYXdJbWFnZUJ1ZmZlcjo6
YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKIHsKICAgICAvLyBTaG91bGQgYmUgaGFuZGxl
ZCBieSB0aGUgZGVsZWdhdGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCBm
MDE1YmU1ZTg2NjA2ZWNjMmY2Y2U4NTdjMWY3MTE2NzY5NGZlOGUzLi4yYmFmM2ZiM2ZlMmE2Njc3
MDRiNzYyNTYyMGZlMDIxNTNlNTIxNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKQEAgLTE2MzYsNiArMTYzNiwxMSBAQCBPcHRpb25hbDxSZWY8RHJhd1RpbGVkU2NhbGVkSW1h
Z2U+PiBEcmF3VGlsZWRTY2FsZWRJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZQogCiBjbGFz
cyBEcmF3SW1hZ2VCdWZmZXIgOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewogcHVibGljOgorICAgIHN0
YXRpYyBSZWY8RHJhd0ltYWdlQnVmZmVyPiBjcmVhdGUoUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVm
ZmVyPiYmIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3SW1hZ2VCdWZmZXIoV1RGTW92
ZShpbWFnZUJ1ZmZlciksIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgUmVmPERyYXdJbWFnZUJ1ZmZlcj4gY3JlYXRlKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERy
YXdJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGRlc3RpbmF0aW9uLCBz
b3VyY2UsIG9wdGlvbnMpKTsKQEAgLTE2NDMsNyArMTY0OCw3IEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRyYXdJbWFnZUJ1ZmZlcigpOwogCi0gICAgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cigpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NyY1Jl
Y3Q7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvblJlY3Q7IH0KICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKCkgY29u
c3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CkBAIC0xNjUyLDEzICsxNjU3LDE1IEBAIHB1YmxpYzoK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVmPERyYXdJbWFn
ZUJ1ZmZlcj4+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6CisgICAgRHJhd0ltYWdlQnVm
ZmVyKFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CiAKICAgICB2b2lkIGFw
cGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgT3B0aW9uYWw8Rmxv
YXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogCi0gICAgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOworICAgIHVzaW5nIEltYWdl
QnVmZmVyU3RvcmFnZSA9IFZhcmlhbnQ8UmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiwgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPjsKKyAgICBJbWFnZUJ1ZmZlclN0b3JhZ2UgbV9pbWFn
ZUJ1ZmZlclN0b3JhZ2U7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OwogICAgIEZs
b2F0UmVjdCBtX3NyY1JlY3Q7CiAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRpb25zOwpA
QCAtMTY2Nyw3ICsxNjc0LDcgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2
b2lkIERyYXdJbWFnZUJ1ZmZlcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2RlciA8PCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKKyAgICBlbmNvZGVy
IDw8IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOwogICAgIGVuY29kZXIgPDwgbV9kZXN0
aW5hdGlvblJlY3Q7CiAgICAgZW5jb2RlciA8PCBtX3NyY1JlY3Q7CiAgICAgZW5jb2RlciA8PCBt
X29wdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXgg
ZDE0MmMzNzc5Y2I5OTNlNzM3MmJiOGI4ODg3ZmNjNGM3NTJmZTk4OS4uZmFkZjZhODA0ODU2MTMx
ZTkxMGU1ZDk1YWFhY2VmNTM5ZTRkNGMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcApAQCAtMTg1LDEzICsxODUsMTAgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29y
ZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXQKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKLWJvb2wgUmVj
b3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVyOjpkcmF3SW1h
Z2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIGlmICghbV9kZWxlZ2F0ZSB8fCAhbV9kZWxlZ2F0
ZS0+bG9ja1JlbW90ZUltYWdlQnVmZmVyKGltYWdlQnVmZmVyKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3SW1hZ2VCdWZmZXI6OmNy
ZWF0ZShpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbWFnZUJ1ZmZlci5m
bHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVudChEcmF3
SW1hZ2VCdWZmZXI6OmNyZWF0ZShtYWtlUmVmUHRyKGltYWdlQnVmZmVyKSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wdGlvbnMpKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAppbmRleCAzNDE1YzMxN2FlMjAwNjViNDM3NDQ4OWU5MWUwOGFhMDNhZDE0MTUw
Li5jOTQ1NmI5ZjVhOTA2ZjMzMTEwOTkzZGRmYzM4OTM0ZTQ5MmI1NTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAg
IGNsYXNzIERlbGVnYXRlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkRlbGVnYXRl
KCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBsb2NrUmVtb3RlSW1hZ2VCdWZmZXIoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXImKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEFwcGVuZEl0ZW0oY29uc3QgSXRlbSYpIHsgfTsKICAgICB9OwpAQCAtMTA3LDcgKzEwNiw3IEBA
IHByaXZhdGU6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdU
aWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6
VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKIAotICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6
OkltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDZmZTBhZTliODJlNGI1NGJkMGE0MTYwNDRhMTY2YTdi
YmFiYzVlZjQuLmFiYWQwYmU3OGI3Y2E2NTBmMjBmODVjYjZlMzQ4NDA1NTA3ZTFmZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkucmVsZWFzZUltYWdl
QnVmZmVyKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVhc2VSZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOyB9CkBAIC0xNDgsNyArMTQ4
LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIFRyYWNlU2NvcGUgdHJhY2luZ1Njb3BlKEZsdXNo
UmVtb3RlSW1hZ2VCdWZmZXJTdGFydCwgRmx1c2hSZW1vdGVJbWFnZUJ1ZmZlckVuZCwgMSk7CiAg
ICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LT5mbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3JlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS51bmxvY2tSZW1vdGVSZXNvdXJjZXNGb3JSZW1v
dGVDbGllbnQobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgICAgICBtX2l0ZW1D
b3VudEluQ3VycmVudERpc3BsYXlMaXN0ID0gMDsKICAgICAgICAgZGlzcGxheUxpc3QuY2xlYXIo
KTsKICAgICB9CkBAIC0xNjAsMTcgKzE1OSw2IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBUcmFj
ZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90ZUltYWdlQnVmZmVyU3RhcnQsIEZsdXNoUmVt
b3RlSW1hZ2VCdWZmZXJFbmQpOwogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5KCkudW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBib29sIGxvY2tSZW1v
dGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIG92ZXJyaWRl
Ci0gICAgewotICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5sb2NrUmVtb3RlSW1hZ2VCdWZm
ZXJGb3JSZW1vdGVDbGllbnQoaW1hZ2VCdWZmZXIsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaW1hZ2VCdWZmZXIuZmx1
c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICB2
b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJikgb3Zl
cnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBmOWE3
ZGM1ZGUwMjg3NzE0ZTY2ZWNiMTcxNzQxYzJlODk1MzhlOTEyLi5iMTFiNDAzYTkwYmJjYzk2YzE2
MjJiY2ZkMzYyZWJhNjI4N2M2NjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWkKIAog
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQog
eworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LnJlbGVhc2VJbWFnZUJ1ZmZlcihyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggZTk5ZTNkNzFjYTkyNjI2YTY5NjJjYzk0ODc3
YTdjMTFiODVlZGJhNy4uY2EwNTVmZDM2ZmNlMWExMmJiMjViZmU2ZDU5MzUxNjk0YmNkZmFkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04NSw3ICs4NSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3RG
bHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAK
LSAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkg
eyAqdGhpcyB9OworICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkg
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAppbmRleCAzZjVhNzNi
ZWMzYmYyODZlNTI5ODFkZTQ4YjkwYzMxZDAxOWQ4YzNkLi44MjUwNDIxN2JlNzYxNWI0ODdhMGNk
MzJmN2RmMTg3NzI0NjcyZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3Bw
CkBAIC0yOCwxNiArMjgsOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVk
ZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5KQotICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQotewotfQotCiB2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogaW1h
Z2VCdWZmZXIpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2ltYWdlQnVmZmVycy5hZGQocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBpbWFnZUJ1ZmZlcik7CkBAIC01Myw3NSArNDYsNiBA
QCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZUltYWdlQnVmZmVyKFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZQogewogICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVm
ZmVycy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5V
U0VEKGZvdW5kLCBmb3VuZCk7Ci0KLSAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1v
dmUgdGhpcyByZXNvdXJjZSB1bmxlc3MgaXQncyBwZW5kaW5nIHJlcGxheWluZyBiYWNrLgotICAg
IHJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotfQot
Ci1ib29sIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1JlbW90ZUltYWdlQnVmZmVyRm9y
UmVtb3RlQ2xpZW50KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFpbWFnZUJ1ZmZl
ci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGNhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcigpKSAhPSAmaW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBsb2NrUmVtb3RlUmVz
b3VyY2VGb3JSZW1vdGVDbGllbnQoaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKCksIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3Rl
Q2xpZW50KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVy
KQotewotICAgIC8vIEFkZCB0aGUgInJlc291cmNlIC0+IGNsaWVudCIgZGVwZW5kZW5jeSBpbiBt
X2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy4KLSAgICBhdXRvJiBjbGllbnRz
ID0gbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuZW5zdXJlKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIFJlbW90ZUNsaWVudHNI
YXNoU2V0KCk7Ci0gICAgfSkuaXRlcmF0b3ItPnZhbHVlOwotCi0gICAgY2xpZW50cy5hZGQocmVt
b3RlQ2xpZW50SWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1VubG9ja1Jl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy5jb250YWlucyhyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpKTsKLQotICAgIC8vIElmIHdlIGhhdmUgcmVjb3JkZWQgcmVzb3VyY2UgLT4gY2xp
ZW50IGRlcGVuZGVuY3kgYmVmb3JlIGluIG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVD
bGllbnRzLCBtb3ZlIHRoaXMKLSAgICAvLyBkZXBlbmRlbmN5IHRvIG1fcGVuZGluZ1VubG9ja1Jl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy4gT3RoZXJ3aXNlIHJlbW92ZSB0aGUgcmVzb3Vy
Y2UgaW4gdGhlIEdQVSBQcm9jZXNzLgotICAgIGlmIChtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9y
UmVtb3RlQ2xpZW50cy5jb250YWlucyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQotICAg
ICAgICBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuYWRkKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90
ZUNsaWVudHMudGFrZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKTsKLSAgICBlbHNlCi0g
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotfQotCi12b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6dW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQotewotICAgIGF1dG8g
cmVtb3ZlUmVtb3RlQ2xpZW50ID0gWyZdKFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAmIHJl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cywgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZUNsaWVudElkZW50aWZpZXIpIHsKLSAgICAgICAgVmVjdG9yPFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcj4gcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7Ci0KLSAgICAg
ICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9t
IHJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAuCi0gICAgICAgIGZvciAoYXV0byYgcGFpciA6
IHJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cykgewotICAgICAgICAgICAgcGFpci52YWx1
ZS5yZW1vdmUocmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgICAgICAgICBpZiAocGFpci52
YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9C
ZVJlbW92ZWQuYXBwZW5kKHBhaXIua2V5KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJldHVy
biBhIGxpc3Qgb2YgdGhlIHVucmVmZXJlbmNlZCByZXNvdXJjZXMuCi0gICAgICAgIHJldHVybiBy
ZW1vdGVSZXNvdXJjZUNsaWVudHNUb0JlUmVtb3ZlZDsKLSAgICB9OwotCi0gICAgLy8gUmVtb3Zl
IGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIG1fbG9ja2VkUmVt
b3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLgotICAgIGZvciAoYXV0byByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgOiByZW1vdmVSZW1vdGVDbGllbnQobV9sb2NrZWRSZW1vdGVSZXNvdXJj
ZUZvclJlbW90ZUNsaWVudHMsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpKQotICAgICAgICBtX2xv
Y2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy5yZW1vdmUocmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKLQotICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVu
dCBkZXBlbmRlbmNpZXMgZnJvbSBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90
ZUNsaWVudHMuCi0gICAgZm9yIChhdXRvIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA6IHJl
bW92ZVJlbW90ZUNsaWVudChtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNs
aWVudHMsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIC8vIFJlbW92ZSB0aGUg
dW5yZWZlcmVuY2VkIHJlc291cmNlcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGlu
Z1JlbGVhc2VIYXNoTWFwLgotICAgICAgICBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZv
clJlbW90ZUNsaWVudHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0KLSAg
ICAgICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UuCi0g
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIH0KIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCBlODZiZTdkZWIw
OTJiYThmMTNiN2RiNTVhZWU4NzgwMmM3OGRkNDhjLi5iZGU4MTVhMTNjMWQ5NTFkNTIwNDkzNjhh
ODVjOGM0MGNhMTRkY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTM2
LDMxICszNiwxOCBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LWNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKLQogY2xhc3MgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5IHsKIHB1YmxpYzoKLSAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Jik7CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
KCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqKTsKICAgICBXZWJD
b3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAgYm9vbCBsb2NrUmVtb3RlSW1hZ2VC
dWZmZXJGb3JSZW1vdGVDbGllbnQoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgdm9p
ZCB1bmxvY2tSZW1vdGVSZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOwotCiBwcml2YXRlOgot
ICAgIHVzaW5nIFJlbW90ZUNsaWVudHNIYXNoU2V0ID0gSGFzaFNldDxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+OwotICAgIHVzaW5nIFJlbW90ZVJlc291cmNlQ2xpZW50c0hh
c2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVt
b3RlQ2xpZW50c0hhc2hTZXQ+OwogICAgIHVzaW5nIFJlbW90ZUltYWdlQnVmZmVyUHJveHlIYXNo
TWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkltYWdlQnVmZmVyKj47CiAKLSAgICB2b2lkIGxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90
ZUNsaWVudChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLSAgICB2
b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwotCiAgICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eUhhc2hNYXAgbV9pbWFnZUJ1ZmZl
cnM7Ci0gICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX2xvY2tlZFJlbW90ZVJlc291
cmNlRm9yUmVtb3RlQ2xpZW50czsKLSAgICBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwIG1f
cGVuZGluZ1VubG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50czsKLSAgICBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="commit-queue"
          id="429644"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413100</attachid>
            <date>2020-11-03 13:11:20 -0800</date>
            <delta_ts>2020-11-03 14:48:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218529-20201103131119.patch</filename>
            <type>text/plain</type>
            <size>31712</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEwNTFkOWRlNGNiYjM1
M2VjNzg2ODViZGZiZjc5MTU5YjQ5MmQwMy4uZGU4Y2E5ZjA2YzJhMGJiYThkZGQyZWIzODM0N2Y5
Y2ZjOWU1ZmQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTExLTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
VXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMgbGlmZSBj
eWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBEcmF3SW1hZ2VCdWZmZXIgaXRlbSB3aWxs
IGhvbGQgYSBtZW1iZXIgb2YgdHlwZToKKyAgICAgICAgICAgIFZhcmlhbnQ8UmVmUHRyPFdlYkNv
cmU6OkltYWdlQnVmZmVyPiwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPi4KKyAgICAgICAg
VGhlIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gd2lsbCBiZSBzZXQgaW4gdGhlIFdlYiBQ
cm9jZXNzIHdoZW4gZHJhd2luZworICAgICAgICBhbiBJbWFnZUJ1ZmZlciB0byBhbm90aGVyIElt
YWdlQnVmZmVyLiBUaGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mCisgICAgICAgIElt
YWdlQnVmZmVyIHdpbGwgYmUgZW5jb2RlZCB3aGVuIHNlbmRpbmcgdGhlIERpc3BsYXlMaXN0IHRv
IHRoZSBHUFUgUHJvY2Vzcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBs
Q2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0ltYWdlQnVmZmVyOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVj
b3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpSZWNvcmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpsb2NrUmVtb3RlSW1hZ2VCdWZmZXIp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmlj
b3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9P
cGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmg6CisK
IDIwMjAtMTEtMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0dQVSBQcm9jZXNzXSBNYWtlIEltYWdlQnVmZmVyIFJlZkNvdW50ZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZWQ4NzdhMjQ3N2QzNmU0ZjAwNGE4MDk2MDYyNTliNzIyNGI0YjIyMS4uMDNmMjdjNDY4NmU0OThj
ZjZhOTIyZDZmNTVmZGNmOWI3NzY0ZjdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAy
MC0xMS0wMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBb
R1BVIFByb2Nlc3NdIFVzZSB0aGUgUmVmIGNvdW50aW5nIG9mIEltYWdlQnVmZmVyIHRvIGNvbnRy
b2wgaXRzIGxpZmUgY3ljbGUgaW4gV2ViIFByb2Nlc3MgYW5kIEdQVSBQcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgRHJhd0ltYWdl
QnVmZmVyIGl0ZW0gaXMgZGVjb2RlZCBpbiBHUFUgUHJvY2VzcywgaXQgd2lsbCBiZSBkZWNvZGVk
CisgICAgICAgIHdpdGggdGhlIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIG9mIHRoZSBz
b3VyY2UgSW1hZ2VCdWZmZXIuIFRoZQorICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHdp
bGwgc2VhcmNoIGZvciB0aGlzIEltYWdlQnVmZmVyIGluIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hl
CisgICAgICAgIHRoZW4gaXQgd2lsbCBkcmF3IGl0IHRvIHRoZSBHcmFwaGljc0NvbnRleHQuIFRo
aXMgd2lsbCByZW1vdmUgdGhlIG5lZWQgdG8KKyAgICAgICAgbG9jayBhbmQgdW5sb2NrIHRoZSBy
ZW1vdGUgcmVzb3VyY2UgaW4gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Ojp+UmVtb3RlSW1hZ2VCdWZmZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRDb21taXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpsb2NrUmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVDbGll
bnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp1bmxv
Y2tSZW1vdGVSZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorCiAyMDIw
LTExLTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtH
UFUgUHJvY2Vzc10gTWFrZSBJbWFnZUJ1ZmZlciBSZWZDb3VudGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCA5Y2Yx
ODIzODMyMGQ2Mzk0OWRkNGQzODE2MzhkMzNjZjMwNjE2MmU2Li41MjU2MDk0MzQzZjRjMjEyM2I4
YWZkZjBhY2Y2MWMzZTM3MmFmMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTgxMiw4ICs4MTIsMTAgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGkKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV9pbXBsICYmIG1faW1wbC0+ZHJhd0ltYWdlQnVmZmVyKGlt
YWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKSkKKyAgICBpZiAobV9pbXBsICYmIGlt
YWdlLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSB7CisgICAgICAgIG1faW1wbC0+ZHJh
d0ltYWdlQnVmZmVyKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0
aW9uUXVhbGl0eSgpKTsKICAgICBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBvcHRpb25zKTsKQEAgLTg0MCw4ICs4NDIsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlLCBjb25zdAog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWltYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAobV9pbXBsICYmIG1faW1wbC0+ZHJhd0ltYWdlQnVmZmVyKCppbWFnZSwgZGVzdGlu
YXRpb24sIHNvdXJjZSwgb3B0aW9ucykpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS0+cmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgbV9pbXBsLT5kcmF3SW1hZ2VCdWZm
ZXIoKmltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJu
OworICAgIH0KIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0
aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0
eSgpKTsKICAgICBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhXVEZNb3ZlKGltYWdlKSwgKnRo
aXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDM1MzZk
MmYzYjczY2Q0ODhlOThlYzJlOWZkZTI0OGY4MjM4YzM5Y2UuLjZlMjIyYzAyZjJkOWFlMzY0MDYx
YjczZDljMzdiNzdiMjliMDNiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTczLDcgKzczLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBj
b25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJ
bWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZHJhd0ltYWdlQnVmZmVy
KEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dEltcGxDYWlyby5jcHAKaW5kZXggOGVmNGY3ODZiNzI0OTE0MjQ1NmVmZjFmMGFk
ODIxNmNjOTA1NTM2Ny4uNmNhMjU4YjU1ZDFjZjVmOGI1ZjVmYjZhNDZiYjA2MWQxYzY1MDdkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0yNzksMTAgKzI3OSw5
IEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdUaWxlZElt
YWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dElt
cGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5n
T3B0aW9ucyk7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCit2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWly
bzo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQogewogICAgIC8vIEZJWE1F
OiBOb3QgaW1wbGVtZW50ZWQuCi0gICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBp
bWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCmluZGV4IDFjODI3MTMw
YzJhNWZlMjhmNzUzNWUxOTQ1YTMzZGM5Njg2MjA1MTQuLjhhOTM3ZGEyMzlkNmQ2Y2RkMGEwNDhj
Y2NkODM2NzkxMDVkOTdjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCkBA
IC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBv
dmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmLCBJbWFnZTo6
VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBv
dmVycmlkZTsKICAgICAKLSAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRy
YXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCA1NmI1N2YwN2MzYzNjOTNjZDNmMDE5MGY1ZDRhY2Qx
YmI2YzJhNGU5Li5mMjcwZGU3YTI4MTk3MTQ0N2E3N2MxODU4MzQ5ZDA0OGQwY2I3M2FkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJEaXNwbGF5TGlzdFJlcGxheWVyLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIK
KyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1
ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC04MzIsOSAr
ODMzLDE4IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEcmF3VGlsZWRTY2FsZWRJbWFnZSYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKK0Ry
YXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1ZmZlcj4mJiBpbWFn
ZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKKyAgICA6IERyYXdpbmdJ
dGVtKEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXIpCisgICAgLCBtX2ltYWdlQnVmZmVyU3RvcmFn
ZShXVEZNb3ZlKGltYWdlQnVmZmVyKSkKKyAgICAsIG1fZGVzdGluYXRpb25SZWN0KGRlc3RSZWN0
KQorICAgICwgbV9zcmNSZWN0KHNyY1JlY3QpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKK3sK
K30KKwogRHJhd0ltYWdlQnVmZmVyOjpEcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKICAgICA6IERyYXdpbmdJdGVtKEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZm
ZXIpCi0gICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCisgICAgLCBtX2ltYWdlQnVmZmVyU3RvcmFnZShyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCiAgICAgLCBtX2Rlc3RpbmF0aW9uUmVjdChkZXN0UmVjdCkKICAgICAsIG1f
c3JjUmVjdChzcmNSZWN0KQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCkBAIC04NDMsNiArODUz
LDEzIEBAIERyYXdJbWFnZUJ1ZmZlcjo6RHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkCiAKIERyYXdJbWFnZUJ1ZmZlcjo6fkRyYXdJ
bWFnZUJ1ZmZlcigpID0gZGVmYXVsdDsKIAorUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIERy
YXdJbWFnZUJ1ZmZlcjo6cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAg
ICBpZiAoYXV0byByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgPSBXVEY6OmdldF9pZjxSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+KG1faW1hZ2VCdWZmZXJTdG9yYWdlKSkKKyAgICAgICAg
cmV0dXJuICpyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgcmV0dXJuICgqV1RGOjpn
ZXRfaWY8UmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj4obV9pbWFnZUJ1ZmZlclN0b3JhZ2Up
KS0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7Cit9CisKIHZvaWQgRHJhd0ltYWdlQnVm
ZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAogewogICAgIC8vIFNob3VsZCBiZSBo
YW5kbGVkIGJ5IHRoZSBkZWxlZ2F0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmlu
ZGV4IGYwMTViZTVlODY2MDZlY2MyZjZjZTg1N2MxZjcxMTY3Njk0ZmU4ZTMuLjJiYWYzZmIzZmUy
YTY2NzcwNGI3NjI1NjIwZmUwMjE1M2U1MjE0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaApAQCAtMTYzNiw2ICsxNjM2LDExIEBAIE9wdGlvbmFsPFJlZjxEcmF3VGlsZWRTY2Fs
ZWRJbWFnZT4+IERyYXdUaWxlZFNjYWxlZEltYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAK
IGNsYXNzIERyYXdJbWFnZUJ1ZmZlciA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEcmF3SW1hZ2VCdWZmZXI+IGNyZWF0ZShSZWZQdHI8V2ViQ29yZTo6SW1h
Z2VCdWZmZXI+JiYgaW1hZ2VCdWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdJbWFnZUJ1ZmZlcihX
VEZNb3ZlKGltYWdlQnVmZmVyKSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpOworICAg
IH0KKwogICAgIHN0YXRpYyBSZWY8RHJhd0ltYWdlQnVmZmVyPiBjcmVhdGUoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRHJhd0ltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgZGVzdGluYXRp
b24sIHNvdXJjZSwgb3B0aW9ucykpOwpAQCAtMTY0Myw3ICsxNjQ4LDcgQEAgcHVibGljOgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd0ltYWdlQnVmZmVyKCk7CiAKLSAgICBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKCkgY29uc3Q7CiAgICAgRmxvYXRSZWN0IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3JjUmVjdDsgfQogICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QoKSBjb25zdCB7IHJldHVy
biBtX2Rlc3RpbmF0aW9uUmVjdDsgfQogICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KQEAgLTE2NTIsMTMgKzE2NTcsMTUgQEAgcHVi
bGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8RHJh
d0ltYWdlQnVmZmVyPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKKyAgICBEcmF3SW1h
Z2VCdWZmZXIoUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBEcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAgIHZv
aWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBPcHRpb25h
bDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAKLSAgICBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgdXNpbmcg
SW1hZ2VCdWZmZXJTdG9yYWdlID0gVmFyaWFudDxSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+OworICAgIEltYWdlQnVmZmVyU3RvcmFnZSBt
X2ltYWdlQnVmZmVyU3RvcmFnZTsKICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvblJlY3Q7CiAg
ICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlv
bnM7CkBAIC0xNjY3LDcgKzE2NzQsNyBAQCBwcml2YXRlOgogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KIHZvaWQgRHJhd0ltYWdlQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKLSAgICBlbmNvZGVyIDw8IG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOworICAgIGVu
Y29kZXIgPDwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCk7CiAgICAgZW5jb2RlciA8PCBt
X2Rlc3RpbmF0aW9uUmVjdDsKICAgICBlbmNvZGVyIDw8IG1fc3JjUmVjdDsKICAgICBlbmNvZGVy
IDw8IG1fb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApp
bmRleCBkMTQyYzM3NzljYjk5M2U3MzcyYmI4Yjg4ODdmY2M0Yzc1MmZlOTg5Li5mYWRmNmE4MDQ4
NTYxMzFlOTEwZTVkOTVhYWFjZWY1MzllNGQ0YzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0xODUsMTMgKzE4NSwxMCBAQCBJbWFnZURyYXdSZXN1bHQg
UmVjb3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdAogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlY29yZDsKIH0KIAotYm9v
bCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFnZUJ1
ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgUmVjb3JkZXI6OmRy
YXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCFtX2RlbGVnYXRlIHx8ICFtX2Rl
bGVnYXRlLT5sb2NrUmVtb3RlSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50KERyYXdJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOwotICAgIHJldHVybiB0cnVlOworICAgIGltYWdlQnVm
ZmVyLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKKyAgICBhcHBlbmRJdGVtQW5kVXBkYXRlRXh0ZW50
KERyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKG1ha2VSZWZQdHIoaW1hZ2VCdWZmZXIpLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucykpOwogfQogCiB2b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5oCmluZGV4IDM0MTVjMzE3YWUyMDA2NWI0Mzc0NDg5ZTkxZTA4YWEwM2Fk
MTQxNTAuLmM5NDU2YjlmNWE5MDZmMzMxMTA5OTNkZGZjMzg5MzRlNDkyYjU1NWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6
CiAgICAgY2xhc3MgRGVsZWdhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RGVs
ZWdhdGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGxvY2tSZW1vdGVJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwg
dm9pZCB3aWxsQXBwZW5kSXRlbShjb25zdCBJdGVtJikgeyB9OwogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkQXBwZW5kSXRlbShjb25zdCBJdGVtJikgeyB9OwogICAgIH07CkBAIC0xMDcsNyArMTA2
LDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2Um
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2Us
IGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIElt
YWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBkcmF3SW1hZ2VCdWZmZXIoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8v
Tmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5j
cHAKaW5kZXggYTJjOWUwOTNmYzE0YmE1YzFlODI5YzRiMjRlMTY1NDAwMzdhNDQ1NS4uOGJjNWQy
N2JlNjM1ZWZkZDVhN2QxZjZjNDczZjI4ZDg4ZjI5NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRp
b25SZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKQEAgLTU0OSwxMCAr
NTQ5LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdUaWxl
ZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXQKICAgICByZXR1cm4gR3JhcGhpY3NDb250
ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVz
dGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFp
bnRpbmdPcHRpb25zKTsKIH0KIAotYm9vbCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKIHsKICAgICAvLyBGSVhN
RTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBDYWlyb09w
ZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9u
UmVjb3JkZXIuaAppbmRleCAzODA5M2Q0MTM1YjRkN2I2NTExYTE2MDg3YWZmMTNmNjAzZWQxM2Jh
Li5kMmMzZTlmY2U2ZDlkYTBjNzVhNDNlODk2MjNkYWM3NDMxN2Y2MjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCkBAIC02OCw3
ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxl
ZEltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdl
YkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6SW1hZ2U6OlRp
bGVSdWxlLCBXZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKLSAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNv
cmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1Bh
dHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3Qg
V2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaAppbmRleCA2ZmUwYWU5YjgyZTRiNTRiZDBhNDE2MDQ0YTE2NmE3YmJhYmM1
ZWY0Li5hYmFkMGJlNzhiN2NhNjUwZjIwZjg1Y2I2ZTM0ODQwNTUwN2UxZmVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
ICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLnJlbGVhc2VJbWFnZUJ1ZmZl
cihtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5yZWxlYXNlUmVtb3RlUmVzb3VyY2UobV9yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsgfQpAQCAtMTQ4LDcgKzE0OCw2IEBA
IHByb3RlY3RlZDoKIAogICAgICAgICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90
ZUltYWdlQnVmZmVyU3RhcnQsIEZsdXNoUmVtb3RlSW1hZ2VCdWZmZXJFbmQsIDEpOwogICAgICAg
ICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+
Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5KCkudW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xp
ZW50KG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICAgICAgbV9pdGVtQ291bnRJ
bkN1cnJlbnREaXNwbGF5TGlzdCA9IDA7CiAgICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CiAg
ICAgfQpAQCAtMTYwLDE3ICsxNTksNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgVHJhY2VTY29w
ZSB0cmFjaW5nU2NvcGUoRmx1c2hSZW1vdGVJbWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUlt
YWdlQnVmZmVyRW5kKTsKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmZs
dXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3QsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSgpLnVubG9ja1JlbW90ZVJlc291cmNlc0ZvclJlbW90ZUNsaWVudChtX3JlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAgYm9vbCBsb2NrUmVtb3RlSW1h
Z2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBvdmVycmlkZQotICAg
IHsKLSAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkubG9ja1JlbW90ZUltYWdlQnVmZmVyRm9y
UmVtb3RlQ2xpZW50KGltYWdlQnVmZmVyLCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGltYWdlQnVmZmVyLmZsdXNoRHJh
d2luZ0NvbnRleHQoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgdm9pZCB3
aWxsQXBwZW5kSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYpIG92ZXJyaWRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggZjlhN2RjNWRl
MDI4NzcxNGU2NmVjYjE3MTc0MWMyZTg5NTM4ZTkxMi4uYjExYjQwM2E5MGJiY2M5NmMxNjIyYmNm
ZDM2MmViYTYyODdjNjYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtMTI4LDYgKzEyOCw3IEBAIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pCiAKIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKKyAg
ICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5yZWxlYXNlSW1hZ2VCdWZmZXIocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGU5OWUzZDcxY2E5MjYyNmE2OTYyY2M5NDg3N2E3YzEx
Yjg1ZWRiYTcuLmNhMDU1ZmQzNmZjZTFhMTJiYjI1YmZlNmQ1OTM1MTY5NGJjZGZhZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtODUsNyArODUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7
CiAgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0Rmx1c2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsgKnRo
aXMgfTsKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllciB7IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggM2Y1YTczYmVjM2Jm
Mjg2ZTUyOTgxZGU0OGI5MGMzMWQwMTlkOGMzZC4uODI1MDQyMTdiZTc2MTViNDg3YTBjZDMyZjdk
ZjE4NzcyNDY3MmViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAt
MjgsMTYgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgIlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSkKLSAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLXsKLX0KLQogdm9pZCBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGltYWdlQnVm
ZmVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgaW1hZ2VCdWZmZXIpOwpAQCAtNTMsNzUgKzQ2LDYgQEAgdm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VJbWFnZUJ1ZmZlcihSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmUKIHsKICAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlcnMu
cmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNFRChm
b3VuZCwgZm91bmQpOwotCi0gICAgLy8gVGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRo
aXMgcmVzb3VyY2UgdW5sZXNzIGl0J3MgcGVuZGluZyByZXBsYXlpbmcgYmFjay4KLSAgICByZWxl
YXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLX0KLQotYm9v
bCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmxvY2tSZW1vdGVJbWFnZUJ1ZmZlckZvclJlbW90
ZUNsaWVudChJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQotewotICAgIGlmICghaW1hZ2VCdWZmZXIucmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmIChjYWNoZWRJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSkgIT0gJmltYWdlQnVmZmVyKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgbG9ja1JlbW90ZVJlc291cmNl
Rm9yUmVtb3RlQ2xpZW50KGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
LCByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVu
dChSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKLXsK
LSAgICAvLyBBZGQgdGhlICJyZXNvdXJjZSAtPiBjbGllbnQiIGRlcGVuZGVuY3kgaW4gbV9sb2Nr
ZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuCi0gICAgYXV0byYgY2xpZW50cyA9IG1f
bG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLmVuc3VyZShyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIsIFsmXSB7Ci0gICAgICAgIHJldHVybiBSZW1vdGVDbGllbnRzSGFzaFNl
dCgpOwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLQotICAgIGNsaWVudHMuYWRkKHJlbW90ZUNs
aWVudElkZW50aWZpZXIpOwotfQotCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVs
ZWFzZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCi17Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdVbmxvY2tSZW1vdGVS
ZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuY29udGFpbnMocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSk7Ci0KLSAgICAvLyBJZiB3ZSBoYXZlIHJlY29yZGVkIHJlc291cmNlIC0+IGNsaWVudCBk
ZXBlbmRlbmN5IGJlZm9yZSBpbiBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50
cywgbW92ZSB0aGlzCi0gICAgLy8gZGVwZW5kZW5jeSB0byBtX3BlbmRpbmdVbmxvY2tSZW1vdGVS
ZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuIE90aGVyd2lzZSByZW1vdmUgdGhlIHJlc291cmNlIGlu
IHRoZSBHUFUgUHJvY2Vzcy4KLSAgICBpZiAobV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90
ZUNsaWVudHMuY29udGFpbnMocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAg
bV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLmFkZChyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIsIG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGll
bnRzLnRha2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSk7Ci0gICAgZWxzZQotICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OnVubG9ja1JlbW90ZVJlc291cmNlc0ZvclJlbW90ZUNsaWVudChSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKLXsKLSAgICBhdXRvIHJlbW92
ZVJlbW90ZUNsaWVudCA9IFsmXShSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwJiByZW1vdGVS
ZXNvdXJjZUZvclJlbW90ZUNsaWVudHMsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1v
dGVDbGllbnRJZGVudGlmaWVyKSB7Ci0gICAgICAgIFZlY3RvcjxSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXI+IHJlbW90ZVJlc291cmNlQ2xpZW50c1RvQmVSZW1vdmVkOwotCi0gICAgICAgIC8v
IFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmNpZXMgZnJvbSByZW1v
dGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwLgotICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiByZW1v
dGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMpIHsKLSAgICAgICAgICAgIHBhaXIudmFsdWUucmVt
b3ZlKHJlbW90ZUNsaWVudElkZW50aWZpZXIpOwotICAgICAgICAgICAgaWYgKHBhaXIudmFsdWUu
aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJlbW90ZVJlc291cmNlQ2xpZW50c1RvQmVSZW1v
dmVkLmFwcGVuZChwYWlyLmtleSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBSZXR1cm4gYSBs
aXN0IG9mIHRoZSB1bnJlZmVyZW5jZWQgcmVzb3VyY2VzLgotICAgICAgICByZXR1cm4gcmVtb3Rl
UmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7Ci0gICAgfTsKLQotICAgIC8vIFJlbW92ZSBhbGwg
dGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmNpZXMgZnJvbSBtX2xvY2tlZFJlbW90ZVJl
c291cmNlRm9yUmVtb3RlQ2xpZW50cy4KLSAgICBmb3IgKGF1dG8gcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIDogcmVtb3ZlUmVtb3RlQ2xpZW50KG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JS
ZW1vdGVDbGllbnRzLCByZW1vdGVDbGllbnRJZGVudGlmaWVyKSkKLSAgICAgICAgbV9sb2NrZWRS
ZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcik7Ci0KLSAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVw
ZW5kZW5jaWVzIGZyb20gbV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGll
bnRzLgotICAgIGZvciAoYXV0byByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVS
ZW1vdGVDbGllbnQobV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRz
LCByZW1vdGVDbGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICAvLyBSZW1vdmUgdGhlIHVucmVm
ZXJlbmNlZCByZXNvdXJjZXMgZnJvbSBtX3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxl
YXNlSGFzaE1hcC4KLSAgICAgICAgbV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1v
dGVDbGllbnRzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotCi0gICAgICAg
IC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgotICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKaW5kZXggZTg2YmU3ZGViMDkyYmE4
ZjEzYjdkYjU1YWVlODc4MDJjNzhkZDQ4Yy4uYmRlODE1YTEzYzFkOTUxZDUyMDQ5MzY4YTg1Yzhj
NDBjYTE0ZGNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCkBAIC0zNiwzMSAr
MzYsMTggQEAgY2xhc3MgSW1hZ2VCdWZmZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7Ci0KIGNsYXNzIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eSB7CiBwdWJsaWM6Ci0gICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSYpOworICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpID0g
ZGVmYXVsdDsKIAogICAgIHZvaWQgY2FjaGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkltYWdlQnVmZmVyKik7CiAgICAgV2ViQ29yZTo6
SW1hZ2VCdWZmZXIqIGNhY2hlZEltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CiAgICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAotICAgIGJvb2wgbG9ja1JlbW90ZUltYWdlQnVmZmVy
Rm9yUmVtb3RlQ2xpZW50KFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOwotICAgIHZvaWQgdW5s
b2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLQogcHJpdmF0ZToKLSAgICB1
c2luZyBSZW1vdGVDbGllbnRzSGFzaFNldCA9IEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyPjsKLSAgICB1c2luZyBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFw
ID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUNs
aWVudHNIYXNoU2V0PjsKICAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5SGFzaE1hcCA9
IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcio+OwogCi0gICAgdm9pZCBsb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGll
bnQoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgdm9pZCBy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKLQogICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHlIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwot
ICAgIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZv
clJlbW90ZUNsaWVudHM7Ci0gICAgUmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3BlbmRp
bmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHM7Ci0gICAgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413108</attachid>
            <date>2020-11-03 14:48:02 -0800</date>
            <delta_ts>2020-11-05 15:46:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218529-20201103144801.patch</filename>
            <type>text/plain</type>
            <size>28610</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFjN2FmMjIwYzg0YmQ3
NmU3MDgzZWU2MmZkNGFlNWJjNzRjZGZjMi4uNTQ5Y2MxOGE4YjJmZjY2OTZhZTI2NjllYmYwZTU4
MTk1ZjEwYTMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTExLTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
VXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMgbGlmZSBj
eWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gcmVjb3JkaW5nIGEgRHJhd0ltYWdlQnVm
ZmVyIGl0ZW0sIGEgUmVmPEltYWdlQnVmZmVyPiBvZiB0aGUgc291cmNlCisgICAgICAgIEltYWdl
QnVmZmVyIHdpbGwgYmUgYWRkZWQgdG8gYSBIYXNoU2V0IGluIERpc3BsYXlMaXN0LiBUaGUgZ29h
bCBpcyBrZWVwCisgICAgICAgIHRoaXMgSW1hZ2VCdWZmZXIgYWxpdmUgdGlsbCB0aGUgRGlzcGxh
eUxpc3QgaXMgc2VudCB0byB0aGUgR1BVLiBUaGUKKyAgICAgICAgSW1hZ2VCdWZmZXJzJyBIYXNo
U2V0IHdpbGwgYmUgY2xlYXJlZCBpbiBEaXNwbGF5TGlzdDo6Y2xlYXIoKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6Y2xlYXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjpyZWdpc3RlckltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OlJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRlbGVnYXRlOjp+RGVsZWdhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0ZTo6bG9ja1JlbW90ZUltYWdlQnVm
ZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkNh
aXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5o
OgorCiAyMDIwLTExLTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlcGxhY2UgRGlzcGxheUxpc3Q6OlJlY29yZGVyOjpEZWxlZ2F0ZTo6KHdpbGx8
ZGlkKUFwcGVuZEl0ZW0gd2l0aCAod2lsbHxkaWQpQXBwZW5kSXRlbU9mVHlwZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAzNGYzN2M4YzNjOTBhMGQxYjVmMmZmMmYyYWVlN2E1OGYwNTc4YmQyLi4wNjYzNDRhYTlhOWUw
ZDU4ODE4NGQ0Mzk5OTBlZmRmMTA4ZWI2YzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisy
MDIwLTExLTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAg
IFtHUFUgUHJvY2Vzc10gVXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29u
dHJvbCBpdHMgbGlmZSBjeWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgYSBSZWY8
SW1hZ2VCdWZmZXI+IGlzIG1haW50YWluZWQgaW4gdGhlIERpc3BsYXlMaXN0IGZvciBldmVyeSAK
KyAgICAgICAgRHJhd0ltYWdlQnVmZmVyIGl0ZW0gdGlsbCBpdCdzIGNsZWFyZWQsIG5vIG5lZWQg
dG8gbG9jayB0aGUgcmVtb3RlIHJlc291cmNlCisgICAgICAgIGluIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6
flJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVS
ZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1JlbW90ZUlt
YWdlQnVmZmVyRm9yUmVtb3RlQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpsb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJl
bGVhc2VSZW1vdGVSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6dW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaDoKKwogMjAyMC0xMS0wMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVs
ZWdhdGU6Oih3aWxsfGRpZClBcHBlbmRJdGVtIHdpdGggKHdpbGx8ZGlkKUFwcGVuZEl0ZW1PZlR5
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCmluZGV4IDljZjE4MjM4MzIwZDYzOTQ5ZGQ0ZDM4MTYzOGQzM2NmMzA2MTYyZTYu
LjUyNTYwOTQzNDNmNGMyMTIzYjhhZmRmMGFjZjYxYzNlMzcyYWYxMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAt
ODEyLDggKzgxMiwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aQogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwgJiYgbV9pbXBs
LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpKQor
ICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpIHsK
KyAgICAgICAgbV9pbXBsLT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgSW50ZXJwb2xhdGlv
blF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlz
LCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOwogICAgIGltYWdlLmRyYXcoKnRoaXMs
IGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwpAQCAtODQwLDggKzg0MiwxMCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2UsIGNvbnN0CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT5kcmF3SW1hZ2VC
dWZmZXIoKmltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKSkKKyAgICBpZiAobV9p
bXBsICYmIGltYWdlLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkgeworICAgICAgICBt
X2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlv
bnMpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlN
YWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25z
LmludGVycG9sYXRpb25RdWFsaXR5KCkpOwogICAgIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5n
KFdURk1vdmUoaW1hZ2UpLCAqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmgKaW5kZXggMzUzNmQyZjNiNzNjZDQ4OGU5OGVjMmU5ZmRlMjQ4ZjgyMzhjMzljZS4u
NmUyMjJjMDJmMmQ5YWUzNjQwNjFiNzNkOWMzN2I3N2IyOWIwM2I0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaApA
QCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAgICAgdmly
dHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxl
IHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKIAotICAgIHZpcnR1YWwg
Ym9vbCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1Bh
dHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcAppbmRleCA4ZWY0Zjc4
NmI3MjQ5MTQyNDU2ZWZmMWYwYWQ4MjE2Y2M5MDU1MzY3Li42Y2EyNThiNTVkMWNmNWY4YjVmNWZi
NmE0NmJiMDYxZDFjNjUwN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5j
cHAKQEAgLTI3OSwxMCArMjc5LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dElt
cGxDYWlybzo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG8KICAgICByZXR1
cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4
dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwg
dlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHRJ
bXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpCiB7CiAgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KLSAgICByZXR1cm4gZmFsc2U7
CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENh
aXJvLmgKaW5kZXggMWM4MjcxMzBjMmE1ZmUyOGY3NTM1ZTE5NDVhMzNkYzk2ODYyMDUxNC4uOGE5
MzdkYTIzOWQ2ZDZjZGQwYTA0OGNjY2Q4MzY3OTEwNWQ5N2NhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0SW1wbENhaXJvLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGls
ZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0U2l6ZSYsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIAotICAgIGJvb2wgZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggZmZkOWQ2ZGRmYjYwYWMxYTA5NzIy
ZGZhZGM4MmYxMTUzMGU5MjBhMS4uNDI0ZDlhMDRjMTYzNDJkOTA2OTY2MzhhMjJjZjM3Mjc0ZTI4
ZTBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC01MSw2ICs1MSw3IEBAIHZvaWQg
RGlzcGxheUxpc3Q6OmR1bXAoKSBjb25zdAogdm9pZCBEaXNwbGF5TGlzdDo6Y2xlYXIoKQogewog
ICAgIG1fbGlzdC5jbGVhcigpOworICAgIG1faW1hZ2VCdWZmZXJzLmNsZWFyKCk7CiB9CiAKIGJv
b2wgRGlzcGxheUxpc3Q6OnNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywgY29u
c3QgSXRlbSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKaW5kZXggZjljOTM5OGYwYjcyMjI0
ZjY5MDJhMzhmNzk1NzU2MzJkMWIxYTMyMC4uZjJlMmRlMTM2MzEwYWUyZGZjOTY3ZDAxNDRjMzMy
NDcyNzAyMTczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKQEAgLTI4LDcgKzI4LDkgQEAKICNp
bmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1UeXBlLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNp
bmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTEyMywxMSArMTI1LDE3IEBAIHByaXZhdGU6CiAgICAgICAgIG1fbGlzdC5hcHBlbmQo
aXRlbSk7CiAgICAgfQogCisgICAgdm9pZCByZWdpc3RlckltYWdlQnVmZmVyKFJlZjxXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcj4mJiBpbWFnZUJ1ZmZlcikKKyAgICB7CisgICAgICAgIG1faW1hZ2VCdWZm
ZXJzLmFkZChXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CisgICAgfQorICAgIAogICAgIHN0YXRpYyBi
b29sIHNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncywgY29uc3QgSXRlbSYpOwogCiAgICAg
VmVjdG9yPFJlZjxJdGVtPj4mIGxpc3QoKSB7IHJldHVybiBtX2xpc3Q7IH0KIAogICAgIFZlY3Rv
cjxSZWY8SXRlbT4+IG1fbGlzdDsKKyAgICBIYXNoU2V0PFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4+IG1faW1hZ2VCdWZmZXJzOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAKaW5kZXggNTZiNTdmMDdjM2MzYzkzY2QzZjAxOTBmNWQ0YWNkMWJiNmMyYTRlOS4uMWI4
YWIyOWRkZjAyZTE2MDFiOTBlODg3ODA1MjliMjRjZDc2MzdmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxh
eUxpc3RSZXBsYXllci5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiSW1h
Z2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
ci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwCmluZGV4IGJmNWI4M2IyMmMzZjRjNzI1ODFlNjhiOWE1MmQ3NzMwMmQy
ODI5NGUuLjhhNGQzNzBkZGNjM2IyZjViMTMyZWZlZDI3NmYwMTk0MjU0MjQwZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTE4NSwxMyArMTg1LDExIEBA
IEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlk
UmVjb3JkOwogfQogCi1ib29sIFJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1h
Z2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQor
dm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFn
ZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBpZiAoIW1f
ZGVsZWdhdGUgfHwgIW1fZGVsZWdhdGUtPmxvY2tSZW1vdGVJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZl
cikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQorICAgIGltYWdlQnVmZmVyLmZsdXNoRHJhd2lu
Z0NvbnRleHQoKTsKKyAgICBtX2Rpc3BsYXlMaXN0LnJlZ2lzdGVySW1hZ2VCdWZmZXIobWFrZVJl
ZihpbWFnZUJ1ZmZlcikpOwogICAgIGFwcGVuZEl0ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0ltYWdl
QnVmZmVyOjpjcmVhdGUoaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCks
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKIHZv
aWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2Us
IGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggOTJjMDUxM2E3
ZjljNmJjYTUyNTA0NDhmMzA4M2ZkZTFjZDY2ZDg5NC4uOGJkNjIxZmFkMzBjOTIyNDJkZTlkMDM4
MmZhMjM3ZDBhNDZlYzY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5o
CkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBjbGFzcyBEZWxlZ2F0ZSB7CiAgICAgcHVi
bGljOgogICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0ZSgpIHsgfQotICAgICAgICB2aXJ0dWFsIGJv
b2wgbG9ja1JlbW90ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJikgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1U
eXBlKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5
cGUpIHsgfQogICAgIH07CkBAIC0xMDcsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZURy
YXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUs
IGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBv
dmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3Qg
RmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6
OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwog
Ci0gICAgYm9vbCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3Qg
RmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9O
aWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKaW5kZXggYTJjOWUwOTNmYzE0YmE1YzFl
ODI5YzRiMjRlMTY1NDAwMzdhNDQ1NS4uOGJjNWQyN2JlNjM1ZWZkZDVhN2QxZjZjNDczZjI4ZDg4
ZjI5NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVy
YXRpb25SZWNvcmRlci5jcHAKQEAgLTU0OSwxMCArNTQ5LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IENh
aXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3Qg
RmxvYXQKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBs
KGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxl
RmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotYm9vbCBD
YWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJikKIHsKICAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdl
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3Bl
cmF0aW9uUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaAppbmRleCAzODA5M2Q0MTM1
YjRkN2I2NTExYTE2MDg3YWZmMTNmNjAzZWQxM2JhLi5kMmMzZTlmY2U2ZDlkYTBjNzVhNDNlODk2
MjNkYWM3NDMxN2Y2MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5oCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdl
YkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW1h
Z2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiwgV2ViQ29yZTo6SW1hZ2U6OlRpbGVSdWxlLCBXZWJDb3JlOjpJbWFnZTo6VGls
ZVJ1bGUsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAK
LSAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
c291cmNlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBz
b3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
cyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlv
bnMmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA1NTBiOGVh
NGJjMGYxNDQ4YjgwYmRiYTYxZDIzMjMyMTA2ODUwOTBmLi5mYTU5YjA5Y2MwZTI0ZjJlY2Y2Y2Ni
NGRiMTBkNDJiMWRmYmNiOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNTUs
NyArNTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQo
KTsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSgpLnJlbGVhc2VJbWFnZUJ1ZmZlcihtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZWxlYXNlUmVt
b3RlUmVzb3VyY2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcjsgfQpAQCAtMTQ4LDcgKzE0OCw2IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBUcmFj
ZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90ZUltYWdlQnVmZmVyU3RhcnQsIEZsdXNoUmVt
b3RlSW1hZ2VCdWZmZXJFbmQsIDEpOwogICAgICAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChk
aXNwbGF5TGlzdCwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgICAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkudW5s
b2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICAgICAgbV9pdGVtQ291bnRJbkN1cnJlbnREaXNwbGF5TGlzdCA9IDA7CiAg
ICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CiAgICAgfQpAQCAtMTYwLDE3ICsxNTksNiBAQCBw
cm90ZWN0ZWQ6CiAKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRmx1c2hSZW1vdGVJ
bWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUltYWdlQnVmZmVyRW5kKTsKICAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3Qs
IG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLnVubG9ja1JlbW90ZVJl
c291cmNlc0ZvclJlbW90ZUNsaWVudChtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0g
ICAgfQotCi0gICAgYm9vbCBsb2NrUmVtb3RlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXImIGltYWdlQnVmZmVyKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgaWYgKCFtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
aWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5KCkubG9ja1JlbW90ZUltYWdlQnVmZmVyRm9yUmVtb3RlQ2xpZW50KGltYWdlQnVmZmVyLCBt
X3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIGltYWdlQnVmZmVyLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGUpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKaW5kZXggZjlhN2RjNWRlMDI4NzcxNGU2NmVjYjE3MTc0MWMyZTg5
NTM4ZTkxMi4uYjExYjQwM2E5MGJiY2M5NmMxNjIyYmNmZDM2MmViYTYyODdjNjYxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMTI4LDYgKzEyOCw3IEBA
IERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pCiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5yZWxlYXNlSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZWxlYXNlUmVtb3RlUmVz
b3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4
IGU5OWUzZDcxY2E5MjYyNmE2OTYyY2M5NDg3N2E3YzExYjg1ZWRiYTcuLmNhMDU1ZmQzNmZjZTFh
MTJiYjI1YmZlNmQ1OTM1MTY5NGJjZGZhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaApAQCAtODUsNyArODUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW1hZ2VCdWZm
ZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBmbHVzaERpc3BsYXlM
aXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsgKnRoaXMgfTsKKyAgICBSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk7CiAgICAgUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciB7IFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5jcHAKaW5kZXggM2Y1YTczYmVjM2JmMjg2ZTUyOTgxZGU0OGI5MGMzMWQwMTlk
OGMzZC4uODI1MDQyMTdiZTc2MTViNDg3YTBjZDMyZjdkZjE4NzcyNDY3MmViMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMjgsMTYgKzI4LDkgQEAKIAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oIgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eShSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICA6
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSkKLXsKLX0KLQogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZm
ZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKQogewogICAgIGF1dG8gYWRkUmVz
dWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgaW1h
Z2VCdWZmZXIpOwpAQCAtNTMsNzUgKzQ2LDYgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OnJlbGVhc2VJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKIHsK
ICAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlcnMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOwotCi0gICAgLy8g
VGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UgdW5sZXNzIGl0J3Mg
cGVuZGluZyByZXBsYXlpbmcgYmFjay4KLSAgICByZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLX0KLQotYm9vbCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmxvY2tSZW1vdGVJbWFnZUJ1ZmZlckZvclJlbW90ZUNsaWVudChJbWFnZUJ1ZmZlciYgaW1h
Z2VCdWZmZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlm
aWVyKQotewotICAgIGlmICghaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChjYWNoZWRJbWFnZUJ1ZmZlcihp
bWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkgIT0gJmltYWdlQnVmZmVy
KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCi0gICAgbG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50KGltYWdlQnVm
ZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCByZW1vdGVDbGllbnRJZGVudGlmaWVy
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudChSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKLXsKLSAgICAvLyBBZGQgdGhlICJyZXNvdXJj
ZSAtPiBjbGllbnQiIGRlcGVuZGVuY3kgaW4gbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90
ZUNsaWVudHMuCi0gICAgYXV0byYgY2xpZW50cyA9IG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JS
ZW1vdGVDbGllbnRzLmVuc3VyZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFsmXSB7Ci0g
ICAgICAgIHJldHVybiBSZW1vdGVDbGllbnRzSGFzaFNldCgpOwotICAgIH0pLml0ZXJhdG9yLT52
YWx1ZTsKLQotICAgIGNsaWVudHMuYWRkKHJlbW90ZUNsaWVudElkZW50aWZpZXIpOwotfQotCi12
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci0g
ICAgQVNTRVJUKCFtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMu
Y29udGFpbnMocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSk7Ci0KLSAgICAvLyBJZiB3ZSBo
YXZlIHJlY29yZGVkIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmN5IGJlZm9yZSBpbiBtX2xv
Y2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cywgbW92ZSB0aGlzCi0gICAgLy8gZGVw
ZW5kZW5jeSB0byBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMu
IE90aGVyd2lzZSByZW1vdmUgdGhlIHJlc291cmNlIGluIHRoZSBHUFUgUHJvY2Vzcy4KLSAgICBp
ZiAobV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuY29udGFpbnMocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgbV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVz
b3VyY2VGb3JSZW1vdGVDbGllbnRzLmFkZChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIG1f
bG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLnRha2UocmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKSk7Ci0gICAgZWxzZQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKLX0KLQotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnVubG9ja1JlbW90ZVJlc291
cmNlc0ZvclJlbW90ZUNsaWVudChSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xp
ZW50SWRlbnRpZmllcikKLXsKLSAgICBhdXRvIHJlbW92ZVJlbW90ZUNsaWVudCA9IFsmXShSZW1v
dGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwJiByZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMs
IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKSB7Ci0g
ICAgICAgIFZlY3RvcjxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbW90ZVJlc291cmNl
Q2xpZW50c1RvQmVSZW1vdmVkOwotCi0gICAgICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNl
IC0+IGNsaWVudCBkZXBlbmRlbmNpZXMgZnJvbSByZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFw
LgotICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiByZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVu
dHMpIHsKLSAgICAgICAgICAgIHBhaXIudmFsdWUucmVtb3ZlKHJlbW90ZUNsaWVudElkZW50aWZp
ZXIpOwotICAgICAgICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAg
ICAgIHJlbW90ZVJlc291cmNlQ2xpZW50c1RvQmVSZW1vdmVkLmFwcGVuZChwYWlyLmtleSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBSZXR1cm4gYSBsaXN0IG9mIHRoZSB1bnJlZmVyZW5jZWQg
cmVzb3VyY2VzLgotICAgICAgICByZXR1cm4gcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92
ZWQ7Ci0gICAgfTsKLQotICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBk
ZXBlbmRlbmNpZXMgZnJvbSBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy4K
LSAgICBmb3IgKGF1dG8gcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIDogcmVtb3ZlUmVtb3Rl
Q2xpZW50KG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLCByZW1vdGVDbGll
bnRJZGVudGlmaWVyKSkKLSAgICAgICAgbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNs
aWVudHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0KLSAgICAvLyBSZW1v
dmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5kZW5jaWVzIGZyb20gbV9wZW5kaW5n
VW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLgotICAgIGZvciAoYXV0byByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVSZW1vdGVDbGllbnQobV9wZW5kaW5nVW5s
b2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLCByZW1vdGVDbGllbnRJZGVudGlmaWVy
KSkgewotICAgICAgICAvLyBSZW1vdmUgdGhlIHVucmVmZXJlbmNlZCByZXNvdXJjZXMgZnJvbSBt
X3JlbW90ZVJlc291cmNlQ2xpZW50c1BlbmRpbmdSZWxlYXNlSGFzaE1hcC4KLSAgICAgICAgbV9w
ZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLnJlbW92ZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwotCi0gICAgICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNz
IHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKLSAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5LmgKaW5kZXggZTg2YmU3ZGViMDkyYmE4ZjEzYjdkYjU1YWVlODc4MDJjNzhkZDQ4
Yy4uYmRlODE1YTEzYzFkOTUxZDUyMDQ5MzY4YTg1YzhjNDBjYTE0ZGNmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5oCkBAIC0zNiwzMSArMzYsMTggQEAgY2xhc3MgSW1hZ2VCdWZm
ZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk7Ci0KIGNsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB7CiBwdWJsaWM6Ci0gICAg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYpOwor
ICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgY2Fj
aGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkltYWdlQnVmZmVyKik7CiAgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGNhY2hlZEltYWdl
QnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBy
ZWxlYXNlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
IAotICAgIGJvb2wgbG9ja1JlbW90ZUltYWdlQnVmZmVyRm9yUmVtb3RlQ2xpZW50KFdlYkNvcmU6
OkltYWdlQnVmZmVyJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZUNsaWVudElkZW50aWZpZXIpOwotICAgIHZvaWQgdW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVt
b3RlQ2xpZW50KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGll
bnRJZGVudGlmaWVyKTsKLQogcHJpdmF0ZToKLSAgICB1c2luZyBSZW1vdGVDbGllbnRzSGFzaFNl
dCA9IEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPjsKLSAgICB1
c2luZyBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUNsaWVudHNIYXNoU2V0PjsKICAgICB1c2lu
ZyBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5SGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlcio+OwogCi0gICAgdm9p
ZCBsb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLQogICAgIFJlbW90ZUltYWdlQnVm
ZmVyUHJveHlIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwotICAgIFJlbW90ZVJlc291cmNlQ2xpZW50
c0hhc2hNYXAgbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHM7Ci0gICAgUmVt
b3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZv
clJlbW90ZUNsaWVudHM7Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413361</attachid>
            <date>2020-11-05 15:46:39 -0800</date>
            <delta_ts>2020-11-05 20:20:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218529-20201105154638.patch</filename>
            <type>text/plain</type>
            <size>41398</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjODFmNmY1YTRjM2Y5
ZTE2M2U0YTgwOTY5YjM3ZGM2MDYyZTI2My4uOTY1MzA0MzA0ZGMzN2NlYmQ1NjdiNTdiNjI4NTgy
N2EzMzQ0MjViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTExLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
VXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMgbGlmZSBj
eWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gcmVjb3JkaW5nIGEgRHJhd0ltYWdlQnVm
ZmVyIGl0ZW0sIGEgUmVmPEltYWdlQnVmZmVyPiBvZiB0aGUgc291cmNlCisgICAgICAgIEltYWdl
QnVmZmVyIHdpbGwgYmUgYWRkZWQgdG8gYSBIYXNoU2V0IGluIERpc3BsYXlMaXN0LiBUaGUgZ29h
bCBpcyBrZWVwCisgICAgICAgIHRoaXMgSW1hZ2VCdWZmZXIgYWxpdmUgdGlsbCB0aGUgRGlzcGxh
eUxpc3QgaXMgc2VudCB0byB0aGUgR1BVLiBUaGUKKyAgICAgICAgSW1hZ2VCdWZmZXJzJyBIYXNo
U2V0IHdpbGwgYmUgY2xlYXJlZCBpbiBEaXNwbGF5TGlzdDo6Y2xlYXIoKS4KKworICAgICAgICBU
aGlzIEhhc2hTZXQgY2FuIGJlIHVzZWQgdG8gcmVzb2x2ZSB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmZXIgdG8gYW4KKyAgICAgICAgSW1hZ2VCdWZmZXIgd2hlbiByZXBsYXlpbmcgYmFjayB0
aGUgRGlzcGxheUxpc3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5n
SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dEltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdDo6Y2xlYXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
OjppbWFnZUJ1ZmZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0OjpjYWNoZUltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6RGVs
ZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3Jk
ZXI6OkRlbGVnYXRlOjpsb2NrUmVtb3RlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6UmVwbGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjphcHBseUl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpyZXBsYXkpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRp
b25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVy
OjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
Y2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKwogMjAyMC0xMS0wNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViU29ja2V0IGNvbnN0
cnVjdG9yIHNob3VsZCBub3QgdGhyb3cgaW4gY2FzZSBwb3J0IGlzIGJsb2NrZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMjM3ZDE3MTA5OGQxNjFiYmVhM2UyODYzMDFjYmIyMjY4ZDczZDRhZS4uN2U2ZjY1YjBlZGEx
MzkwNDBkZWEzNjgzZDQxZDk5MGVmOWNjMDA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAor
MjAyMC0xMS0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdIFVzZSB0aGUgUmVmIGNvdW50aW5nIG9mIEltYWdlQnVmZmVyIHRvIGNv
bnRyb2wgaXRzIGxpZmUgY3ljbGUgaW4gV2ViIFByb2Nlc3MgYW5kIEdQVSBQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWNhdXNlIGZvciBl
dmVyeSBEcmF3SW1hZ2VCdWZmZXIgaXRlbSwgYSBSZWY8SW1hZ2VCdWZmZXI+IHdpbGwgYmUgbWFp
bnRhaW5lZAorICAgICAgICBpbiB0aGUgRGlzcGxheUxpc3QgaXRlbSB0aWxsIGl0J3MgY2xlYXJl
ZCwgbm8gbmVlZCB0byBsb2NrIHRoZSByZW1vdGUgcmVzb3VyY2UKKyAgICAgICAgaW4gUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LgorCisgICAgICAgIEFsbCB3ZSBuZWVkIHRvIGlzIHRvIHBhc3Mg
dGhlIEltYWdlQnVmZmVySGFzaE1hcCB3aGljaCBpcyBtYWludGFpbmVkIGJ5CisgICAgICAgIHRo
ZSBSZW1vdGVSZXNvdXJjZUNhY2hlIHRvIHRoZSBEaXNwbGF5TGlzdDo6UmVwbGF5ZXIuIEl0IGlz
IGdvaW5nIHRvIGJlCisgICAgICAgIHVzZWQgdG8gcmVzb2x2ZSB0aGUgcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmZXIoKSB0byBhbiBJbWFnZUJ1ZmZlciBzbworICAgICAgICB0aGUgRHJhd0ltYWdl
QnVmZmVyIGNhbiBiZSBhcHBsaWVkIGluIHRoZSBHUFVQIHNpZGUuIFNvIG5vIG5lZWQgdG8gc3Bl
Y2lhbAorICAgICAgICBjYXNlIHRoZSBhcHBseSBvZiB0aGUgRHJhd0ltYWdlQnVmZmVyIGluIHRo
ZSBSZW1vdGVJbWFnZUJ1ZmZlci4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmFwcGx5UmVzb3VyY2VJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVtb3RlUmVzb3VyY2VDYWNoZSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmltYWdlQnVmZmVycyBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Ojp+UmVtb3RlSW1hZ2VCdWZmZXJQcm94
eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZUltYWdlQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmxvY2tSZW1vdGVJbWFnZUJ1ZmZlckZvclJlbW90ZUNsaWVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1JlbW90ZVJlc291
cmNlRm9yUmVtb3RlQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnVubG9ja1JlbW90ZVJlc291cmNl
c0ZvclJlbW90ZUNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjAtMTEtMDUgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRo
ZSBidWlsZCB3aXRoIHJlY2VudCBTREtzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggOWNmMTgyMzgzMjBkNjM5NDlk
ZDRkMzgxNjM4ZDMzY2YzMDYxNjJlNi4uNTI1NjA5NDM0M2Y0YzIxMjNiOGFmZGYwYWNmNjFjM2Uz
NzJhZjEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuY3BwCkBAIC04MTIsOCArODEyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKG1faW1wbCAmJiBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRp
b24sIHNvdXJjZSwgb3B0aW9ucykpCisgICAgaWYgKG1faW1wbCAmJiBpbWFnZS5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSkgeworICAgICAgICBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihp
bWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CiAgICAgaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CkBA
IC04NDAsOCArODQyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1h
Z2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1w
bCAmJiBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2Us
IG9wdGlvbnMpKQorICAgIGlmIChtX2ltcGwgJiYgaW1hZ2UtPnJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcigpKSB7CisgICAgICAgIG1faW1wbC0+ZHJhd0ltYWdlQnVmZmVyKCppbWFnZSwgZGVz
dGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAg
ICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JU
aGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CiAgICAgSW1h
Z2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92ZShpbWFnZSksICp0aGlzLCBkZXN0aW5hdGlv
biwgc291cmNlLCBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaAppbmRleCAzNTM2ZDJmM2I3M2NkNDg4ZTk4
ZWMyZTlmZGUyNDhmODIzOGMzOWNlLi42ZTIyMmMwMmYyZDlhZTM2NDA2MWI3M2Q5YzM3Yjc3YjI5
YjAzYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0SW1wbC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYg
c291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxl
IGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JikgPSAwOwogCi0gICAgdmlydHVhbCBib29sIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0lt
YWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBj
b25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGU4ZTQ4ODY1ZDlkNzhmZWI4ZTdlNDgwODhk
OGNjM2E5ZTkwNzI0MjkuLjkyMDRhZDEwYTgxMDY4MDZkZTkyNmYyZWVmZmMxNjM0Yzc3MDBlNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApA
QCAtMTE5LDQgKzExOSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0NvbnN1
bWluZyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogfTsK
IAordXNpbmcgSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlZjxJbWFnZUJ1ZmZlcj4+OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRJbXBsQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcAppbmRleCA4ZWY0Zjc4NmI3MjQ5MTQy
NDU2ZWZmMWYwYWQ4MjE2Y2M5MDU1MzY3Li42Y2EyNThiNTVkMWNmNWY4YjVmNWZiNmE0NmJiMDYx
ZDFjNjUwN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKQEAgLTI3
OSwxMCArMjc5LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG8KICAgICByZXR1cm4gR3JhcGhp
Y3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFn
ZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGlt
YWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86
OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCiB7CiAg
ICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KLSAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZl
SW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKaW5k
ZXggMWM4MjcxMzBjMmE1ZmUyOGY3NTM1ZTE5NDVhMzNkYzk2ODYyMDUxNC4uOGE5MzdkYTIzOWQ2
ZDZjZGQwYTA0OGNjY2Q4MzY3OTEwNWQ5N2NhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBk
cmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQm
LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6
ZSYsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIAotICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3Qg
RmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggZmZkOWQ2ZGRmYjYwYWMxYTA5NzIyZGZhZGM4MmYx
MTUzMGU5MjBhMS4uNDI0ZDlhMDRjMTYzNDJkOTA2OTY2MzhhMjJjZjM3Mjc0ZTI4ZTBlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC01MSw2ICs1MSw3IEBAIHZvaWQgRGlzcGxheUxp
c3Q6OmR1bXAoKSBjb25zdAogdm9pZCBEaXNwbGF5TGlzdDo6Y2xlYXIoKQogewogICAgIG1fbGlz
dC5jbGVhcigpOworICAgIG1faW1hZ2VCdWZmZXJzLmNsZWFyKCk7CiB9CiAKIGJvb2wgRGlzcGxh
eUxpc3Q6OnNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncyBmbGFncywgY29uc3QgSXRlbSYg
aXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKaW5kZXggZjljOTM5OGYwYjcyMjI0ZjY5MDJhMzhm
Nzk1NzU2MzJkMWIxYTMyMC4uODVkMDEyYTQ3NTBiMmFiZWIwYjhiMzViODNmMDI5MDM4MDI3NzNk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmgKQEAgLTI4LDcgKzI4LDkgQEAKICNpbmNsdWRlICJE
aXNwbGF5TGlzdEl0ZW1UeXBlLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTEw
MSw2ICsxMDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgU3RyaW5nIGFzVGV4dChBc1RleHRGbGFn
cykgY29uc3Q7CiAKKyAgICBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAmIGltYWdlQnVmZmVycygp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJzOyB9CisKICNpZiAhZGVmaW5lZChOREVCVUcp
IHx8ICFMT0dfRElTQUJMRUQKICAgICBXVEY6OkNTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXAoKSBjb25zdDsKQEAgLTEwOSw3ICsxMTMsNiBA
QCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxE
aXNwbGF5TGlzdD4gZGVjb2RlKERlY29kZXImKTsKIAotCiBwcml2YXRlOgogICAgIEl0ZW0mIGFw
cGVuZChSZWY8SXRlbT4mJiBpdGVtKQogICAgIHsKQEAgLTEyMywxMSArMTI2LDE3IEBAIHByaXZh
dGU6CiAgICAgICAgIG1fbGlzdC5hcHBlbmQoaXRlbSk7CiAgICAgfQogCisgICAgdm9pZCBjYWNo
ZUltYWdlQnVmZmVyKFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4mJiBpbWFnZUJ1ZmZlcikKKyAg
ICB7CisgICAgICAgIG1faW1hZ2VCdWZmZXJzLmFkZChpbWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKCksIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKKyAgICB9CisKICAgICBz
dGF0aWMgYm9vbCBzaG91bGREdW1wRm9yRmxhZ3MoQXNUZXh0RmxhZ3MsIGNvbnN0IEl0ZW0mKTsK
IAogICAgIFZlY3RvcjxSZWY8SXRlbT4+JiBsaXN0KCkgeyByZXR1cm4gbV9saXN0OyB9CiAKICAg
ICBWZWN0b3I8UmVmPEl0ZW0+PiBtX2xpc3Q7CisgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1h
Z2VCdWZmZXJzOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5k
ZXggNTZiNTdmMDdjM2MzYzkzY2QzZjAxOTBmNWQ0YWNkMWJiNmMyYTRlOS4uYjcyODU0ZGU1ZTky
MTQwMWIxNGE1MjIxN2ZjNzUxMDhkZGI3ZjU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RSZXBs
YXllci5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtODQ1LDEwICs4NDYsMTQgQEAgRHJhd0ltYWdlQnVm
ZmVyOjp+RHJhd0ltYWdlQnVmZmVyKCkgPSBkZWZhdWx0OwogCiB2b2lkIERyYXdJbWFnZUJ1ZmZl
cjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKIHsKLSAgICAvLyBTaG91bGQgYmUgaGFu
ZGxlZCBieSB0aGUgZGVsZWdhdGUuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3Zv
aWQgRHJhd0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNv
cmU6OkltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKK3sKKyAgICBjb250ZXh0LmRyYXdJ
bWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgbV9kZXN0aW5hdGlvblJlY3QsIG1fc3JjUmVjdCwgbV9v
cHRpb25zKTsKK30KKwogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IERyYXdJbWFnZUJ1ZmZlciYgaXRlbSkKIHsKICAgICB0cyA8PCBzdGF0aWNfY2Fz
dDxjb25zdCBEcmF3aW5nSXRlbSY+KGl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKaW5kZXggZjAxNWJlNWU4NjYwNmVjYzJmNmNlODU3YzFmNzExNjc2OTRmZThlMy4uNzk3NTk4
ZTcyMWQ1NjIzMWRmZjA2NDlhYTU3MzE3NDNhMmNlYjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCkBAIC0xNjQ4LDYgKzE2NDgsOCBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0
IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9CiAg
ICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9u
czsgfQogCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1
ZmZlciYpIGNvbnN0OworCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxSZWY8RHJhd0ltYWdlQnVmZmVyPj4gZGVjb2RlKERlY29kZXImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGJmNWI4M2IyMmMzZjRjNzI1ODFl
NjhiOWE1MmQ3NzMwMmQyODI5NGUuLmUyYzYwZWRiZTEzY2E4MWY2M2FjNGE3NjhiNGJlODUwZGM5
N2E2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTE4
NSwxMyArMTg1LDEzIEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd1RpbGVkSW1hZ2Uo
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiAgICAgcmV0dXJuIEltYWdl
RHJhd1Jlc3VsdDo6RGlkUmVjb3JkOwogfQogCi1ib29sIFJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQordm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6Oklt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBpZiAoIW1fZGVsZWdhdGUgfHwgIW1fZGVsZWdhdGUtPmxvY2tSZW1vdGVJbWFnZUJ1
ZmZlcihpbWFnZUJ1ZmZlcikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpbWFnZUJ1ZmZl
ci5mbHVzaERyYXdpbmdDb250ZXh0KCk7CisgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUltYWdlQnVm
ZmVyKG1ha2VSZWYoaW1hZ2VCdWZmZXIpKTsKIAorICAgIEFTU0VSVChpbWFnZUJ1ZmZlci5yZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSk7CiAgICAgYXBwZW5kSXRlbUFuZFVwZGF0ZUV4dGVu
dChEcmF3SW1hZ2VCdWZmZXI6OmNyZWF0ZShpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKLSAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRl
eCA5MmMwNTEzYTdmOWM2YmNhNTI1MDQ0OGYzMDgzZmRlMWNkNjZkODk0Li44YmQ2MjFmYWQzMGM5
MjI0MmRlOWQwMzgyZmEyMzdkMGE0NmVjNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGNsYXNzIERlbGVnYXRl
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkRlbGVnYXRlKCkgeyB9Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBsb2NrUmVtb3RlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXIm
KSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbEFwcGVuZEl0ZW1P
ZlR5cGUoSXRlbVR5cGUpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQXBwZW5kSXRlbU9m
VHlwZShJdGVtVHlwZSkgeyB9CiAgICAgfTsKQEAgLTEwNyw3ICsxMDYsNyBAQCBwcml2YXRlOgog
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhS
dWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAKLSAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZl
ciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0lt
YWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQ
dHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuY3BwCmluZGV4IDEyYjVmNjJjYzQyNDUyMTQyZDhiOThlMmRlZjI1
NGVlMTBkN2YxODIuLjU2MGMzOGQ1Y2ViMGJlMjUwNTZlZTk5M2RlNDFmZDYxOTQxNzdlOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlcGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKQEAgLTM0LDE1ICszNCwz
MSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVw
bGF5ZXI6OlJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0LCBEZWxlZ2F0ZSogZGVsZWdhdGUpCi0gICAgOiBtX2Rpc3BsYXlMaXN0
KGRpc3BsYXlMaXN0KQotICAgICwgbV9jb250ZXh0KGNvbnRleHQpCitSZXBsYXllcjo6UmVwbGF5
ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCogaW1hZ2VCdWZmZXJzLCBEZWxlZ2F0ZSogZGVs
ZWdhdGUpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fZGlzcGxheUxpc3QoZGlz
cGxheUxpc3QpCisgICAgLCBtX2ltYWdlQnVmZmVycyhpbWFnZUJ1ZmZlcnMgPyAqaW1hZ2VCdWZm
ZXJzIDogbV9kaXNwbGF5TGlzdC5pbWFnZUJ1ZmZlcnMoKSkKICAgICAsIG1fZGVsZWdhdGUoZGVs
ZWdhdGUpCiB7CiB9CiAKIFJlcGxheWVyOjp+UmVwbGF5ZXIoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQg
UmVwbGF5ZXI6OmFwcGx5SXRlbShJdGVtJiBpdGVtKQoreworICAgIGlmIChpdGVtLnR5cGUoKSA9
PSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyKSB7CisgICAgICAgIGF1dG8mIGRyYXdJdGVtID0g
c3RhdGljX2Nhc3Q8RHJhd0ltYWdlQnVmZmVyJj4oaXRlbSk7CisgICAgICAgIGlmIChhdXRvKiBp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJzLmdldChkcmF3SXRlbS5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBkcmF3SXRlbS5hcHBseShtX2NvbnRleHQsICpp
bWFnZUJ1ZmZlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9kZWxlZ2F0
ZSAmJiBtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBtX2NvbnRleHQpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpdGVtLmFwcGx5KG1fY29udGV4dCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxEaXNw
bGF5TGlzdD4gUmVwbGF5ZXI6OnJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBi
b29sIHRyYWNrUmVwbGF5TGlzdCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3Rz
LCBzdHJlYW0gPDwgIlxuUmVwbGF5aW5nIHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKQEAg
LTY1LDggKzgxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0PiBSZXBsYXllcjo6cmVw
bGF5KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGJvb2wKICAgICAgICAgfQogCiAgICAg
ICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiYXBwbHlpbmcgIiA8
PCBpIDw8ICIgIiA8PCBpdGVtKTsKLSAgICAgICAgaWYgKCFtX2RlbGVnYXRlIHx8ICFtX2RlbGVn
YXRlLT5hcHBseShpdGVtLCBtX2NvbnRleHQpKQotICAgICAgICAgICAgaXRlbS5hcHBseShtX2Nv
bnRleHQpOworICAgICAgICBhcHBseUl0ZW0oaXRlbSk7CiAKICAgICAgICAgaWYgKFVOTElLRUxZ
KHRyYWNrUmVwbGF5TGlzdCkpCiAgICAgICAgICAgICByZXBsYXlMaXN0LT5hcHBlbmRJdGVtKGNv
bnN0X2Nhc3Q8SXRlbSY+KGl0ZW0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXll
ci5oCmluZGV4IDQwY2QwZmYwZDQxNjgwY2ZjNzNlNTA0ZGVjZmMzZGVmODc3NTMyMzMuLmRjNzRm
N2Q2N2ExMzZmZTY5NjQ2OTBhZDFjMDU5YzAxNjJhZjY1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBSZXBsYXllciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVwbGF5ZXIpOwogcHVibGljOgogICAgIGNsYXNzIERl
bGVnYXRlOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IERpc3BsYXlMaXN0JiwgRGVsZWdhdGUqID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBP
UlQgUmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRGlzcGxheUxpc3QmLCBjb25zdCBJ
bWFnZUJ1ZmZlckhhc2hNYXAqID0gbnVsbHB0ciwgRGVsZWdhdGUqID0gbnVsbHB0cik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgflJlcGxheWVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnVu
aXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHJlcGxheShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlw
ID0geyB9LCBib29sIHRyYWNrUmVwbGF5TGlzdCA9IGZhbHNlKTsKQEAgLTU0LDggKzU0LDExIEBA
IHB1YmxpYzoKICAgICB9OwogICAgIAogcHJpdmF0ZToKLSAgICBjb25zdCBEaXNwbGF5TGlzdCYg
bV9kaXNwbGF5TGlzdDsKKyAgICB2b2lkIGFwcGx5SXRlbShJdGVtJik7CisgICAgCiAgICAgR3Jh
cGhpY3NDb250ZXh0JiBtX2NvbnRleHQ7CisgICAgY29uc3QgRGlzcGxheUxpc3QmIG1fZGlzcGxh
eUxpc3Q7CisgICAgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwJiBtX2ltYWdlQnVmZmVyczsKICAg
ICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWly
by9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKaW5kZXggYTJjOWUwOTNmYzE0YmE1
YzFlODI5YzRiMjRlMTY1NDAwMzdhNDQ1NS4uOGJjNWQyN2JlNjM1ZWZkZDVhN2QxZjZjNDczZjI4
ZDg4ZjI5NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHAKQEAgLTU0OSwxMCArNTQ5LDkgQEAgSW1hZ2VEcmF3UmVzdWx0
IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXQKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJ
bXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNj
YWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotYm9v
bCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikKIHsKICAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAg
IHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0
aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGlt
YWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJv
T3BlcmF0aW9uUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaAppbmRleCAzYjlkNmEz
MzZjNjJiZjliYThmZTJmOTlkODQ3NGIzNmZkZTc5YmI5Li42OTFlNzQxODAwM2U1NzU4YTYwNDRm
M2M5NzkxYjMxMDhhZDM3YzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lh
Q2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdlYkNvcmU6OkltYWdlJiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0
IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6SW1hZ2U6OlRpbGVSdWxlLCBXZWJDb3JlOjpJbWFnZTo6
VGlsZVJ1bGUsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CiAKLSAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OworICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0
aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnMmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBiMjQ3ODBjZDdiMDc0NDNiMTU1MDI2
Y2Y2YjE5ODFjODIyMmJkNTBjLi4yMDA0NDAzZjAxYzdhNjVhZTI3ZTE2MTY4YzFkM2EwZTY4MTRj
MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaApAQCAtNjUsNyArNjUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1
c2hEaXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFkaXNwbGF5TGlzdC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllciByZXBs
YXllcihCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dCgpLCBkaXNwbGF5TGlzdCwgdGhp
cyk7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBpbWFnZUJ1ZmZlcnMgPSBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQucmVtb3RlUmVzb3VyY2VDYWNoZSgpLmltYWdlQnVmZmVycygpOworICAgICAg
ICAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyIHJlcGxheWVyIHsgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQoKSwgZGlzcGxheUxpc3QsICZpbWFnZUJ1ZmZlcnMsIHRo
aXMgfTsKICAgICAgICAgICAgIHJlcGxheWVyLnJlcGxheSgpOwogICAgICAgICB9CiAgICAgfQpA
QCAtNzgsOSArNzksNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KIAotICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmFwcGx5UmVzb3Vy
Y2VJdGVtKGl0ZW0sIGNvbnRleHQpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICAg
ICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5hcHBseU1lZGlhSXRlbShpdGVtLCBj
b250ZXh0KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBkZjBlZDQ3ZTVi
ZWZkNjc5ODQ2YTRjN2Y1MDYyMDEzNjY0NjBiNjgwLi5kODhmY2ZkMTJhNzM1MTYxYWQwMTUxOTkw
NTI2MTA2ZTgwNzc2NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC03MiwyMSArNzIs
NiBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIu
dG9VSW50NjQoKTsKIH0KIAotYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseVJlc291
cmNlSXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KQotewotICAgIGlmIChpdGVtLnR5cGUoKSA9PSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkRyYXdJbWFnZUJ1ZmZlcikgewotICAgICAgICBhdXRvJiBkcmF3SXRlbSA9IHN0YXRpY19jYXN0
PGNvbnN0IERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXImPihpdGVtKTsKLSAgICAgICAgYXV0
byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihk
cmF3SXRlbS5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSk7Ci0gICAgICAgIGlmICghaW1h
Z2VCdWZmZXIpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaW1hZ2VCdWZm
ZXItPmRyYXcoY29udGV4dCwgZHJhd0l0ZW0uZGVzdGluYXRpb25SZWN0KCksIGRyYXdJdGVtLnNv
dXJjZSgpLCBkcmF3SXRlbS5vcHRpb25zKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
YXBwbHlNZWRpYUl0ZW0oY29uc3QgRGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkKIHsKICAgICBpZiAoaXRlbS50eXBlKCkgIT0gV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWEpCkBAIC0xMzMsNyArMTE4LDcgQEAg
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBSZW4KICAgICAgICAgaW1hZ2UgPSBVbmFjY2VsZXJhdGVkUmVt
b3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIGlmIChp
bWFnZSkgewotICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVJbWFnZUJ1ZmZlcihy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2UpKTsKKyAgICAgICAgbV9y
ZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCBtYWtlUmVmKCppbWFnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAppbmRleCAyODVlMmY3NGI0ZDRmZDZlNmE4YzVlOTEwMjVhMWM5MjZmNWZm
YjE1Li4zZGY2Zjc3NGUxNTIxYjgxNGI3YjZjNWMyMDNiMjc2NWM2YWM3OTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKQEAgLTYxLDkgKzYxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQoKTsKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdDsKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hl
JiByZW1vdGVSZXNvdXJjZUNhY2hlKCkgeyByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlOyB9
CiAKICAgICAvLyBSZW5kZXJpbmcgb3BlcmF0aW9ucy4KLSAgICBib29sIGFwcGx5UmVzb3VyY2VJ
dGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0Jik7CiAgICAgYm9vbCBhcHBseU1lZGlhSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgLy8gTWVzc2Fn
ZXMgdG8gYmUgc2VudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCA0M2U5MDg2YzE3YzczZTRlYWMx
ZjBkZTMwNzI4ODIxZDk2YTM1MTZiLi5jYzgwOWU0NzVlMjA3ZDE0MTJmZmE5Mzg2ZjZjOTM3YTE4
NzNjNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi12b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGU6OmNhY2hlSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPEltYWdlQnVmZmVyPiYmIGltYWdlKQordm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjYWNoZUltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlZjxJbWFnZUJ1ZmZlcj4m
JiBpbWFnZSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1faW1hZ2VCdWZmZXJzLmFkZChyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2UpKTsKICAgICBBU1NFUlRfVU5V
U0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKaW5kZXgg
MzI1ODI5MjM1OGY5MTdiM2I5ODQ1ZDNjZTQ0NzdjMTZhNzUyODkwYy4uMDUwZWQwYjhjNDM1MmI2
MjlkNGM3ZTk3NzA3NWU5OTNlYTE4YzQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCkBAIC00MiwxNCArNDIs
MTQgQEAgY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZSB7CiBwdWJsaWM6CiAgICAgUmVtb3RlUmVz
b3VyY2VDYWNoZSgpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgY2FjaGVJbWFnZUJ1ZmZlcihXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4mJik7CisgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmKTsKICAgICBXZWJD
b3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIAorICAgIGNvbnN0IFdlYkNvcmU6
OkltYWdlQnVmZmVySGFzaE1hcCYgaW1hZ2VCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV9pbWFn
ZUJ1ZmZlcnM7IH0KIAogcHJpdmF0ZToKLSAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVmUHRy
PFdlYkNvcmU6OkltYWdlQnVmZmVyPj47Ci0KLSAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAg
bV9pbWFnZUJ1ZmZlcnM7CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VC
dWZmZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCmluZGV4IGMwZWMxYmIxMzI5ZTg5NmYyY2Y2MTNmMzdmM2NhZTQyNTY3MTg3MGQuLjU1
NzQxZDcyZWU2Nzc1NjIzNjQ4OWM2ZjUwZmQ0YmM0YTJhOTJiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Zmx1c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkucmVsZWFzZUltYWdlQnVmZmVyKG1fcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPnJlbGVhc2VSZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgfQogCiAgICAgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOyB9CkBAIC0xNDksNyArMTQ5LDYgQEAgcHJvdGVj
dGVkOgogCiAgICAgICAgIFRyYWNlU2NvcGUgdHJhY2luZ1Njb3BlKEZsdXNoUmVtb3RlSW1hZ2VC
dWZmZXJTdGFydCwgRmx1c2hSZW1vdGVJbWFnZUJ1ZmZlckVuZCwgMSk7CiAgICAgICAgIG1fc2Vu
dEZsdXNoSWRlbnRpZmllciA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5mbHVzaERp
c3BsYXlMaXN0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkoKS51bmxvY2tSZW1vdGVSZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQobV9y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgICAgICBtX2l0ZW1Db3VudEluQ3VycmVu
dERpc3BsYXlMaXN0ID0gMDsKICAgICAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKICAgICB9CkBA
IC0xNjEsMTcgKzE2MCw2IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBUcmFjZVNjb3BlIHRyYWNp
bmdTY29wZShGbHVzaFJlbW90ZUltYWdlQnVmZmVyU3RhcnQsIEZsdXNoUmVtb3RlSW1hZ2VCdWZm
ZXJFbmQpOwogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+Zmx1c2hEaXNw
bGF5TGlzdChkaXNwbGF5TGlzdCwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAg
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5KCkudW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KG1fcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBib29sIGxvY2tSZW1vdGVJbWFnZUJ1ZmZl
cihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIG92ZXJyaWRlCi0gICAgewotICAg
ICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5y
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5sb2NrUmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVD
bGllbnQoaW1hZ2VCdWZmZXIsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaW1hZ2VCdWZmZXIuZmx1c2hEcmF3aW5nQ29u
dGV4dCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICB2b2lkIHdpbGxBcHBl
bmRJdGVtT2ZUeXBlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZSkgb3ZlcnJpZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkNTU3OGM5ODIwMzll
NmJhZDRkNTFiOGQ3YjEzODBhN2E1YTVjODRiLi5mMzFlZmFmODczMTBmZjhlZjUyMGMwOTI1MTY2
ZGI2Y2QzMDJiMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3Bw
CkBAIC0xMjcsNiArMTI3LDcgQEAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWkKIAogdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogeworICAgIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LnJlbGVhc2VJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBt
X3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKaW5kZXggZTk5ZTNkNzFjYTkyNjI2YTY5NjJjYzk0ODc3YTdjMTFiODVl
ZGJhNy4uY2EwNTVmZDM2ZmNlMWExMmJiMjViZmU2ZDU5MzUxNjk0YmNkZmFkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3RGbHVzaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeyAqdGhpcyB9
OworICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAppbmRleCAzZjVhNzNiZWMzYmYyODZl
NTI5ODFkZTQ4YjkwYzMxZDAxOWQ4YzNkLi44MjUwNDIxN2JlNzYxNWI0ODdhMGNkMzJmN2RmMTg3
NzI0NjcyZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBAIC0yOCwx
NiArMjgsOSBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAiUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5KQotICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5KQotewotfQotCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIp
CiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2ltYWdlQnVmZmVycy5hZGQocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCBpbWFnZUJ1ZmZlcik7CkBAIC01Myw3NSArNDYsNiBAQCB2b2lkIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZUltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZQogewogICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVmZmVycy5yZW1v
dmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5k
LCBmb3VuZCk7Ci0KLSAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyBy
ZXNvdXJjZSB1bmxlc3MgaXQncyBwZW5kaW5nIHJlcGxheWluZyBiYWNrLgotICAgIHJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotfQotCi1ib29sIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1JlbW90ZUltYWdlQnVmZmVyRm9yUmVtb3RlQ2xp
ZW50KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZUNsaWVudElkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFpbWFnZUJ1ZmZlci5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYg
KGNhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cigpKSAhPSAmaW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBsb2NrUmVtb3RlUmVzb3VyY2VGb3JS
ZW1vdGVDbGllbnQoaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIHJl
bW90ZUNsaWVudElkZW50aWZpZXIpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6bG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50KFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQotewotICAg
IC8vIEFkZCB0aGUgInJlc291cmNlIC0+IGNsaWVudCIgZGVwZW5kZW5jeSBpbiBtX2xvY2tlZFJl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy4KLSAgICBhdXRvJiBjbGllbnRzID0gbV9sb2Nr
ZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuZW5zdXJlKHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIFJlbW90ZUNsaWVudHNIYXNoU2V0KCk7
Ci0gICAgfSkuaXRlcmF0b3ItPnZhbHVlOwotCi0gICAgY2xpZW50cy5hZGQocmVtb3RlQ2xpZW50
SWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNl
UmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1VubG9ja1JlbW90ZVJlc291
cmNlRm9yUmVtb3RlQ2xpZW50cy5jb250YWlucyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
KTsKLQotICAgIC8vIElmIHdlIGhhdmUgcmVjb3JkZWQgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVu
ZGVuY3kgYmVmb3JlIGluIG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLCBt
b3ZlIHRoaXMKLSAgICAvLyBkZXBlbmRlbmN5IHRvIG1fcGVuZGluZ1VubG9ja1JlbW90ZVJlc291
cmNlRm9yUmVtb3RlQ2xpZW50cy4gT3RoZXJ3aXNlIHJlbW92ZSB0aGUgcmVzb3VyY2UgaW4gdGhl
IEdQVSBQcm9jZXNzLgotICAgIGlmIChtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xp
ZW50cy5jb250YWlucyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQotICAgICAgICBtX3Bl
bmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuYWRkKHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMu
dGFrZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwotfQotCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6dW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQotewotICAgIGF1dG8gcmVtb3ZlUmVt
b3RlQ2xpZW50ID0gWyZdKFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAmIHJlbW90ZVJlc291
cmNlRm9yUmVtb3RlQ2xpZW50cywgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNs
aWVudElkZW50aWZpZXIpIHsKLSAgICAgICAgVmVjdG9yPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4gcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7Ci0KLSAgICAgICAgLy8gUmVt
b3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIHJlbW90ZVJl
c291cmNlQ2xpZW50c0hhc2hNYXAuCi0gICAgICAgIGZvciAoYXV0byYgcGFpciA6IHJlbW90ZVJl
c291cmNlRm9yUmVtb3RlQ2xpZW50cykgewotICAgICAgICAgICAgcGFpci52YWx1ZS5yZW1vdmUo
cmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgICAgICAgICBpZiAocGFpci52YWx1ZS5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQu
YXBwZW5kKHBhaXIua2V5KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJldHVybiBhIGxpc3Qg
b2YgdGhlIHVucmVmZXJlbmNlZCByZXNvdXJjZXMuCi0gICAgICAgIHJldHVybiByZW1vdGVSZXNv
dXJjZUNsaWVudHNUb0JlUmVtb3ZlZDsKLSAgICB9OwotCi0gICAgLy8gUmVtb3ZlIGFsbCB0aGUg
cmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIG1fbG9ja2VkUmVtb3RlUmVzb3Vy
Y2VGb3JSZW1vdGVDbGllbnRzLgotICAgIGZvciAoYXV0byByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgOiByZW1vdmVSZW1vdGVDbGllbnQobV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90
ZUNsaWVudHMsIHJlbW90ZUNsaWVudElkZW50aWZpZXIpKQotICAgICAgICBtX2xvY2tlZFJlbW90
ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKLQotICAgIC8vIFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRl
bmNpZXMgZnJvbSBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMu
Ci0gICAgZm9yIChhdXRvIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA6IHJlbW92ZVJlbW90
ZUNsaWVudChtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMsIHJl
bW90ZUNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIC8vIFJlbW92ZSB0aGUgdW5yZWZlcmVu
Y2VkIHJlc291cmNlcyBmcm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VI
YXNoTWFwLgotICAgICAgICBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNs
aWVudHMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0KLSAgICAgICAgLy8g
VGVsbCB0aGUgR1BVIHByb2Nlc3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UuCi0gICAgICAgIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCBlODZiZTdkZWIwOTJiYThmMTNi
N2RiNTVhZWU4NzgwMmM3OGRkNDhjLi5iZGU4MTVhMTNjMWQ5NTFkNTIwNDkzNjhhODVjOGM0MGNh
MTRkY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTM2LDMxICszNiwx
OCBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKLQogY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5IHsKIHB1YmxpYzoKLSAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5Jik7CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkgPSBkZWZh
dWx0OwogCiAgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqKTsKICAgICBXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAgYm9vbCBsb2NrUmVtb3RlSW1hZ2VCdWZmZXJGb3JS
ZW1vdGVDbGllbnQoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgdm9pZCB1bmxvY2tS
ZW1vdGVSZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIpOwotCiBwcml2YXRlOgotICAgIHVzaW5n
IFJlbW90ZUNsaWVudHNIYXNoU2V0ID0gSGFzaFNldDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+OwotICAgIHVzaW5nIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgPSBI
YXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVtb3RlQ2xpZW50
c0hhc2hTZXQ+OwogICAgIHVzaW5nIFJlbW90ZUltYWdlQnVmZmVyUHJveHlIYXNoTWFwID0gSGFz
aE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkltYWdl
QnVmZmVyKj47CiAKLSAgICB2b2lkIGxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudChX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbGVh
c2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwot
CiAgICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eUhhc2hNYXAgbV9pbWFnZUJ1ZmZlcnM7Ci0gICAg
UmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVt
b3RlQ2xpZW50czsKLSAgICBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwIG1fcGVuZGluZ1Vu
bG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50czsKLSAgICBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413391</attachid>
            <date>2020-11-05 20:20:18 -0800</date>
            <delta_ts>2020-11-05 20:36:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218529-20201105202017.patch</filename>
            <type>text/plain</type>
            <size>45987</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjODFmNmY1YTRjM2Y5
ZTE2M2U0YTgwOTY5YjM3ZGM2MDYyZTI2My4uMzdmZDU2N2E2OGRlMDI4ZWNiNWZhNTA2Y2FmZTU2
NjVhNTE1YzczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTExLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
VXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMgbGlmZSBj
eWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZXJ5IEltYWdlQnVmZmVyIHdpbGwgaGF2ZSBh
IHZhbGlkIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmVyLiBJdCBjYW4gYmUKKyAgICAgICAgZWl0
aGVyIGdlbmVyYXRlZCB3aGVuIHRoZSBJbWFnZUJ1ZmZlciBpcyBjcmVhdGVkLiBPciBpdCBjYW4g
YmUgc2V0IGJ5IHRoZQorICAgICAgICBjYWxsZXIuIFNldHRpbmcgaXQgYnkgdGhlIGNhbGxlciB3
aWxsIGhhcHBlbiBvbmx5IGluIHRoZSBHUFVQIHdoZXJlIHdlCisgICAgICAgIG5lZWQgaXQgbWF0
Y2ggd2hhdCB3YXMgZ2VuZXJhdGVkIGluIHRoZSBXZWJQLgorCisgICAgICAgIFdoZW4gcmVjb3Jk
aW5nIGEgRHJhd0ltYWdlQnVmZmVyIGl0ZW0sIGEgUmVmPEltYWdlQnVmZmVyPiBvZiB0aGUgc291
cmNlCisgICAgICAgIEltYWdlQnVmZmVyIHdpbGwgYmUgYWRkZWQgdG8gYSBIYXNoU2V0IGluIERp
c3BsYXlMaXN0LiBUaGUgZ29hbCBpcyBrZWVwCisgICAgICAgIHRoaXMgSW1hZ2VCdWZmZXIgYWxp
dmUgdGlsbCB0aGUgRGlzcGxheUxpc3QgaXMgY2xlYXJlZC4gVGhlIEhhc2hTZXQgd2lsbAorICAg
ICAgICBiZSBjbGVhcmVkIGluIERpc3BsYXlMaXN0OjpjbGVhcigpIHdoaWNoIHdpbGwgaGFwcGVu
IHdoZW4gZWl0aGVyIHRoZSAKKyAgICAgICAgRGlzcGxheUxpc3QgaXMgcmVwbGF5ZWQgYmFjayBv
ciBzZW50IHRvIHRoZSBHUFVQLgorCisgICAgICAgIFRoaXMgSGFzaFNldCBjYW4gYmUgdXNlZCB0
byByZXNvbHZlIHRoZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZlciB0byBhbgorICAgICAgICBJ
bWFnZUJ1ZmZlciB3aGVuIHJlcGxheWluZyBiYWNrIHRoZSBEaXNwbGF5TGlzdCBlaXRoZXIgaW4g
V2ViUCBvciBpbiBHUFVQLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Q29u
Y3JldGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWlu
Z0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3SW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dEltcGxDYWlyby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3Q6OmNsZWFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dDo6aW1hZ2VCdWZmZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdDo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OkRl
bGVnYXRlOjp+RGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29y
ZGVyOjpEZWxlZ2F0ZTo6bG9ja1JlbW90ZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OlJlcGxheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6cmVwbGF5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRl
cjo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmg6CisKIDIwMjAtMTEtMDUgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlNvY2tldCBjb25z
dHJ1Y3RvciBzaG91bGQgbm90IHRocm93IGluIGNhc2UgcG9ydCBpcyBibG9ja2VkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDIzN2QxNzEwOThkMTYxYmJlYTNlMjg2MzAxY2JiMjI2OGQ3M2Q0YWUuLjg1NTc0YzFiMjQ3
MzMwMDU1NGVlNTg2ZGUyZjRhYzE3Nzk1ZTEzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAK
KzIwMjAtMTEtMDUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXSBVc2UgdGhlIFJlZiBjb3VudGluZyBvZiBJbWFnZUJ1ZmZlciB0byBj
b250cm9sIGl0cyBsaWZlIGN5Y2xlIGluIFdlYiBQcm9jZXNzIGFuZCBHUFUgUHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIERyYXdJ
bWFnZUJ1ZmZlciBpdGVtIGlzIGFwcGVuZGVkIHRvIERpc3BsYXlMaXN0LCBhIFJlZjxJbWFnZUJ1
ZmZlcj4KKyAgICAgICAgd2lsbCBiZSBjYWNoZWQgdGlsbCB0aGUgRGlzcGxheUxpc3QgaXRlbXMg
bGlzdCBpcyBjbGVhcmVkLiBTbyBubyBuZWVkIHRvCisgICAgICAgIGxvY2sgdGhlIHJlbW90ZSBy
ZXNvdXJjZSBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgQWxsIHdlIG5l
ZWQgdG8gaXMgdG8gcGFzcyB0aGUgSW1hZ2VCdWZmZXJIYXNoTWFwIHdoaWNoIGlzIG1haW50YWlu
ZWQgYnkKKyAgICAgICAgdGhlIERpc3BsYXlMaXN0IG9yIGJ5IFJlbW90ZVJlc291cmNlQ2FjaGUg
dG8gdGhlIERpc3BsYXlMaXN0OjpSZXBsYXllci4KKyAgICAgICAgSXQgaXMgZ29pbmcgdG8gYmUg
dXNlZCB0byByZXNvbHZlIHRoZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZlciB0byBhbgorICAg
ICAgICBJbWFnZUJ1ZmZlciBzbyB0aGUgRHJhd0ltYWdlQnVmZmVyIGNhbiBiZSBhcHBsaWVkLgor
CisgICAgICAgIE5vIG5lZWQgdG8gc3BlY2lhbC1jYXNlIERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHko
KSBpbiB0aGUgUmVtb3RlSW1hZ2VCdWZmZXIuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVm
ZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjphcHBseVJlc291cmNlSXRlbSk6IERlbGV0ZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZVJlc291cmNlQ2FjaGUpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNhY2hlSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjppbWFnZUJ1ZmZlcnMgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6flJlbW90ZUltYWdlQnVm
ZmVyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VJbWFnZUJ1ZmZl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5Ojpsb2NrUmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVDbGllbnQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmxvY2tSZW1v
dGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp1bmxvY2tSZW1vdGVS
ZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorCiAyMDIwLTExLTA1ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGZpeCB0aGUgYnVpbGQgd2l0aCByZWNlbnQgU0RLcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCAxNmM5YTM1
NjM1NWFiOWVlMTQyMTcyYTIxOTRmYzNjNjdlYWM2OTllLi4yMjNkOWRjMTgzZDAzZTNmNGNjMzUx
ZjRkYTZmNmY4OTNmMGFiNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC01NCwxNSArNTQsMTYgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJh
Y2tlbmRUeXBlOjppc0FjY2VsZXJhdGVkOyB9CiAKIHByb3RlY3RlZDoKLSAgICBDb25jcmV0ZUlt
YWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kKQorICAgIENv
bmNyZXRlSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQg
PSBudWxscHRyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAg
ICAgICA6IG1fYmFja2VuZChXVEZNb3ZlKGJhY2tlbmQpKQorICAgICAgICAsIG1fcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICB7CiAg
ICAgfQogCi0gICAgQ29uY3JldGVJbWFnZUJ1ZmZlcigpID0gZGVmYXVsdDsKLQogICAgIHZpcnR1
YWwgQmFja2VuZFR5cGUqIGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNrZW5kLmdldCgpOyB9CiAKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI7IH0KKwogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgp
IGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlQobV9iYWNrZW5kKTsKQEAgLTI1
MCw2ICsyNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEJh
Y2tlbmRUeXBlPiBtX2JhY2tlbmQ7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKaW5kZXggOWNmMTgyMzgzMjBkNjM5NDlkZDRkMzgxNjM4ZDMzY2YzMDYxNjJlNi4u
MzBiODg0OTE5YjJjNjA0NWY3OTk2YzE5YTE1YmFmNjM5YmM1MjY5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC04
MTIsOCArODEyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpCiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1wbCAmJiBtX2ltcGwt
PmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucykpCisg
ICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlG
b3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CiAgICAg
aW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CkBAIC04NDAs
OCArODQyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZm
ZXIoUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QKICAgICBpZiAocGFpbnRpbmdEaXNh
YmxlZCgpIHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1wbCAmJiBt
X2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlv
bnMpKQorICAgIGlmIChtX2ltcGwpIHsKKyAgICAgICAgbV9pbXBsLT5kcmF3SW1hZ2VCdWZmZXIo
KmltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9u
UXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgp
KTsKICAgICBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhXVEZNb3ZlKGltYWdlKSwgKnRoaXMs
IGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDM1MzZkMmYz
YjczY2Q0ODhlOThlYzJlOWZkZTI0OGY4MjM4YzM5Y2UuLjZlMjIyYzAyZjJkOWFlMzY0MDYxYjcz
ZDljMzdiNzdiMjliMDNiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFn
ZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZThlNDg4NjVkOWQ3OGZl
YjhlN2U0ODA4OGQ4Y2MzYTllOTA3MjQyOS4uOTIwNGFkMTBhODEwNjgwNmRlOTI2ZjJlZWZmYzE2
MzRjNzcwMGU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCkBAIC0xMTksNCArMTE5LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBkcmF3Q29uc3VtaW5nKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KSA9IDA7CiB9OwogCit1c2luZyBJbWFnZUJ1ZmZlckhhc2hNYXAgPSBIYXNoTWFwPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgUmVmPEltYWdlQnVmZmVyPj47CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4IDhlZjRm
Nzg2YjcyNDkxNDI0NTZlZmYxZjBhZDgyMTZjYzkwNTUzNjcuLjZjYTI1OGI1NWQxY2Y1ZjhiNWY1
ZmI2YTQ2YmIwNjFkMWM2NTA3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJv
LmNwcApAQCAtMjc5LDEwICsyNzksOSBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsbwogICAgIHJl
dHVybiBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250
ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxl
LCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4
dEltcGxDYWlybzo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQordm9pZCBH
cmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikKIHsKICAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVybiBmYWxz
ZTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBs
Q2Fpcm8uaAppbmRleCAxYzgyNzEzMGMyYTVmZTI4Zjc1MzVlMTk0NWEzM2RjOTY4NjIwNTE0Li44
YTkzN2RhMjM5ZDZkNmNkZDBhMDQ4Y2NjZDgzNjc5MTA1ZDk3Y2FjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fp
cm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRJbXBsQ2Fpcm8uaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdU
aWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgRmxvYXRTaXplJiwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgCi0gICAgYm9vbCBkcmF3SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9p
bnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBmZmQ5ZDZkZGZiNjBhYzFhMDk3
MjJkZmFkYzgyZjExNTMwZTkyMGExLi40MjRkOWEwNGMxNjM0MmQ5MDY5NjYzOGEyMmNmMzcyNzRl
MjhlMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAgdm9p
ZCBEaXNwbGF5TGlzdDo6ZHVtcCgpIGNvbnN0CiB2b2lkIERpc3BsYXlMaXN0OjpjbGVhcigpCiB7
CiAgICAgbV9saXN0LmNsZWFyKCk7CisgICAgbV9pbWFnZUJ1ZmZlcnMuY2xlYXIoKTsKIH0KIAog
Ym9vbCBEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKEFzVGV4dEZsYWdzIGZsYWdzLCBj
b25zdCBJdGVtJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAppbmRleCBmOWM5Mzk4ZjBiNzIy
MjRmNjkwMmEzOGY3OTU3NTYzMmQxYjFhMzIwLi44NWQwMTJhNDc1MGIyYWJlYjBiOGIzNWI4M2Yw
MjkwMzgwMjc3M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApAQCAtMjgsNyArMjgsOSBAQAog
I2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbVR5cGUuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgog
I2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtMTAxLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcgYXNUZXh0
KEFzVGV4dEZsYWdzKSBjb25zdDsKIAorICAgIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCYgaW1h
Z2VCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcnM7IH0KKwogI2lmICFkZWZp
bmVkKE5ERUJVRykgfHwgIUxPR19ESVNBQkxFRAogICAgIFdURjo6Q1N0cmluZyBkZXNjcmlwdGlv
bigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcCgpIGNvbnN0OwpAQCAtMTA5
LDcgKzExMyw2IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPERpc3BsYXlMaXN0PiBkZWNvZGUoRGVjb2RlciYpOwogCi0KIHByaXZhdGU6CiAg
ICAgSXRlbSYgYXBwZW5kKFJlZjxJdGVtPiYmIGl0ZW0pCiAgICAgewpAQCAtMTIzLDExICsxMjYs
MTcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9saXN0LmFwcGVuZChpdGVtKTsKICAgICB9CiAKKyAg
ICB2b2lkIGNhY2hlSW1hZ2VCdWZmZXIoUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmIGltYWdl
QnVmZmVyKQorICAgIHsKKyAgICAgICAgbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVmZmVyLT5y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOworICAg
IH0KKwogICAgIHN0YXRpYyBib29sIHNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFncywgY29u
c3QgSXRlbSYpOwogCiAgICAgVmVjdG9yPFJlZjxJdGVtPj4mIGxpc3QoKSB7IHJldHVybiBtX2xp
c3Q7IH0KIAogICAgIFZlY3RvcjxSZWY8SXRlbT4+IG1fbGlzdDsKKyAgICBJbWFnZUJ1ZmZlckhh
c2hNYXAgbV9pbWFnZUJ1ZmZlcnM7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmNwcAppbmRleCA1NmI1N2YwN2MzYzNjOTNjZDNmMDE5MGY1ZDRhY2QxYmI2YzJhNGU5Li5i
NzI4NTRkZTVlOTIxNDAxYjE0YTUyMjE3ZmM3NTEwOGRkYjdmNTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNw
bGF5TGlzdFJlcGxheWVyLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC04NDUsMTAgKzg0NiwxNCBAQCBE
cmF3SW1hZ2VCdWZmZXI6On5EcmF3SW1hZ2VCdWZmZXIoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgRHJh
d0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAogewotICAgIC8vIFNo
b3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBkZWxlZ2F0ZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAordm9pZCBEcmF3SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAoreworICAgIGNv
bnRleHQuZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCwgbV9z
cmNSZWN0LCBtX29wdGlvbnMpOworfQorCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0ltYWdlQnVmZmVyJiBpdGVtKQogewogICAgIHRzIDw8
IHN0YXRpY19jYXN0PGNvbnN0IERyYXdpbmdJdGVtJj4oaXRlbSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaAppbmRleCBmMDE1YmU1ZTg2NjA2ZWNjMmY2Y2U4NTdjMWY3MTE2NzY5NGZl
OGUzLi43OTc1OThlNzIxZDU2MjMxZGZmMDY0OWFhNTczMTc0M2EyY2ViMDM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTE2NDgsNiArMTY0OCw4IEBAIHB1YmxpYzoKICAg
ICBGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlv
blJlY3Q7IH0KICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zOyB9CiAKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIFdlYkNv
cmU6OkltYWdlQnVmZmVyJikgY29uc3Q7CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFJlZjxEcmF3SW1hZ2VCdWZmZXI+PiBkZWNvZGUoRGVjb2RlciYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggYmY1YjgzYjIy
YzNmNGM3MjU4MWU2OGI5YTUyZDc3MzAyZDI4Mjk0ZS4uZTJjNjBlZGJlMTNjYTgxZjYzYWM0YTc2
OGI0YmU4NTBkYzk3YTZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcApAQCAtMTg1LDEzICsxODUsMTMgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3
VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXQKICAgICBy
ZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZWNvcmQ7CiB9CiAKLWJvb2wgUmVjb3JkZXI6OmRy
YXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIo
V2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewotICAgIGlmICghbV9kZWxlZ2F0ZSB8fCAhbV9kZWxlZ2F0ZS0+bG9ja1Jl
bW90ZUltYWdlQnVmZmVyKGltYWdlQnVmZmVyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGltYWdlQnVmZmVyLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKKyAgICBtX2Rpc3BsYXlMaXN0LmNh
Y2hlSW1hZ2VCdWZmZXIobWFrZVJlZihpbWFnZUJ1ZmZlcikpOwogCisgICAgQVNTRVJUKGltYWdl
QnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKICAgICBhcHBlbmRJdGVtQW5k
VXBkYXRlRXh0ZW50KERyYXdJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlQnVmZmVyLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOwotICAg
IHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oCmluZGV4IDkyYzA1MTNhN2Y5YzZiY2E1MjUwNDQ4ZjMwODNmZGUxY2Q2NmQ4OTQuLjhi
ZDYyMWZhZDMwYzkyMjQyZGU5ZDAzODJmYTIzN2QwYTQ2ZWM2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgY2xh
c3MgRGVsZWdhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RGVsZWdhdGUoKSB7
IH0KLSAgICAgICAgdmlydHVhbCBib29sIGxvY2tSZW1vdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJ
bWFnZUJ1ZmZlciYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxs
QXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRB
cHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKSB7IH0KICAgICB9OwpAQCAtMTA3LDcgKzEwNiw3IEBA
IHByaXZhdGU6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdU
aWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6
VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKIAotICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6
OkltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggMTJiNWY2MmNjNDI0NTIxNDJk
OGI5OGUyZGVmMjU0ZWUxMGQ3ZjE4Mi4uNTYwYzM4ZDVjZWIwYmUyNTA1NmVlOTkzZGU0MWZkNjE5
NDE3N2U4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAt
MzQsMTUgKzM0LDMxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxp
c3QgewogCi1SZXBsYXllcjo6UmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIERlbGVnYXRlKiBkZWxlZ2F0ZSkKLSAgICA6IG1f
ZGlzcGxheUxpc3QoZGlzcGxheUxpc3QpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKK1JlcGxh
eWVyOjpSZXBsYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IERpc3BsYXlMaXN0
JiBkaXNwbGF5TGlzdCwgY29uc3QgSW1hZ2VCdWZmZXJIYXNoTWFwKiBpbWFnZUJ1ZmZlcnMsIERl
bGVnYXRlKiBkZWxlZ2F0ZSkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9kaXNw
bGF5TGlzdChkaXNwbGF5TGlzdCkKKyAgICAsIG1faW1hZ2VCdWZmZXJzKGltYWdlQnVmZmVycyA/
ICppbWFnZUJ1ZmZlcnMgOiBtX2Rpc3BsYXlMaXN0LmltYWdlQnVmZmVycygpKQogICAgICwgbV9k
ZWxlZ2F0ZShkZWxlZ2F0ZSkKIHsKIH0KIAogUmVwbGF5ZXI6On5SZXBsYXllcigpID0gZGVmYXVs
dDsKIAordm9pZCBSZXBsYXllcjo6YXBwbHlJdGVtKEl0ZW0mIGl0ZW0pCit7CisgICAgaWYgKGl0
ZW0udHlwZSgpID09IEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgYXV0byYg
ZHJhd0l0ZW0gPSBzdGF0aWNfY2FzdDxEcmF3SW1hZ2VCdWZmZXImPihpdGVtKTsKKyAgICAgICAg
aWYgKGF1dG8qIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlcnMuZ2V0KGRyYXdJdGVtLnJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSkKKyAgICAgICAgICAgIGRyYXdJdGVtLmFwcGx5KG1f
Y29udGV4dCwgKmltYWdlQnVmZmVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX2RlbGVnYXRlICYmIG1fZGVsZWdhdGUtPmFwcGx5KGl0ZW0sIG1fY29udGV4dCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGl0ZW0uYXBwbHkobV9jb250ZXh0KTsKK30KKwogc3RkOjp1bmlx
dWVfcHRyPERpc3BsYXlMaXN0PiBSZXBsYXllcjo6cmVwbGF5KGNvbnN0IEZsb2F0UmVjdCYgaW5p
dGlhbENsaXAsIGJvb2wgdHJhY2tSZXBsYXlMaXN0KQogewogICAgIExPR19XSVRIX1NUUkVBTShE
aXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiXG5SZXBsYXlpbmcgd2l0aCBjbGlwICIgPDwgaW5pdGlh
bENsaXApOwpAQCAtNjUsOCArODEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IFJl
cGxheWVyOjpyZXBsYXkoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgYm9vbAogICAgICAg
ICB9CiAKICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJh
cHBseWluZyAiIDw8IGkgPDwgIiAiIDw8IGl0ZW0pOwotICAgICAgICBpZiAoIW1fZGVsZWdhdGUg
fHwgIW1fZGVsZWdhdGUtPmFwcGx5KGl0ZW0sIG1fY29udGV4dCkpCi0gICAgICAgICAgICBpdGVt
LmFwcGx5KG1fY29udGV4dCk7CisgICAgICAgIGFwcGx5SXRlbShpdGVtKTsKIAogICAgICAgICBp
ZiAoVU5MSUtFTFkodHJhY2tSZXBsYXlMaXN0KSkKICAgICAgICAgICAgIHJlcGxheUxpc3QtPmFw
cGVuZEl0ZW0oY29uc3RfY2FzdDxJdGVtJj4oaXRlbSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlcGxheWVyLmgKaW5kZXggNDBjZDBmZjBkNDE2ODBjZmM3M2U1MDRkZWNmYzNkZWY4Nzc1
MzIzMy4uZGM3NGY3ZDY3YTEzNmZlNjk2NDY5MGFkMWMwNTljMDE2MmFmNjU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVwbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFJl
cGxheWVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXBsYXllcik7CiBwdWJsaWM6CiAg
ICAgY2xhc3MgRGVsZWdhdGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVwbGF5ZXIoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRGlzcGxheUxpc3QmLCBEZWxlZ2F0ZSogPSBudWxscHRyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBSZXBsYXllcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBEaXNwbGF5TGlz
dCYsIGNvbnN0IEltYWdlQnVmZmVySGFzaE1hcCogPSBudWxscHRyLCBEZWxlZ2F0ZSogPSBudWxs
cHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UmVwbGF5ZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdD4gcmVwbGF5KGNvbnN0IEZsb2F0UmVjdCYg
aW5pdGlhbENsaXAgPSB7IH0sIGJvb2wgdHJhY2tSZXBsYXlMaXN0ID0gZmFsc2UpOwpAQCAtNTQs
OCArNTQsMTEgQEAgcHVibGljOgogICAgIH07CiAgICAgCiBwcml2YXRlOgotICAgIGNvbnN0IERp
c3BsYXlMaXN0JiBtX2Rpc3BsYXlMaXN0OworICAgIHZvaWQgYXBwbHlJdGVtKEl0ZW0mKTsKKyAg
ICAKICAgICBHcmFwaGljc0NvbnRleHQmIG1fY29udGV4dDsKKyAgICBjb25zdCBEaXNwbGF5TGlz
dCYgbV9kaXNwbGF5TGlzdDsKKyAgICBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAmIG1faW1hZ2VC
dWZmZXJzOwogICAgIERlbGVnYXRlKiBtX2RlbGVnYXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAppbmRleCBhMmM5
ZTA5M2ZjMTRiYTVjMWU4MjljNGIyNGUxNjU0MDAzN2E0NDU1Li44YmM1ZDI3YmU2MzVlZmRkNWE3
ZDFmNmM0NzNmMjhkODhmMjk2NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05p
Y29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApAQCAtNTQ5LDEwICs1NDksOSBAQCBJbWFn
ZURyYXdSZXN1bHQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2Um
IGltYWdlLCBjb25zdCBGbG9hdAogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3
VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMp
OwogfQogCi1ib29sIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikKK3ZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQogewogICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVt
ZW50ZWQuCi0gICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9O
aWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCmlu
ZGV4IDNiOWQ2YTMzNmM2MmJmOWJhOGZlMmY5OWQ4NDc0YjM2ZmRlNzliYjkuLjY5MWU3NDE4MDAz
ZTU3NThhNjA0NGYzYzk3OTFiMzEwOGFkMzdjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVj
b3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2Nh
aXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2ViQ29y
ZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAg
ICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2ViQ29yZTo6SW1hZ2Um
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIFdlYkNv
cmU6OkltYWdlOjpUaWxlUnVsZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKIAotICAgIGJvb2wgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdlQnVm
ZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25z
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkltYWdl
UGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3Jl
OjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGIyNDc4MGNkN2Iw
NzQ0M2IxNTUwMjZjZjZiMTk4MWM4MjIyYmQ1MGMuLmNiNjFhZDI2MTdjOWRjNDI5MThlMzY2MDUx
YjhkNzAxNmM2OGQ2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+
JiYgYmFja2VuZCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikKLSAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihXVEZNb3ZlKGJh
Y2tlbmQpKQorICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUoYmFja2Vu
ZCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgLCBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICB7CiAgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5pbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKG1fYmFja2Vu
ZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJl
c29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKQEAgLTY1LDcgKzY1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3Qo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIGlmICghZGlzcGxheUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5ZXIoQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQoKSwgZGlzcGxheUxpc3QsIHRoaXMpOworICAgICAgICAg
ICAgY29uc3QgYXV0byYgaW1hZ2VCdWZmZXJzID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJl
bW90ZVJlc291cmNlQ2FjaGUoKS5pbWFnZUJ1ZmZlcnMoKTsKKyAgICAgICAgICAgIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZXBsYXllciByZXBsYXllciB7IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVy
Ojpjb250ZXh0KCksIGRpc3BsYXlMaXN0LCAmaW1hZ2VCdWZmZXJzLCB0aGlzIH07CiAgICAgICAg
ICAgICByZXBsYXllci5yZXBsYXkoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTc4LDkgKzc5LDYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5hcHBseVJlc291cmNlSXRlbShpdGVtLCBj
b250ZXh0KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgICAgIHJldHVybiBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuYXBwbHlNZWRpYUl0ZW0oaXRlbSwgY29udGV4dCk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZGYwZWQ0N2U1YmVmZDY3OTg0NmE0Yzdm
NTA2MjAxMzY2NDYwYjY4MC4uYjZlZjI0ZWQ3M2U0YmEyYmNlM2VhMjRkNjM3M2QzZjgzNDVhNmQ5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNzIsMjEgKzcyLDYgQEAgdWludDY0X3Qg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCk7CiB9
CiAKLWJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6YXBwbHlSZXNvdXJjZUl0ZW0oY29uc3Qg
RGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKLXsKLSAg
ICBpZiAoaXRlbS50eXBlKCkgPT0gRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZm
ZXIpIHsKLSAgICAgICAgYXV0byYgZHJhd0l0ZW0gPSBzdGF0aWNfY2FzdDxjb25zdCBEaXNwbGF5
TGlzdDo6RHJhd0ltYWdlQnVmZmVyJj4oaXRlbSk7Ci0gICAgICAgIGF1dG8gaW1hZ2VCdWZmZXIg
PSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIoZHJhd0l0ZW0ucmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpOwotICAgICAgICBpZiAoIWltYWdlQnVmZmVyKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGltYWdlQnVmZmVyLT5kcmF3KGNvbnRl
eHQsIGRyYXdJdGVtLmRlc3RpbmF0aW9uUmVjdCgpLCBkcmF3SXRlbS5zb3VyY2UoKSwgZHJhd0l0
ZW0ub3B0aW9ucygpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGZhbHNlOwotfQotCiBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5TWVkaWFJdGVt
KGNvbnN0IERpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
CiB7CiAgICAgaWYgKGl0ZW0udHlwZSgpICE9IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6UGFpbnRGcmFtZUZvck1lZGlhKQpAQCAtMTI0LDIwICsxMDksMjAgQEAgdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBSZW4KIHsKICAgICBBU1NFUlQocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxl
cmF0ZWQpOwogCi0gICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZTsKKyAgICBSZWZQdHI8SW1h
Z2VCdWZmZXI+IGltYWdlQnVmZmVyOwogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVy
aW5nTW9kZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgIGltYWdlID0gQWNjZWxlcmF0ZWRSZW1vdGVJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBpbWFnZUJ1
ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKIAotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIGltYWdlID0gVW5hY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgaWYg
KCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3Rl
SW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAotICAgIGlmIChpbWFn
ZSkgewotICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVJbWFnZUJ1ZmZlcihyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2UpKTsKKyAgICBpZiAoIWltYWdl
QnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgbV9yZW1vdGVSZXNvdXJj
ZUNhY2hlLmNhY2hlSW1hZ2VCdWZmZXIobWFrZVJlZigqaW1hZ2VCdWZmZXIpKTsKIH0KIAogdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KGNvbnN0IERpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCAy
ODVlMmY3NGI0ZDRmZDZlNmE4YzVlOTEwMjVhMWM5MjZmNWZmYjE1Li4zZGY2Zjc3NGUxNTIxYjgx
NGI3YjZjNWMyMDNiMjc2NWM2YWM3OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTYxLDkg
KzYxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsK
IAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoKSBjb25zdDsKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlJiByZW1vdGVSZXNvdXJjZUNhY2hl
KCkgeyByZXR1cm4gbV9yZW1vdGVSZXNvdXJjZUNhY2hlOyB9CiAKICAgICAvLyBSZW5kZXJpbmcg
b3BlcmF0aW9ucy4KLSAgICBib29sIGFwcGx5UmVzb3VyY2VJdGVtKGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAgICAgYm9vbCBh
cHBseU1lZGlhSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmNwcAppbmRleCA0M2U5MDg2YzE3YzczZTRlYWMxZjBkZTMwNzI4ODIxZDk2YTM1MTZi
Li41ZTBhNjc0Mjc2NGRmZDQyMGFlYmFlYmI5OGUyZDEwZGFiNTU0OWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuY3BwCkBAIC0zMSw5ICszMSw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmNhY2hlSW1hZ2VCdWZm
ZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgUmVmUHRyPEltYWdlQnVmZmVyPiYmIGltYWdlKQordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
OjpjYWNoZUltYWdlQnVmZmVyKFJlZjxJbWFnZUJ1ZmZlcj4mJiBpbWFnZUJ1ZmZlcikKIHsKLSAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1faW1hZ2VCdWZmZXJzLmFkZChyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFdURk1vdmUoaW1hZ2UpKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1faW1hZ2VC
dWZmZXJzLmFkZChpbWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIFdU
Rk1vdmUoaW1hZ2VCdWZmZXIpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVz
dWx0LmlzTmV3RW50cnkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAppbmRleCAzMjU4MjkyMzU4ZjkxN2Iz
Yjk4NDVkM2NlNDQ3N2MxNmE3NTI4OTBjLi5hNGU0Mjg2NjkyNzlmMWVhZjlkM2U4NTI1NTJiNDI0
NDQ5OWE0OWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAgLTQyLDE0ICs0MiwxNCBAQCBjbGFzcyBSZW1v
dGVSZXNvdXJjZUNhY2hlIHsKIHB1YmxpYzoKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlKCkgPSBk
ZWZhdWx0OwogCi0gICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmKTsKKyAgICB2
b2lkIGNhY2hlSW1hZ2VCdWZmZXIoUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmKTsKICAgICBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIAorICAgIGNvbnN0IFdlYkNv
cmU6OkltYWdlQnVmZmVySGFzaE1hcCYgaW1hZ2VCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV9p
bWFnZUJ1ZmZlcnM7IH0KIAogcHJpdmF0ZToKLSAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhh
c2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVm
UHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47Ci0KLSAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXAgbV9pbWFnZUJ1ZmZlcnM7CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1h
Z2VCdWZmZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oCmluZGV4IGMwZWMxYmIxMzI5ZTg5NmYyY2Y2MTNmMzdmM2NhZTQyNTY3MTg3MGQu
LjkyM2I0Y2JjNmFlZjYyZGM3NmE5ZmEzM2FiNzMzN2UyZmY1YzFiMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVy
UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRU
CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+OwogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlz
dEltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CiAgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VC
dWZmZXI6Om1fZHJhd2luZ0NvbnRleHQ7CisgICAgdXNpbmcgQmFzZURpc3BsYXlMaXN0SW1hZ2VC
dWZmZXI6Om1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwogCiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZlB0cjxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQpAQCAtNTUsMTEgKzU2LDkg
QEAgcHVibGljOgogICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KCk7Ci0gICAg
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkoKS5yZWxlYXNlSW1hZ2VCdWZmZXIobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwor
ICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVsZWFzZVJlbW90ZVJlc291
cmNlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKLSAgICBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7
IH0KLQogICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fYmFja2VuZCk7
CkBAIC0xNDksNyArMTQ4LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIFRyYWNlU2NvcGUgdHJh
Y2luZ1Njb3BlKEZsdXNoUmVtb3RlSW1hZ2VCdWZmZXJTdGFydCwgRmx1c2hSZW1vdGVJbWFnZUJ1
ZmZlckVuZCwgMSk7CiAgICAgICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LT5mbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGRpc3BsYXlMaXN0
LCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS51bmxvY2tSZW1vdGVS
ZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
ICAgICAgICBtX2l0ZW1Db3VudEluQ3VycmVudERpc3BsYXlMaXN0ID0gMDsKICAgICAgICAgZGlz
cGxheUxpc3QuY2xlYXIoKTsKICAgICB9CkBAIC0xNjEsMTcgKzE1OSw2IEBAIHByb3RlY3RlZDoK
IAogICAgICAgICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90ZUltYWdlQnVmZmVy
U3RhcnQsIEZsdXNoUmVtb3RlSW1hZ2VCdWZmZXJFbmQpOwogICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCwgbV9yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkudW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9y
UmVtb3RlQ2xpZW50KG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAg
ICBib29sIGxvY2tSZW1vdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VC
dWZmZXIpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIW1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5sb2Nr
UmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVDbGllbnQoaW1hZ2VCdWZmZXIsIG1fcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
aW1hZ2VCdWZmZXIuZmx1c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtT2ZUeXBlKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZSkgb3ZlcnJpZGUKQEAgLTE5NCw3ICsxODEsNiBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBtX3NlbnRGbHVzaElkZW50aWZpZXI7CiAg
ICAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgbV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllcjsK
LSAgICBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgeyBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6Omdl
bmVyYXRlKCkgfTsKICAgICBXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4gbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAgICAgc2l6ZV90IG1faXRlbUNvdW50SW5DdXJy
ZW50RGlzcGxheUxpc3QgeyAwIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCmluZGV4IGQ1NTc4Yzk4MjAzOWU2YmFkNGQ1MWI4ZDdiMTM4MGE3YTVhNWM4NGIu
LmYzMWVmYWY4NzMxMGZmOGVmNTIwYzA5MjUxNjZkYjZjZDMwMmIwMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQCBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlz
cGxheUxpc3RBbmRDb21taQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVs
ZWFzZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCiB7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkucmVs
ZWFzZUltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCBlOTllM2Q3
MWNhOTI2MjZhNjk2MmNjOTQ4NzdhN2MxMWI4NWVkYmE3Li5jYTA1NWZkMzZmY2UxYTEyYmIyNWJm
ZTZkNTkzNTE2OTRiY2RmYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmgKQEAgLTg1LDcgKzg1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGltYWdlQnVmZmVyQmFja2Vu
ZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2Vi
Q29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdFdhc0Nv
bW1pdHRlZChEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKIAotICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eSB7ICp0aGlzIH07CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgeyBSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuY3BwCmluZGV4IDNmNWE3M2JlYzNiZjI4NmU1Mjk4MWRlNDhiOTBjMzFkMDE5ZDhjM2QuLjgy
NTA0MjE3YmU3NjE1YjQ4N2EwY2QzMmY3ZGYxODc3MjQ2NzJlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTI4LDE2ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAKLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKLQog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgOiBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi17Ci19
Ci0KIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUltYWdlQnVmZmVyKFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlcikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1f
aW1hZ2VCdWZmZXJzLmFkZChyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGltYWdlQnVmZmVy
KTsKQEAgLTUzLDc1ICs0Niw2IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxl
YXNlSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlCiB7CiAgICAgYm9v
bCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwogICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5kKTsKLQotICAgIC8vIFRlbGwgdGhl
IEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlIHVubGVzcyBpdCdzIHBlbmRpbmcg
cmVwbGF5aW5nIGJhY2suCi0gICAgcmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7Ci19Ci0KLWJvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpsb2Nr
UmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVDbGllbnQoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVy
LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikKLXsK
LSAgICBpZiAoIWltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZm
ZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpICE9ICZpbWFnZUJ1ZmZlcikgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LQotICAgIGxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudChpbWFnZUJ1ZmZlci5yZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgcmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpsb2NrUmVt
b3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnQoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZUNsaWVudElkZW50aWZpZXIpCi17Ci0gICAgLy8gQWRkIHRoZSAicmVzb3VyY2UgLT4gY2xp
ZW50IiBkZXBlbmRlbmN5IGluIG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRz
LgotICAgIGF1dG8mIGNsaWVudHMgPSBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xp
ZW50cy5lbnN1cmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBbJl0gewotICAgICAgICBy
ZXR1cm4gUmVtb3RlQ2xpZW50c0hhc2hTZXQoKTsKLSAgICB9KS5pdGVyYXRvci0+dmFsdWU7Ci0K
LSAgICBjbGllbnRzLmFkZChyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotewotICAgIEFTU0VS
VCghbV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLmNvbnRhaW5z
KHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpOwotCi0gICAgLy8gSWYgd2UgaGF2ZSByZWNv
cmRlZCByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5kZW5jeSBiZWZvcmUgaW4gbV9sb2NrZWRSZW1v
dGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMsIG1vdmUgdGhpcwotICAgIC8vIGRlcGVuZGVuY3kg
dG8gbV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLiBPdGhlcndp
c2UgcmVtb3ZlIHRoZSByZXNvdXJjZSBpbiB0aGUgR1BVIFByb2Nlc3MuCi0gICAgaWYgKG1fbG9j
a2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLmNvbnRhaW5zKHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikpCi0gICAgICAgIG1fcGVuZGluZ1VubG9ja1JlbW90ZVJlc291cmNlRm9y
UmVtb3RlQ2xpZW50cy5hZGQocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBtX2xvY2tlZFJl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy50YWtlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikpOwotICAgIGVsc2UKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
cmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci19Ci0K
LXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp1bmxvY2tSZW1vdGVSZXNvdXJjZXNGb3JS
ZW1vdGVDbGllbnQoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50
aWZpZXIpCi17Ci0gICAgYXV0byByZW1vdmVSZW1vdGVDbGllbnQgPSBbJl0oUmVtb3RlUmVzb3Vy
Y2VDbGllbnRzSGFzaE1hcCYgcmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikgewotICAgICAgICBW
ZWN0b3I8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiByZW1vdGVSZXNvdXJjZUNsaWVudHNU
b0JlUmVtb3ZlZDsKLQotICAgICAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGll
bnQgZGVwZW5kZW5jaWVzIGZyb20gcmVtb3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcC4KLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogcmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzKSB7Ci0g
ICAgICAgICAgICBwYWlyLnZhbHVlLnJlbW92ZShyZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLSAg
ICAgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZW1v
dGVSZXNvdXJjZUNsaWVudHNUb0JlUmVtb3ZlZC5hcHBlbmQocGFpci5rZXkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgLy8gUmV0dXJuIGEgbGlzdCBvZiB0aGUgdW5yZWZlcmVuY2VkIHJlc291cmNl
cy4KLSAgICAgICAgcmV0dXJuIHJlbW90ZVJlc291cmNlQ2xpZW50c1RvQmVSZW1vdmVkOwotICAg
IH07Ci0KLSAgICAvLyBSZW1vdmUgYWxsIHRoZSByZXNvdXJjZSAtPiBjbGllbnQgZGVwZW5kZW5j
aWVzIGZyb20gbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuCi0gICAgZm9y
IChhdXRvIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA6IHJlbW92ZVJlbW90ZUNsaWVudCht
X2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cywgcmVtb3RlQ2xpZW50SWRlbnRp
ZmllcikpCi0gICAgICAgIG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLnJl
bW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotCi0gICAgLy8gUmVtb3ZlIGFsbCB0
aGUgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIG1fcGVuZGluZ1VubG9ja1Jl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy4KLSAgICBmb3IgKGF1dG8gcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIDogcmVtb3ZlUmVtb3RlQ2xpZW50KG1fcGVuZGluZ1VubG9ja1JlbW90
ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cywgcmVtb3RlQ2xpZW50SWRlbnRpZmllcikpIHsKLSAg
ICAgICAgLy8gUmVtb3ZlIHRoZSB1bnJlZmVyZW5jZWQgcmVzb3VyY2VzIGZyb20gbV9yZW1vdGVS
ZXNvdXJjZUNsaWVudHNQZW5kaW5nUmVsZWFzZUhhc2hNYXAuCi0gICAgICAgIG1fcGVuZGluZ1Vu
bG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy5yZW1vdmUocmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKLQotICAgICAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1v
dmUgdGhpcyByZXNvdXJjZS4KLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
cmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0gICAg
fQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oCmluZGV4IGU4NmJlN2RlYjA5MmJhOGYxM2I3ZGI1NWFlZTg3ODAyYzc4ZGQ0OGMuLmJkZTgx
NWExM2MxZDk1MWQ1MjA0OTM2OGE4NWM4YzQwY2ExNGRjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaApAQCAtMzYsMzEgKzM2LDE4IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Owot
CiBjbGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgewogcHVibGljOgotICAgIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmKTsKKyAgICBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGNhY2hlSW1hZ2VC
dWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciopOwogICAgIFdlYkNvcmU6OkltYWdlQnVmZmVyKiBjYWNoZWRJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZUlt
YWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBi
b29sIGxvY2tSZW1vdGVJbWFnZUJ1ZmZlckZvclJlbW90ZUNsaWVudChXZWJDb3JlOjpJbWFnZUJ1
ZmZlciYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1vdGVDbGllbnRJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIHVubG9ja1JlbW90ZVJlc291cmNlc0ZvclJlbW90ZUNsaWVu
dChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlQ2xpZW50SWRlbnRp
Zmllcik7Ci0KIHByaXZhdGU6Ci0gICAgdXNpbmcgUmVtb3RlQ2xpZW50c0hhc2hTZXQgPSBIYXNo
U2V0PFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj47Ci0gICAgdXNpbmcgUmVt
b3RlUmVzb3VyY2VDbGllbnRzSGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCBSZW1vdGVDbGllbnRzSGFzaFNldD47CiAgICAgdXNpbmcgUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eUhhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqPjsKIAotICAgIHZvaWQgbG9ja1Jl
bW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVu
dElkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0KICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
SGFzaE1hcCBtX2ltYWdlQnVmZmVyczsKLSAgICBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFw
IG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzOwotICAgIFJlbW90ZVJlc291
cmNlQ2xpZW50c0hhc2hNYXAgbV9wZW5kaW5nVW5sb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVD
bGllbnRzOwotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="429978"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413406</attachid>
            <date>2020-11-05 22:41:45 -0800</date>
            <delta_ts>2020-11-05 23:27:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218529-20201105224144.patch</filename>
            <type>text/plain</type>
            <size>47311</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjODFmNmY1YTRjM2Y5
ZTE2M2U0YTgwOTY5YjM3ZGM2MDYyZTI2My4uNDk3ODMwMTYwMDU1ZmY2ZjA0YmQ1MGM0MTNjYmYy
ODA5ZDFlM2FmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTExLTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
VXNlIHRoZSBSZWYgY291bnRpbmcgb2YgSW1hZ2VCdWZmZXIgdG8gY29udHJvbCBpdHMgbGlmZSBj
eWNsZSBpbiBXZWIgUHJvY2VzcyBhbmQgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODUyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICBFdmVyeSBJbWFnZUJ1ZmZlciB3aWxsIGhhdmUgYSB2
YWxpZCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZlci4gSXQgY2FuIGJlCisgICAgICAgIGVpdGhl
ciBnZW5lcmF0ZWQgd2hlbiB0aGUgSW1hZ2VCdWZmZXIgaXMgY3JlYXRlZC4gT3IgaXQgY2FuIGJl
IHNldCBieSB0aGUKKyAgICAgICAgY2FsbGVyLiBTZXR0aW5nIGl0IGJ5IHRoZSBjYWxsZXIgd2ls
bCBoYXBwZW4gb25seSBpbiB0aGUgR1BVUCB3aGVyZSB3ZQorICAgICAgICBuZWVkIGl0IG1hdGNo
IHdoYXQgd2FzIGdlbmVyYXRlZCBpbiB0aGUgV2ViUC4KKworICAgICAgICBXaGVuIHJlY29yZGlu
ZyBhIERyYXdJbWFnZUJ1ZmZlciBpdGVtLCBhIFJlZjxJbWFnZUJ1ZmZlcj4gb2YgdGhlIHNvdXJj
ZQorICAgICAgICBJbWFnZUJ1ZmZlciB3aWxsIGJlIGFkZGVkIHRvIGEgSGFzaFNldCBpbiBEaXNw
bGF5TGlzdC4gVGhlIGdvYWwgaXMga2VlcAorICAgICAgICB0aGlzIEltYWdlQnVmZmVyIGFsaXZl
IHRpbGwgdGhlIERpc3BsYXlMaXN0IGlzIGNsZWFyZWQuIFRoZSBIYXNoU2V0IHdpbGwKKyAgICAg
ICAgYmUgY2xlYXJlZCBpbiBEaXNwbGF5TGlzdDo6Y2xlYXIoKSB3aGljaCB3aWxsIGhhcHBlbiB3
aGVuIGVpdGhlciB0aGUgCisgICAgICAgIERpc3BsYXlMaXN0IGlzIHJlcGxheWVkIGJhY2sgb3Ig
c2VudCB0byB0aGUgR1BVUC4KKworICAgICAgICBUaGlzIEhhc2hTZXQgY2FuIGJlIHVzZWQgdG8g
cmVzb2x2ZSB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmZXIgdG8gYW4KKyAgICAgICAgSW1h
Z2VCdWZmZXIgd2hlbiByZXBsYXlpbmcgYmFjayB0aGUgRGlzcGxheUxpc3QgZWl0aGVyIGluIFdl
YlAgb3IgaW4gR1BVUC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1h
Z2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI6OkNvbmNy
ZXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJ
bWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0ltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRJbXBsQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0OjpjbGVhcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6
OmltYWdlQnVmZmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3Q6OmNhY2hlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXI6OkRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdJ
bWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNv
cmRlcjo6RGVsZWdhdGU6On5EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OkRlbGVnYXRlOjpsb2NrUmVtb3RlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6UmVwbGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjphcHBseUl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpyZXBsYXkpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlv
blJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKwogMjAyMC0x
MS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViU29j
a2V0IGNvbnN0cnVjdG9yIHNob3VsZCBub3QgdGhyb3cgaW4gY2FzZSBwb3J0IGlzIGJsb2NrZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMjM3ZDE3MTA5OGQxNjFiYmVhM2UyODYzMDFjYmIyMjY4ZDczZDRhZS4uNmI0
M2JhNTdjN2RkMThkZTQ3MGZkYTFjNTc3NzY3NDk0NTkwMGVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0NiBAQAorMjAyMC0xMS0wNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
KworICAgICAgICBbR1BVIFByb2Nlc3NdIFVzZSB0aGUgUmVmIGNvdW50aW5nIG9mIEltYWdlQnVm
ZmVyIHRvIGNvbnRyb2wgaXRzIGxpZmUgY3ljbGUgaW4gV2ViIFByb2Nlc3MgYW5kIEdQVSBQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1
MjkKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiBh
IERyYXdJbWFnZUJ1ZmZlciBpdGVtIGlzIGFwcGVuZGVkIHRvIERpc3BsYXlMaXN0LCBhIFJlZjxJ
bWFnZUJ1ZmZlcj4KKyAgICAgICAgd2lsbCBiZSBjYWNoZWQgdGlsbCB0aGUgRGlzcGxheUxpc3Qg
aXRlbXMgbGlzdCBpcyBjbGVhcmVkLiBTbyBubyBuZWVkIHRvCisgICAgICAgIGxvY2sgdGhlIHJl
bW90ZSByZXNvdXJjZSBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgQWxs
IHdlIG5lZWQgdG8gaXMgdG8gcGFzcyB0aGUgSW1hZ2VCdWZmZXJIYXNoTWFwIHdoaWNoIGlzIG1h
aW50YWluZWQgYnkKKyAgICAgICAgdGhlIERpc3BsYXlMaXN0IG9yIGJ5IFJlbW90ZVJlc291cmNl
Q2FjaGUgdG8gdGhlIERpc3BsYXlMaXN0OjpSZXBsYXllci4KKyAgICAgICAgSXQgaXMgZ29pbmcg
dG8gYmUgdXNlZCB0byByZXNvbHZlIHRoZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZlciB0byBh
bgorICAgICAgICBJbWFnZUJ1ZmZlciBzbyB0aGUgRHJhd0ltYWdlQnVmZmVyIGNhbiBiZSBhcHBs
aWVkLgorCisgICAgICAgIE5vIG5lZWQgdG8gc3BlY2lhbC1jYXNlIERyYXdJbWFnZUJ1ZmZlcjo6
YXBwbHkoKSBpbiB0aGUgUmVtb3RlSW1hZ2VCdWZmZXIuCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseVJlc291cmNlSXRlbSk6IERlbGV0ZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbW90ZVJlc291cmNlQ2FjaGUp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6OmNhY2hlSW1hZ2VCdWZmZXIp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjppbWFnZUJ1ZmZlcnMgY29uc3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6flJlbW90ZUlt
YWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5Ojpsb2NrUmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVDbGllbnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6Omxv
Y2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojp1bmxvY2tS
ZW1vdGVSZXNvdXJjZXNGb3JSZW1vdGVDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorCiAyMDIwLTEx
LTA1ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIGZpeCB0aGUgYnVpbGQgd2l0aCByZWNlbnQgU0RLcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCAx
NmM5YTM1NjM1NWFiOWVlMTQyMTcyYTIxOTRmYzNjNjdlYWM2OTllLi4yMjNkOWRjMTgzZDAzZTNm
NGNjMzUxZjRkYTZmNmY4OTNmMGFiNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC01NCwxNSArNTQsMTYg
QEAgcHVibGljOgogICAgIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIEJhY2tlbmRUeXBlOjppc0FjY2VsZXJhdGVkOyB9CiAKIHByb3RlY3RlZDoKLSAgICBDb25j
cmV0ZUltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kKQor
ICAgIENvbmNyZXRlSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJh
Y2tlbmQgPSBudWxscHRyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyID0gUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
KQogICAgICAgICA6IG1fYmFja2VuZChXVEZNb3ZlKGJhY2tlbmQpKQorICAgICAgICAsIG1fcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAg
ICB7CiAgICAgfQogCi0gICAgQ29uY3JldGVJbWFnZUJ1ZmZlcigpID0gZGVmYXVsdDsKLQogICAg
IHZpcnR1YWwgQmFja2VuZFR5cGUqIGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNrZW5kLmdldCgpOyB9CiAKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7IH0KKwogICAgIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlQobV9iYWNrZW5kKTsK
QEAgLTI1MCw2ICsyNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEJhY2tlbmRUeXBlPiBtX2JhY2tlbmQ7CisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5jcHAKaW5kZXggOWNmMTgyMzgzMjBkNjM5NDlkZDRkMzgxNjM4ZDMzY2YzMDYx
NjJlNi4uMzBiODg0OTE5YjJjNjA0NWY3OTk2YzE5YTE1YmFmNjM5YmM1MjY5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CkBAIC04MTIsOCArODEyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZm
ZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpCiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1wbCAmJiBt
X2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9u
cykpCisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcihp
bWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CiAgICAgaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CkBA
IC04NDAsOCArODQyLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1h
Z2VCdWZmZXIoUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faW1w
bCAmJiBtX2ltcGwtPmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2Us
IG9wdGlvbnMpKQorICAgIGlmIChtX2ltcGwpIHsKKyAgICAgICAgbV9pbXBsLT5kcmF3SW1hZ2VC
dWZmZXIoKmltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKICAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBv
bGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVh
bGl0eSgpKTsKICAgICBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhXVEZNb3ZlKGltYWdlKSwg
KnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDM1
MzZkMmYzYjczY2Q0ODhlOThlYzJlOWZkZTI0OGY4MjM4YzM5Y2UuLjZlMjIyYzAyZjJkOWFlMzY0
MDYxYjczZDljMzdiNzdiMjliMDNiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTczLDcgKzczLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNl
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9y
LCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZThlNDg4NjVk
OWQ3OGZlYjhlN2U0ODA4OGQ4Y2MzYTllOTA3MjQyOS4uOTIwNGFkMTBhODEwNjgwNmRlOTI2ZjJl
ZWZmYzE2MzRjNzcwMGU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oCkBAIC0xMTksNCArMTE5LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBkcmF3Q29uc3VtaW5nKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmKSA9IDA7CiB9OwogCit1c2luZyBJbWFnZUJ1ZmZlckhhc2hNYXAgPSBIYXNoTWFwPFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVmPEltYWdlQnVmZmVyPj47CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4
IDhlZjRmNzg2YjcyNDkxNDI0NTZlZmYxZjBhZDgyMTZjYzkwNTUzNjcuLjZjYTI1OGI1NWQxY2Y1
ZjhiNWY1ZmI2YTQ2YmIwNjFkMWM2NTA3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmNwcApAQCAtMjc5LDEwICsyNzksOSBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3ND
b250ZXh0SW1wbENhaXJvOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsbwog
ICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhp
Y3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3Is
IGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwogfQogCi1ib29sIEdyYXBoaWNz
Q29udGV4dEltcGxDYWlybzo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQor
dm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZl
ciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikKIHsKICAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVy
biBmYWxzZTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJv
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRJbXBsQ2Fpcm8uaAppbmRleCAxYzgyNzEzMGMyYTVmZTI4Zjc1MzVlMTk0NWEzM2RjOTY4NjIw
NTE0Li44YTkzN2RhMjM5ZDZkNmNkZDBhMDQ4Y2NjZDgzNjc5MTA1ZDk3Y2FjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJ
bXBsQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRTaXplJiwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFnZTo6VGlsZVJ1bGUsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgCi0gICAgYm9vbCBkcmF3
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJh
d0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCBmZmQ5ZDZkZGZiNjBh
YzFhMDk3MjJkZmFkYzgyZjExNTMwZTkyMGExLi40MjRkOWEwNGMxNjM0MmQ5MDY5NjYzOGEyMmNm
MzcyNzRlMjhlMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTUxLDYgKzUxLDcg
QEAgdm9pZCBEaXNwbGF5TGlzdDo6ZHVtcCgpIGNvbnN0CiB2b2lkIERpc3BsYXlMaXN0OjpjbGVh
cigpCiB7CiAgICAgbV9saXN0LmNsZWFyKCk7CisgICAgbV9pbWFnZUJ1ZmZlcnMuY2xlYXIoKTsK
IH0KIAogYm9vbCBEaXNwbGF5TGlzdDo6c2hvdWxkRHVtcEZvckZsYWdzKEFzVGV4dEZsYWdzIGZs
YWdzLCBjb25zdCBJdGVtJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAppbmRleCBmOWM5Mzk4
ZjBiNzIyMjRmNjkwMmEzOGY3OTU3NTYzMmQxYjFhMzIwLi44NWQwMTJhNDc1MGIyYWJlYjBiOGIz
NWI4M2YwMjkwMzgwMjc3M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuaApAQCAtMjgsNyArMjgs
OSBAQAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0SXRlbVR5cGUuaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtMTAxLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcg
YXNUZXh0KEFzVGV4dEZsYWdzKSBjb25zdDsKIAorICAgIGNvbnN0IEltYWdlQnVmZmVySGFzaE1h
cCYgaW1hZ2VCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcnM7IH0KKwogI2lm
ICFkZWZpbmVkKE5ERUJVRykgfHwgIUxPR19ESVNBQkxFRAogICAgIFdURjo6Q1N0cmluZyBkZXNj
cmlwdGlvbigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcCgpIGNvbnN0OwpA
QCAtMTA5LDcgKzExMyw2IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPERpc3BsYXlMaXN0PiBkZWNvZGUoRGVjb2RlciYpOwogCi0KIHByaXZh
dGU6CiAgICAgSXRlbSYgYXBwZW5kKFJlZjxJdGVtPiYmIGl0ZW0pCiAgICAgewpAQCAtMTIzLDEx
ICsxMjYsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9saXN0LmFwcGVuZChpdGVtKTsKICAgICB9
CiAKKyAgICB2b2lkIGNhY2hlSW1hZ2VCdWZmZXIoUmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYm
IGltYWdlQnVmZmVyKQorICAgIHsKKyAgICAgICAgbV9pbWFnZUJ1ZmZlcnMuYWRkKGltYWdlQnVm
ZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgV1RGTW92ZShpbWFnZUJ1ZmZlcikp
OworICAgIH0KKwogICAgIHN0YXRpYyBib29sIHNob3VsZER1bXBGb3JGbGFncyhBc1RleHRGbGFn
cywgY29uc3QgSXRlbSYpOwogCiAgICAgVmVjdG9yPFJlZjxJdGVtPj4mIGxpc3QoKSB7IHJldHVy
biBtX2xpc3Q7IH0KIAogICAgIFZlY3RvcjxSZWY8SXRlbT4+IG1fbGlzdDsKKyAgICBJbWFnZUJ1
ZmZlckhhc2hNYXAgbV9pbWFnZUJ1ZmZlcnM7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCA0NTdhZWRkZTMyOTZhNzgyNDUwOTBkNmFlZTExNjkw
NWEyM2E0ZGRjLi40YmFhOWViZjEyOWU5NmM5OTE1OTU5ZTc4MGU2OTljMzQzZGY1ZTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0yNDUsNyArMjQ1LDYg
QEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3Rm9jdXNSaW5nUmVjdHM6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0dseXBoczoKICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2U6Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVm
ZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd05hdGl2ZUltYWdlOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXRoOgpAQCAt
Mjc2LDYgKzI3NSw3IEBAIGJvb2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0RvdHNG
b3JEb2N1bWVudE1hcmtlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKKyAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xp
bmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5k
VHJhbnNwYXJlbmN5TGF5ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5k
ZXggNTZiNTdmMDdjM2MzYzkzY2QzZjAxOTBmNWQ0YWNkMWJiNmMyYTRlOS4uNjg3NzAzNjBhZWU0
NjBhNTg1ZGVhZmMyYTQ1NmE0ODU3YmVkNWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGlzcGxheUxpc3RSZXBs
YXllci5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtODM5LDE2ICs4NDAsMjEgQEAgRHJhd0ltYWdlQnVm
ZmVyOjpEcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWQKICAgICAsIG1fc3JjUmVjdChzcmNSZWN0KQogICAgICwgbV9vcHRpb25zKG9w
dGlvbnMpCiB7CisgICAgQVNTRVJUKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0K
IAogRHJhd0ltYWdlQnVmZmVyOjp+RHJhd0ltYWdlQnVmZmVyKCkgPSBkZWZhdWx0OwogCiB2b2lk
IERyYXdJbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKIHsKLSAgICAv
LyBTaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVsZWdhdGUuCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKK3ZvaWQgRHJhd0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKK3sKKyAg
ICBjb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgbV9kZXN0aW5hdGlvblJlY3Qs
IG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKK30KKwogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdJbWFnZUJ1ZmZlciYgaXRlbSkKIHsKICAgICB0
cyA8PCBzdGF0aWNfY2FzdDxjb25zdCBEcmF3aW5nSXRlbSY+KGl0ZW0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZjAxNWJlNWU4NjYwNmVjYzJmNmNlODU3YzFmNzExNjc2
OTRmZThlMy4uNzk3NTk4ZTcyMWQ1NjIzMWRmZjA2NDlhYTU3MzE3NDNhMmNlYjAzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xNjQ4LDYgKzE2NDgsOCBAQCBwdWJsaWM6
CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGlu
YXRpb25SZWN0OyB9CiAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fb3B0aW9uczsgfQogCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OworCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8RHJhd0ltYWdlQnVmZmVyPj4gZGVjb2RlKERlY29kZXIm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGJmNWI4
M2IyMmMzZjRjNzI1ODFlNjhiOWE1MmQ3NzMwMmQyODI5NGUuLjAyZWZjODg3YTczNThmOWNiYWM3
ZWQ2ODlhY2UxY2M1NWQ3NTgwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAKQEAgLTE4NSwxMyArMTg1LDExIEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiAg
ICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVjb3JkOwogfQogCi1ib29sIFJlY29yZGVy
OjpkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQordm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVm
ZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKIHsKLSAgICBpZiAoIW1fZGVsZWdhdGUgfHwgIW1fZGVsZWdhdGUtPmxv
Y2tSZW1vdGVJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQorICAgIGltYWdlQnVmZmVyLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKKyAgICBtX2Rpc3BsYXlM
aXN0LmNhY2hlSW1hZ2VCdWZmZXIobWFrZVJlZihpbWFnZUJ1ZmZlcikpOwogICAgIGFwcGVuZEl0
ZW1BbmRVcGRhdGVFeHRlbnQoRHJhd0ltYWdlQnVmZmVyOjpjcmVhdGUoaW1hZ2VCdWZmZXIucmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7
Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmgKaW5kZXggOTJjMDUxM2E3ZjljNmJjYTUyNTA0NDhmMzA4M2ZkZTFjZDY2ZDg5
NC4uOGJkNjIxZmFkMzBjOTIyNDJkZTlkMDM4MmZhMjM3ZDBhNDZlYzY3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAg
ICBjbGFzcyBEZWxlZ2F0ZSB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5EZWxlZ2F0
ZSgpIHsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgbG9ja1JlbW90ZUltYWdlQnVmZmVyKFdlYkNv
cmU6OkltYWdlQnVmZmVyJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCB2b2lk
IHdpbGxBcHBlbmRJdGVtT2ZUeXBlKEl0ZW1UeXBlKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEFwcGVuZEl0ZW1PZlR5cGUoSXRlbVR5cGUpIHsgfQogICAgIH07CkBAIC0xMDcsNyArMTA2
LDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2Um
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2Us
IGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIElt
YWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBkcmF3SW1hZ2VCdWZmZXIoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlcGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCAxMmI1ZjYyY2M0MjQ1
MjE0MmQ4Yjk4ZTJkZWYyNTRlZTEwZDdmMTgyLi44Mjg4MzgwNDMxYTI5MGMwNDBjMTlkMWFlZWNl
OTQyNGZmNTc3MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3Bw
CkBAIC0zNCwxNSArMzQsMzEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNw
bGF5TGlzdCB7CiAKLVJlcGxheWVyOjpSZXBsYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgRGVsZWdhdGUqIGRlbGVnYXRlKQotICAg
IDogbV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKLSAgICAsIG1fY29udGV4dChjb250ZXh0KQor
UmVwbGF5ZXI6OlJlcGxheWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAqIGltYWdlQnVmZmVy
cywgRGVsZWdhdGUqIGRlbGVnYXRlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBt
X2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQorICAgICwgbV9pbWFnZUJ1ZmZlcnMoaW1hZ2VCdWZm
ZXJzID8gKmltYWdlQnVmZmVycyA6IG1fZGlzcGxheUxpc3QuaW1hZ2VCdWZmZXJzKCkpCiAgICAg
LCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogfQogCiBSZXBsYXllcjo6flJlcGxheWVyKCkgPSBk
ZWZhdWx0OwogCit2b2lkIFJlcGxheWVyOjphcHBseUl0ZW0oSXRlbSYgaXRlbSkKK3sKKyAgICBp
ZiAobV9kZWxlZ2F0ZSAmJiBtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBtX2NvbnRleHQpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgaWYgKGl0ZW0udHlwZSgpID09IEl0ZW1UeXBlOjpEcmF3
SW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgYXV0byYgZHJhd0l0ZW0gPSBzdGF0aWNfY2FzdDxEcmF3
SW1hZ2VCdWZmZXImPihpdGVtKTsKKyAgICAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gbV9p
bWFnZUJ1ZmZlcnMuZ2V0KGRyYXdJdGVtLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSkK
KyAgICAgICAgICAgIGRyYXdJdGVtLmFwcGx5KG1fY29udGV4dCwgKmltYWdlQnVmZmVyKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpdGVtLmFwcGx5KG1fY29udGV4dCk7Cit9
CisKIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdD4gUmVwbGF5ZXI6OnJlcGxheShjb25zdCBG
bG9hdFJlY3QmIGluaXRpYWxDbGlwLCBib29sIHRyYWNrUmVwbGF5TGlzdCkKIHsKICAgICBMT0df
V0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVwbGF5aW5nIHdpdGggY2xp
cCAiIDw8IGluaXRpYWxDbGlwKTsKQEAgLTY1LDggKzgxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERp
c3BsYXlMaXN0PiBSZXBsYXllcjo6cmVwbGF5KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAs
IGJvb2wKICAgICAgICAgfQogCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMs
IHN0cmVhbSA8PCAiYXBwbHlpbmcgIiA8PCBpIDw8ICIgIiA8PCBpdGVtKTsKLSAgICAgICAgaWYg
KCFtX2RlbGVnYXRlIHx8ICFtX2RlbGVnYXRlLT5hcHBseShpdGVtLCBtX2NvbnRleHQpKQotICAg
ICAgICAgICAgaXRlbS5hcHBseShtX2NvbnRleHQpOworICAgICAgICBhcHBseUl0ZW0oaXRlbSk7
CiAKICAgICAgICAgaWYgKFVOTElLRUxZKHRyYWNrUmVwbGF5TGlzdCkpCiAgICAgICAgICAgICBy
ZXBsYXlMaXN0LT5hcHBlbmRJdGVtKGNvbnN0X2Nhc3Q8SXRlbSY+KGl0ZW0pKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlcGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5oCmluZGV4IDQwY2QwZmYwZDQxNjgwY2ZjNzNlNTA0
ZGVjZmMzZGVmODc3NTMyMzMuLmRjNzRmN2Q2N2ExMzZmZTY5NjQ2OTBhZDFjMDU5YzAxNjJhZjY1
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaApAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBSZXBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVwbGF5ZXIp
OwogcHVibGljOgogICAgIGNsYXNzIERlbGVnYXRlOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlcGxh
eWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IERpc3BsYXlMaXN0JiwgRGVsZWdhdGUqID0gbnVs
bHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVwbGF5ZXIoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRGlzcGxheUxpc3QmLCBjb25zdCBJbWFnZUJ1ZmZlckhhc2hNYXAqID0gbnVsbHB0ciwgRGVs
ZWdhdGUqID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflJlcGxheWVyKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpc3Q+IHJlcGxheShjb25z
dCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwID0geyB9LCBib29sIHRyYWNrUmVwbGF5TGlzdCA9IGZh
bHNlKTsKQEAgLTU0LDggKzU0LDExIEBAIHB1YmxpYzoKICAgICB9OwogICAgIAogcHJpdmF0ZToK
LSAgICBjb25zdCBEaXNwbGF5TGlzdCYgbV9kaXNwbGF5TGlzdDsKKyAgICB2b2lkIGFwcGx5SXRl
bShJdGVtJik7CisgICAgCiAgICAgR3JhcGhpY3NDb250ZXh0JiBtX2NvbnRleHQ7CisgICAgY29u
c3QgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7CisgICAgY29uc3QgSW1hZ2VCdWZmZXJIYXNo
TWFwJiBtX2ltYWdlQnVmZmVyczsKICAgICBEZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8v
Tmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5j
cHAKaW5kZXggYTJjOWUwOTNmYzE0YmE1YzFlODI5YzRiMjRlMTY1NDAwMzdhNDQ1NS4uOGJjNWQy
N2JlNjM1ZWZkZDVhN2QxZjZjNDczZjI4ZDg4ZjI5NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRp
b25SZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKQEAgLTU0OSwxMCAr
NTQ5LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdUaWxl
ZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXQKICAgICByZXR1cm4gR3JhcGhpY3NDb250
ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVz
dGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFp
bnRpbmdPcHRpb25zKTsKIH0KIAotYm9vbCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKIHsKICAgICAvLyBGSVhN
RTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBDYWlyb09w
ZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9u
UmVjb3JkZXIuaAppbmRleCAzYjlkNmEzMzZjNjJiZjliYThmZTJmOTlkODQ3NGIzNmZkZTc5YmI5
Li42OTFlNzQxODAwM2U1NzU4YTYwNDRmM2M5NzkxYjMxMDhhZDM3YzJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWly
b09wZXJhdGlvblJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCkBAIC02OCw3
ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxl
ZEltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdl
YkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6SW1hZ2U6OlRp
bGVSdWxlLCBXZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKLSAgICBib29sIGRyYXdJbWFnZUJ1ZmZlcihXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNv
cmU6OkltYWdlQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1Bh
dHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3Qg
V2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRl
eCBiMjQ3ODBjZDdiMDc0NDNiMTU1MDI2Y2Y2YjE5ODFjODIyMmJkNTBjLi5jYjYxYWQyNjE3Yzlk
YzQyOTE4ZTM2NjA1MWI4ZDcwMTZjNjhkNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgUmVtb3RlSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRy
PEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXIoV1RGTW92ZShiYWNrZW5kKSkKKyAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihX
VEZNb3ZlKGJhY2tlbmQpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgICwg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgewog
ICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3Jl
YXRlZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwg
bV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1f
YmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CkBAIC02NSw3ICs2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmbHVz
aERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIWRpc3BsYXlMaXN0LmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyIHJlcGxh
eWVyKEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpjb250ZXh0KCksIGRpc3BsYXlMaXN0LCB0aGlz
KTsKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIGltYWdlQnVmZmVycyA9IG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5yZW1vdGVSZXNvdXJjZUNhY2hlKCkuaW1hZ2VCdWZmZXJzKCk7CisgICAgICAg
ICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5ZXIgeyBCYXNlQ29uY3Jl
dGVJbWFnZUJ1ZmZlcjo6Y29udGV4dCgpLCBkaXNwbGF5TGlzdCwgJmltYWdlQnVmZmVycywgdGhp
cyB9OwogICAgICAgICAgICAgcmVwbGF5ZXIucmVwbGF5KCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC03OCw5ICs3OSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuYXBwbHlSZXNvdXJj
ZUl0ZW0oaXRlbSwgY29udGV4dCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQogICAgICAg
ICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmFwcGx5TWVkaWFJdGVtKGl0ZW0sIGNv
bnRleHQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGRmMGVkNDdlNWJl
ZmQ2Nzk4NDZhNGM3ZjUwNjIwMTM2NjQ2MGI2ODAuLmI2ZWYyNGVkNzNlNGJhMmJjZTNlYTI0ZDYz
NzNkM2Y4MzQ1YTZkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTcyLDIxICs3Miw2
IEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci50
b1VJbnQ2NCgpOwogfQogCi1ib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5UmVzb3Vy
Y2VJdGVtKGNvbnN0IERpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpCi17Ci0gICAgaWYgKGl0ZW0udHlwZSgpID09IERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd0ltYWdlQnVmZmVyKSB7Ci0gICAgICAgIGF1dG8mIGRyYXdJdGVtID0gc3RhdGljX2Nhc3Q8
Y29uc3QgRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlciY+KGl0ZW0pOwotICAgICAgICBhdXRv
IGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKGRy
YXdJdGVtLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKLSAgICAgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpbWFnZUJ1ZmZl
ci0+ZHJhdyhjb250ZXh0LCBkcmF3SXRlbS5kZXN0aW5hdGlvblJlY3QoKSwgZHJhd0l0ZW0uc291
cmNlKCksIGRyYXdJdGVtLm9wdGlvbnMoKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
LQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjph
cHBseU1lZGlhSXRlbShjb25zdCBEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChpdGVtLnR5cGUoKSAhPSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYSkKQEAgLTEyNCwyMCArMTA5LDIwIEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuCiB7CiAgICAgQVNTRVJUKHJlbmRlcmluZ01vZGUgPT0g
UmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdN
b2RlOjpVbmFjY2VsZXJhdGVkKTsKIAotICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2U7Cisg
ICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKIAogICAgIGlmIChyZW5kZXJpbmdN
b2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICBpbWFnZSA9IEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBpZiAoIWltYWdlKQotICAgICAgICBpbWFnZSA9
IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2Nl
bGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAK
LSAgICBpZiAoaW1hZ2UpIHsKLSAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlSW1h
Z2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlKSk7Cisg
ICAgaWYgKCFpbWFnZUJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZUltYWdlQnVmZmVyKG1ha2VSZWYoKmltYWdlQnVmZmVy
KSk7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdChj
b25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmgKaW5kZXggMjg1ZTJmNzRiNGQ0ZmQ2ZTZhOGM1ZTkxMDI1YTFjOTI2ZjVmZmIxNS4uM2Rm
NmY3NzRlMTUyMWI4MTRiN2I2YzVjMjAzYjI3NjVjNmFjNzkwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCkBAIC02MSw5ICs2MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKCk7CiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKCkgY29uc3Q7CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSYgcmVtb3Rl
UmVzb3VyY2VDYWNoZSgpIHsgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsgfQogCiAgICAg
Ly8gUmVuZGVyaW5nIG9wZXJhdGlvbnMuCi0gICAgYm9vbCBhcHBseVJlc291cmNlSXRlbShjb25z
dCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYp
OwogICAgIGJvb2wgYXBwbHlNZWRpYUl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW0mLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJl
IHNlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKaW5kZXggNDNlOTA4NmMxN2M3M2U0ZWFjMWYwZGUzMDcy
ODgyMWQ5NmEzNTE2Yi4uNWUwYTY3NDI3NjRkZmQ0MjBhZWJhZWJiOThlMmQxMGRhYjU1NDlkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcApAQCAtMzEsOSArMzEsOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpj
YWNoZUltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4mJiBpbWFnZSkKK3ZvaWQgUmVtb3Rl
UmVzb3VyY2VDYWNoZTo6Y2FjaGVJbWFnZUJ1ZmZlcihSZWY8SW1hZ2VCdWZmZXI+JiYgaW1hZ2VC
dWZmZXIpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2ltYWdlQnVmZmVycy5hZGQocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlKSk7CisgICAgYXV0byBhZGRSZXN1
bHQgPSBtX2ltYWdlQnVmZmVycy5hZGQoaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcigpLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRS
ZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKaW5kZXggMzI1
ODI5MjM1OGY5MTdiM2I5ODQ1ZDNjZTQ0NzdjMTZhNzUyODkwYy4uYTRlNDI4NjY5Mjc5ZjFlYWY5
ZDNlODUyNTUyYjQyNDQ0OTlhNDliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCkBAIC00MiwxNCArNDIsMTQg
QEAgY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZSB7CiBwdWJsaWM6CiAgICAgUmVtb3RlUmVzb3Vy
Y2VDYWNoZSgpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgY2FjaGVJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4mJik7CisgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4mJik7CiAgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGNhY2hlZEltYWdlQnVmZmVyKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3Rl
UmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAKKyAg
ICBjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlckhhc2hNYXAmIGltYWdlQnVmZmVycygpIGNvbnN0
IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJzOyB9CiAKIHByaXZhdGU6Ci0gICAgdXNpbmcgUmVtb3Rl
SW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4+OwotCi0gICAgUmVtb3RlSW1h
Z2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOworICAgIFdlYkNvcmU6OkltYWdlQnVmZmVy
SGFzaE1hcCBtX2ltYWdlQnVmZmVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBjMGVjMWJiMTMyOWU4OTZmMmNmNjEzZjM3ZjNj
YWU0MjU2NzE4NzBkLi45MjNiNGNiYzZhZWY2MmRjNzZhOWZhMzNhYjczMzdlMmZmNWMxYjA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1
ZmZlcjxCYWNrZW5kVAogICAgIHVzaW5nIEJhc2VEaXNwbGF5TGlzdEltYWdlQnVmZmVyID0gV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKICAgICB1c2luZyBC
YXNlRGlzcGxheUxpc3RJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOwogICAgIHVzaW5nIEJhc2VEaXNw
bGF5TGlzdEltYWdlQnVmZmVyOjptX2RyYXdpbmdDb250ZXh0OworICAgIHVzaW5nIEJhc2VEaXNw
bGF5TGlzdEltYWdlQnVmZmVyOjptX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKIAogcHVi
bGljOgogICAgIHN0YXRpYyBSZWZQdHI8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKQEAg
LTU1LDExICs1Niw5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29u
dGV4dCgpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5KCkucmVsZWFzZUltYWdlQnVmZmVyKG1fcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVh
c2VSZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQog
Ci0gICAgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyOyB9Ci0KICAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNl
LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KCFtX2JhY2tlbmQpOwpAQCAtMTQ5LDcgKzE0OCw2IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBU
cmFjZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90ZUltYWdlQnVmZmVyU3RhcnQsIEZsdXNo
UmVtb3RlSW1hZ2VCdWZmZXJFbmQsIDEpOwogICAgICAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIg
PSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1p
dChkaXNwbGF5TGlzdCwgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCku
dW5sb2NrUmVtb3RlUmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KG1fcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKICAgICAgICAgbV9pdGVtQ291bnRJbkN1cnJlbnREaXNwbGF5TGlzdCA9IDA7
CiAgICAgICAgIGRpc3BsYXlMaXN0LmNsZWFyKCk7CiAgICAgfQpAQCAtMTYxLDE3ICsxNTksNiBA
QCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRmx1c2hSZW1v
dGVJbWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUltYWdlQnVmZmVyRW5kKTsKICAgICAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxp
c3QsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHktPnJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpLnVubG9ja1JlbW90
ZVJlc291cmNlc0ZvclJlbW90ZUNsaWVudChtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7
Ci0gICAgfQotCi0gICAgYm9vbCBsb2NrUmVtb3RlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VC
dWZmZXImIGltYWdlQnVmZmVyKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgaWYgKCFtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5KCkubG9ja1JlbW90ZUltYWdlQnVmZmVyRm9yUmVtb3RlQ2xpZW50KGltYWdlQnVmZmVy
LCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGltYWdlQnVmZmVyLmZsdXNoRHJhd2luZ0NvbnRleHQoKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbU9mVHlwZShXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGUpIG92ZXJyaWRlCkBAIC0xOTQsNyArMTgxLDYgQEAg
cHJvdGVjdGVkOgogCiAgICAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgbV9zZW50Rmx1c2hJ
ZGVudGlmaWVyOwogICAgIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIG1fcmVjZWl2ZWRGbHVz
aElkZW50aWZpZXI7Ci0gICAgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHsgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiAgICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogICAgIHNpemVfdCBtX2l0
ZW1Db3VudEluQ3VycmVudERpc3BsYXlMaXN0IHsgMCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBkNTU3OGM5ODIwMzllNmJhZDRkNTFiOGQ3YjEz
ODBhN2E1YTVjODRiLi5mMzFlZmFmODczMTBmZjhlZjUyMGMwOTI1MTY2ZGI2Y2QzMDJiMDM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0xMjcsNiArMTI3
LDcgQEAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWkKIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogeworICAgIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5LnJlbGVhc2VJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1v
dGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
aW5kZXggZTk5ZTNkNzFjYTkyNjI2YTY5NjJjYzk0ODc3YTdjMTFiODVlZGJhNy4uY2EwNTVmZDM2
ZmNlMWExMmJiMjViZmU2ZDU5MzUxNjk0YmNkZmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbWFn
ZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZsdXNoRGlz
cGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgeyAqdGhpcyB9OworICAgIFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eTsKICAgICBSZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHsgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNwcAppbmRleCAzZjVhNzNiZWMzYmYyODZlNTI5ODFkZTQ4YjkwYzMx
ZDAxOWQ4YzNkLi44MjUwNDIxN2JlNzYxNWI0ODdhMGNkMzJmN2RmMTg3NzI0NjcyZWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBAIC0yOCwxNiArMjgsOSBAQAogCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQot
ICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KQotewotfQotCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFn
ZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiB7CiAgICAgYXV0byBh
ZGRSZXN1bHQgPSBtX2ltYWdlQnVmZmVycy5hZGQocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCBpbWFnZUJ1ZmZlcik7CkBAIC01Myw3NSArNDYsNiBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6cmVsZWFzZUltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBy
ZQogewogICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVmZmVycy5yZW1vdmUocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7Ci0KLSAg
ICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZSB1bmxlc3Mg
aXQncyBwZW5kaW5nIHJlcGxheWluZyBiYWNrLgotICAgIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotfQotCi1ib29sIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6bG9ja1JlbW90ZUltYWdlQnVmZmVyRm9yUmVtb3RlQ2xpZW50KEltYWdlQnVmZmVy
JiBpbWFnZUJ1ZmZlciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElk
ZW50aWZpZXIpCi17Ci0gICAgaWYgKCFpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGNhY2hlZEltYWdlQnVm
ZmVyKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSAhPSAmaW1hZ2VC
dWZmZXIpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICBsb2NrUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnQoaW1h
Z2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIHJlbW90ZUNsaWVudElkZW50
aWZpZXIpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6bG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50KFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW1vdGVDbGllbnRJZGVudGlmaWVyKQotewotICAgIC8vIEFkZCB0aGUgInJl
c291cmNlIC0+IGNsaWVudCIgZGVwZW5kZW5jeSBpbiBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9y
UmVtb3RlQ2xpZW50cy4KLSAgICBhdXRvJiBjbGllbnRzID0gbV9sb2NrZWRSZW1vdGVSZXNvdXJj
ZUZvclJlbW90ZUNsaWVudHMuZW5zdXJlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgWyZd
IHsKLSAgICAgICAgcmV0dXJuIFJlbW90ZUNsaWVudHNIYXNoU2V0KCk7Ci0gICAgfSkuaXRlcmF0
b3ItPnZhbHVlOwotCi0gICAgY2xpZW50cy5hZGQocmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
LXsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1VubG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xp
ZW50cy5jb250YWlucyhyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKTsKLQotICAgIC8vIElm
IHdlIGhhdmUgcmVjb3JkZWQgcmVzb3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY3kgYmVmb3JlIGlu
IG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGllbnRzLCBtb3ZlIHRoaXMKLSAgICAv
LyBkZXBlbmRlbmN5IHRvIG1fcGVuZGluZ1VubG9ja1JlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xp
ZW50cy4gT3RoZXJ3aXNlIHJlbW92ZSB0aGUgcmVzb3VyY2UgaW4gdGhlIEdQVSBQcm9jZXNzLgot
ICAgIGlmIChtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50cy5jb250YWlucyhy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQotICAgICAgICBtX3BlbmRpbmdVbmxvY2tSZW1v
dGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuYWRkKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgbV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMudGFrZShyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwotfQotCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6dW5sb2NrUmVtb3Rl
UmVzb3VyY2VzRm9yUmVtb3RlQ2xpZW50KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW1v
dGVDbGllbnRJZGVudGlmaWVyKQotewotICAgIGF1dG8gcmVtb3ZlUmVtb3RlQ2xpZW50ID0gWyZd
KFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAmIHJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xp
ZW50cywgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZUNsaWVudElkZW50aWZpZXIp
IHsKLSAgICAgICAgVmVjdG9yPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gcmVtb3RlUmVz
b3VyY2VDbGllbnRzVG9CZVJlbW92ZWQ7Ci0KLSAgICAgICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVz
b3VyY2UgLT4gY2xpZW50IGRlcGVuZGVuY2llcyBmcm9tIHJlbW90ZVJlc291cmNlQ2xpZW50c0hh
c2hNYXAuCi0gICAgICAgIGZvciAoYXV0byYgcGFpciA6IHJlbW90ZVJlc291cmNlRm9yUmVtb3Rl
Q2xpZW50cykgewotICAgICAgICAgICAgcGFpci52YWx1ZS5yZW1vdmUocmVtb3RlQ2xpZW50SWRl
bnRpZmllcik7Ci0gICAgICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgcmVtb3RlUmVzb3VyY2VDbGllbnRzVG9CZVJlbW92ZWQuYXBwZW5kKHBhaXIua2V5
KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJldHVybiBhIGxpc3Qgb2YgdGhlIHVucmVmZXJl
bmNlZCByZXNvdXJjZXMuCi0gICAgICAgIHJldHVybiByZW1vdGVSZXNvdXJjZUNsaWVudHNUb0Jl
UmVtb3ZlZDsKLSAgICB9OwotCi0gICAgLy8gUmVtb3ZlIGFsbCB0aGUgcmVzb3VyY2UgLT4gY2xp
ZW50IGRlcGVuZGVuY2llcyBmcm9tIG1fbG9ja2VkUmVtb3RlUmVzb3VyY2VGb3JSZW1vdGVDbGll
bnRzLgotICAgIGZvciAoYXV0byByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgOiByZW1vdmVS
ZW1vdGVDbGllbnQobV9sb2NrZWRSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMsIHJlbW90
ZUNsaWVudElkZW50aWZpZXIpKQotICAgICAgICBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVt
b3RlQ2xpZW50cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLQotICAgIC8v
IFJlbW92ZSBhbGwgdGhlIHJlc291cmNlIC0+IGNsaWVudCBkZXBlbmRlbmNpZXMgZnJvbSBtX3Bl
bmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMuCi0gICAgZm9yIChhdXRv
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA6IHJlbW92ZVJlbW90ZUNsaWVudChtX3BlbmRp
bmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMsIHJlbW90ZUNsaWVudElkZW50
aWZpZXIpKSB7Ci0gICAgICAgIC8vIFJlbW92ZSB0aGUgdW5yZWZlcmVuY2VkIHJlc291cmNlcyBm
cm9tIG1fcmVtb3RlUmVzb3VyY2VDbGllbnRzUGVuZGluZ1JlbGVhc2VIYXNoTWFwLgotICAgICAg
ICBtX3BlbmRpbmdVbmxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudHMucmVtb3ZlKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Ci0KLSAgICAgICAgLy8gVGVsbCB0aGUgR1BVIHBy
b2Nlc3MgdG8gcmVtb3ZlIHRoaXMgcmVzb3VyY2UuCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwotICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuaAppbmRleCBlODZiZTdkZWIwOTJiYThmMTNiN2RiNTVhZWU4NzgwMmM3
OGRkNDhjLi5iZGU4MTVhMTNjMWQ5NTFkNTIwNDkzNjhhODVjOGM0MGNhMTRkY2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTM2LDMxICszNiwxOCBAQCBjbGFzcyBJbWFn
ZUJ1ZmZlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTsKLQogY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsKIHB1YmxpYzoK
LSAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Jik7CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkgPSBkZWZhdWx0OwogCiAgICAgdm9p
ZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6SW1hZ2VCdWZmZXIqKTsKICAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVk
SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOwogCi0gICAgYm9vbCBsb2NrUmVtb3RlSW1hZ2VCdWZmZXJGb3JSZW1vdGVDbGllbnQoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXImLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVtb3RlQ2xpZW50SWRlbnRpZmllcik7Ci0gICAgdm9pZCB1bmxvY2tSZW1vdGVSZXNvdXJjZXNG
b3JSZW1vdGVDbGllbnQoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZUNsaWVudElkZW50aWZpZXIpOwotCiBwcml2YXRlOgotICAgIHVzaW5nIFJlbW90ZUNsaWVudHNI
YXNoU2V0ID0gSGFzaFNldDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+Owot
ICAgIHVzaW5nIFJlbW90ZVJlc291cmNlQ2xpZW50c0hhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVtb3RlQ2xpZW50c0hhc2hTZXQ+OwogICAg
IHVzaW5nIFJlbW90ZUltYWdlQnVmZmVyUHJveHlIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkltYWdlQnVmZmVyKj47CiAKLSAg
ICB2b2lkIGxvY2tSZW1vdGVSZXNvdXJjZUZvclJlbW90ZUNsaWVudChXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW1vdGVDbGllbnRJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotCiAgICAgUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eUhhc2hNYXAgbV9pbWFnZUJ1ZmZlcnM7Ci0gICAgUmVtb3RlUmVzb3VyY2VD
bGllbnRzSGFzaE1hcCBtX2xvY2tlZFJlbW90ZVJlc291cmNlRm9yUmVtb3RlQ2xpZW50czsKLSAg
ICBSZW1vdGVSZXNvdXJjZUNsaWVudHNIYXNoTWFwIG1fcGVuZGluZ1VubG9ja1JlbW90ZVJlc291
cmNlRm9yUmVtb3RlQ2xpZW50czsKLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>