<?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>218816</bug_id>
          
          <creation_ts>2020-11-11 12:16:01 -0800</creation_ts>
          <short_desc>Add minimal support for deep color IOSurface backing store to ImageBuffer</short_desc>
          <delta_ts>2020-11-11 17:49:45 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706563</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 12:16:01 -0800</bug_when>
    <thetext>Add minimal support for deep color IOSurface backing store to ImageBuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706565</commentid>
    <comment_count>1</comment_count>
      <attachid>413850</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 12:16:45 -0800</bug_when>
    <thetext>Created attachment 413850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706571</commentid>
    <comment_count>2</comment_count>
      <attachid>413852</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 12:19:35 -0800</bug_when>
    <thetext>Created attachment 413852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706578</commentid>
    <comment_count>3</comment_count>
      <attachid>413855</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 12:30:41 -0800</bug_when>
    <thetext>Created attachment 413855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706597</commentid>
    <comment_count>4</comment_count>
      <attachid>413855</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-11 13:25:28 -0800</bug_when>
    <thetext>Comment on attachment 413855
Patch

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

&gt; Source/WebCore/platform/graphics/ConcreteImageBuffer.h:37
&gt; +    static RefPtr&lt;ImageBufferType&gt; create(const FloatSize&amp; size, float resolutionScale, ColorSpace colorSpace, const HostWindow* hostWindow, ColorFormat colorFormat, Arguments&amp;&amp;... arguments)

Put ColorFormat colorFormat before hostWindow.

&gt; Source/WebCore/platform/graphics/ImageBuffer.cpp:41
&gt; +RefPtr&lt;ImageBuffer&gt; ImageBuffer::create(const FloatSize&amp; size, RenderingMode renderingMode, ShouldUseDisplayList shouldUseDisplayList, RenderingPurpose purpose, float resolutionScale, ColorSpace colorSpace, const HostWindow* hostWindow, ColorFormat colorFormat)

Ditto.

&gt; Source/WebCore/platform/graphics/ImageBuffer.h:46
&gt; +    WEBCORE_EXPORT static RefPtr&lt;ImageBuffer&gt; create(const FloatSize&amp;, RenderingMode, float resolutionScale = 1, ColorSpace = ColorSpace::SRGB, const HostWindow* = nullptr, ColorFormat = ColorFormat::Default);

Ditto.

&gt; Source/WebCore/platform/graphics/ImageBufferBackend.cpp:34
&gt; +ImageBufferBackend::ImageBufferBackend(const FloatSize&amp; logicalSize, const IntSize&amp; backendSize, float resolutionScale, ColorSpace colorSpace, ColorFormat colorFormat)

Should we just glob ColorSpace and ColorFormat into a struct?

&gt; Source/WebCore/platform/graphics/ImageBufferBackend.h:63
&gt; +    Default = BGRA8,

Would prefer Default outside the enum (as a constexpr).

&gt; Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:40
&gt; +    static std::unique_ptr&lt;ImageBufferCGBitmapBackend&gt; create(const FloatSize&amp;, float resolutionScale, ColorSpace, CGColorSpaceRef, const HostWindow*, ColorFormat);
&gt; +    static std::unique_ptr&lt;ImageBufferCGBitmapBackend&gt; create(const FloatSize&amp;, float resolutionScale, ColorSpace, const HostWindow*, ColorFormat);

ColorFormat before hostWindow.

&gt; Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:43
&gt; +    static std::unique_ptr&lt;ImageBufferIOSurfaceBackend&gt; create(const FloatSize&amp;, float resolutionScale, ColorSpace, CGColorSpaceRef, const HostWindow*, ColorFormat);
&gt; +    static std::unique_ptr&lt;ImageBufferIOSurfaceBackend&gt; create(const FloatSize&amp;, float resolutionScale, ColorSpace, const HostWindow*, ColorFormat);

etc

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListImageBuffer.h:41
&gt; +    static auto create(const FloatSize&amp; size, float resolutionScale, ColorSpace colorSpace, const HostWindow* hostWindow, ColorFormat colorFormat)
&gt;      {
&gt; -        return BaseConcreteImageBuffer::template create&lt;ImageBuffer&gt;(size, resolutionScale, colorSpace, hostWindow, size);
&gt; +        return BaseConcreteImageBuffer::template create&lt;ImageBuffer&gt;(size, resolutionScale, colorSpace, hostWindow, colorFormat, size);

colorFormat before hostWindow

&gt; Source/WebKit/Shared/ShareableBitmap.cpp:-152
&gt; -    // Create the shared memory.

lolz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706601</commentid>
    <comment_count>5</comment_count>
      <attachid>413855</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 13:36:58 -0800</bug_when>
    <thetext>Comment on attachment 413855
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBufferBackend.cpp:216
&gt; +    // We don&apos;t currently support getting or putting pixel data with deep color buffers.
&gt; +    ASSERT(srcColorFormat == ColorFormat::RGBA8 || srcColorFormat == ColorFormat::BGRA8);
&gt; +    ASSERT(destColorFormat == ColorFormat::RGBA8 || destColorFormat == ColorFormat::BGRA8);
&gt; +

ImageBufferBackend::copyImagePixels() is a virtual function and this is the unaccelerated code path. Should we add similar assertions in the accelerated code path in ImageBufferCGBackend::copyImagePixels()?

&gt; Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:-222
&gt; -        if (srcColorFormat == ColorFormat::RGBA)

Should we assert at the be</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706628</commentid>
    <comment_count>6</comment_count>
      <attachid>413869</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 14:44:39 -0800</bug_when>
    <thetext>Created attachment 413869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706633</commentid>
    <comment_count>7</comment_count>
      <attachid>413872</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 15:11:42 -0800</bug_when>
    <thetext>Created attachment 413872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706637</commentid>
    <comment_count>8</comment_count>
      <attachid>413872</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-11 15:25:32 -0800</bug_when>
    <thetext>Comment on attachment 413872
Patch

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

&gt; Source/WebCore/platform/graphics/ImageBufferBackend.h:57
&gt;  enum class ColorFormat : uint8_t {

Rename to PixelFormat (and rename all the arguments everywhere?)

&gt; Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:82
&gt; +        auto context = adoptCF(CGBitmapContextCreate(0, logicalSize.width(), logicalSize.height(), 8, 4 * logicalSize.width(), sRGBColorSpaceRef(), kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host));

kCGBitmapByteOrder32Host is always BGRA?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706648</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 15:45:39 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Comment on attachment 413872 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413872&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ImageBufferBackend.h:57
&gt; &gt;  enum class ColorFormat : uint8_t {
&gt; 
&gt; Rename to PixelFormat (and rename all the arguments everywhere?)
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:82
&gt; &gt; +        auto context = adoptCF(CGBitmapContextCreate(0, logicalSize.width(), logicalSize.height(), 8, 4 * logicalSize.width(), sRGBColorSpaceRef(), kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host));
&gt; 
&gt; kCGBitmapByteOrder32Host is always BGRA?

Technically? No. But it&apos;s what we already use for BGRA IOSurface and on iOS; if we introduce a new BE arch we&apos;ll have our work cut out for us :) Perhaps separately we should change everything to be more explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706649</commentid>
    <comment_count>10</comment_count>
      <attachid>413878</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 15:49:42 -0800</bug_when>
    <thetext>Created attachment 413878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706685</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-11 17:01:29 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 413878 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706686</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 17:04:16 -0800</bug_when>
    <thetext>Wot, how</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706687</commentid>
    <comment_count>13</comment_count>
      <attachid>413889</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-11 17:06:12 -0800</bug_when>
    <thetext>Created attachment 413889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706711</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-11 17:48:06 -0800</bug_when>
    <thetext>Committed r269710: &lt;https://trac.webkit.org/changeset/269710&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413889.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706714</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-11 17:49:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/71307425&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413850</attachid>
            <date>2020-11-11 12:16:45 -0800</date>
            <delta_ts>2020-11-11 12:19:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111121644.patch</filename>
            <type>text/plain</type>
            <size>80534</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmViM2E2YjcyYmIyYmQ1
MjA2YTRkMjRjNDljNzEyYjUwN2I3Y2Y3ZS4uYWNhNGZkMDI5Mzk3NjMzODYwM2EzYjFlZWNlMGMy
ODExZWU1YmFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0czsgd2lsbCBiZSBjb3ZlcmVkIGJ5IGFsbCBkZWVwIGNvbG9yIHRlc3RzIHdoZW4g
R1BVIFByb2Nlc3MgRE9NIHJlbmRlcmluZyBsYW5kcy4KKworICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIHBhc3MgYSBDb2xvckZvcm1hdCBpbnRvIHRoZSBJbWFnZUJ1ZmZlciBjb25zdHJ1Y3Rv
ciwKKyAgICAgICAgYW5kIGFkZCBSR0IxMCBhbmQgUkdCMTBBOCBDb2xvckZvcm1hdHMuCisKKyAg
ICAgICAgV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0L3B1dEltYWdlRGF0YSBmb3IgZGVl
cCBjb2xvciBidWZmZXJzLCBiZWNhdXNlCisgICAgICAgIHRoYXQgaXMgbm90IG5lZWRlZCBmb3Ig
SW1hZ2VCdWZmZXJzIGJhY2tpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgKHRoZSBtb3RpdmF0
aW9uCisgICAgICAgIGZvciB0aGlzKSwgYnV0IGlmIHdlIGV2ZW50dWFsbHkgd2FudGVkIHRvIG1v
cmUgZ2VuZXJhbGx5IHN1cHBvcnQgZGVlcCBjb2xvciBJbWFnZUJ1ZmZlcnMsCisgICAgICAgIHRo
YXQncyBtb3N0IG9mIHRoZSByZW1haW5pbmcgd29yay4KKworICAgICAgICBBbHNvLCBzdGFuZGFy
ZGl6ZSBvbiBCR1JBOCBhcyB0aGUgZGVmYXVsdCBDb2xvckZvcm1hdCBmb3IgYnVmZmVycy4KKyAg
ICAgICAgaU9TLCBDYWlybywgSU9TdXJmYWNlLCBhbmQgU2hhcmVhYmxlQml0bWFwIGFsbCBhbHJl
YWR5IHVzZSBCR1JBOCBieSBkZWZhdWx0OworICAgICAgICBvbmx5IEltYWdlQnVmZmVyIHdpdGgg
Q0dCaXRtYXAgYmFja2luZyBzdG9yZSBvbiBtYWNPUyB1c2VkIFJHQkE4LiBTbywKKyAgICAgICAg
Zm9yIHNhbml0eSdzIHNha2UgKGFuZCBzbyB0aGF0IGl0J3MgZWFzeSB0byBoYXZlIGEgZGVmYXVs
dCBwYXNzZWQgaW50bworICAgICAgICB0aGUgY29uc3RydWN0b3IpLCBzdGFuZGFyZGl6ZSBvbiBC
R1JBOC4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0hv
c3RXaW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgIFBsdW1iaW5nIENvbG9yRm9ybWF0IGFyb3VuZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRvQkdSQURhdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURh
dGEpOgorICAgICAgICBBc3NlcnQgdGhhdCBjb3B5SW1hZ2VQaXhlbHMgaXMgYWx3YXlzIG9wZXJh
dGluZyBvbiBhIDgtYml0IGJ1ZmZlciwKKyAgICAgICAgc2luY2UgdGhhdCdzIGFsbCBpdCBzdXBw
b3J0cyBmb3Igbm93LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJC
YWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvbG9yRm9y
bWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Ynl0ZXNQ
ZXJSb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpiYWNr
ZW5kQ29sb3JGb3JtYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZmVyQkdS
QVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Qml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlckNHQmFja2VuZDo6dG9DRkRhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Ug
Y29uc3QpOgorICAgICAgICBBZG9wdCBDb2xvckZvcm1hdCBhbmQgc3RhbmRhcmRpemUgb24gQkdS
QTguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRDb2xvckZvcm1hdCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpmb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpm
b3JtYXRGb3JDb2xvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpjcmVh
dGUpOgorCiAyMDIwLTExLTA5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgog
CiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ29udHJvbCB0aGUgbGlmZSBjeWNsZSBvZiB0aGUgcGxh
dGZvcm0gaW1hZ2UgYnkgYSBuZXcgY2xhc3MgbmFtZWQgTmF0aXZlSW1hZ2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ODlkZjNjZGY2ZjdmNTcxYWQzOTIyYzI0MjM3YzA2NzRmYjE3ZGM2My4uYTNiZTg3ZTk3MDA5NjM3
ZWU5YTYwMzEwMmM3MDM0M2VkYTM1Y2ZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAy
MC0xMS0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgbWluaW1hbCBzdXBwb3J0IGZvciBkZWVwIGNvbG9yIElPU3VyZmFjZSBiYWNraW5nIHN0
b3JlIHRvIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTg4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6
CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVy
UGl4ZWwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6
c3VyZmFjZUJ1ZmZlckZvcm1hdCBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJp
dG1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlQmFja2VuZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisKIDIwMjAtMTEtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBDb250cm9sIHRoZSBsaWZlIGN5Y2xlIG9mIHRoZSBw
bGF0Zm9ybSBpbWFnZSBieSBhIG5ldyBjbGFzcyBuYW1lZCBOYXRpdmVJbWFnZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCmluZGV4IDk5N2YyYWY3Zjk3NTY5MGM3NzM4MTY0MjkyMTViOWU1MWJhYzU5ZjEu
LjE2MjMwMDM0ZDMzZjk4MjdhMzYyY2JkODUyOWNkMTA2ZmEwMjVjOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAKQEAgLTUyMyw5ICs1MjMsOSBAQCB2b2lkIENocm9tZTo6c2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50aWxNb3VzZU1vdmVzKQogICAgIG1fY2xpZW50
LnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3ZlcyhoaWRkZW5VbnRpbE1vdXNlTW92ZXMpOwog
fQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1
cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRl
cmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KSBjb25zdAogewotICAgIHJldHVybiBt
X2NsaWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVJ
bWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KTsKIH0KIAogUGxhdGZvcm1EaXNwbGF5SUQgQ2hyb21l
OjpkaXNwbGF5SUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggY2Y3NzdlMGNjZDk5YTdj
YjU5MTM4ZWFmYjYxMWU0ZjFjMDI2ZmY5Yy4uODJmM2FkMzg1ZTQ0M2QxNzUxY2VjNWIxZWE5M2Ey
ODM2N2Y2NzI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
dEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKIAotICAgIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVy
aW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2Us
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9w
dGlvbmFsPHVuc2lnbmVkPikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApp
bmRleCA3YWYxNzhlOTg2NjhkYTljNzE0NDQ0NTEzMjYwNjk3NDg3ZDgzNWM4Li4wNTI2ZTM1MTIy
Nzc0MGUxMWM4ZjUwYzkzMTRiMjgyYzIzMGE0YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxE
aXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9y
bURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAgdmlydHVhbCBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRl
cmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0LCBDb2xvclNwYWNlKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBv
c2UsIGZsb2F0LCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCkgY29uc3QgeyByZXR1cm4gbnVsbHB0
cjsgfQogCiAgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0
Y2ggdGhlIHJvb3QgbGF5ZXIuCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RX
aW5kb3cuaAppbmRleCA4OTY1YTI1M2UxODdlZTk3NmE0ZTY5NDg4ZDRmNjg1NjhmNWJjNzIxLi4x
ZDljNGEzNjk1YmMxNTk3NzlkMmNjNmZlMGUyNTAyZmYyYzg1MDAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vSG9zdFdpbmRvdy5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEN1cnNvcjsKIGNsYXNzIEltYWdlQnVmZmVyOwogCitlbnVtIGNsYXNzIENvbG9yRm9y
bWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogZW51bSBjbGFzcyBSZW5kZXJpbmdQdXJwb3NlIDog
dWludDhfdDsKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQg
YWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0
IEludFJlY3QmKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4g
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVy
aW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0
IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQpIGNvbnN0ID0gMDsKIAogICAgIC8v
IE1ldGhvZCBmb3IgcmV0cmlldmluZyB0aGUgbmF0aXZlIGNsaWVudCBvZiB0aGUgcGFnZS4KICAg
ICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmgKaW5kZXggODU0MDIxNWY2MjM3Y2MwYTNkNjI1ZTMyZmE5NjdkZjlhNjJl
YzJhZi4uYTZiODMzODA3NjMwNDgwZmExYzU3ZjBkZTNiZmRhMjkzMGI3MWY5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZm
ZXIuaApAQCAtMzQsOSArMzQsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBCYWNrZW5kVHlwZT4KIGNs
YXNzIENvbmNyZXRlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgSW1hZ2VCdWZmZXIgewogcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEltYWdlQnVmZmVyVHlwZSA9IENvbmNyZXRlSW1hZ2VCdWZm
ZXIsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVy
VHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEFy
Z3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyVHlw
ZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIENvbG9y
Rm9ybWF0IGNvbG9yRm9ybWF0LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgewotICAg
ICAgICBhdXRvIGJhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdyk7CisgICAgICAgIGF1dG8gYmFja2VuZCA9IEJh
Y2tlbmRUeXBlOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0
V2luZG93LCBjb2xvckZvcm1hdCk7CiAgICAgICAgIGlmICghYmFja2VuZCkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEltYWdlQnVmZmVy
VHlwZShXVEZNb3ZlKGJhY2tlbmQpLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMp
Li4uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5jcHAKaW5kZXggOGY2MmRjNmEzNDgzYzg0M2QwNWJlZjY3MzRkYzU0YTEzYjRiMGU1Zi4uMTVh
OWUxYmFiMGFjMjQzMGJkMTRmNzE5ZmU5OTg5OGQ1ZjQ3ZDIyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtMzgsMzUgKzM4LDM1
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkTGVu
Z3RoID0gNDA5NjsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkQXJlYSA9IE1heENsYW1w
ZWRMZW5ndGggKiBNYXhDbGFtcGVkTGVuZ3RoOwogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdl
QnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0IHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5k
ZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVm
ZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCBzaG91bGRVc2VEaXNwbGF5
TGlzdCwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgQ29sb3JG
b3JtYXQgY29sb3JGb3JtYXQpCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZl
cjsKICAgICBpZiAoaG9zdFdpbmRvdykKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBob3N0V2luZG93
LT5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IGhvc3RXaW5kb3ct
PmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBvc2UsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZl
ciAmJiBzaG91bGRVc2VEaXNwbGF5TGlzdCA9PSBTaG91bGRVc2VEaXNwbGF5TGlzdDo6WWVzKSB7
CiAgICAgICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVk
KQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdEFjY2VsZXJhdGVkSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5k
b3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdEFjY2VsZXJhdGVkSW1h
Z2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RX
aW5kb3csIGNvbG9yRm9ybWF0KTsKICAgICAgICAgCiAgICAgICAgIGlmICghaW1hZ2VCdWZmZXIp
Ci0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0VW5hY2NlbGVyYXRlZEltYWdl
QnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2lu
ZG93KTsKKyAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RVbmFjY2VsZXJhdGVk
SW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhv
c3RXaW5kb3csIGNvbG9yRm9ybWF0KTsKICAgICB9CiAKICAgICBpZiAoIWltYWdlQnVmZmVyKQot
ICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5n
TW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAg
aW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQpOwogCiAg
ICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVm
ZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25z
dCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdN
b2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3Qg
SG9zdFdpbmRvdyogaG9zdFdpbmRvdywgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7CiAgICAg
UmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKICAgICAKICAgICBpZiAocmVuZGVyaW5n
TW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAgICAgaW1hZ2VCdWZmZXIg
PSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRl
ZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBo
b3N0V2luZG93LCBjb2xvckZvcm1hdCk7CiAgICAgCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAg
ICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICBpbWFn
ZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQpOwogCiAgICAgcmV0
dXJuIGltYWdlQnVmZmVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKaW5kZXggY2Y0N2MxOWYwY2UxNzA0ZjAyNTE5NzIwYjM5MmEwMDI1ZTll
MTRkNi4uMzA2ZTY0ODc5NTQwN2Y5ZTdlMGNhMzczYTZiNjQ1Y2JjOTZjNmEzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC00Miw4ICs0
Miw4IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0OwogY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxJbWFnZUJ1ZmZlcj4gewogcHVibGljOgogICAgIC8vIFdpbGwgcmV0dXJuIGEg
bnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVy
aW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBjb25zdCBI
b3N0V2luZG93KiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8
SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQiwgY29u
c3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
UHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwg
U2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBjb25zdCBIb3N0V2luZG93
KiA9IG51bGxwdHIsIENvbG9yRm9ybWF0ID0gQ29sb3JGb3JtYXQ6OkRlZmF1bHQpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9h
dFNpemUmLCBSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNw
YWNlID0gQ29sb3JTcGFjZTo6U1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyLCBDb2xv
ckZvcm1hdCA9IENvbG9yRm9ybWF0OjpEZWZhdWx0KTsKICAgICBzdGF0aWMgUmVmUHRyPEltYWdl
QnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7
CiAKICAgICAvLyBDcmVhdGUgYW4gaW1hZ2UgYnVmZmVyIGNvbXBhdGlibGUgd2l0aCB0aGUgY29u
dGV4dCwgd2l0aCBzdWl0YWJsZSByZXNvbHV0aW9uIGZvciBkcmF3aW5nIGludG8gdGhlIGJ1ZmZl
ciBhbmQgdGhlbiBpbnRvIHRoaXMgY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCmluZGV4IGYxZjM2N2Mw
NmEyYTBjOWQ5OTEzYzljOTIzNmMxOTczNmVkZTU5YTIuLjEwNjk1NTI1ODZhMTA2MmQ4MDI5NTlm
MGYwODFmMzY0MjIwYjA2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcApAQCAtMzEsMTEgKzMxLDEyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW1hZ2VCdWZmZXJCYWNrZW5kOjpJbWFnZUJ1ZmZlckJh
Y2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQorSW1h
Z2VCdWZmZXJCYWNrZW5kOjpJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKICAgICA6
IG1fbG9naWNhbFNpemUobG9naWNhbFNpemUpCiAgICAgLCBtX2JhY2tlbmRTaXplKGJhY2tlbmRT
aXplKQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQogICAgICwgbV9j
b2xvclNwYWNlKGNvbG9yU3BhY2UpCisgICAgLCBtX2NvbG9yRm9ybWF0KGNvbG9yRm9ybWF0KQog
ewogfQogCkBAIC0xMDUsOCArMTA2LDggQEAgVmVjdG9yPHVpbnQ4X3Q+IEltYWdlQnVmZmVyQmFj
a2VuZDo6dG9CR1JBRGF0YSh2b2lkKiBkYXRhKSBjb25zdAogICAgIHVpbnQ4X3QqIHNyY1Jvd3Mg
PSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhKTsKIAogICAgIGNvcHlJbWFnZVBpeGVs
cygKLSAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgYmFja2Vu
ZENvbG9yRm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIENvbG9yRm9ybWF0OjpCR1JBLCBkZXN0
Qnl0ZXNQZXJSb3csIHJlc3VsdC5kYXRhKCksIG1fbG9naWNhbFNpemUpOworICAgICAgICBBbHBo
YVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBjb2xvckZvcm1hdCgpLCBzcmNCeXRl
c1BlclJvdywgc3JjUm93cywKKyAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVt
dWx0aXBsaWVkLCBDb2xvckZvcm1hdDo6QkdSQTgsIGRlc3RCeXRlc1BlclJvdywgcmVzdWx0LmRh
dGEoKSwgbV9sb2dpY2FsU2l6ZSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMjA5LDYg
KzIxMCwxMCBAQCB2b2lkIEltYWdlQnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzKAogICAg
IEFscGhhUHJlbXVsdGlwbGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIENvbG9yRm9ybWF0IHNyY0Nv
bG9yRm9ybWF0LCB1bnNpZ25lZCBzcmNCeXRlc1BlclJvdywgdWludDhfdCogc3JjUm93cywKICAg
ICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RBbHBoYUZvcm1hdCwgQ29sb3JGb3JtYXQgZGVz
dENvbG9yRm9ybWF0LCB1bnNpZ25lZCBkZXN0Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIGRlc3RSb3dz
LCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogeworICAgIC8vIFdlIGRvbid0IGN1cnJlbnRs
eSBzdXBwb3J0IGdldHRpbmcgb3IgcHV0dGluZyBwaXhlbCBkYXRhIHdpdGggZGVlcCBjb2xvciBi
dWZmZXJzLgorICAgIEFTU0VSVChzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6UkdCQTgg
fHwgc3JjQ29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OkJHUkE4KTsKKyAgICBBU1NFUlQoZGVz
dENvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpSR0JBOCB8fCBkZXN0Q29sb3JGb3JtYXQgPT0g
Q29sb3JGb3JtYXQ6OkJHUkE4KTsKKwogICAgIGlmIChzcmNBbHBoYUZvcm1hdCA9PSBkZXN0QWxw
aGFGb3JtYXQpIHsKICAgICAgICAgaWYgKHNyY0FscGhhRm9ybWF0ID09IEFscGhhUHJlbXVsdGlw
bGljYXRpb246OlByZW11bHRpcGxpZWQpCiAgICAgICAgICAgICBjb3B5SW1hZ2VQaXhlbHNVbmFj
Y2VsZXJhdGVkPGNvcHlQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkPihzcmNDb2xvckZvcm1h
dCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsIGRlc3RDb2xvckZvcm1hdCwgZGVzdEJ5dGVzUGVy
Um93LCBkZXN0Um93cywgc2l6ZSk7CkBAIC0yNTIsOCArMjU3LDggQEAgUmVmUHRyPEltYWdlRGF0
YT4gSW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBvdXRwdXQKICAgICB1aW50OF90KiBzcmNSb3dzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oZGF0YSkgKyBzcmNSZWN0Q2xpcHBlZC55KCkgKiBzcmNCeXRlc1BlclJvdyArIHNyY1JlY3RD
bGlwcGVkLngoKSAqIDQ7CiAKICAgICBjb3B5SW1hZ2VQaXhlbHMoCi0gICAgICAgIEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIGJhY2tlbmRDb2xvckZvcm1hdCgpLCBzcmNC
eXRlc1BlclJvdywgc3JjUm93cywKLSAgICAgICAgb3V0cHV0Rm9ybWF0LCBDb2xvckZvcm1hdDo6
UkdCQSwgZGVzdEJ5dGVzUGVyUm93LCBkZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAgICAg
ICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgY29sb3JGb3JtYXQoKSwg
c3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCisgICAgICAgIG91dHB1dEZvcm1hdCwgQ29sb3JGb3Jt
YXQ6OlJHQkE4LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkpOwog
CiAgICAgcmV0dXJuIGltYWdlRGF0YTsKIH0KQEAgLTI4Myw4ICsyODgsOCBAQCB2b2lkIEltYWdl
QnVmZmVyQmFja2VuZDo6cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRG
b3JtYXQsIGNvbnN0CiAgICAgdWludDhfdCogc3JjUm93cyA9IGltYWdlRGF0YS5kYXRhKCktPmRh
dGEoKSArIHNyY1JlY3RDbGlwcGVkLnkoKSAqIHNyY0J5dGVzUGVyUm93ICsgc3JjUmVjdENsaXBw
ZWQueCgpICogNDsKIAogICAgIGNvcHlJbWFnZVBpeGVscygKLSAgICAgICAgaW5wdXRGb3JtYXQs
IENvbG9yRm9ybWF0OjpSR0JBLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKLSAgICAgICAgZGVz
dEZvcm1hdCwgYmFja2VuZENvbG9yRm9ybWF0KCksIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3Ms
IGRlc3RSZWN0LnNpemUoKSk7CisgICAgICAgIGlucHV0Rm9ybWF0LCBDb2xvckZvcm1hdDo6UkdC
QTgsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAorICAgICAgICBkZXN0Rm9ybWF0LCBjb2xvckZv
cm1hdCgpLCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGFhOWIzNDFhMDU3M2YyYWQ0
ZTllZDMwNTdjMDQyMWU5NTkxYWU1YzEuLjE3NDcyMzhkNDhkNDBlOTQ0YmI0NWEwNzcyZGUzMzM3
MzcxNTM5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyQmFja2VuZC5oCkBAIC01NSw4ICs1NSwxMiBAQCBlbnVtIGNsYXNzIFByZXNl
cnZlUmVzb2x1dGlvbiA6IHVpbnQ4X3QgewogfTsKIAogZW51bSBjbGFzcyBDb2xvckZvcm1hdCA6
IHVpbnQ4X3QgewotICAgIFJHQkEsCi0gICAgQkdSQQorICAgIFJHQkE4LAorICAgIEJHUkE4LAor
ICAgIFJHQjEwLAorICAgIFJHQjEwQTgsCisKKyAgICBEZWZhdWx0ID0gQkdSQTgsCiB9OwogCiBj
bGFzcyBJbWFnZUJ1ZmZlckJhY2tlbmQgewpAQCAtNzIsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAg
SW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZFNpemU7IH0KICAg
ICBmbG9hdCByZXNvbHV0aW9uU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdXRpb25TY2Fs
ZTsgfQogICAgIENvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JT
cGFjZTsgfQorICAgIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9j
b2xvckZvcm1hdDsgfQogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9y
bSgpIGNvbnN0IHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOyB9CiAgICAgdmlydHVhbCBzaXpl
X3QgbWVtb3J5Q29zdCgpIGNvbnN0IHsgcmV0dXJuIDQgKiBtX2JhY2tlbmRTaXplLmFyZWEoKS51
bnNhZmVHZXQoKTsgfQpAQCAtMTA0LDEwICsxMDksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzQWNjZWxlcmF0ZWQgPSBmYWxzZTsKIAogcHJvdGVjdGVkOgotICAgIFdF
QkNPUkVfRVhQT1JUIEltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQpOwogCiAgICAgdmlydHVh
bCB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IHsgcmV0dXJuIDQgKiBtX2JhY2tlbmRTaXpl
LndpZHRoKCk7IH0KLSAgICB2aXJ0dWFsIENvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgp
IGNvbnN0IHsgcmV0dXJuIENvbG9yRm9ybWF0OjpSR0JBOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogICAgIFQgdG9CYWNrZW5kQ29vcmRpbmF0ZXMoVCB0KSBjb25zdApAQCAtMTM0LDYg
KzEzOCwyMSBAQCBwcm90ZWN0ZWQ6CiAgICAgSW50U2l6ZSBtX2JhY2tlbmRTaXplOwogICAgIGZs
b2F0IG1fcmVzb2x1dGlvblNjYWxlOwogICAgIENvbG9yU3BhY2UgbV9jb2xvclNwYWNlOworICAg
IENvbG9yRm9ybWF0IG1fY29sb3JGb3JtYXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OkNvbG9yRm9ybWF0PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBX
ZWJDb3JlOjpDb2xvckZvcm1hdCwKKyAgICBXZWJDb3JlOjpDb2xvckZvcm1hdDo6UkdCQTgsCisg
ICAgV2ViQ29yZTo6Q29sb3JGb3JtYXQ6OkJHUkE4LAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0
OjpSR0IxMCwKKyAgICBXZWJDb3JlOjpDb2xvckZvcm1hdDo6UkdCMTBBOAorICAgID47Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAppbmRleCAxMGNiMGEwMzYxZTA5ODQ4YzQ3
YWRkZDFmNWM2ZTM3NDA0YTY0YWIwLi5hNjM1MTQ3ZDBiY2EzYjc2Y2UxMmRmNzY0ODI0OGEzZGM4
MGJhZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4gdHJhbnNmZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFj
ZShDVlBpCiAgICAgfQogCiAgICAgSW50U2l6ZSBzaXplIHsgc3RhdGljX2Nhc3Q8aW50PihDVlBp
eGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpKSwgc3RhdGljX2Nhc3Q8aW50PihDVlBpeGVs
QnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSkgfTsKLSAgICBhdXRvIGlvU3VyZmFjZSA9ICBJ
T1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBJT1N1cmZhY2U6OkZv
cm1hdDo6UkdCQSk7CisgICAgYXV0byBpb1N1cmZhY2UgPSAgSU9TdXJmYWNlOjpjcmVhdGUoc2l6
ZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgSU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkEpOwogCiAgICAg
SU9TdXJmYWNlOjpMb2NrZXIgbG9jaygqaW9TdXJmYWNlKTsKICAgICB2SW1hZ2VfQnVmZmVyIHNy
YzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCmluZGV4IDIzYjkxOWFkNTIyZWExNzhi
MzJjMDA5ZjVkODhkNWQ3MTZkZWYzYTEuLjAzZWExNjYyMDE3NmMzMTU5MDM1NDRmNjk5YjQxYTU0
MmEyZjZmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaApAQCAtNTAsNyArNTAs
NiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgSW1hZ2VCdWZmZXJCYWNrZW5kOjpJ
bWFnZUJ1ZmZlckJhY2tlbmQ7CiAKLSAgICBDb2xvckZvcm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb2xvckZvcm1hdDo6QkdSQTsgfQogICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybVRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3Qgc3RkOjphcnJheTx1aW50
OF90LCAyNTY+JikgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggOGM1YWJm
N2M5M2U3OTcxM2Y3MTNhNmRiZGU5YmMwMTdmMjFmODliYy4uMTE4YmQ3MWJhYmJkMzA1MWU1YzBk
ODRmY2ExNGUwMmUyODJlZjMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtNzksNyAr
NzksNyBAQCBzdGF0aWMgUmVmUHRyPEltYWdlPiBjcmVhdGVCaXRtYXBJbWFnZUFmdGVyU2NhbGlu
Z0lmTmVlZGVkKFJlZlB0cjxOYXRpdmVJbWFnZT4mJgogICAgIGlmIChyZXNvbHV0aW9uU2NhbGUg
PT0gMSB8fCBwcmVzZXJ2ZVJlc29sdXRpb24gPT0gUHJlc2VydmVSZXNvbHV0aW9uOjpZZXMpCiAg
ICAgICAgIGltYWdlID0gTmF0aXZlSW1hZ2U6OmNyZWF0ZShjcmVhdGVDcm9wcGVkSW1hZ2VJZk5l
Y2Vzc2FyeShpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBiYWNrZW5kU2l6ZSkpOwogICAg
IGVsc2UgewotICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENy
ZWF0ZSgwLCBsb2dpY2FsU2l6ZS53aWR0aCgpLCBsb2dpY2FsU2l6ZS5oZWlnaHQoKSwgOCwgNCAq
IGxvZ2ljYWxTaXplLndpZHRoKCksIHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0ltYWdlQWxwaGFQ
cmVtdWx0aXBsaWVkTGFzdCkpOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQml0
bWFwQ29udGV4dENyZWF0ZSgwLCBsb2dpY2FsU2l6ZS53aWR0aCgpLCBsb2dpY2FsU2l6ZS5oZWln
aHQoKSwgOCwgNCAqIGxvZ2ljYWxTaXplLndpZHRoKCksIHNSR0JDb2xvclNwYWNlUmVmKCksIGtD
R0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3Qp
KTsKICAgICAgICAgQ0dDb250ZXh0U2V0QmxlbmRNb2RlKGNvbnRleHQuZ2V0KCksIGtDR0JsZW5k
TW9kZUNvcHkpOwogICAgICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQuZ2V0KCksIEZs
b2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIGxvZ2ljYWxTaXplKSk7CiAgICAgICAgIEZsb2F0
U2l6ZSBpbWFnZVNpemVJblVzZXJTcGFjZSA9IGxvZ2ljYWxTaXplOwpAQCAtMTYyLDcgKzE2Miw3
IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IEltYWdlQnVmZmVyQ0dCYWNrZW5kOjp0b0NGRGF0YShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpCiAgICAgICAgIGltYWdlID0gY3JlYXRlQ3JvcHBl
ZEltYWdlSWZOZWNlc3NhcnkoaW1hZ2UuZ2V0KCksIGJhY2tlbmRTaXplKCkpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGltYWdlID0gY29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3Jl
KS0+cGxhdGZvcm1JbWFnZSgpOwotICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdENGKENHQml0
bWFwQ29udGV4dENyZWF0ZSgwLCBiYWNrZW5kU2l6ZSgpLndpZHRoKCksIGJhY2tlbmRTaXplKCku
aGVpZ2h0KCksIDgsIDQgKiBiYWNrZW5kU2l6ZSgpLndpZHRoKCksIHNSR0JDb2xvclNwYWNlUmVm
KCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdCkpOworICAgICAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZSgwLCBiYWNrZW5kU2l6ZSgpLndpZHRo
KCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCksIDgsIDQgKiBiYWNrZW5kU2l6ZSgpLndpZHRoKCks
IHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBr
Q0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKICAgICAgICAgQ0dDb250ZXh0U2V0QmxlbmRNb2Rl
KGNvbnRleHQuZ2V0KCksIGtDR0JsZW5kTW9kZUNvcHkpOwogICAgICAgICBDR0NvbnRleHRDbGlw
VG9SZWN0KGNvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UoMCwgMCwgYmFja2VuZFNpemUoKS53aWR0
aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpKSk7CiAgICAgICAgIENHQ29udGV4dERyYXdJbWFn
ZShjb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKDAsIDAsIGJhY2tlbmRTaXplKCkud2lkdGgoKSwg
YmFja2VuZFNpemUoKS5oZWlnaHQoKSksIGltYWdlLmdldCgpKTsKQEAgLTIxOSwxMiArMjE5LDEy
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5SW1hZ2VQaXhlbHNBY2NlbGVyYXRlZCgKICAgICB9
CiAKICAgICBpZiAoZGVzdEFscGhhRm9ybWF0ID09IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVu
cHJlbXVsdGlwbGllZCkgewotICAgICAgICBpZiAoc3JjQ29sb3JGb3JtYXQgPT0gQ29sb3JGb3Jt
YXQ6OlJHQkEpCisgICAgICAgIGlmIChzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6UkdC
QTgpCiAgICAgICAgICAgICB2SW1hZ2VVbnByZW11bHRpcGx5RGF0YV9SR0JBODg4OCgmc3JjLCAm
ZGVzdCwga3ZJbWFnZU5vRmxhZ3MpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2SW1hZ2VV
bnByZW11bHRpcGx5RGF0YV9CR1JBODg4OCgmc3JjLCAmZGVzdCwga3ZJbWFnZU5vRmxhZ3MpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6
UkdCQSkKKyAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpSR0JBOCkK
ICAgICAgICAgICAgIHZJbWFnZVByZW11bHRpcGx5RGF0YV9SR0JBODg4OCgmc3JjLCAmZGVzdCwg
a3ZJbWFnZU5vRmxhZ3MpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2SW1hZ2VQcmVtdWx0
aXBseURhdGFfQkdSQTg4ODgoJnNyYywgJmRlc3QsIGt2SW1hZ2VOb0ZsYWdzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA2YzAzM2M2MzgzOGFmZTFhMGY2MjdkNmI0
NGExNTQ2ZjNmZWVlNzMwLi5jMDM1MTE4OWE5MGFmZTcwNjFiY2IyNzNjYTkwYmJhNDBiNDI4Zjk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCkBAIC0zNywxNiArMzcsMTIg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNv
bnN0ZXhwciBjb25zdCBDR0JpdG1hcEluZm8gRGVmYXVsdEJpdG1hcEluZm8gPSBrQ0dJbWFnZUFs
cGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0OwotI2Vsc2UK
LWNvbnN0ZXhwciBjb25zdCBDR0JpdG1hcEluZm8gRGVmYXVsdEJpdG1hcEluZm8gPSBrQ0dJbWFn
ZUFscGhhUHJlbXVsdGlwbGllZExhc3Q7Ci0jZW5kaWYKLQogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3Jl
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RX
aW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJl
ZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqLCBDb2xvckZvcm1hdCBjb2xvckZvcm1h
dCkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKGNvbG9yRm9ybWF0LCBjb2xvckZvcm1hdCA9PSBDb2xv
ckZvcm1hdDo6RGVmYXVsdCk7CisKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRl
QmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYyLDcgKzU4LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y3JlYXRlKGMKICAgICBzaXplX3QgbnVtQnl0ZXMgPSBiYWNrZW5kU2l6ZS5o
ZWlnaHQoKSAqIGJ5dGVzUGVyUm93OwogICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2go
ZGF0YSwgbnVtQnl0ZXMpOwogCi0gICAgYXV0byBjZ0NvbnRleHQgPSBhZG9wdENGKENHQml0bWFw
Q29udGV4dENyZWF0ZShkYXRhLCBiYWNrZW5kU2l6ZS53aWR0aCgpLCBiYWNrZW5kU2l6ZS5oZWln
aHQoKSwgOCwgYnl0ZXNQZXJSb3csIGNnQ29sb3JTcGFjZSwgRGVmYXVsdEJpdG1hcEluZm8pKTsK
KyAgICBhdXRvIGNnQ29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEs
IGJhY2tlbmRTaXplLndpZHRoKCksIGJhY2tlbmRTaXplLmhlaWdodCgpLCA4LCBieXRlc1BlclJv
dywgY2dDb2xvclNwYWNlLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0
bWFwQnl0ZU9yZGVyMzJIb3N0KSk7CiAgICAgaWYgKCFjZ0NvbnRleHQpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCkBAIC03NCwyNCArNzAsMjQgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGMK
IAogICAgIGF1dG8gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdp
dGhEYXRhKDAsIGRhdGEsIG51bUJ5dGVzLCByZWxlYXNlSW1hZ2VEYXRhKSk7CiAKLSAgICByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPihuZXcgSW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQoc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgZGF0YSwgV1RGTW92ZShkYXRhUHJvdmlkZXIpLCBXVEZNb3ZlKGNvbnRleHQp
KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2Vu
ZD4obmV3IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKHNpemUsIGJhY2tlbmRTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBkYXRhLCBXVEZNb3ZlKGRhdGFQ
cm92aWRlciksIFdURk1vdmUoY29udGV4dCkpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQog
ewogICAgIGlmIChhdXRvIGNnQ29sb3JTcGFjZSA9IGNvbnRleHRDb2xvclNwYWNlKGNvbnRleHQp
KQotICAgICAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXpl
LCAxLCBDb2xvclNwYWNlOjpTUkdCLCBjZ0NvbG9yU3BhY2UuZ2V0KCksIG51bGxwdHIpOworICAg
ICAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBD
b2xvclNwYWNlOjpTUkdCLCBjZ0NvbG9yU3BhY2UuZ2V0KCksIG51bGxwdHIsIENvbG9yRm9ybWF0
OjpEZWZhdWx0KTsKICAgICAKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6
OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyKTsKKyAgICByZXR1cm4g
SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpT
UkdCLCBudWxscHRyLCBDb2xvckZvcm1hdDo6RGVmYXVsdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6
OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cs
IENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2Fj
aGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpLCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1h
Z2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgaG9zdFdpbmRvdywgY29s
b3JGb3JtYXQpOwogfQogCi1JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6
ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+JiYgZGF0YVByb3Zp
ZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmIGNvbnRleHQpCi0gICAgOiBJ
bWFnZUJ1ZmZlckNHQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSkKK0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dE
YXRhUHJvdmlkZXJSZWY+JiYgZGF0YVByb3ZpZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3ND
b250ZXh0PiYmIGNvbnRleHQpCisgICAgOiBJbWFnZUJ1ZmZlckNHQmFja2VuZChsb2dpY2FsU2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQp
CiAgICAgLCBtX2RhdGEoZGF0YSkKICAgICAsIG1fZGF0YVByb3ZpZGVyKFdURk1vdmUoZGF0YVBy
b3ZpZGVyKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQpAQCAtMTE2LDcgKzEx
Miw3IEBAIFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNv
cHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5CiAgICAgY2FzZSBEb250Q29weUJhY2tpbmdT
dG9yZToKICAgICAgICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpjcmVhdGUoYWRvcHRDRihDR0ltYWdl
Q3JlYXRlKAogICAgICAgICAgICAgbV9iYWNrZW5kU2l6ZS53aWR0aCgpLCBtX2JhY2tlbmRTaXpl
LmhlaWdodCgpLCA4LCAzMiwgYnl0ZXNQZXJSb3coKSwKLSAgICAgICAgICAgIGNhY2hlZENHQ29s
b3JTcGFjZShtX2NvbG9yU3BhY2UpLCBEZWZhdWx0Qml0bWFwSW5mbywgbV9kYXRhUHJvdmlkZXIu
Z2V0KCksCisgICAgICAgICAgICBjYWNoZWRDR0NvbG9yU3BhY2UobV9jb2xvclNwYWNlKSwga0NH
SW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCwg
bV9kYXRhUHJvdmlkZXIuZ2V0KCksCiAgICAgICAgICAgICAwLCB0cnVlLCBrQ0dSZW5kZXJpbmdJ
bnRlbnREZWZhdWx0KSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgK
aW5kZXggN2QyMzNkMjIyNzg1YWQzZGRmMDYzYzRhODY0OGZkZmZhY2U3Y2Y5OS4uMjAyNGFlYWQ5
ODdiOTZkOWNjNmIzMWIyYzMxOWFiM2U0YmUwNmQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZC5oCkBAIC0zNiw4ICszNiw4IEBAIGNsYXNzIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kIDogcHVibGljIEltYWdlQnVmZmVyQ0dCYWNrZW5kIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZs
b2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ0dDb2xvclNwYWNl
UmVmLCBjb25zdCBIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25z
dCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENHQ29sb3JT
cGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9yRm9ybWF0KTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBIb3N0V2lu
ZG93KiwgQ29sb3JGb3JtYXQpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXJDR0JpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGlj
c0NvbnRleHQmKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IG92ZXJy
aWRlOwpAQCAtNTIsMTEgKzUyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBpc09yaWdpbkF0VXBwZXJMZWZ0Q29ybmVyID0gdHJ1ZTsKIAogcHJpdmF0ZToKLSAgICBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwgdm9pZCogZGF0YSwgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiYmLCBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmKTsKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgQ29sb3JGb3JtYXQgYmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQ29sb3JGb3JtYXQ6OkJHUkE7IH0KLSNlbmRpZgorICAgIEltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNp
Y2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCwg
dm9pZCogZGF0YSwgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiYmLCBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NDb250ZXh0PiYmKTsKIAogICAgIHZvaWQqIG1fZGF0YTsKICAgICBSZXRhaW5Q
dHI8Q0dEYXRhUHJvdmlkZXJSZWY+IG1fZGF0YVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYTlkNTQ4NWEyNjFiNWEwZGY1M2QyYjg5NzEwYWU4Mzdm
YmY5YjFhZS4uNjgzMTM0ZjRkYTU5YTY2MjQ0ZjgzMTAwOWRmN2Y5OTFkNDJhMTkyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC02NCwxMyArNjQsMTMgQEAgUmV0
YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb250
ZXh0Q29sb3JTcGFjZShjb25zdAogICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29u
dGV4dENvbG9yU3BhY2UoY29udGV4dCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cq
IGhvc3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
PiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDR0NvbG9y
U3BhY2VSZWYgY2dDb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBDb2xv
ckZvcm1hdCBjb2xvckZvcm1hdCkKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3Vs
YXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNp
emUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gc3VyZmFj
ZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2dDb2xvclNw
YWNlKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwg
YmFja2VuZFNpemUsIGNnQ29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JDb2xvckZvcm1h
dChjb2xvckZvcm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKQEAgLTgwLDI1ICs4MCwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZQogCiAgICAg
Q0dDb250ZXh0Q2xlYXJSZWN0KGNnQ29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6
Onplcm8oKSwgYmFja2VuZFNpemUpKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgV1RGTW92ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChhdXRvIGNnQ29sb3JTcGFjZSA9IGNvbnRl
eHRDb2xvclNwYWNlKGNvbnRleHQpKQotICAgICAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgY2dDb2xvclNwYWNl
LmdldCgpLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQo
KSwgbnVsbHB0ciwgQ29sb3JGb3JtYXQ6OkRlZmF1bHQpOwogICAgIAotICAgIHJldHVybiBJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdC
LCBudWxscHRyKTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgbnVsbHB0ciwgQ29sb3JGb3JtYXQ6OkRlZmF1
bHQpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0
V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2Up
LCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpj
cmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3Bh
Y2UoY29sb3JTcGFjZSksIGhvc3RXaW5kb3csIGNvbG9yRm9ybWF0KTsKIH0KIAotCi1JbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+JiYgc3VyZmFjZSkKLSAgICA6IEltYWdlQnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxT
aXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZv
cm1hdCwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlKQorICAgIDogSW1hZ2VC
dWZmZXJDR0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KQogICAgICwgbV9zdXJmYWNlKFdURk1vdmUoc3VyZmFj
ZSkpCiB7CiAgICAgQVNTRVJUKG1fc3VyZmFjZSk7CkBAIC0xMzAsMTEgKzEyOSw2IEBAIHVuc2ln
bmVkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Ynl0ZXNQZXJSb3coKSBjb25zdAogICAg
IHJldHVybiBtX3N1cmZhY2UtPmJ5dGVzUGVyUm93KCk7CiB9CiAKLUNvbG9yRm9ybWF0IEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZDo6YmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gQ29sb3JGb3JtYXQ6OkJHUkE7Ci19Ci0KIFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSkgY29uc3QKIHsKICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShtX3N1cmZhY2UtPmNy
ZWF0ZUltYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBmNTA5
ZWVlNjVhNzIyZTEyMDFmZmMwZmI1NzdjZmI4MmJmZWM2OTBjLi4yYWIxNGNiOTcyNWFmZjg1M2I3
MGY2OGJhZGI3NjEwOWNhMzYwMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQu
aApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZCA6IHB1YmxpYyBJbWFnZUJ1ZmZlckNHQmFja2VuZCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlQmFja2VuZFNpemUoY29uc3QgRmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlKTsKIAotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYs
IGNvbnN0IEhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDR0NvbG9yU3Bh
Y2VSZWYsIGNvbnN0IEhvc3RXaW5kb3cqLCBDb2xvckZvcm1hdCk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9h
dFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5k
b3cqLCBDb2xvckZvcm1hdCk7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGlj
c0NvbnRleHQmKTsKIAotICAgIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJik7
CisgICAgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJik7
CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlOwpAQCAtNjksNyArNjksNiBAQCBwdWJsaWM6CiBw
cm90ZWN0ZWQ6CiAgICAgc3RhdGljIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbnRleHRD
b2xvclNwYWNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogICAgIHVuc2lnbmVkIGJ5dGVzUGVy
Um93KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3JGb3JtYXQgYmFja2VuZENvbG9yRm9ybWF0
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBtX3N1
cmZhY2U7CiAgICAgbXV0YWJsZSBib29sIG1fcmVxdWlyZXNEcmF3QWZ0ZXJQdXRJbWFnZURhdGEg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UuaAppbmRleCA4N2E2NWExYTA1MGFhYmU2MGU1MGMzYTFjMjMxMzM5ZGVhZjZi
ODg1Li45MTVhZWVkOTM5Mjc3NzlkZDUyNjUxZDY5MzlkMWU3Yjc0ODc0ZDhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAt
NDksMTcgKzQ5LDIxIEBAIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKICNl
bmRpZgogCitlbnVtIGNsYXNzIENvbG9yRm9ybWF0IDogdWludDhfdDsKKwogY2xhc3MgSU9TdXJm
YWNlIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBl
bnVtIGNsYXNzIEZvcm1hdCB7Ci0gICAgICAgIFJHQkEsCisgICAgICAgIEJHUkEsCiAgICAgICAg
IFlVVjQyMiwKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKICAgICAgICAgUkdCMTAsCiAgICAg
ICAgIFJHQjEwQTgsCiAjZW5kaWYKICAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IElPU3VyZmFjZTo6Rm9ybWF0IGZvcm1hdEZvckNvbG9yRm9ybWF0KFdlYkNvcmU6OkNvbG9yRm9y
bWF0KTsKICAgICAKICAgICBjbGFzcyBMb2NrZXIgewogICAgIHB1YmxpYzoKQEAgLTk0LDggKzk4
LDggQEAgcHVibGljOgogICAgICAgICB1aW50MzJfdCBtX2ZsYWdzOwogICAgIH07CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKElu
dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpSR0JBKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNp
emUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0
OjpSR0JBKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gY3JlYXRlKEludFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpC
R1JBKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gY3JlYXRlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwg
Rm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmJiwgQ0dDb2xvclNwYWNlUmVmKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gY3JlYXRlRnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmLCBDR0NvbG9yU3BhY2VS
ZWYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
PiBjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggOTFiMTQxYTUwM2JiMjdi
ZDQyN2FmM2Y3MmE0ZDIxM2FiYjM4ZmRjMy4uYjc2YTBmZTVhNzQzMGRmOTY0OWY2MDQyNmM1MjJi
NTFjM2MyNTFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIElPU3VyZmFjZTo6SU9TdXJm
YWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNv
bG9yU3BhCiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zOwogCiAgICAgc3dpdGNoIChmb3JtYXQp
IHsKLSAgICBjYXNlIEZvcm1hdDo6UkdCQToKKyAgICBjYXNlIEZvcm1hdDo6QkdSQToKICAgICAg
ICAgb3B0aW9ucyA9IG9wdGlvbnNGb3IzMkJpdFN1cmZhY2Uoc2l6ZSwgJ0JHUkEnKTsKICAgICAg
ICAgYnJlYWs7CiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCkBAIC0yNzksNyArMjc5LDcgQEAg
Q0dDb250ZXh0UmVmIElPU3VyZmFjZTo6ZW5zdXJlUGxhdGZvcm1Db250ZXh0KGNvbnN0IEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3cpCiAgICAgc2l6ZV90IGJpdHNQZXJQaXhlbCA9IDMyOwogICAgIAog
ICAgIHN3aXRjaCAoZm9ybWF0KCkpIHsKLSAgICBjYXNlIEZvcm1hdDo6UkdCQToKKyAgICBjYXNl
IEZvcm1hdDo6QkdSQToKICAgICAgICAgYnJlYWs7CiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTAp
CiAgICAgY2FzZSBGb3JtYXQ6OlJHQjEwOgpAQCAtMzU2LDcgKzM1Niw3IEBAIElPU3VyZmFjZTo6
Rm9ybWF0IElPU3VyZmFjZTo6Zm9ybWF0KCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCBwaXhlbEZv
cm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KG1fc3VyZmFjZS5nZXQoKSk7CiAgICAgaWYg
KHBpeGVsRm9ybWF0ID09ICdCR1JBJykKLSAgICAgICAgcmV0dXJuIEZvcm1hdDo6UkdCQTsKKyAg
ICAgICAgcmV0dXJuIEZvcm1hdDo6QkdSQTsKIAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQog
ICAgIGlmIChwaXhlbEZvcm1hdCA9PSAndzMwcicpCkBAIC0zNzAsNyArMzcwLDcgQEAgSU9TdXJm
YWNlOjpGb3JtYXQgSU9TdXJmYWNlOjpmb3JtYXQoKSBjb25zdAogICAgICAgICByZXR1cm4gRm9y
bWF0OjpZVVY0MjI7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gRm9y
bWF0OjpSR0JBOworICAgIHJldHVybiBGb3JtYXQ6OkJHUkE7CiB9CiAKIElPU3VyZmFjZUlEIElP
U3VyZmFjZTo6c3VyZmFjZUlEKCkgY29uc3QKQEAgLTQ1OSwxMSArNDU5LDM2IEBAIHZvaWQgSU9T
dXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiAgICAgSU9TdXJmYWNlU2V0
VmFsdWUobV9zdXJmYWNlLmdldCgpLCBrSU9TdXJmYWNlQ29sb3JTcGFjZSwgY29sb3JTcGFjZVBy
b3BlcnRpZXMuZ2V0KCkpOwogfQogCitJT1N1cmZhY2U6OkZvcm1hdCBJT1N1cmZhY2U6OmZvcm1h
dEZvckNvbG9yRm9ybWF0KENvbG9yRm9ybWF0IGZvcm1hdCkKK3sKKyAgICBzd2l0Y2ggKGZvcm1h
dCkgeworICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQkE4OgorICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7
CisgICAgY2FzZSBDb2xvckZvcm1hdDo6QkdSQTg6CisgICAgICAgIHJldHVybiBJT1N1cmZhY2U6
OkZvcm1hdDo6QkdSQTsKKyNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKKyAgICBjYXNlIENvbG9y
Rm9ybWF0OjpSR0IxMDoKKyAgICAgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMDsK
KyAgICBjYXNlIENvbG9yRm9ybWF0OjpSR0IxMEE4OgorICAgICAgICByZXR1cm4gSU9TdXJmYWNl
OjpGb3JtYXQ6OlJHQjEwQTg7CisjZWxzZQorICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwOgor
ICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwQTg6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKKyNl
bmRpZgorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBJT1N1
cmZhY2U6OkZvcm1hdDo6QkdSQTsKK30KKwogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIElPU3VyZmFjZTo6Rm9ybWF0IGZvcm1hdCkKIHsKICAgICBzd2l0Y2gg
KGZvcm1hdCkgewotICAgIGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE6Ci0gICAgICAgIHRz
IDw8ICJSR0JBIjsKKyAgICBjYXNlIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOgorICAgICAgICB0
cyA8PCAiQkdSQSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6
OllVVjQyMjoKICAgICAgICAgdHMgPDwgIllVVjQyMiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCBmZmQ5NGI1MjljMDZhN2UyY2RlMDBlYzk0YjM1NWM4
NWRkYWZiNGMzLi40N2YxMmQyMzBmMzVmNGZhY2JiNTE3YWJkNzEzOGUzMjcwZmYyODk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTM2LDkgKzM2LDkg
QEAgY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5k
VHlwZT4gewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gQ29uY3JldGVJbWFn
ZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKKyAgICBzdGF0aWMgYXV0
byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgQ29sb3JG
b3JtYXQgY29sb3JGb3JtYXQpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBzaXplKTsKKyAgICAgICAgcmV0dXJuIEJhc2VD
b25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1hZ2VCdWZmZXI+KHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQsIHNpemUp
OwogICAgIH0KIAogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUs
IGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggNjRiMWU2YmRh
ZTVlY2JmNjMwOGViNzM1NGIzMTQzOTg5MTM3MTIyNS4uN2M4OWE3Y2U4OGM4MTczNDhlOTE0ODgx
NDFiYmVjMGVlNjE0MzYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTQ0LDE2ICs0NCwxNiBAQCBjbGFzcyBS
ZW1vdGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJh
Y2tlbmRUeXBlPiwgcHVibAogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJ
bWFnZURhdGE7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgewot
ICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxS
ZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBudWxs
cHRyLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OworICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0
ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBu
dWxscHRyLCBjb2xvckZvcm1hdCwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihzdGQ6OnVu
aXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYg
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcihXVEZNb3ZlKGJhY2tlbmQpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CiAgICAgICAgICwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQpCiAgICAgewotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaW1hZ2VCdWZmZXJC
YWNrZW5kV2FzQ3JlYXRlZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFj
a2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xv
clNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5pbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKG1fYmFja2VuZC0+bG9naWNhbFNpemUo
KSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgp
LCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jb2xvckZvcm1hdCgpLCBtX2Jh
Y2tlbmQtPmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKaW5kZXggYmUxODA2NDkwN2U1NWVlMWM1YWI0MDRmMjFiZjVmMDdiNWRj
ODU4Mi4uMTdjYjFiZDJkYTQzYjYzMjg4OTI1ZmE4MjI0Mjk0Y2Q4MjM0ZTcyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtOTQsOSArOTQsOSBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmFwcGx5TWVkaWFJdGVtKERpc3BsYXlMaXN0OjpJdGVtSGFuZGxlIGl0ZW0sIEdyYXBo
aQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Omlt
YWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0
IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29s
b3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpJbWFnZUJ1ZmZlckJhY2tlbmRX
YXNDcmVhdGVkKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1f
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6SW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChsb2dpY2Fs
U2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3Jt
YXQsIFdURk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlm
aWVyIGZsdXNoSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTEwNCwxNyArMTA0LDE3IEBAIHZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVuCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKGZsdXNoSWRlbnRpZmllciwgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgQVNT
RVJUKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgfHwgcmVuZGVy
aW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIAogICAgIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXI7CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5k
ZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAg
IGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2lj
YWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCAqdGhpcywg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0g
ICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVh
dGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVy
YXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikgewogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDNkMDJlYjQ4NmVlYzNkZjE5YTJhNzZi
MDk2NTk4Y2JiOTY3OGExZmUuLjFlOTE2MWQzZjYwNzUzZjJmYzVhMTdhNzc3ZTAzMTkzMDZmYTY0
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBhcHBseU1lZGlhSXRlbShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSwgV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50Lgot
ICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9y
bWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CiAgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8v
IE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9k
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5n
TW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3Jl
OjpDb2xvckZvcm1hdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlJiwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZsdXNoRGlz
cGxheUxpc3RBbmRDb21taXQoY29uc3QgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUmLCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJ
UEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluCmluZGV4IGY1NWIwMjZiZGI1ZTYzYTE0Y2YzNjIxNGE4M2U4YmJlODg2MzFh
MWIuLjA4NzRkODBjYjI1NmZmYzg0Mjg1OWRmOGQxNDM4ZGE3YmViZTE1MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIE5v
dFJlZkNvdW50ZWQgewotICAgIENyZWF0ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBs
b2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
KyAgICBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdl
YkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGVudW06dWludDhfdCBXZWJDb3JlOjpD
b2xvckZvcm1hdCBjb2xvckZvcm1hdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBTdWJtaXREaXNwbGF5TGlzdChX
ZWJLaXQ6OlNoYXJlZERpc3BsYXlMaXN0SGFuZGxlIGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAg
IEZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoV2ViS2l0OjpTaGFyZWREaXNwbGF5TGlzdEhhbmRs
ZSBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVz
aElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVj
dCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRh
KSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggMWZiNzMzZDVjMTU4OTAxZjYxYTM2NjM5MWRmM2Y5MDIzYTc2OTcxOC4uYTdkYzQ5NmM3NDEy
NTkyNzljNjBhZmMwZmI3Zjg4MjcxOWI0NmZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC01OTcsOSArNTk3LDkgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSk6CiAgICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAg
ICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25JRC5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+
J10sCisgICAgICAgICdXZWJDb3JlOjpDb2xvckZvcm1hdCc6IFsnPFdlYkNvcmUvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
JzogWyc8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9j
dW1lbnRPcldvcmtlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
PiddLAotICAgICAgICAnV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCc6IFsn
IkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCInXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBs
aWNhdGlvbkZsYWdzJzogWyc8V2ViQ29yZS9EcmFnRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6RHJhZ09wZXJhdGlvbic6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4n
XSwKQEAgLTY3Myw2ICs2NzMsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAg
ICAgJ1dlYktpdDo6QWxsb3dPdmVyd3JpdGUnOiBbJyJEb3dubG9hZElELmgiJ10sCiAgICAgICAg
ICdXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIidd
LAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29udGVudFdv
cmxkU2hhcmVkLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRS
ZXF1ZXN0JzogWyciRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0
OjpGaW5kT3B0aW9ucyc6IFsnIldlYkZpbmRPcHRpb25zLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
Okdlc3R1cmVSZWNvZ25pemVyU3RhdGUnOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKICAgICAgICAg
J1dlYktpdDo6R2VzdHVyZVR5cGUnOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbQppbmRleCAwMTBjYTJjNWFiNTJkYWRjOTUzMGU1NTI4NWNiZGQzNWMx
YTAzMGM1Li5lNmYxYTY0NGU1N2UwOGI4MzEwYjdiNGJiOGJlYWMxNjRmZGM5MDZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC0xNjYsNyArMTY2LDcgQEAgV2ViQ29yZTo6SW50
U2l6ZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YmFja2luZ1N0b3JlU2l6ZSgpIGNvbnN0CiB1
bnNpZ25lZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6Ynl0ZXNQZXJQaXhlbCgpIGNvbnN0CiB7
CiAgICAgc3dpdGNoIChzdXJmYWNlQnVmZmVyRm9ybWF0KCkpIHsKLSAgICBjYXNlIFdlYkNvcmU6
OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOiByZXR1cm4gNDsKKyAgICBjYXNlIFdlYkNvcmU6OklP
U3VyZmFjZTo6Rm9ybWF0OjpCR1JBOiByZXR1cm4gNDsKICAgICBjYXNlIFdlYkNvcmU6OklPU3Vy
ZmFjZTo6Rm9ybWF0OjpZVVY0MjI6IHJldHVybiAyOwogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEw
KQogICAgIGNhc2UgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwOiByZXR1cm4gNDsK
QEAgLTQ3Nyw3ICs0NzcsNyBAQCBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6c3VyZmFjZUJ1ZmZlckZvcm1hdCgpIGNvbnN0CiAgICAgICAgIHJldHVy
biBtX2lzT3BhcXVlID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwQTg7CiAjZW5kaWYKIAotICAgIHJldHVybiBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKKyAgICByZXR1cm4gV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQ6OkJHUkE7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKaW5kZXggN2UzNDE0MzhiMGJlOGJjNmY3MGUz
ZjE0NzY3YWJhZTMwNTYxZDA3NC4uODQ0ODg3YmJjM2IxYjNhNDMzODQxMmU5NDNjOWQ2OTJjYjFi
NjJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCkBAIC0xNDks
NyArMTQ5LDYgQEAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gU2hhcmVhYmxlQml0bWFwOjpjcmVh
dGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29uZmlndXJhdGkKIAogUmVmUHRyPFNoYXJlYWJsZUJp
dG1hcD4gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbiBwcm90ZWN0aW9uKQogewotICAgIC8vIENyZWF0ZSB0aGUgc2hh
cmVkIG1lbW9yeS4KICAgICBhdXRvIHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhh
bmRsZS5tX2hhbmRsZSwgcHJvdGVjdGlvbik7CiAgICAgaWYgKCFzaGFyZWRNZW1vcnkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbQppbmRleCAxYWU3YWUwOWZmMjRhZGNjODcxNTg3YjkxMGNkM2E2NjI1
MTJmODQyLi40Yjc2NjJhMTY0NTk0ZGU2ZTQzZmU0NDQ0OGUwOTIzN2Q3MmJlZjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtMTAw
Niw5ICsxMDA2LDkgQEAgLSAoUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdT
bmFwc2hvdAogICAgIENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VT
Y2FsZShkZXZpY2VTY2FsZSwgZGV2aWNlU2NhbGUsIDEpOwogCiAjaWYgSEFWRShJT1NVUkZBQ0Vf
UkdCMTApCi0gICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBX
ZWJDb3JlOjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFj
ZTo6Rm9ybWF0OjpSR0IxMCA6IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOworICAg
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2Ny
ZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6
UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNlbHNlCi0gICAgV2Vi
Q29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hv
dEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogI2VuZGlmCiAgICAg
YXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5k
ZWRJbnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNu
YXBzaG90Rm9ybWF0KTsKICAgICBpZiAoIXN1cmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKaW5kZXggYzNiZWVmNWQxNDBiNzI0MzhkYzc1
MDU2MDNhZTlhNGNkZTJhMTFiMy4uNmIwYmZmYWI5ZDgwOWQ4ZDllNDc5YzRmYzc5YzQyNjI0OGM4
NzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
LmNwcApAQCAtNDMsOCArNDMsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQp
OwogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25z
dCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKIHsKKyAg
ICBBU1NFUlRfVU5VU0VEKGNvbG9yRm9ybWF0LCBjb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6
UkdCQTgpOworCiAgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXpl
KHNpemUsIHJlc29sdXRpb25TY2FsZSk7CiAgICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02MSwxMCArNjMsMTAgQEAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWMKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
PihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3Zl
KGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUoYml0bWFwKSwgV1RGTW92
ZShjb250ZXh0KSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJp
dG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlIGhhbmRsZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3Jt
YXQgY29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCiB7CiAgICAg
aWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlPihoYW5k
bGUpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzksMTEgKzgxLDExIEBA
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IEltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFjCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZD4obG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIFdURk1vdmUoYml0bWFwKSwgV1RGTW92ZShjb250ZXh0KSk7CisgICAgcmV0
dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPihsb2dpY2Fs
U2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3Jt
YXQsIFdURk1vdmUoYml0bWFwKSwgV1RGTW92ZShjb250ZXh0KSk7CiB9CiAKLUltYWdlQnVmZmVy
U2hhcmVhYmxlQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlZlB0cjxT
aGFyZWFibGVCaXRtYXA+JiYgYml0bWFwLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
PiYmIGNvbnRleHQpCi0gICAgOiBQbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6
ZSwgcGh5c2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNhbFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZv
cm1hdCBjb2xvckZvcm1hdCwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiBiaXRtYXAsIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29udGV4dCkKKyAgICA6IFBsYXRmb3JtSW1h
Z2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBwaHlzaWNhbFNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpCiAgICAgLCBtX2JpdG1hcChXVEZNb3ZlKGJpdG1h
cCkpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0lt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCmluZGV4IDllMjRhYjk5ZWJjNjc1Y2Uy
MDFhNTkzOTcyOGM2MTlkYmE1OTVlYzMuLjJmY2QxMjFhMzc4ZDdhZDM1YWY5NGZkZTcyNDkyOTgw
ZWMzZTVhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQuaApAQCAtNDMsMTAgKzQzLDEwIEBAIGNsYXNzIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUltYWdlQnVmZmVyQmFjCiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQpOwog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Us
IGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGludGVybmFs
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xv
clNwYWNlLCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93KiwgV2ViQ29yZTo6Q29sb3JGb3JtYXQp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUpOwogCi0gICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0PiYmKTsKKyAgICBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0LCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYm
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiYmKTsKIAogICAgIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBj
b25zdDsKIApAQCAtNjAsOCArNjAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXRJbWFnZURhdGEo
V2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29y
ZTo6SW1hZ2VEYXRhJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb3JlOjpDb2xvckZv
cm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJDb3Jl
OjpDb2xvckZvcm1hdDo6QkdSQTsgfQotCiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gbV9i
aXRtYXA7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gbV9j
b250ZXh0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggNTk4NTdmZjA3YTVh
YzJmNGIzMmM1NjYzMjUxNGI0NWRlMTAxOTdiOC4uMTAxNGRjOWQ2OGYxNWMyODIzM2RkNmJiOGYw
YzlmN2RlZjc5OWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTYzLDEwICs2
MywxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5y
ZWxlYXNlUmVtb3RlUmVzb3VyY2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IH0KIAotICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUpCisgICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JT
cGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSBoYW5kbGUpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fYmFja2VuZCk7Ci0gICAg
ICAgIG1fYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUobG9naWNhbFNpemUsIGJhY2tlbmRT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CisgICAg
ICAgIG1fYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUobG9naWNhbFNpemUsIGJhY2tlbmRT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKGhh
bmRsZSkpOwogICAgIH0KIAogICAgIHZvaWQgY29tbWl0Rmx1c2hEaXNwbGF5TGlzdChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA4ZDg2MTViOGE5NmM3NDQ3MGIw
OTQzN2Q4Y2Q3YzdhMTY1YmM2NWRhLi5kOTcwYjcxZDllY2ViMGE2ODY4MWIzYjIyZWYzMjcwMGY1
ZGY1ODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC04
OSw3ICs4OSw3IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yRmx1
c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZCgpCiAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRG
b3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OkZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQ+KG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5j
TWVzc2FnZUFycml2ZXMpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlKQorUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7CiAgICAgUmVmUHRyPEltYWdl
QnVmZmVyPiBpbWFnZUJ1ZmZlcjsKIApAQCAtMTAwLDcgKzEwMCw3IEBAIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBGbG9hdFNpCiAgICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdl
QnVmZmVyUHJveHk6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsICp0aGlzKTsKIAogICAg
IGlmIChpbWFnZUJ1ZmZlcikgewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGltYWdlQnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIoKSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCBy
ZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBp
bWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpLCBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKTsKICAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2Fj
aGVJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCks
IGltYWdlQnVmZmVyLmdldCgpKTsKICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogICAgIH0K
QEAgLTEzNSwxNiArMTM1LDE2IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmCiAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJlbW90ZVJlc291cmNlKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
OwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6aW1hZ2VCdWZmZXJCYWNr
ZW5kV2FzQ3JlYXRlZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXpl
JiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gaW1hZ2VCdWZm
ZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBpZiAoaW1hZ2VCdWZmZXItPmlzQWNjZWxlcmF0ZWQoKSkKLSAgICAg
ICAgZG93bmNhc3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PigqaW1hZ2VCdWZm
ZXIpLmNyZWF0ZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CisgICAgICAgIGRvd25jYXN0PEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5k
KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBj
b2xvckZvcm1hdCwgV1RGTW92ZShoYW5kbGUpKTsKICAgICBlbHNlCi0gICAgICAgIGRvd25jYXN0
PFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PigqaW1hZ2VCdWZmZXIpLmNyZWF0
ZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CisgICAgICAgIGRvd25jYXN0PFVuYWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5PigqaW1hZ2VCdWZmZXIpLmNyZWF0ZUJhY2tlbmQobG9naWNh
bFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9y
bWF0LCBXVEZNb3ZlKGhhbmRsZSkpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVu
dGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oCmluZGV4IGE1NDJjODMzNWUwZTUzM2UwNTEzZTU3NjQyNjI0NWViYjc2NDFjZjkuLjcyMmRi
Mzk0NmIxZTA4YzJmZWNjMzM4ZjJjZmU3NjEwNTMzZTI0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCi0gICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UpOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xv
ckZvcm1hdCk7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgc3VibWl0RGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoRGlzcGxheUxpc3RB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0
ZToKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIAogICAgIC8vIE1lc3NhZ2Vz
IHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CisgICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Us
IFdlYkNvcmU6OkNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0
V2FzQ29tbWl0dGVkKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdlMzQzMzU0NzU4ZjI2
MjJlZTZhMzhiZDI3MGFiYjU2NWU1MTI1MDMuLmMzMzI5MTAxNmFlMTJlNDU2NGQ5ZmFhNTRiNjVh
N2M2NzYyZDRlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRl
ZCB7Ci0gICAgSW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChXZWJDb3JlOjpGbG9hdFNpemUg
bG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgSW1hZ2VCdWZmZXJCYWNrZW5k
V2FzQ3JlYXRlZChXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNp
emUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29sb3JGb3JtYXQgY29sb3JGb3Jt
YXQsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAg
ICBGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAK
aW5kZXggMDZmMzk5MTNmYzY3YjY4MjJlYzJmMWU4MWEzNGIzODM3MTU4ZTFmZi4uMmRlNzNmZTNk
MjA4NGU2MTk2YWFjNzcxNDFhMGZiNTJjZTNmOTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtMzcs
MTMgKzM3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKIAotc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3Qg
SG9zdFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShj
b25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7
CiAgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKHNpemUsIHJl
c29sdXRpb25TY2FsZSk7CiAgICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShi
YWNrZW5kU2l6ZSwgYmFja2VuZFNpemUsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSk7
CisgICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUsIGJhY2tl
bmRTaXplLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIElPU3VyZmFjZTo6Zm9ybWF0
Rm9yQ29sb3JGb3JtYXQoY29sb3JGb3JtYXQpKTsKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCkBAIC01MywxMCArNTMsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmYKIAogICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVj
dChGbG9hdFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXplKSk7CiAKLSAgICByZXR1cm4gbWFrZVVu
aXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoc3VyZmFjZSkpOworICAg
IHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4o
c2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3Jt
YXQsIFdURk1vdmUoc3VyZmFjZSkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXpl
JiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQorc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSBoYW5kbGUpCiB7CiAgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE1hY2hT
ZW5kUmlnaHQ+KGhhbmRsZSkpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02
Nyw3ICs2Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmCiAgICAgaWYgKCFzdXJmYWNlKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4obG9naWNhbFNpemUsIGludGVybmFsU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KGxvZ2lj
YWxTaXplLCBpbnRlcm5hbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JG
b3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpOwogfQogCiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUg
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggOTU2MTk0YjQ4NDhjODJkNDk4YmE1
YmM5MGQwM2U3Njg2OTEyZmUxZC4uZjU2Yjk0YmRlOWI1MjNiNDkyZjRkZjFmOTFiZGUwM2U3NDg0
OTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zOSw4ICszOSw4IEBAIGNsYXNzIEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZCA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3Vy
ZmFjCiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQpOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBjb25zdCBXZWJDb3JlOjpIb3N0V2lu
ZG93KiwgV2ViQ29yZTo6Q29sb3JGb3JtYXQpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJu
YWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNv
cmU6OkNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwogCiAgICAgdXNpbmcg
V2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZmVkYzNkYjEwYWQ3NzNiZDU1
MzYzMjZmYWIxYzE3NDA4NWNiMTZkMC4uYjQzYmE3OTA5MmViZmUyYzM3YzA4ODE2OWFhZmIzYThm
ZmJlNDg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTkxMCwxMiArOTEwLDEyIEBAIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgV2ViQ2hyb21lQ2xpZW50OjplbnN1cmVSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoCiAgICAgcmV0dXJuICptX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTsKIH0KIAotUmVmUHRyPEltYWdlQnVmZmVyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlKSBjb25zdAorUmVmUHRyPEltYWdlQnVmZmVyPiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZv
cm1hdCkgY29uc3QKIHsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVz
ZVJlbW90ZVJlbmRlcmluZ0ZvcihwdXJwb3NlKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICByZXR1cm4gZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkuY3JlYXRlSW1h
Z2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
KTsKKyAgICByZXR1cm4gZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkuY3JlYXRl
SW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBjb2xvckZvcm1hdCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggMTcxZmE2MzMzZGNlMzIzYzAwYzc4Y2ViZGUyNzNmMDBlNmM5
MGYwMi4uYzU5MzQ3ZTZmZjEzZTc1MTMzOGU1NmYzMmY1YmMzYjI2OGI4MjNiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMjQ0LDcgKzI0NCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBlbnN1cmVSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoKSBjb25zdDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VC
dWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNv
cmU6OlJlbmRlcmluZ01vZGUsIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSkgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJw
b3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6
OkNvbG9yRm9ybWF0KSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgQ29tcG9zaXRpbmdUcmln
Z2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdCBmaW5hbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413852</attachid>
            <date>2020-11-11 12:19:35 -0800</date>
            <delta_ts>2020-11-11 12:36:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111121934.patch</filename>
            <type>text/plain</type>
            <size>80670</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1MjI4ZGZjNGJjNmIy
NTUzOTYzODVjNjQwZTRiNWE3YmM3OWVkYy4uODlkMmJjODlhYzlkMGNkMTkzY2NjZTc4MjZlZWM4
ODlmNWI1ZWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0czsgd2lsbCBiZSBjb3ZlcmVkIGJ5IGFsbCBkZWVwIGNvbG9yIHRlc3RzIHdoZW4g
R1BVIFByb2Nlc3MgRE9NIHJlbmRlcmluZyBsYW5kcy4KKworICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIHBhc3MgYSBDb2xvckZvcm1hdCBpbnRvIHRoZSBJbWFnZUJ1ZmZlciBjb25zdHJ1Y3Rv
ciwKKyAgICAgICAgYW5kIGFkZCBSR0IxMCBhbmQgUkdCMTBBOCBDb2xvckZvcm1hdHMuCisKKyAg
ICAgICAgV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0L3B1dEltYWdlRGF0YSBmb3IgZGVl
cCBjb2xvciBidWZmZXJzLCBiZWNhdXNlCisgICAgICAgIHRoYXQgaXMgbm90IG5lZWRlZCBmb3Ig
SW1hZ2VCdWZmZXJzIGJhY2tpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgKHRoZSBtb3RpdmF0
aW9uCisgICAgICAgIGZvciB0aGlzKSwgYnV0IGlmIHdlIGV2ZW50dWFsbHkgd2FudGVkIHRvIG1v
cmUgZ2VuZXJhbGx5IHN1cHBvcnQgZGVlcCBjb2xvciBJbWFnZUJ1ZmZlcnMsCisgICAgICAgIHRo
YXQncyBtb3N0IG9mIHRoZSByZW1haW5pbmcgd29yay4KKworICAgICAgICBBbHNvLCBzdGFuZGFy
ZGl6ZSBvbiBCR1JBOCBhcyB0aGUgZGVmYXVsdCBDb2xvckZvcm1hdCBmb3IgYnVmZmVycy4KKyAg
ICAgICAgaU9TLCBDYWlybywgSU9TdXJmYWNlLCBhbmQgU2hhcmVhYmxlQml0bWFwIGFsbCBhbHJl
YWR5IHVzZSBCR1JBOCBieSBkZWZhdWx0OworICAgICAgICBvbmx5IEltYWdlQnVmZmVyIHdpdGgg
Q0dCaXRtYXAgYmFja2luZyBzdG9yZSBvbiBtYWNPUyB1c2VkIFJHQkE4LiBTbywKKyAgICAgICAg
Zm9yIHNhbml0eSdzIHNha2UgKGFuZCBzbyB0aGF0IGl0J3MgZWFzeSB0byBoYXZlIGEgZGVmYXVs
dCBwYXNzZWQgaW50bworICAgICAgICB0aGUgY29uc3RydWN0b3IpLCBzdGFuZGFyZGl6ZSBvbiBC
R1JBOC4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0hv
c3RXaW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgIFBsdW1iaW5nIENvbG9yRm9ybWF0IGFyb3VuZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRvQkdSQURhdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURh
dGEpOgorICAgICAgICBBc3NlcnQgdGhhdCBjb3B5SW1hZ2VQaXhlbHMgaXMgYWx3YXlzIG9wZXJh
dGluZyBvbiBhIDgtYml0IGJ1ZmZlciwKKyAgICAgICAgc2luY2UgdGhhdCdzIGFsbCBpdCBzdXBw
b3J0cyBmb3Igbm93LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJC
YWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvbG9yRm9y
bWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Ynl0ZXNQ
ZXJSb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpiYWNr
ZW5kQ29sb3JGb3JtYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZmVyQkdS
QVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Qml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlckNHQmFja2VuZDo6dG9DRkRhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Ug
Y29uc3QpOgorICAgICAgICBBZG9wdCBDb2xvckZvcm1hdCBhbmQgc3RhbmRhcmRpemUgb24gQkdS
QTguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRDb2xvckZvcm1hdCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpmb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpm
b3JtYXRGb3JDb2xvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpjcmVh
dGUpOgorCiAyMDIwLTExLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0dQVVByb2Nlc3NdIFNlYW1sZXNzbHkgcmVzdW1lIFdlYkF1ZGlvIHBsYXliYWNrIGlm
IHRoZSBHUFUgUHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExMmRkM2E1OGNhODFkYjBiNjBj
OGE4ZjAyOGZhZTk0MmRhMWZhNGMuLmM0ZGQxNjRhNjdiMGIyMDZjYTBjYmU2YTIzZTM5MzkwYTA1
NTM1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEtMTEgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG1pbmltYWwgc3VwcG9y
dCBmb3IgZGVlcCBjb2xvciBJT1N1cmZhY2UgYmFja2luZyBzdG9yZSB0byBJbWFnZUJ1ZmZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRlc1BlclBpeGVsIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQg
Y29uc3QpOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VWaWV3U25h
cHNob3RdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVm
ZmVyUHJveHk6OmNyZWF0ZUJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdh
c0NyZWF0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTExLTEx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVByb2Nlc3Nd
IFNlYW1sZXNzbHkgcmVzdW1lIFdlYkF1ZGlvIHBsYXliYWNrIGlmIHRoZSBHUFUgUHJvY2VzcyBj
cmFzaGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggOTk3ZjJhZjdmOTc1NjkwYzc3MzgxNjQy
OTIxNWI5ZTUxYmFjNTlmMS4uMTYyMzAwMzRkMzNmOTgyN2EzNjJjYmQ4NTI5Y2QxMDZmYTAyNWM5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNTIzLDkgKzUyMyw5IEBAIHZvaWQgQ2hyb21l
OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92
ZXMpCiAgICAgbV9jbGllbnQuc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGhpZGRlblVu
dGlsTW91c2VNb3Zlcyk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2hyb21lOjpjcmVhdGVJ
bWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkgY29uc3QKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2hyb21lOjpj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmlu
Z01vZGUsIHB1cnBvc2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgcmV0dXJu
IG1fY2xpZW50LmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBvc2Us
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogfQogCiBQbGF0Zm9y
bURpc3BsYXlJRCBDaHJvbWU6OmRpc3BsYXlJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRl
eCBjZjc3N2UwY2NkOTlhN2NiNTkxMzhlYWZiNjExZTRmMWMwMjZmZjljLi44MmYzYWQzODVlNDQz
ZDE3NTFjZWM1YjFlYTkzYTI4MzY3ZjY3MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTg0LDcg
Kzg0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwg
UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xv
ckZvcm1hdCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0
Zm9ybURpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDdhZjE3OGU5ODY2OGRhOWM3MTQ0NDQ1MTMyNjA2OTc0ODdk
ODM1YzguLjA1MjZlMzUxMjI3NzQwZTExYzhmNTBjOTMxNGIyODJjMjMwYTRiOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAK
LSAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQsIENvbG9y
U3BhY2UpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9k
ZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQsIENvbG9yU3BhY2UsIENvbG9yRm9ybWF0KSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdyYXBo
aWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KICAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCmluZGV4IDg5NjVhMjUzZTE4N2VlOTc2YTRlNjk0ODhk
NGY2ODU2OGY1YmM3MjEuLjFkOWM0YTM2OTViYzE1OTc3OWQyY2M2ZmUwZTI1MDJmZjJjODUwMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3Vyc29yOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiAKK2Vu
dW0gY2xhc3MgQ29sb3JGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBDb2xvclNwYWNlIDog
dWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiBlbnVtIGNsYXNzIFJl
bmRlcmluZ1B1cnBvc2UgOiB1aW50OF90OwpAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBJbnRQb2ludCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQ
b2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2li
aWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgUmVm
UHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBSZW5k
ZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVy
cG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCkgY29u
c3QgPSAwOwogCiAgICAgLy8gTWV0aG9kIGZvciByZXRyaWV2aW5nIHRoZSBuYXRpdmUgY2xpZW50
IG9mIHRoZSBwYWdlLgogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCA4NTQwMjE1ZjYyMzdjYzBhM2Q2
MjVlMzJmYTk2N2RmOWE2MmVjMmFmLi5hNmI4MzM4MDc2MzA0ODBmYTFjNTdmMGRlM2JmZGEyOTMw
YjcxZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25j
cmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0zNCw5ICszNCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEJhY2tlbmRUeXBlPgogY2xhc3MgQ29uY3JldGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBJbWFnZUJ1
ZmZlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW1hZ2VCdWZmZXJUeXBlID0g
Q29uY3JldGVJbWFnZUJ1ZmZlciwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIHN0YXRpYyBS
ZWZQdHI8SW1hZ2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdywgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIHN0YXRpYyBSZWZQ
dHI8SW1hZ2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdywgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIEFyZ3VtZW50cyYmLi4uIGFyZ3Vt
ZW50cykKICAgICB7Ci0gICAgICAgIGF1dG8gYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUo
c2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAg
YXV0byBiYWNrZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGhvc3RXaW5kb3csIGNvbG9yRm9ybWF0KTsKICAgICAgICAgaWYgKCFiYWNr
ZW5kKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSW1hZ2VCdWZmZXJUeXBlKFdURk1vdmUoYmFja2VuZCksIHN0ZDo6Zm9yd2FyZDxBcmd1
bWVudHM+KGFyZ3VtZW50cykuLi4pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCA4ZjYyZGM2YTM0ODNjODQzZDA1YmVmNjczNGRj
NTRhMTNiNGIwZTVmLi4xNWE5ZTFiYWIwYWMyNDMwYmQxNGY3MTlmZTk5ODk4ZDVmNDdkMjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3Bw
CkBAIC0zOCwzNSArMzgsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGZs
b2F0IE1heENsYW1wZWRMZW5ndGggPSA0MDk2Owogc3RhdGljIGNvbnN0IGZsb2F0IE1heENsYW1w
ZWRBcmVhID0gTWF4Q2xhbXBlZExlbmd0aCAqIE1heENsYW1wZWRMZW5ndGg7CiAKLVJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Qgc2hvdWxkVXNl
RGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cp
CitSZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0
IHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBo
b3N0V2luZG93LCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyOwogICAgIGlmIChob3N0V2luZG93KQotICAgICAgICBpbWFnZUJ1
ZmZlciA9IGhvc3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUs
IHB1cnBvc2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgICAgIGltYWdlQnVm
ZmVyID0gaG9zdFdpbmRvdy0+Y3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwg
cHVycG9zZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCk7CiAKICAg
ICBpZiAoIWltYWdlQnVmZmVyICYmIHNob3VsZFVzZURpc3BsYXlMaXN0ID09IFNob3VsZFVzZURp
c3BsYXlMaXN0OjpZZXMpIHsKICAgICAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0
QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgaG9zdFdpbmRvdyk7CisgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlM
aXN0QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQpOwogICAgICAgICAKICAgICAgICAg
aWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RV
bmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5
TGlzdFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQpOwogICAgIH0KIAogICAgIGlm
ICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RX
aW5kb3cpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBj
b2xvckZvcm1hdCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CiAKLVJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitSZWZQdHI8SW1hZ2VC
dWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBDb2xvckZvcm1hdCBjb2xv
ckZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyOwogICAgIAog
ICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAg
ICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICBpbWFnZUJ1
ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3csIGNvbG9yRm9ybWF0KTsKICAgICAKICAgICBpZiAo
IWltYWdlQnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRv
dyk7CisgICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVh
dGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBjb2xvckZv
cm1hdCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBjZjQ3YzE5ZjBjZTE3MDRmMDI1
MTk3MjBiMzkyYTAwMjVlOWUxNGQ2Li4zMDZlNjQ4Nzk1NDA3ZjllN2UwY2EzNzNhNmI2NDVjYmM5
NmM2YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgRHJhd2luZ0NvbnRleHQ7CiBjbGFzcyBJbWFn
ZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEltYWdlQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAg
Ly8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5n
UHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3Bh
Y2U6OlNSR0IsIGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0cik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJl
bmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xv
clNwYWNlOjpTUkdCLCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUm
LCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0Is
IGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0ciwgQ29sb3JGb3JtYXQgPSBDb2xvckZvcm1hdDo6
RGVmYXVsdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4g
Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBjb25zdCBIb3N0V2luZG93
KiA9IG51bGxwdHIsIENvbG9yRm9ybWF0ID0gQ29sb3JGb3JtYXQ6OkRlZmF1bHQpOwogICAgIHN0
YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBH
cmFwaGljc0NvbnRleHQmKTsKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0
aWJsZSB3aXRoIHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29sdXRpb24gZm9yIGRyYXdp
bmcgaW50byB0aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5j
cHAKaW5kZXggZjFmMzY3YzA2YTJhMGM5ZDk5MTNjOWM5MjM2YzE5NzM2ZWRlNTlhMi4uMTA2OTU1
MjU4NmExMDYyZDgwMjk1OWYwZjA4MWYzNjQyMjBiMDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC0z
MSwxMSArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckJhY2tl
bmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNv
bG9yRm9ybWF0KQogICAgIDogbV9sb2dpY2FsU2l6ZShsb2dpY2FsU2l6ZSkKICAgICAsIG1fYmFj
a2VuZFNpemUoYmFja2VuZFNpemUpCiAgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9u
U2NhbGUpCiAgICAgLCBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKKyAgICAsIG1fY29sb3JGb3Jt
YXQoY29sb3JGb3JtYXQpCiB7CiB9CiAKQEAgLTEwNSw4ICsxMDYsOCBAQCBWZWN0b3I8dWludDhf
dD4gSW1hZ2VCdWZmZXJCYWNrZW5kOjp0b0JHUkFEYXRhKHZvaWQqIGRhdGEpIGNvbnN0CiAgICAg
dWludDhfdCogc3JjUm93cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEpOwogCiAg
ICAgY29weUltYWdlUGl4ZWxzKAotICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVt
dWx0aXBsaWVkLCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3Ms
Ci0gICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgQ29sb3JG
b3JtYXQ6OkJHUkEsIGRlc3RCeXRlc1BlclJvdywgcmVzdWx0LmRhdGEoKSwgbV9sb2dpY2FsU2l6
ZSk7CisgICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIGNvbG9y
Rm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAorICAgICAgICBBbHBoYVByZW11bHRp
cGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIENvbG9yRm9ybWF0OjpCR1JBOCwgZGVzdEJ5dGVz
UGVyUm93LCByZXN1bHQuZGF0YSgpLCBtX2xvZ2ljYWxTaXplKTsKIAogICAgIHJldHVybiByZXN1
bHQ7CiB9CkBAIC0yMDksNiArMjEwLDEwIEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5
SW1hZ2VQaXhlbHMoCiAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwg
Q29sb3JGb3JtYXQgc3JjQ29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50
OF90KiBzcmNSb3dzLAogICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0
LCBDb2xvckZvcm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywg
dWludDhfdCogZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CisgICAgLy8g
V2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEg
d2l0aCBkZWVwIGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY0NvbG9yRm9ybWF0ID09IENv
bG9yRm9ybWF0OjpSR0JBOCB8fCBzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgp
OworICAgIEFTU0VSVChkZXN0Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4IHx8IGRl
c3RDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworCiAgICAgaWYgKHNyY0FscGhh
Rm9ybWF0ID09IGRlc3RBbHBoYUZvcm1hdCkgewogICAgICAgICBpZiAoc3JjQWxwaGFGb3JtYXQg
PT0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkKICAgICAgICAgICAgIGNv
cHlJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxp
ZWQ+KHNyY0NvbG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9yRm9y
bWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKQEAgLTI1Miw4ICsyNTcsOCBA
QCBSZWZQdHI8SW1hZ2VEYXRhPiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YShBbHBo
YVByZW11bHRpcGxpY2F0aW9uIG91dHB1dAogICAgIHVpbnQ4X3QqIHNyY1Jvd3MgPSByZWludGVy
cHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhKSArIHNyY1JlY3RDbGlwcGVkLnkoKSAqIHNyY0J5dGVz
UGVyUm93ICsgc3JjUmVjdENsaXBwZWQueCgpICogNDsKIAogICAgIGNvcHlJbWFnZVBpeGVscygK
LSAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgYmFja2VuZENv
bG9yRm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBvdXRwdXRGb3Jt
YXQsIENvbG9yRm9ybWF0OjpSR0JBLCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBkZXN0UmVj
dC5zaXplKCkpOworICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVk
LCBjb2xvckZvcm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKKyAgICAgICAgb3V0cHV0
Rm9ybWF0LCBDb2xvckZvcm1hdDo6UkdCQTgsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRl
c3RSZWN0LnNpemUoKSk7CiAKICAgICByZXR1cm4gaW1hZ2VEYXRhOwogfQpAQCAtMjgzLDggKzI4
OCw4IEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QKICAgICB1aW50OF90KiBzcmNSb3dzID0gaW1h
Z2VEYXRhLmRhdGEoKS0+ZGF0YSgpICsgc3JjUmVjdENsaXBwZWQueSgpICogc3JjQnl0ZXNQZXJS
b3cgKyBzcmNSZWN0Q2xpcHBlZC54KCkgKiA0OwogCiAgICAgY29weUltYWdlUGl4ZWxzKAotICAg
ICAgICBpbnB1dEZvcm1hdCwgQ29sb3JGb3JtYXQ6OlJHQkEsIHNyY0J5dGVzUGVyUm93LCBzcmNS
b3dzLAotICAgICAgICBkZXN0Rm9ybWF0LCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgZGVzdEJ5dGVz
UGVyUm93LCBkZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgaW5wdXRGb3JtYXQs
IENvbG9yRm9ybWF0OjpSR0JBOCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCisgICAgICAgIGRl
c3RGb3JtYXQsIGNvbG9yRm9ybWF0KCksIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RS
ZWN0LnNpemUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXgg
YWE5YjM0MWEwNTczZjJhZDRlOWVkMzA1N2MwNDIxZTk1OTFhZTVjMS4uMTc0NzIzOGQ0OGQ0MGU5
NDRiYjQ1YTA3NzJkZTMzMzczNzE1MzlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTU1LDggKzU1LDEyIEBA
IGVudW0gY2xhc3MgUHJlc2VydmVSZXNvbHV0aW9uIDogdWludDhfdCB7CiB9OwogCiBlbnVtIGNs
YXNzIENvbG9yRm9ybWF0IDogdWludDhfdCB7Ci0gICAgUkdCQSwKLSAgICBCR1JBCisgICAgUkdC
QTgsCisgICAgQkdSQTgsCisgICAgUkdCMTAsCisgICAgUkdCMTBBOCwKKworICAgIERlZmF1bHQg
PSBCR1JBOCwKIH07CiAKIGNsYXNzIEltYWdlQnVmZmVyQmFja2VuZCB7CkBAIC03Miw2ICs3Niw3
IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIGJhY2tlbmRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNrZW5kU2l6ZTsgfQogICAgIGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb2x1dGlvblNjYWxlOyB9CiAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQoKSBj
b25zdCB7IHJldHVybiBtX2NvbG9yRm9ybWF0OyB9CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5z
Zm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7IH0K
ICAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgeyByZXR1cm4gNCAqIG1fYmFj
a2VuZFNpemUuYXJlYSgpLnVuc2FmZUdldCgpOyB9CkBAIC0xMDQsMTAgKzEwOSw5IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNBY2NlbGVyYXRlZCA9IGZhbHNlOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlQnVm
ZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBi
YWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1h
dCk7CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3QgeyByZXR1cm4g
NCAqIG1fYmFja2VuZFNpemUud2lkdGgoKTsgfQotICAgIHZpcnR1YWwgQ29sb3JGb3JtYXQgYmFj
a2VuZENvbG9yRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gQ29sb3JGb3JtYXQ6OlJHQkE7IH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgVCB0b0JhY2tlbmRDb29yZGluYXRlcyhUIHQp
IGNvbnN0CkBAIC0xMzQsNiArMTM4LDIxIEBAIHByb3RlY3RlZDoKICAgICBJbnRTaXplIG1fYmFj
a2VuZFNpemU7CiAgICAgZmxvYXQgbV9yZXNvbHV0aW9uU2NhbGU7CiAgICAgQ29sb3JTcGFjZSBt
X2NvbG9yU3BhY2U7CisgICAgQ29sb3JGb3JtYXQgbV9jb2xvckZvcm1hdDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JGb3JtYXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0LAorICAgIFdlYkNvcmU6OkNvbG9y
Rm9ybWF0OjpSR0JBOCwKKyAgICBXZWJDb3JlOjpDb2xvckZvcm1hdDo6QkdSQTgsCisgICAgV2Vi
Q29yZTo6Q29sb3JGb3JtYXQ6OlJHQjEwLAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0OjpSR0Ix
MEE4CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDEw
Y2IwYTAzNjFlMDk4NDhjNDdhZGRkMWY1YzZlMzc0MDRhNjRhYjAuLmE2MzUxNDdkMGJjYTNiNzZj
ZTEyZGY3NjQ4MjQ4YTNkYzgwYmFmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
c3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhl
bEJ1ZmZlclRvSU9TdXJmYWNlKENWUGkKICAgICB9CiAKICAgICBJbnRTaXplIHNpemUgeyBzdGF0
aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlcikpLCBzdGF0aWNf
Y2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpKSB9OwotICAgIGF1
dG8gaW9TdXJmYWNlID0gIElPU3VyZmFjZTo6Y3JlYXRlKHNpemUsIHNSR0JDb2xvclNwYWNlUmVm
KCksIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBKTsKKyAgICBhdXRvIGlvU3VyZmFjZSA9ICBJT1N1
cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBJT1N1cmZhY2U6OkZvcm1h
dDo6QkdSQSk7CiAKICAgICBJT1N1cmZhY2U6OkxvY2tlciBsb2NrKCppb1N1cmZhY2UpOwogICAg
IHZJbWFnZV9CdWZmZXIgc3JjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXgg
MjNiOTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcxNmRlZjNhMS4uMDNlYTE2NjIwMTc2YzMx
NTkwMzU0NGY2OTliNDFhNTQyYTJmNmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2Vu
ZC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB1c2luZyBJbWFn
ZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZDsKIAotICAgIENvbG9yRm9ybWF0IGJh
Y2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbG9yRm9ybWF0OjpC
R1JBOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25z
dCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mKSB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5k
LmNwcAppbmRleCA4YzVhYmY3YzkzZTc5NzEzZjcxM2E2ZGJkZTliYzAxN2YyMWY4OWJjLi4xMThi
ZDcxYmFiYmQzMDUxZTVjMGQ4NGZjYTE0ZTAyZTI4MmVmMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tl
bmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBSZWZQdHI8SW1hZ2U+IGNyZWF0ZUJpdG1h
cEltYWdlQWZ0ZXJTY2FsaW5nSWZOZWVkZWQoUmVmUHRyPE5hdGl2ZUltYWdlPiYmCiAgICAgaWYg
KHJlc29sdXRpb25TY2FsZSA9PSAxIHx8IHByZXNlcnZlUmVzb2x1dGlvbiA9PSBQcmVzZXJ2ZVJl
c29sdXRpb246OlllcykKICAgICAgICAgaW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKGNyZWF0
ZUNyb3BwZWRJbWFnZUlmTmVjZXNzYXJ5KGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGJh
Y2tlbmRTaXplKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0Yo
Q0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXpl
LmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYo
KSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCks
IGxvZ2ljYWxTaXplLmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNv
bG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1h
cEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29udGV4
dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAgICAgIENHQ29udGV4dENsaXBUb1JlY3Qo
Y29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgbG9naWNhbFNpemUp
KTsKICAgICAgICAgRmxvYXRTaXplIGltYWdlU2l6ZUluVXNlclNwYWNlID0gbG9naWNhbFNpemU7
CkBAIC0xNjIsNyArMTYyLDcgQEAgUmV0YWluUHRyPENGRGF0YVJlZj4gSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQ6OnRvQ0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGkKICAgICAgICAgaW1h
Z2UgPSBjcmVhdGVDcm9wcGVkSW1hZ2VJZk5lY2Vzc2FyeShpbWFnZS5nZXQoKSwgYmFja2VuZFNp
emUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9u
dENvcHlCYWNraW5nU3RvcmUpLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJhY2tlbmRTaXplKCkud2lkdGgo
KSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tlbmRTaXplKCkud2lkdGgoKSwg
c1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7Cisg
ICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJh
Y2tlbmRTaXplKCkud2lkdGgoKSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tl
bmRTaXplKCkud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11
bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0Nv
bnRleHRTZXRCbGVuZE1vZGUoY29udGV4dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAg
ICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBi
YWNrZW5kU2l6ZSgpLndpZHRoKCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCkpKTsKICAgICAgICAg
Q0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UoMCwgMCwgYmFja2Vu
ZFNpemUoKS53aWR0aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwpA
QCAtMjE5LDEyICsyMTksMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlJbWFnZVBpeGVsc0Fj
Y2VsZXJhdGVkKAogICAgIH0KIAogICAgIGlmIChkZXN0QWxwaGFGb3JtYXQgPT0gQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkKSB7Ci0gICAgICAgIGlmIChzcmNDb2xvckZv
cm1hdCA9PSBDb2xvckZvcm1hdDo6UkdCQSkKKyAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09
IENvbG9yRm9ybWF0OjpSR0JBOCkKICAgICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlEYXRh
X1JHQkE4ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlEYXRhX0JHUkE4ODg4KCZzcmMsICZkZXN0LCBr
dkltYWdlTm9GbGFncyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0
ID09IENvbG9yRm9ybWF0OjpSR0JBKQorICAgICAgICBpZiAoc3JjQ29sb3JGb3JtYXQgPT0gQ29s
b3JGb3JtYXQ6OlJHQkE4KQogICAgICAgICAgICAgdkltYWdlUHJlbXVsdGlwbHlEYXRhX1JHQkE4
ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHZJbWFnZVByZW11bHRpcGx5RGF0YV9CR1JBODg4OCgmc3JjLCAmZGVzdCwga3ZJbWFnZU5v
RmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCmluZGV4IDZjMDMzYzYz
ODM4YWZlMWEwZjYyN2Q2YjQ0YTE1NDZmM2ZlZWU3MzAuLmMwMzUxMTg5YTkwYWZlNzA2MWJjYjI3
M2NhOTBiYmE0MGI0MjhmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAK
QEAgLTM3LDE2ICszNywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotY29uc3RleHByIGNvbnN0IENHQml0bWFwSW5mbyBEZWZhdWx0Qml0bWFw
SW5mbyA9IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3Jk
ZXIzMkhvc3Q7Ci0jZWxzZQotY29uc3RleHByIGNvbnN0IENHQml0bWFwSW5mbyBEZWZhdWx0Qml0
bWFwSW5mbyA9IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdDsKLSNlbmRpZgotCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQpOwogCi1z
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JT
cGFjZSwgY29uc3QgSG9zdFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9y
Rm9ybWF0IGNvbG9yRm9ybWF0KQogeworICAgIEFTU0VSVF9VTlVTRUQoY29sb3JGb3JtYXQsIGNv
bG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpEZWZhdWx0KTsKKwogICAgIEludFNpemUgYmFja2Vu
ZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwogICAg
IGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NjIsNyArNTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+
IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoYwogICAgIHNpemVfdCBudW1CeXRl
cyA9IGJhY2tlbmRTaXplLmhlaWdodCgpICogYnl0ZXNQZXJSb3c7CiAgICAgdmVyaWZ5SW1hZ2VC
dWZmZXJJc0JpZ0Vub3VnaChkYXRhLCBudW1CeXRlcyk7CiAKLSAgICBhdXRvIGNnQ29udGV4dCA9
IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGJhY2tlbmRTaXplLndpZHRoKCks
IGJhY2tlbmRTaXplLmhlaWdodCgpLCA4LCBieXRlc1BlclJvdywgY2dDb2xvclNwYWNlLCBEZWZh
dWx0Qml0bWFwSW5mbykpOworICAgIGF1dG8gY2dDb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENv
bnRleHRDcmVhdGUoZGF0YSwgYmFja2VuZFNpemUud2lkdGgoKSwgYmFja2VuZFNpemUuaGVpZ2h0
KCksIDgsIGJ5dGVzUGVyUm93LCBjZ0NvbG9yU3BhY2UsIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBs
aWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKICAgICBpZiAoIWNnQ29udGV4
dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTc0LDI0ICs3MCwyNCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kOjpjcmVhdGUoYwogCiAgICAgYXV0byBkYXRhUHJvdmlkZXIgPSBhZG9wdENGKENHRGF0
YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgZGF0YSwgbnVtQnl0ZXMsIHJlbGVhc2VJbWFnZURh
dGEpKTsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChzaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBkYXRhLCBXVEZNb3ZlKGRhdGFQcm92aWRlciks
IFdURk1vdmUoY29udGV4dCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kPihuZXcgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoc2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGRh
dGEsIFdURk1vdmUoZGF0YVByb3ZpZGVyKSwgV1RGTW92ZShjb250ZXh0KSkpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGF1dG8gY2dDb2xvclNwYWNlID0gY29udGV4dENv
bG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQo
KSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6
Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQoKSwgbnVs
bHB0ciwgQ29sb3JGb3JtYXQ6OkRlZmF1bHQpOwogICAgIAotICAgIHJldHVybiBJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxw
dHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUs
IDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIsIENvbG9yRm9ybWF0OjpEZWZhdWx0KTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhv
c3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdp
bmRvdyogaG9zdFdpbmRvdywgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7Ci0gICAgcmV0dXJu
IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIGhvc3RXaW5kb3cp
OworICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2Up
LCBob3N0V2luZG93LCBjb2xvckZvcm1hdCk7CiB9CiAKLUltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRl
clJlZj4mJiBkYXRhUHJvdmlkZXIsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYg
Y29udGV4dCkKLSAgICA6IEltYWdlQnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5k
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIHZvaWQqIGRh
dGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4mJiBkYXRhUHJvdmlkZXIsIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29udGV4dCkKKyAgICA6IEltYWdlQnVmZmVyQ0dC
YWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBjb2xvckZvcm1hdCkKICAgICAsIG1fZGF0YShkYXRhKQogICAgICwgbV9kYXRhUHJvdmlk
ZXIoV1RGTW92ZShkYXRhUHJvdmlkZXIpKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4
dCkpCkBAIC0xMTYsNyArMTEyLDcgQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkKICAgICBjYXNl
IERvbnRDb3B5QmFja2luZ1N0b3JlOgogICAgICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0
ZShhZG9wdENGKENHSW1hZ2VDcmVhdGUoCiAgICAgICAgICAgICBtX2JhY2tlbmRTaXplLndpZHRo
KCksIG1fYmFja2VuZFNpemUuaGVpZ2h0KCksIDgsIDMyLCBieXRlc1BlclJvdygpLAotICAgICAg
ICAgICAgY2FjaGVkQ0dDb2xvclNwYWNlKG1fY29sb3JTcGFjZSksIERlZmF1bHRCaXRtYXBJbmZv
LCBtX2RhdGFQcm92aWRlci5nZXQoKSwKKyAgICAgICAgICAgIGNhY2hlZENHQ29sb3JTcGFjZSht
X2NvbG9yU3BhY2UpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFw
Qnl0ZU9yZGVyMzJIb3N0LCBtX2RhdGFQcm92aWRlci5nZXQoKSwKICAgICAgICAgICAgIDAsIHRy
dWUsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQuaAppbmRleCA3ZDIzM2QyMjI3ODVhZDNkZGYwNjNjNGE4NjQ4ZmRmZmFj
ZTdjZjk5Li4yMDI0YWVhZDk4N2I5NmQ5Y2M2YjMxYjJjMzE5YWIzZTRiZTA2ZDZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKQEAgLTM2LDggKzM2LDggQEAgY2xhc3MgSW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQgOiBwdWJsaWMgSW1hZ2VCdWZmZXJDR0JhY2tlbmQgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQpOwogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
PiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlLCBDR0NvbG9yU3BhY2VSZWYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBIb3N0V2lu
ZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmLCBjb25zdCBIb3N0V2luZG93KiwgQ29sb3JGb3JtYXQp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+
IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIGNvbnN0IEhvc3RXaW5kb3cqLCBDb2xvckZvcm1hdCk7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC01MiwxMSArNTIsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGlzT3JpZ2luQXRVcHBlckxlZnRDb3JuZXIgPSB0cnVlOwogCiBw
cml2YXRlOgotICAgIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJS
ZWY+JiYsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYpOwotCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBDb2xvckZvcm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBDb2xvckZvcm1hdDo6QkdSQTsgfQotI2VuZGlmCisgICAgSW1h
Z2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIENvbG9yRm9ybWF0LCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+
JiYsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYpOwogCiAgICAgdm9pZCogbV9k
YXRhOwogICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gbV9kYXRhUHJvdmlkZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhOWQ1NDg1YTI2MWI1YTBk
ZjUzZDJiODk3MTBhZTgzN2ZiZjliMWFlLi42ODMxMzRmNGRhNTlhNjYyNDRmODMxMDA5ZGY3Zjk5
MWQ0MmExOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTY0
LDEzICs2NCwxMyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0CiAgICAgcmV0dXJuIEltYWdlQnVm
ZmVyQ0dCYWNrZW5kOjpjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JTcGFjZSwg
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cq
IGhvc3RXaW5kb3csIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KQogewogICAgIEludFNpemUgYmFj
a2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwog
ICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUsIGJhY2tl
bmRTaXplLCBjZ0NvbG9yU3BhY2UpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2dDb2xvclNwYWNlLCBJT1N1cmZhY2U6OmZv
cm1hdEZvckNvbG9yRm9ybWF0KGNvbG9yRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtODAsMjUgKzgwLDI0IEBAIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9h
dFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKHN1
cmZhY2UpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGF1dG8gY2dD
b2xvclNwYWNlID0gY29udGV4dENvbG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAgIHJldHVybiBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpT
UkdCLCBjZ0NvbG9yU3BhY2UuZ2V0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwg
Y2dDb2xvclNwYWNlLmdldCgpLCBudWxscHRyLCBDb2xvckZvcm1hdDo6RGVmYXVsdCk7CiAgICAg
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEs
IENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyLCBD
b2xvckZvcm1hdDo6RGVmYXVsdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBDb2xvckZvcm1h
dCBjb2xvckZvcm1hdCkKIHsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9y
U3BhY2UoY29sb3JTcGFjZSksIGhvc3RXaW5kb3cpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQp
OwogfQogCi0KLUltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
c3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlKQotICAgIDogSW1hZ2VCdWZmZXJD
R0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UpCitJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENv
bG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZh
Y2UpCisgICAgOiBJbWFnZUJ1ZmZlckNHQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpCiAgICAgLCBtX3N1cmZh
Y2UoV1RGTW92ZShzdXJmYWNlKSkKIHsKICAgICBBU1NFUlQobV9zdXJmYWNlKTsKQEAgLTEzMCwx
MSArMTI5LDYgQEAgdW5zaWduZWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpieXRlc1Bl
clJvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3VyZmFjZS0+Ynl0ZXNQZXJSb3coKTsKIH0KIAot
Q29sb3JGb3JtYXQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpiYWNrZW5kQ29sb3JGb3Jt
YXQoKSBjb25zdAotewotICAgIHJldHVybiBDb2xvckZvcm1hdDo6QkdSQTsKLX0KLQogUmVmUHRy
PE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFn
ZShCYWNraW5nU3RvcmVDb3B5KSBjb25zdAogewogICAgIHJldHVybiBOYXRpdmVJbWFnZTo6Y3Jl
YXRlKG1fc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZC5oCmluZGV4IGY1MDllZWU2NWE3MjJlMTIwMWZmYzBmYjU3N2NmYjgyYmZlYzY5MGMuLjJh
YjE0Y2I5NzI1YWZmODUzYjcwZjY4YmFkYjc2MTA5Y2EzNjAxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zOSwxMSArMzksMTEgQEAgY2xhc3MgV0VCQ09SRV9FWFBP
UlQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIDogcHVibGljIEltYWdlQnVmZmVyQ0dCYWNr
ZW5kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpOwogCi0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93
Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9yRm9ybWF0KTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4g
Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9yRm9ybWF0KTsKICAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCi0gICAgSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNp
Y2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiYmKTsKKyAgICBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENvbG9yRm9ybWF0LCBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiYmKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJpZGU7CkBAIC02OSw3ICs2
OSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgUmV0YWluUHRyPENHQ29sb3JT
cGFjZVJlZj4gY29udGV4dENvbG9yU3BhY2UoY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAgICAg
dW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvckZvcm1hdCBi
YWNrZW5kQ29sb3JGb3JtYXQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJT1N1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBtdXRhYmxlIGJvb2wgbV9yZXF1aXJlc0RyYXdB
ZnRlclB1dEltYWdlRGF0YSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDg3YTY1YTFhMDUwYWFiZTYwZTUw
YzNhMWMyMzEzMzlkZWFmNmI4ODUuLjkxNWFlZWQ5MzkyNzc3OWRkNTI2NTFkNjkzOWQxZTdiNzQ4
NzRkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5oCkBAIC00OSwxNyArNDksMjEgQEAgY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNz
IEltYWdlQnVmZmVyOwogI2VuZGlmCiAKK2VudW0gY2xhc3MgQ29sb3JGb3JtYXQgOiB1aW50OF90
OworCiBjbGFzcyBJT1N1cmZhY2UgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIGVudW0gY2xhc3MgRm9ybWF0IHsKLSAgICAgICAgUkdCQSwKKyAgICAg
ICAgQkdSQSwKICAgICAgICAgWVVWNDIyLAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQogICAg
ICAgICBSR0IxMCwKICAgICAgICAgUkdCMTBBOCwKICNlbmRpZgogICAgIH07CisKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgSU9TdXJmYWNlOjpGb3JtYXQgZm9ybWF0Rm9yQ29sb3JGb3JtYXQo
V2ViQ29yZTo6Q29sb3JGb3JtYXQpOwogICAgIAogICAgIGNsYXNzIExvY2tlciB7CiAgICAgcHVi
bGljOgpAQCAtOTQsOCArOTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHVpbnQzMl90IG1fZmxhZ3M7
CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6
OlJHQkEpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJm
YWNlPiBjcmVhdGUoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVm
LCBGb3JtYXQgPSBGb3JtYXQ6OlJHQkEpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBG
b3JtYXQgPSBGb3JtYXQ6OkJHUkEpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwg
Q0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6OkJHUkEpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tU2VuZFJpZ2h0
KGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYmLCBDR0NvbG9yU3BhY2VSZWYpOwogICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tU3VyZmFjZShJT1N1cmZhY2VS
ZWYsIENHQ29sb3JTcGFjZVJlZik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRl
eCA5MWIxNDFhNTAzYmIyN2JkNDI3YWYzZjcyYTRkMjEzYWJiMzhmZGMzLi5iNzZhMGZlNWE3NDMw
ZGY5NjQ5ZjYwNDI2YzUyMmI1MWMzYzI1MWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0xOTEsNyArMTkxLDcgQEAg
SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBD
R0NvbG9yU3BhY2VSZWYgY29sb3JTcGEKICAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnM7CiAKICAg
ICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgRm9ybWF0OjpSR0JBOgorICAgIGNhc2UgRm9y
bWF0OjpCR1JBOgogICAgICAgICBvcHRpb25zID0gb3B0aW9uc0ZvcjMyQml0U3VyZmFjZShzaXpl
LCAnQkdSQScpOwogICAgICAgICBicmVhazsKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKQEAg
LTI3OSw3ICsyNzksNyBAQCBDR0NvbnRleHRSZWYgSU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNv
bnRleHQoY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKICAgICBzaXplX3QgYml0c1BlclBp
eGVsID0gMzI7CiAgICAgCiAgICAgc3dpdGNoIChmb3JtYXQoKSkgewotICAgIGNhc2UgRm9ybWF0
OjpSR0JBOgorICAgIGNhc2UgRm9ybWF0OjpCR1JBOgogICAgICAgICBicmVhazsKICNpZiBIQVZF
KElPU1VSRkFDRV9SR0IxMCkKICAgICBjYXNlIEZvcm1hdDo6UkdCMTA6CkBAIC0zNTYsNyArMzU2
LDcgQEAgSU9TdXJmYWNlOjpGb3JtYXQgSU9TdXJmYWNlOjpmb3JtYXQoKSBjb25zdAogewogICAg
IHVuc2lnbmVkIHBpeGVsRm9ybWF0ID0gSU9TdXJmYWNlR2V0UGl4ZWxGb3JtYXQobV9zdXJmYWNl
LmdldCgpKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgPT0gJ0JHUkEnKQotICAgICAgICByZXR1cm4g
Rm9ybWF0OjpSR0JBOworICAgICAgICByZXR1cm4gRm9ybWF0OjpCR1JBOwogCiAjaWYgSEFWRShJ
T1NVUkZBQ0VfUkdCMTApCiAgICAgaWYgKHBpeGVsRm9ybWF0ID09ICd3MzByJykKQEAgLTM3MCw3
ICszNzAsNyBAQCBJT1N1cmZhY2U6OkZvcm1hdCBJT1N1cmZhY2U6OmZvcm1hdCgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBGb3JtYXQ6OllVVjQyMjsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBGb3JtYXQ6OlJHQkE7CisgICAgcmV0dXJuIEZvcm1hdDo6QkdSQTsKIH0K
IAogSU9TdXJmYWNlSUQgSU9TdXJmYWNlOjpzdXJmYWNlSUQoKSBjb25zdApAQCAtNDU5LDExICs0
NTksMzYgQEAgdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkK
ICAgICBJT1N1cmZhY2VTZXRWYWx1ZShtX3N1cmZhY2UuZ2V0KCksIGtJT1N1cmZhY2VDb2xvclNw
YWNlLCBjb2xvclNwYWNlUHJvcGVydGllcy5nZXQoKSk7CiB9CiAKK0lPU3VyZmFjZTo6Rm9ybWF0
IElPU3VyZmFjZTo6Zm9ybWF0Rm9yQ29sb3JGb3JtYXQoQ29sb3JGb3JtYXQgZm9ybWF0KQorewor
ICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBDb2xvckZvcm1hdDo6UkdCQTg6CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJT1N1cmZh
Y2U6OkZvcm1hdDo6QkdSQTsKKyAgICBjYXNlIENvbG9yRm9ybWF0OjpCR1JBODoKKyAgICAgICAg
cmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOworI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEw
KQorICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwOgorICAgICAgICByZXR1cm4gSU9TdXJmYWNl
OjpGb3JtYXQ6OlJHQjEwOworICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwQTg6CisgICAgICAg
IHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTBBODsKKyNlbHNlCisgICAgY2FzZSBDb2xv
ckZvcm1hdDo6UkdCMTA6CisgICAgY2FzZSBDb2xvckZvcm1hdDo6UkdCMTBBODoKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIElPU3VyZmFjZTo6
Rm9ybWF0OjpCR1JBOworI2VuZGlmCisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOworfQorCiBzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSU9TdXJmYWNlOjpGb3JtYXQgZm9ybWF0
KQogewogICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgY2FzZSBJT1N1cmZhY2U6OkZvcm1hdDo6
UkdCQToKLSAgICAgICAgdHMgPDwgIlJHQkEiOworICAgIGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6
OkJHUkE6CisgICAgICAgIHRzIDw8ICJCR1JBIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
T1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOgogICAgICAgICB0cyA8PCAiWVVWNDIyIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCmluZGV4IGZmZDk0YjUyOWMwNmE3
ZTJjZGUwMGVjOTRiMzU1Yzg1ZGRhZmI0YzMuLjQ3ZjEyZDIzMGYzNWY0ZmFjYmI1MTdhYmQ3MTM4
ZTMyNzBmZjI4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIu
aApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUlt
YWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKIAogcHVibGljOgotICAgIHN0
YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93
KQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBo
b3N0V2luZG93LCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPEltYWdlQnVmZmVyPihz
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3csIHNpemUpOworICAg
ICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxJbWFn
ZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBj
b2xvckZvcm1hdCwgc2l6ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAppbmRleCAzZGJhYWY5ZjJlYzZiZDExMjdkNTFjMTE3ZTBjMWM3MDU2Y2QyNWQzLi4xYWI3YjBh
M2I2OWVkNjNmNmYwMmE2ZWQ5NTExMGU0ZjhjODk2ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNDQsOSAr
NDQsOSBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0
ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibAogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYg
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQgY29sb3JG
b3JtYXQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRl
bXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBudWxscHRyLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6
OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBudWxscHRyLCBjb2xvckZvcm1hdCwgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBSZW1vdGVJbWFn
ZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTU0LDcg
KzU0LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChyZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5pbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKG1fYmFja2VuZC0+
bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29s
dXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQobV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCks
IG1fYmFja2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBt
X2JhY2tlbmQtPmNvbG9yRm9ybWF0KCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAg
flJlbW90ZUltYWdlQnVmZmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBlYTU2NDMy
NjFlMjk5ZTEwZDM5MTUwNGI3NTA1MDk5OTYyNzQ0Y2E5Li4xYzdlZDhhZjA4MjU3ZTliMWYxZTkz
MjdmZDZjNTFlOTViOGU1YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC05Niw5ICs5
Niw5IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6YXBwbHlNZWRpYUl0ZW0oRGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSwgR3JhcGhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmltYWdl
QnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OkltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQobG9naWNhbFNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpJbWFnZUJ1
ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShoYW5kbGUpLCByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0
dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAtMTA2
LDE3ICsxMDYsMTcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlM
aXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW4KICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0
ZWQoZmx1c2hJZGVudGlmaWVyLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZl
cihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZv
cm1hdCBjb2xvckZvcm1hdCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJp
bmdNb2RlOjpBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQpOwogCiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKIAog
ICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAg
ICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShs
b2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgY29sb3JGb3JtYXQsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0
ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwg
KnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBpZiAoIWltYWdlQnVm
ZmVyKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
aW5kZXggYjM2YjlkZDYwNjRlZTVhNTE2M2M2OGU0MTk0NzYzMWZlMDkxMzEzMi4uNTg2MjVhMjRh
ZTk0YzVhMTBkOWRkM2U1ZWNjZWQwNWM2OTgwMmJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGFwcGx5TWVkaWFJdGVtKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKIAog
ICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCi0gICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRX
YXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6
Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZsdXNo
RGlzcGxheUxpc3RXYXNDb21taXR0ZWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQg
c2V0TmV4dEl0ZW1CdWZmZXJUb1JlYWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0byBi
ZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCB3YWtlVXBB
bmRBcHBseURpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciBpbml0aWFsSWRlbnRpZmllciwgdWludDY0X3QgaW5pdGlhbE9mZnNldCwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7
CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBv
dXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRh
UmVmZXJlbmNlJiYpPiYmKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgppbmRleCA2ZjJlMmFiZGY5MjZiY2Q0YTA0YzIzNTU4ZTY1Yjk5NmE1YTA2
MDgyLi42ODAzODkzNTAxNzM2YWNmZGU1YzUxZjZkMmE4MjUwYzI0ODNkZmFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBO
b3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUg
bG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CisgICAgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgV2FrZVVwQW5kQXBwbHlEaXNw
bGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaW5pdGlh
bElkZW50aWZpZXIsIHVpbnQ2NF90IGluaXRpYWxPZmZzZXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiAgICAgR2V0SW1h
Z2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1
dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFn
ZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIERpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGIy
MjY4OGUwZGJjMTkyZWI2N2Y3OGI1MTUyNGVjNTFlZDcxOWQzMzMuLmI5MjY1ZWFlYjhiYmM0Mjll
YWNmMTE5YWVlMTI5ZWU1N2Y1Nzc4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtNTk2LDkgKzU5Niw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCiAgICAgICAg
ICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6Q29sb3JGb3JtYXQnOiBbJzxXZWJDb3JlL0ltYWdlQnVmZmVyQmFj
a2VuZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsn
PFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50
T3JXb3JrZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwK
LSAgICAgICAgJ1dlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QnOiBbJyJEb2N1
bWVudEVkaXRpbmdDb250ZXh0LmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRp
b25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0RhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRy
YWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkRyYWdPcGVyYXRpb24nOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCkBA
IC02NzIsNiArNjcyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5oIiddLAogICAgICAgICAnV2Vi
S2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAg
ICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3JsZFNo
YXJlZC5oIiddLAorICAgICAgICAnV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVz
dCc6IFsnIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Rmlu
ZE9wdGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIiddLAogICAgICAgICAnV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplclN0YXRlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJL
aXQ6Okdlc3R1cmVUeXBlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KaW5kZXggY2VmNWE5ZWQ0ZTJkNGZlMDFiM2I3YzM2MDBiMjU1NzdjNjYwOGI0
My4uMDFkNjM0YTI1ZTEwNzY2MmM5YjEzYTBjOWVlOGIyZGM0ZTEwY2I3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMTY2LDcgKzE2Niw3IEBAIFdlYkNvcmU6OkludFNpemUg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJhY2tpbmdTdG9yZVNpemUoKSBjb25zdAogdW5zaWdu
ZWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVyUGl4ZWwoKSBjb25zdAogewogICAg
IHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpJT1N1
cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CisgICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdDo6QkdSQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6
OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKICAg
ICBjYXNlIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMDogcmV0dXJuIDQ7CkBAIC00
NzQsNyArNDc0LDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAogICAgICAgICByZXR1cm4gbV9p
c09wYXF1ZSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6IFdlYkNvcmU6OklP
U3VyZmFjZTo6Rm9ybWF0OjpSR0IxMEE4OwogI2VuZGlmCiAKLSAgICByZXR1cm4gV2ViQ29yZTo6
SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgcmV0dXJuIFdlYkNvcmU6OklPU3VyZmFjZTo6
Rm9ybWF0OjpCR1JBOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCmluZGV4IDdlMzQxNDM4YjBiZThiYzZmNzBlM2YxNDc2
N2FiYWUzMDU2MWQwNzQuLjg0NDg4N2JiYzNiMWIzYTQzMzg0MTJlOTQzYzlkNjkyY2IxYjYyYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcApAQCAtMTQ5LDcgKzE0
OSw2IEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNv
bnN0IEludFNpemUmIHNpemUsIENvbmZpZ3VyYXRpCiAKIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKLSAgICAvLyBDcmVhdGUgdGhlIHNoYXJlZCBt
ZW1vcnkuCiAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUu
bV9oYW5kbGUsIHByb3RlY3Rpb24pOwogICAgIGlmICghc2hhcmVkTWVtb3J5KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW0KaW5kZXggMWFlN2FlMDlmZjI0YWRjYzg3MTU4N2I5MTBjZDNhNjYyNTEyZjg0
Mi4uNGI3NjYyYTE2NDU5NGRlNmU0M2ZlNDQ0NDhlMDkyMzdkNzJiZWYzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTEwMDYsOSAr
MTAwNiw5IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNo
b3QKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUo
ZGV2aWNlU2NhbGUsIGRldmljZVNjYWxlLCAxKTsKIAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEw
KQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29y
ZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZv
cm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OnNjcmVlblN1
cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEw
IDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZWxzZQotICAgIFdlYkNvcmU6
OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3Jt
YXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNlbmRpZgogICAgIGF1dG8g
c3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50
U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hv
dEZvcm1hdCk7CiAgICAgaWYgKCFzdXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGMzYmVlZjVkMTQwYjcyNDM4ZGM3NTA1NjAz
YWU5YTRjZGUyYTExYjMuLjZiMGJmZmFiOWQ4MDlkOGQ5ZTQ3OWM0ZmM3OWM0MjYyNDhjODc2MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAK
QEAgLTQzLDggKzQzLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKIAot
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9z
dFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9h
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
LCBjb25zdCBIb3N0V2luZG93KiwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7CisgICAgQVNT
RVJUX1VOVVNFRChjb2xvckZvcm1hdCwgY29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4
KTsKKwogICAgIEludFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXpl
LCByZXNvbHV0aW9uU2NhbGUpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtNjEsMTAgKzYzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFjCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4oc2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShiaXRt
YXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29u
dGV4dCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSBoYW5kbGUpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNv
bG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQogewogICAgIGlmICgh
V1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTaGFyZWFibGVCaXRtYXA6OkhhbmRsZT4oaGFuZGxlKSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTc5LDExICs4MSwxMSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhYwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBXVEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkpOworICAgIHJldHVybiBt
YWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4obG9naWNhbFNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBX
VEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkpOwogfQogCi1JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZWZQdHI8U2hhcmVh
YmxlQml0bWFwPiYmIGJpdG1hcCwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJiBj
b250ZXh0KQotICAgIDogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIHBo
eXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29u
c3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQg
Y29sb3JGb3JtYXQsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYgYml0bWFwLCBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmIGNvbnRleHQpCisgICAgOiBQbGF0Zm9ybUltYWdlQnVm
ZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwgcGh5c2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNvbG9yRm9ybWF0KQogICAgICwgbV9iaXRtYXAoV1RGTW92ZShiaXRtYXApKQog
ICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCA5ZTI0YWI5OWViYzY3NWNlMjAxYTU5
Mzk3MjhjNjE5ZGJhNTk1ZWMzLi4yZmNkMTIxYTM3OGQ3YWQzNWFmOTRmZGU3MjQ5Mjk4MGVjM2U1
YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0lt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgK
QEAgLTQzLDEwICs0MywxMCBAQCBjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1JbWFnZUJ1ZmZlckJhYwogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQpOwog
cHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBjb25z
dCBXZWJDb3JlOjpIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9n
aWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyosIFdlYkNvcmU6OkNvbG9yRm9ybWF0KTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKIAotICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBw
aHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
UmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dD4mJik7CisgICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiwgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4mJik7CiAKICAgICBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7
CiAKQEAgLTYwLDggKzYwLDYgQEAgcHVibGljOgogICAgIHZvaWQgcHV0SW1hZ2VEYXRhKFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklt
YWdlRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVz
dEZvcm1hdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV2ViQ29yZTo6Q29sb3JGb3JtYXQg
YmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV2ViQ29yZTo6Q29s
b3JGb3JtYXQ6OkJHUkE7IH0KLQogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fYml0bWFw
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4
dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDAxZTUzZTE1YzRiMWQxZjUw
YWZkNzBiZGNjOWIxNjg0NDk2ZTVkNjMuLjQ2NmE4YjA3N2RiMjdkMjU5OWY4NDBlMjlmY2E5YjZi
ZWYxYjA3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC02NCwxMCArNjQsMTAg
QEAgcHVibGljOgogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVsZWFz
ZVJlbW90ZVJlc291cmNlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAK
LSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUgaGFuZGxlKQorICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OkNvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgaGFuZGxlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2JhY2tlbmQpOwotICAgICAgICBt
X2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBt
X2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShoYW5kbGUp
KTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1pdEZsdXNoRGlzcGxheUxpc3QoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggYjFjMDNiM2FkYTg3NDg0MmRjMTczMDNk
Y2E0MTk5MDkzYjA1MzhmYS4uYjZmOGFiMzgyODg2NmZiM2Q2MjM3YWU1YjA5MGE1NGUzY2Y2YmUz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtODksNyAr
ODksNyBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckZsdXNoRGlz
cGxheUxpc3RXYXNDb21taXR0ZWQoKQogICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5k
RGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkPihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3Nh
Z2VBcnJpdmVzKTsKIH0KIAotUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KQogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZl
cj4gaW1hZ2VCdWZmZXI7CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaQogICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZl
clByb3h5OjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCAqdGhpcyk7CiAKICAgICBpZiAo
aW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBpbWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KCkpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVy
aW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgaW1hZ2VC
dWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNhY2hlSW1h
Z2VCdWZmZXIoaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBpbWFn
ZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKICAgICB9CkBAIC0x
NDUsMTYgKzE0NSwxNiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZgogICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0K
IAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdh
c0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFj
a2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGltYWdlQnVmZmVyID0g
bV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgaWYgKGltYWdlQnVmZmVyLT5pc0FjY2VsZXJhdGVkKCkpCi0gICAgICAgIGRv
d25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5j
cmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dp
Y2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JG
b3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgZWxzZQotICAgICAgICBkb3duY2FzdDxVbmFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNr
ZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwg
V1RGTW92ZShoYW5kbGUpKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmll
ciBmbHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApp
bmRleCBhYmE5NjJlNDA4OTM4Y2YwZmIyZTM0ZDViYTA4MDNhMmUwY2E0NzI3Li5lZDA1MGI1NzVh
OWJjMWY0ZTg3MGU3MWMzNjRkNGQ5YmM1MzAzZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29y
ZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3Jt
YXQpOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlv
bkJ1ZmZlcklkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50
aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpA
QCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmV1c2FibGVIYW5kbGVz
KCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGltYWdlQnVm
ZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgaW1hZ2VCdWZmZXJC
YWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgZmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA3ZTM0MzM1NDc1OGYyNjIyZWU2YTM4YmQyNzBhYmI1NjVlNTEyNTAzLi5jMzMyOTEw
MTZhZTEyZTQ1NjRkOWZhYTU0YjY1YTdjNjc2MmQ0ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIEltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0
ZWQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JT
cGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQor
ICAgIEltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2lj
YWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkNvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDA2ZjM5OTEzZmM2N2I2ODIyZWMyZjFlODFhMzRi
MzgzNzE1OGUxZmYuLjJkZTczZmUzZDIwODRlNjE5NmFhYzc3MTQxYTBmYjUyY2UzZjk1Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5jcHAKQEAgLTM3LDEzICszNywxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3Jl
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9y
Rm9ybWF0IGNvbG9yRm9ybWF0KQogewogICAgIEludFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxh
dGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwogICAgIGlmIChiYWNrZW5kU2l6
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNl
ID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBjYWNoZWRDR0Nv
bG9yU3BhY2UoY29sb3JTcGFjZSkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3Bh
Y2UpLCBJT1N1cmZhY2U6OmZvcm1hdEZvckNvbG9yRm9ybWF0KGNvbG9yRm9ybWF0KSk7CiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTMsMTAgKzUzLDEw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dD
b250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkp
OwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBX
VEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRs
ZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0
U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9y
bWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQogewogICAgIGlmICghV1RGOjpo
b2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjcsNyArNjcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZgogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KGxvZ2lj
YWxTaXplLCBpbnRlcm5hbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92
ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAogSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4
IDk1NjE5NGI0ODQ4YzgyZDQ5OGJhNWJjOTBkMDNlNzY4NjkxMmZlMWQuLmY1NmI5NGJkZTliNTIz
YjQ5MmY0ZGYxZjkxYmRlMDNlNzQ4NDkyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzksOCArMzksOCBA
QCBjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgOiBwdWJsaWMgV2Vi
Q29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhYwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQpOwogcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBjb25zdCBXZWJDb3Jl
OjpIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
Y29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyosIFdlYkNvcmU6OkNvbG9yRm9ybWF0KTsKKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKIAogICAgIHVzaW5nIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IGZlZGMzZGIxMGFkNzczYmQ1NTM2MzI2ZmFiMWMxNzQwODVjYjE2ZDAuLmI0M2JhNzkwOTJl
YmZlMmMzN2MwODgxNjlhYWZiM2E4ZmZiZTQ4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC05MTAsMTIgKzkxMCwxMiBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIFdlYkNocm9t
ZUNsaWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KAogICAgIHJldHVybiAq
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUs
IFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkgY29uc3QKK1JlZlB0
cjxJbWFnZUJ1ZmZlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVy
cG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpIGNvbnN0CiB7CiAgICAgaWYgKCFXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IocHVycG9zZSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgcmV0dXJuIGVuc3VyZVJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDE3MWZhNjMzM2RjZTMy
M2MwMGM3OGNlYmRlMjczZjAwZTZjOTBmMDIuLmM1OTM0N2U2ZmYxM2U3NTEzMzhlNTZmMzJmNWJj
M2IyNjhiODIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI0NCw3ICsyNDQsNyBAQCBwcml2
YXRlOgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSYgZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkgY29uc3Q7Ci0gICAg
UmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBXZWJDb3JlOjpSZW5kZXJp
bmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpIGNv
bnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCkgY29uc3QgZmluYWw7CiAjZW5kaWYK
IAogICAgIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJz
KCkgY29uc3QgZmluYWwK
</data>
<flag name="commit-queue"
          id="430542"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413855</attachid>
            <date>2020-11-11 12:30:41 -0800</date>
            <delta_ts>2020-11-11 14:44:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111123040.patch</filename>
            <type>text/plain</type>
            <size>82522</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1MjI4ZGZjNGJjNmIy
NTUzOTYzODVjNjQwZTRiNWE3YmM3OWVkYy4uODlkMmJjODlhYzlkMGNkMTkzY2NjZTc4MjZlZWM4
ODlmNWI1ZWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0czsgd2lsbCBiZSBjb3ZlcmVkIGJ5IGFsbCBkZWVwIGNvbG9yIHRlc3RzIHdoZW4g
R1BVIFByb2Nlc3MgRE9NIHJlbmRlcmluZyBsYW5kcy4KKworICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIHBhc3MgYSBDb2xvckZvcm1hdCBpbnRvIHRoZSBJbWFnZUJ1ZmZlciBjb25zdHJ1Y3Rv
ciwKKyAgICAgICAgYW5kIGFkZCBSR0IxMCBhbmQgUkdCMTBBOCBDb2xvckZvcm1hdHMuCisKKyAg
ICAgICAgV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0L3B1dEltYWdlRGF0YSBmb3IgZGVl
cCBjb2xvciBidWZmZXJzLCBiZWNhdXNlCisgICAgICAgIHRoYXQgaXMgbm90IG5lZWRlZCBmb3Ig
SW1hZ2VCdWZmZXJzIGJhY2tpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgKHRoZSBtb3RpdmF0
aW9uCisgICAgICAgIGZvciB0aGlzKSwgYnV0IGlmIHdlIGV2ZW50dWFsbHkgd2FudGVkIHRvIG1v
cmUgZ2VuZXJhbGx5IHN1cHBvcnQgZGVlcCBjb2xvciBJbWFnZUJ1ZmZlcnMsCisgICAgICAgIHRo
YXQncyBtb3N0IG9mIHRoZSByZW1haW5pbmcgd29yay4KKworICAgICAgICBBbHNvLCBzdGFuZGFy
ZGl6ZSBvbiBCR1JBOCBhcyB0aGUgZGVmYXVsdCBDb2xvckZvcm1hdCBmb3IgYnVmZmVycy4KKyAg
ICAgICAgaU9TLCBDYWlybywgSU9TdXJmYWNlLCBhbmQgU2hhcmVhYmxlQml0bWFwIGFsbCBhbHJl
YWR5IHVzZSBCR1JBOCBieSBkZWZhdWx0OworICAgICAgICBvbmx5IEltYWdlQnVmZmVyIHdpdGgg
Q0dCaXRtYXAgYmFja2luZyBzdG9yZSBvbiBtYWNPUyB1c2VkIFJHQkE4LiBTbywKKyAgICAgICAg
Zm9yIHNhbml0eSdzIHNha2UgKGFuZCBzbyB0aGF0IGl0J3MgZWFzeSB0byBoYXZlIGEgZGVmYXVs
dCBwYXNzZWQgaW50bworICAgICAgICB0aGUgY29uc3RydWN0b3IpLCBzdGFuZGFyZGl6ZSBvbiBC
R1JBOC4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0hv
c3RXaW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVm
ZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgIFBsdW1iaW5nIENvbG9yRm9ybWF0IGFyb3VuZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRvQkdSQURhdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURh
dGEpOgorICAgICAgICBBc3NlcnQgdGhhdCBjb3B5SW1hZ2VQaXhlbHMgaXMgYWx3YXlzIG9wZXJh
dGluZyBvbiBhIDgtYml0IGJ1ZmZlciwKKyAgICAgICAgc2luY2UgdGhhdCdzIGFsbCBpdCBzdXBw
b3J0cyBmb3Igbm93LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJC
YWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvbG9yRm9y
bWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Ynl0ZXNQ
ZXJSb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpiYWNr
ZW5kQ29sb3JGb3JtYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZmVyQkdS
QVBpeGVsQnVmZmVyVG9JT1N1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Qml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlckNHQmFja2VuZDo6dG9DRkRhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Ug
Y29uc3QpOgorICAgICAgICBBZG9wdCBDb2xvckZvcm1hdCBhbmQgc3RhbmRhcmRpemUgb24gQkdS
QTguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRDb2xvckZvcm1hdCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpmb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpm
b3JtYXRGb3JDb2xvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyOjpjcmVh
dGUpOgorCiAyMDIwLTExLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0dQVVByb2Nlc3NdIFNlYW1sZXNzbHkgcmVzdW1lIFdlYkF1ZGlvIHBsYXliYWNrIGlm
IHRoZSBHUFUgUHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExMmRkM2E1OGNhODFkYjBiNjBj
OGE4ZjAyOGZhZTk0MmRhMWZhNGMuLmM0ZGQxNjRhNjdiMGIyMDZjYTBjYmU2YTIzZTM5MzkwYTA1
NTM1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEtMTEgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG1pbmltYWwgc3VwcG9y
dCBmb3IgZGVlcCBjb2xvciBJT1N1cmZhY2UgYmFja2luZyBzdG9yZSB0byBJbWFnZUJ1ZmZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRlc1BlclBpeGVsIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQg
Y29uc3QpOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VWaWV3U25h
cHNob3RdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVm
ZmVyUHJveHk6OmNyZWF0ZUJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdh
c0NyZWF0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTExLTEx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVByb2Nlc3Nd
IFNlYW1sZXNzbHkgcmVzdW1lIFdlYkF1ZGlvIHBsYXliYWNrIGlmIHRoZSBHUFUgUHJvY2VzcyBj
cmFzaGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggOTk3ZjJhZjdmOTc1NjkwYzc3MzgxNjQy
OTIxNWI5ZTUxYmFjNTlmMS4uMTYyMzAwMzRkMzNmOTgyN2EzNjJjYmQ4NTI5Y2QxMDZmYTAyNWM5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNTIzLDkgKzUyMyw5IEBAIHZvaWQgQ2hyb21l
OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92
ZXMpCiAgICAgbV9jbGllbnQuc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGhpZGRlblVu
dGlsTW91c2VNb3Zlcyk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2hyb21lOjpjcmVhdGVJ
bWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkgY29uc3QKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2hyb21lOjpj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmlu
Z01vZGUsIHB1cnBvc2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgcmV0dXJu
IG1fY2xpZW50LmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBvc2Us
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogfQogCiBQbGF0Zm9y
bURpc3BsYXlJRCBDaHJvbWU6OmRpc3BsYXlJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRl
eCBjZjc3N2UwY2NkOTlhN2NiNTkxMzhlYWZiNjExZTRmMWMwMjZmZjljLi44MmYzYWQzODVlNDQz
ZDE3NTFjZWM1YjFlYTkzYTI4MzY3ZjY3MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTg0LDcg
Kzg0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwg
UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xv
ckZvcm1hdCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0
Zm9ybURpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDdhZjE3OGU5ODY2OGRhOWM3MTQ0NDQ1MTMyNjA2OTc0ODdk
ODM1YzguLjA1MjZlMzUxMjI3NzQwZTExYzhmNTBjOTMxNGIyODJjMjMwYTRiOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAK
LSAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQsIENvbG9y
U3BhY2UpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9k
ZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQsIENvbG9yU3BhY2UsIENvbG9yRm9ybWF0KSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdyYXBo
aWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KICAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCmluZGV4IDg5NjVhMjUzZTE4N2VlOTc2YTRlNjk0ODhk
NGY2ODU2OGY1YmM3MjEuLjFkOWM0YTM2OTViYzE1OTc3OWQyY2M2ZmUwZTI1MDJmZjJjODUwMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3Vyc29yOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiAKK2Vu
dW0gY2xhc3MgQ29sb3JGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBDb2xvclNwYWNlIDog
dWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiBlbnVtIGNsYXNzIFJl
bmRlcmluZ1B1cnBvc2UgOiB1aW50OF90OwpAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBJbnRQb2ludCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQ
b2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2li
aWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgUmVm
UHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBSZW5k
ZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVy
cG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCkgY29u
c3QgPSAwOwogCiAgICAgLy8gTWV0aG9kIGZvciByZXRyaWV2aW5nIHRoZSBuYXRpdmUgY2xpZW50
IG9mIHRoZSBwYWdlLgogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCA4NTQwMjE1ZjYyMzdjYzBhM2Q2
MjVlMzJmYTk2N2RmOWE2MmVjMmFmLi5hNmI4MzM4MDc2MzA0ODBmYTFjNTdmMGRlM2JmZGEyOTMw
YjcxZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25j
cmV0ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29uY3JldGVJbWFnZUJ1ZmZlci5oCkBAIC0zNCw5ICszNCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEJhY2tlbmRUeXBlPgogY2xhc3MgQ29uY3JldGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBJbWFnZUJ1
ZmZlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW1hZ2VCdWZmZXJUeXBlID0g
Q29uY3JldGVJbWFnZUJ1ZmZlciwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIHN0YXRpYyBS
ZWZQdHI8SW1hZ2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdywgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIHN0YXRpYyBSZWZQ
dHI8SW1hZ2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdywgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIEFyZ3VtZW50cyYmLi4uIGFyZ3Vt
ZW50cykKICAgICB7Ci0gICAgICAgIGF1dG8gYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUo
c2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAg
YXV0byBiYWNrZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGhvc3RXaW5kb3csIGNvbG9yRm9ybWF0KTsKICAgICAgICAgaWYgKCFiYWNr
ZW5kKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSW1hZ2VCdWZmZXJUeXBlKFdURk1vdmUoYmFja2VuZCksIHN0ZDo6Zm9yd2FyZDxBcmd1
bWVudHM+KGFyZ3VtZW50cykuLi4pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCA4ZjYyZGM2YTM0ODNjODQzZDA1YmVmNjczNGRj
NTRhMTNiNGIwZTVmLi4xNWE5ZTFiYWIwYWMyNDMwYmQxNGY3MTlmZTk5ODk4ZDVmNDdkMjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3Bw
CkBAIC0zOCwzNSArMzgsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGZs
b2F0IE1heENsYW1wZWRMZW5ndGggPSA0MDk2Owogc3RhdGljIGNvbnN0IGZsb2F0IE1heENsYW1w
ZWRBcmVhID0gTWF4Q2xhbXBlZExlbmd0aCAqIE1heENsYW1wZWRMZW5ndGg7CiAKLVJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Qgc2hvdWxkVXNl
RGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cp
CitSZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0
IHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBo
b3N0V2luZG93LCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyOwogICAgIGlmIChob3N0V2luZG93KQotICAgICAgICBpbWFnZUJ1
ZmZlciA9IGhvc3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUs
IHB1cnBvc2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgICAgIGltYWdlQnVm
ZmVyID0gaG9zdFdpbmRvdy0+Y3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwg
cHVycG9zZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCk7CiAKICAg
ICBpZiAoIWltYWdlQnVmZmVyICYmIHNob3VsZFVzZURpc3BsYXlMaXN0ID09IFNob3VsZFVzZURp
c3BsYXlMaXN0OjpZZXMpIHsKICAgICAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0
QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgaG9zdFdpbmRvdyk7CisgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlM
aXN0QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQpOwogICAgICAgICAKICAgICAgICAg
aWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RV
bmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5
TGlzdFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQpOwogICAgIH0KIAogICAgIGlm
ICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RX
aW5kb3cpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBj
b2xvckZvcm1hdCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CiAKLVJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitSZWZQdHI8SW1hZ2VC
dWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBDb2xvckZvcm1hdCBjb2xv
ckZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyOwogICAgIAog
ICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAg
ICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICBpbWFnZUJ1
ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3csIGNvbG9yRm9ybWF0KTsKICAgICAKICAgICBpZiAo
IWltYWdlQnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRv
dyk7CisgICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVh
dGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBjb2xvckZv
cm1hdCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBjZjQ3YzE5ZjBjZTE3MDRmMDI1
MTk3MjBiMzkyYTAwMjVlOWUxNGQ2Li4zMDZlNjQ4Nzk1NDA3ZjllN2UwY2EzNzNhNmI2NDVjYmM5
NmM2YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgRHJhd2luZ0NvbnRleHQ7CiBjbGFzcyBJbWFn
ZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEltYWdlQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAg
Ly8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5n
UHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3Bh
Y2U6OlNSR0IsIGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0cik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJl
bmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xv
clNwYWNlOjpTUkdCLCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUm
LCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0Is
IGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0ciwgQ29sb3JGb3JtYXQgPSBDb2xvckZvcm1hdDo6
RGVmYXVsdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4g
Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBjb25zdCBIb3N0V2luZG93
KiA9IG51bGxwdHIsIENvbG9yRm9ybWF0ID0gQ29sb3JGb3JtYXQ6OkRlZmF1bHQpOwogICAgIHN0
YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBH
cmFwaGljc0NvbnRleHQmKTsKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0
aWJsZSB3aXRoIHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29sdXRpb24gZm9yIGRyYXdp
bmcgaW50byB0aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5j
cHAKaW5kZXggZjFmMzY3YzA2YTJhMGM5ZDk5MTNjOWM5MjM2YzE5NzM2ZWRlNTlhMi4uMTA2OTU1
MjU4NmExMDYyZDgwMjk1OWYwZjA4MWYzNjQyMjBiMDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC0z
MSwxMSArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckJhY2tl
bmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNv
bG9yRm9ybWF0KQogICAgIDogbV9sb2dpY2FsU2l6ZShsb2dpY2FsU2l6ZSkKICAgICAsIG1fYmFj
a2VuZFNpemUoYmFja2VuZFNpemUpCiAgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9u
U2NhbGUpCiAgICAgLCBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKKyAgICAsIG1fY29sb3JGb3Jt
YXQoY29sb3JGb3JtYXQpCiB7CiB9CiAKQEAgLTEwNSw4ICsxMDYsOCBAQCBWZWN0b3I8dWludDhf
dD4gSW1hZ2VCdWZmZXJCYWNrZW5kOjp0b0JHUkFEYXRhKHZvaWQqIGRhdGEpIGNvbnN0CiAgICAg
dWludDhfdCogc3JjUm93cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEpOwogCiAg
ICAgY29weUltYWdlUGl4ZWxzKAotICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVt
dWx0aXBsaWVkLCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3Ms
Ci0gICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgQ29sb3JG
b3JtYXQ6OkJHUkEsIGRlc3RCeXRlc1BlclJvdywgcmVzdWx0LmRhdGEoKSwgbV9sb2dpY2FsU2l6
ZSk7CisgICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIGNvbG9y
Rm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAorICAgICAgICBBbHBoYVByZW11bHRp
cGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIENvbG9yRm9ybWF0OjpCR1JBOCwgZGVzdEJ5dGVz
UGVyUm93LCByZXN1bHQuZGF0YSgpLCBtX2xvZ2ljYWxTaXplKTsKIAogICAgIHJldHVybiByZXN1
bHQ7CiB9CkBAIC0yMDksNiArMjEwLDEwIEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5
SW1hZ2VQaXhlbHMoCiAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwg
Q29sb3JGb3JtYXQgc3JjQ29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50
OF90KiBzcmNSb3dzLAogICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0
LCBDb2xvckZvcm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywg
dWludDhfdCogZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CisgICAgLy8g
V2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEg
d2l0aCBkZWVwIGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY0NvbG9yRm9ybWF0ID09IENv
bG9yRm9ybWF0OjpSR0JBOCB8fCBzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgp
OworICAgIEFTU0VSVChkZXN0Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4IHx8IGRl
c3RDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworCiAgICAgaWYgKHNyY0FscGhh
Rm9ybWF0ID09IGRlc3RBbHBoYUZvcm1hdCkgewogICAgICAgICBpZiAoc3JjQWxwaGFGb3JtYXQg
PT0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkKICAgICAgICAgICAgIGNv
cHlJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxp
ZWQ+KHNyY0NvbG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9yRm9y
bWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKQEAgLTI1Miw4ICsyNTcsOCBA
QCBSZWZQdHI8SW1hZ2VEYXRhPiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YShBbHBo
YVByZW11bHRpcGxpY2F0aW9uIG91dHB1dAogICAgIHVpbnQ4X3QqIHNyY1Jvd3MgPSByZWludGVy
cHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhKSArIHNyY1JlY3RDbGlwcGVkLnkoKSAqIHNyY0J5dGVz
UGVyUm93ICsgc3JjUmVjdENsaXBwZWQueCgpICogNDsKIAogICAgIGNvcHlJbWFnZVBpeGVscygK
LSAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgYmFja2VuZENv
bG9yRm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBvdXRwdXRGb3Jt
YXQsIENvbG9yRm9ybWF0OjpSR0JBLCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBkZXN0UmVj
dC5zaXplKCkpOworICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVk
LCBjb2xvckZvcm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKKyAgICAgICAgb3V0cHV0
Rm9ybWF0LCBDb2xvckZvcm1hdDo6UkdCQTgsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRl
c3RSZWN0LnNpemUoKSk7CiAKICAgICByZXR1cm4gaW1hZ2VEYXRhOwogfQpAQCAtMjgzLDggKzI4
OCw4IEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QKICAgICB1aW50OF90KiBzcmNSb3dzID0gaW1h
Z2VEYXRhLmRhdGEoKS0+ZGF0YSgpICsgc3JjUmVjdENsaXBwZWQueSgpICogc3JjQnl0ZXNQZXJS
b3cgKyBzcmNSZWN0Q2xpcHBlZC54KCkgKiA0OwogCiAgICAgY29weUltYWdlUGl4ZWxzKAotICAg
ICAgICBpbnB1dEZvcm1hdCwgQ29sb3JGb3JtYXQ6OlJHQkEsIHNyY0J5dGVzUGVyUm93LCBzcmNS
b3dzLAotICAgICAgICBkZXN0Rm9ybWF0LCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgZGVzdEJ5dGVz
UGVyUm93LCBkZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgaW5wdXRGb3JtYXQs
IENvbG9yRm9ybWF0OjpSR0JBOCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCisgICAgICAgIGRl
c3RGb3JtYXQsIGNvbG9yRm9ybWF0KCksIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RS
ZWN0LnNpemUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXgg
YWE5YjM0MWEwNTczZjJhZDRlOWVkMzA1N2MwNDIxZTk1OTFhZTVjMS4uMTc0NzIzOGQ0OGQ0MGU5
NDRiYjQ1YTA3NzJkZTMzMzczNzE1MzlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTU1LDggKzU1LDEyIEBA
IGVudW0gY2xhc3MgUHJlc2VydmVSZXNvbHV0aW9uIDogdWludDhfdCB7CiB9OwogCiBlbnVtIGNs
YXNzIENvbG9yRm9ybWF0IDogdWludDhfdCB7Ci0gICAgUkdCQSwKLSAgICBCR1JBCisgICAgUkdC
QTgsCisgICAgQkdSQTgsCisgICAgUkdCMTAsCisgICAgUkdCMTBBOCwKKworICAgIERlZmF1bHQg
PSBCR1JBOCwKIH07CiAKIGNsYXNzIEltYWdlQnVmZmVyQmFja2VuZCB7CkBAIC03Miw2ICs3Niw3
IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIGJhY2tlbmRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNrZW5kU2l6ZTsgfQogICAgIGZsb2F0IHJlc29sdXRpb25TY2FsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb2x1dGlvblNjYWxlOyB9CiAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQoKSBj
b25zdCB7IHJldHVybiBtX2NvbG9yRm9ybWF0OyB9CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5z
Zm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7IH0K
ICAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgeyByZXR1cm4gNCAqIG1fYmFj
a2VuZFNpemUuYXJlYSgpLnVuc2FmZUdldCgpOyB9CkBAIC0xMDQsMTAgKzEwOSw5IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNBY2NlbGVyYXRlZCA9IGZhbHNlOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlQnVm
ZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBi
YWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1h
dCk7CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3QgeyByZXR1cm4g
NCAqIG1fYmFja2VuZFNpemUud2lkdGgoKTsgfQotICAgIHZpcnR1YWwgQ29sb3JGb3JtYXQgYmFj
a2VuZENvbG9yRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gQ29sb3JGb3JtYXQ6OlJHQkE7IH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgVCB0b0JhY2tlbmRDb29yZGluYXRlcyhUIHQp
IGNvbnN0CkBAIC0xMzQsNiArMTM4LDIxIEBAIHByb3RlY3RlZDoKICAgICBJbnRTaXplIG1fYmFj
a2VuZFNpemU7CiAgICAgZmxvYXQgbV9yZXNvbHV0aW9uU2NhbGU7CiAgICAgQ29sb3JTcGFjZSBt
X2NvbG9yU3BhY2U7CisgICAgQ29sb3JGb3JtYXQgbV9jb2xvckZvcm1hdDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JGb3JtYXQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0LAorICAgIFdlYkNvcmU6OkNvbG9y
Rm9ybWF0OjpSR0JBOCwKKyAgICBXZWJDb3JlOjpDb2xvckZvcm1hdDo6QkdSQTgsCisgICAgV2Vi
Q29yZTo6Q29sb3JGb3JtYXQ6OlJHQjEwLAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0OjpSR0Ix
MEE4CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IDEw
Y2IwYTAzNjFlMDk4NDhjNDdhZGRkMWY1YzZlMzc0MDRhNjRhYjAuLmE2MzUxNDdkMGJjYTNiNzZj
ZTEyZGY3NjQ4MjQ4YTNkYzgwYmFmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
c3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhl
bEJ1ZmZlclRvSU9TdXJmYWNlKENWUGkKICAgICB9CiAKICAgICBJbnRTaXplIHNpemUgeyBzdGF0
aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlcikpLCBzdGF0aWNf
Y2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpKSB9OwotICAgIGF1
dG8gaW9TdXJmYWNlID0gIElPU3VyZmFjZTo6Y3JlYXRlKHNpemUsIHNSR0JDb2xvclNwYWNlUmVm
KCksIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBKTsKKyAgICBhdXRvIGlvU3VyZmFjZSA9ICBJT1N1
cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBJT1N1cmZhY2U6OkZvcm1h
dDo6QkdSQSk7CiAKICAgICBJT1N1cmZhY2U6OkxvY2tlciBsb2NrKCppb1N1cmZhY2UpOwogICAg
IHZJbWFnZV9CdWZmZXIgc3JjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXgg
MjNiOTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcxNmRlZjNhMS4uMDNlYTE2NjIwMTc2YzMx
NTkwMzU0NGY2OTliNDFhNTQyYTJmNmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2Vu
ZC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB1c2luZyBJbWFn
ZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZDsKIAotICAgIENvbG9yRm9ybWF0IGJh
Y2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbG9yRm9ybWF0OjpC
R1JBOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25z
dCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mKSB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5k
LmNwcAppbmRleCA4YzVhYmY3YzkzZTc5NzEzZjcxM2E2ZGJkZTliYzAxN2YyMWY4OWJjLi4xMThi
ZDcxYmFiYmQzMDUxZTVjMGQ4NGZjYTE0ZTAyZTI4MmVmMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tl
bmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBSZWZQdHI8SW1hZ2U+IGNyZWF0ZUJpdG1h
cEltYWdlQWZ0ZXJTY2FsaW5nSWZOZWVkZWQoUmVmUHRyPE5hdGl2ZUltYWdlPiYmCiAgICAgaWYg
KHJlc29sdXRpb25TY2FsZSA9PSAxIHx8IHByZXNlcnZlUmVzb2x1dGlvbiA9PSBQcmVzZXJ2ZVJl
c29sdXRpb246OlllcykKICAgICAgICAgaW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKGNyZWF0
ZUNyb3BwZWRJbWFnZUlmTmVjZXNzYXJ5KGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGJh
Y2tlbmRTaXplKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0Yo
Q0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXpl
LmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYo
KSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCks
IGxvZ2ljYWxTaXplLmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNv
bG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1h
cEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29udGV4
dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAgICAgIENHQ29udGV4dENsaXBUb1JlY3Qo
Y29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgbG9naWNhbFNpemUp
KTsKICAgICAgICAgRmxvYXRTaXplIGltYWdlU2l6ZUluVXNlclNwYWNlID0gbG9naWNhbFNpemU7
CkBAIC0xNjIsNyArMTYyLDcgQEAgUmV0YWluUHRyPENGRGF0YVJlZj4gSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQ6OnRvQ0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGkKICAgICAgICAgaW1h
Z2UgPSBjcmVhdGVDcm9wcGVkSW1hZ2VJZk5lY2Vzc2FyeShpbWFnZS5nZXQoKSwgYmFja2VuZFNp
emUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9u
dENvcHlCYWNraW5nU3RvcmUpLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJhY2tlbmRTaXplKCkud2lkdGgo
KSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tlbmRTaXplKCkud2lkdGgoKSwg
c1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7Cisg
ICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJh
Y2tlbmRTaXplKCkud2lkdGgoKSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tl
bmRTaXplKCkud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11
bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0Nv
bnRleHRTZXRCbGVuZE1vZGUoY29udGV4dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAg
ICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBi
YWNrZW5kU2l6ZSgpLndpZHRoKCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCkpKTsKICAgICAgICAg
Q0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UoMCwgMCwgYmFja2Vu
ZFNpemUoKS53aWR0aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwpA
QCAtMjE5LDEyICsyMTksMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlJbWFnZVBpeGVsc0Fj
Y2VsZXJhdGVkKAogICAgIH0KIAogICAgIGlmIChkZXN0QWxwaGFGb3JtYXQgPT0gQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkKSB7Ci0gICAgICAgIGlmIChzcmNDb2xvckZv
cm1hdCA9PSBDb2xvckZvcm1hdDo6UkdCQSkKKyAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09
IENvbG9yRm9ybWF0OjpSR0JBOCkKICAgICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlEYXRh
X1JHQkE4ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlEYXRhX0JHUkE4ODg4KCZzcmMsICZkZXN0LCBr
dkltYWdlTm9GbGFncyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0
ID09IENvbG9yRm9ybWF0OjpSR0JBKQorICAgICAgICBpZiAoc3JjQ29sb3JGb3JtYXQgPT0gQ29s
b3JGb3JtYXQ6OlJHQkE4KQogICAgICAgICAgICAgdkltYWdlUHJlbXVsdGlwbHlEYXRhX1JHQkE4
ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHZJbWFnZVByZW11bHRpcGx5RGF0YV9CR1JBODg4OCgmc3JjLCAmZGVzdCwga3ZJbWFnZU5v
RmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCmluZGV4IDZjMDMzYzYz
ODM4YWZlMWEwZjYyN2Q2YjQ0YTE1NDZmM2ZlZWU3MzAuLmMwMzUxMTg5YTkwYWZlNzA2MWJjYjI3
M2NhOTBiYmE0MGI0MjhmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAK
QEAgLTM3LDE2ICszNywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotY29uc3RleHByIGNvbnN0IENHQml0bWFwSW5mbyBEZWZhdWx0Qml0bWFw
SW5mbyA9IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3Jk
ZXIzMkhvc3Q7Ci0jZWxzZQotY29uc3RleHByIGNvbnN0IENHQml0bWFwSW5mbyBEZWZhdWx0Qml0
bWFwSW5mbyA9IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdDsKLSNlbmRpZgotCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQpOwogCi1z
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JT
cGFjZSwgY29uc3QgSG9zdFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9y
Rm9ybWF0IGNvbG9yRm9ybWF0KQogeworICAgIEFTU0VSVF9VTlVTRUQoY29sb3JGb3JtYXQsIGNv
bG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpEZWZhdWx0KTsKKwogICAgIEludFNpemUgYmFja2Vu
ZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwogICAg
IGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NjIsNyArNTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+
IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoYwogICAgIHNpemVfdCBudW1CeXRl
cyA9IGJhY2tlbmRTaXplLmhlaWdodCgpICogYnl0ZXNQZXJSb3c7CiAgICAgdmVyaWZ5SW1hZ2VC
dWZmZXJJc0JpZ0Vub3VnaChkYXRhLCBudW1CeXRlcyk7CiAKLSAgICBhdXRvIGNnQ29udGV4dCA9
IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGJhY2tlbmRTaXplLndpZHRoKCks
IGJhY2tlbmRTaXplLmhlaWdodCgpLCA4LCBieXRlc1BlclJvdywgY2dDb2xvclNwYWNlLCBEZWZh
dWx0Qml0bWFwSW5mbykpOworICAgIGF1dG8gY2dDb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENv
bnRleHRDcmVhdGUoZGF0YSwgYmFja2VuZFNpemUud2lkdGgoKSwgYmFja2VuZFNpemUuaGVpZ2h0
KCksIDgsIGJ5dGVzUGVyUm93LCBjZ0NvbG9yU3BhY2UsIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBs
aWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKICAgICBpZiAoIWNnQ29udGV4
dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTc0LDI0ICs3MCwyNCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kOjpjcmVhdGUoYwogCiAgICAgYXV0byBkYXRhUHJvdmlkZXIgPSBhZG9wdENGKENHRGF0
YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgZGF0YSwgbnVtQnl0ZXMsIHJlbGVhc2VJbWFnZURh
dGEpKTsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChzaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBkYXRhLCBXVEZNb3ZlKGRhdGFQcm92aWRlciks
IFdURk1vdmUoY29udGV4dCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kPihuZXcgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoc2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGRh
dGEsIFdURk1vdmUoZGF0YVByb3ZpZGVyKSwgV1RGTW92ZShjb250ZXh0KSkpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGF1dG8gY2dDb2xvclNwYWNlID0gY29udGV4dENv
bG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQo
KSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6
Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQoKSwgbnVs
bHB0ciwgQ29sb3JGb3JtYXQ6OkRlZmF1bHQpOwogICAgIAotICAgIHJldHVybiBJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxw
dHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUs
IDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIsIENvbG9yRm9ybWF0OjpEZWZhdWx0KTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhv
c3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdp
bmRvdyogaG9zdFdpbmRvdywgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7Ci0gICAgcmV0dXJu
IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIGhvc3RXaW5kb3cp
OworICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2Up
LCBob3N0V2luZG93LCBjb2xvckZvcm1hdCk7CiB9CiAKLUltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRl
clJlZj4mJiBkYXRhUHJvdmlkZXIsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYg
Y29udGV4dCkKLSAgICA6IEltYWdlQnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5k
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIHZvaWQqIGRh
dGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4mJiBkYXRhUHJvdmlkZXIsIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29udGV4dCkKKyAgICA6IEltYWdlQnVmZmVyQ0dC
YWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBjb2xvckZvcm1hdCkKICAgICAsIG1fZGF0YShkYXRhKQogICAgICwgbV9kYXRhUHJvdmlk
ZXIoV1RGTW92ZShkYXRhUHJvdmlkZXIpKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4
dCkpCkBAIC0xMTYsNyArMTEyLDcgQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkKICAgICBjYXNl
IERvbnRDb3B5QmFja2luZ1N0b3JlOgogICAgICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0
ZShhZG9wdENGKENHSW1hZ2VDcmVhdGUoCiAgICAgICAgICAgICBtX2JhY2tlbmRTaXplLndpZHRo
KCksIG1fYmFja2VuZFNpemUuaGVpZ2h0KCksIDgsIDMyLCBieXRlc1BlclJvdygpLAotICAgICAg
ICAgICAgY2FjaGVkQ0dDb2xvclNwYWNlKG1fY29sb3JTcGFjZSksIERlZmF1bHRCaXRtYXBJbmZv
LCBtX2RhdGFQcm92aWRlci5nZXQoKSwKKyAgICAgICAgICAgIGNhY2hlZENHQ29sb3JTcGFjZSht
X2NvbG9yU3BhY2UpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFw
Qnl0ZU9yZGVyMzJIb3N0LCBtX2RhdGFQcm92aWRlci5nZXQoKSwKICAgICAgICAgICAgIDAsIHRy
dWUsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQuaAppbmRleCA3ZDIzM2QyMjI3ODVhZDNkZGYwNjNjNGE4NjQ4ZmRmZmFj
ZTdjZjk5Li4yMDI0YWVhZDk4N2I5NmQ5Y2M2YjMxYjJjMzE5YWIzZTRiZTA2ZDZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKQEAgLTM2LDggKzM2LDggQEAgY2xhc3MgSW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQgOiBwdWJsaWMgSW1hZ2VCdWZmZXJDR0JhY2tlbmQgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQpOwogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
PiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlLCBDR0NvbG9yU3BhY2VSZWYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBIb3N0V2lu
ZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmLCBjb25zdCBIb3N0V2luZG93KiwgQ29sb3JGb3JtYXQp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+
IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIGNvbnN0IEhvc3RXaW5kb3cqLCBDb2xvckZvcm1hdCk7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC01MiwxMSArNTIsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGlzT3JpZ2luQXRVcHBlckxlZnRDb3JuZXIgPSB0cnVlOwogCiBw
cml2YXRlOgotICAgIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJS
ZWY+JiYsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYpOwotCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBDb2xvckZvcm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBDb2xvckZvcm1hdDo6QkdSQTsgfQotI2VuZGlmCisgICAgSW1h
Z2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIENvbG9yRm9ybWF0LCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+
JiYsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYpOwogCiAgICAgdm9pZCogbV9k
YXRhOwogICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gbV9kYXRhUHJvdmlkZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhOWQ1NDg1YTI2MWI1YTBk
ZjUzZDJiODk3MTBhZTgzN2ZiZjliMWFlLi42ODMxMzRmNGRhNTlhNjYyNDRmODMxMDA5ZGY3Zjk5
MWQ0MmExOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTY0
LDEzICs2NCwxMyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0CiAgICAgcmV0dXJuIEltYWdlQnVm
ZmVyQ0dCYWNrZW5kOjpjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JTcGFjZSwg
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cq
IGhvc3RXaW5kb3csIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KQogewogICAgIEludFNpemUgYmFj
a2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwog
ICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUsIGJhY2tl
bmRTaXplLCBjZ0NvbG9yU3BhY2UpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2dDb2xvclNwYWNlLCBJT1N1cmZhY2U6OmZv
cm1hdEZvckNvbG9yRm9ybWF0KGNvbG9yRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtODAsMjUgKzgwLDI0IEBAIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9h
dFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKHN1
cmZhY2UpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGF1dG8gY2dD
b2xvclNwYWNlID0gY29udGV4dENvbG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAgIHJldHVybiBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpT
UkdCLCBjZ0NvbG9yU3BhY2UuZ2V0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwg
Y2dDb2xvclNwYWNlLmdldCgpLCBudWxscHRyLCBDb2xvckZvcm1hdDo6RGVmYXVsdCk7CiAgICAg
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEs
IENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyLCBD
b2xvckZvcm1hdDo6RGVmYXVsdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBDb2xvckZvcm1h
dCBjb2xvckZvcm1hdCkKIHsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9y
U3BhY2UoY29sb3JTcGFjZSksIGhvc3RXaW5kb3cpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgaG9zdFdpbmRvdywgY29sb3JGb3JtYXQp
OwogfQogCi0KLUltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
c3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlKQotICAgIDogSW1hZ2VCdWZmZXJD
R0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UpCitJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENv
bG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZh
Y2UpCisgICAgOiBJbWFnZUJ1ZmZlckNHQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpCiAgICAgLCBtX3N1cmZh
Y2UoV1RGTW92ZShzdXJmYWNlKSkKIHsKICAgICBBU1NFUlQobV9zdXJmYWNlKTsKQEAgLTEzMCwx
MSArMTI5LDYgQEAgdW5zaWduZWQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpieXRlc1Bl
clJvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3VyZmFjZS0+Ynl0ZXNQZXJSb3coKTsKIH0KIAot
Q29sb3JGb3JtYXQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpiYWNrZW5kQ29sb3JGb3Jt
YXQoKSBjb25zdAotewotICAgIHJldHVybiBDb2xvckZvcm1hdDo6QkdSQTsKLX0KLQogUmVmUHRy
PE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFn
ZShCYWNraW5nU3RvcmVDb3B5KSBjb25zdAogewogICAgIHJldHVybiBOYXRpdmVJbWFnZTo6Y3Jl
YXRlKG1fc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZC5oCmluZGV4IGY1MDllZWU2NWE3MjJlMTIwMWZmYzBmYjU3N2NmYjgyYmZlYzY5MGMuLjJh
YjE0Y2I5NzI1YWZmODUzYjcwZjY4YmFkYjc2MTA5Y2EzNjAxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zOSwxMSArMzksMTEgQEAgY2xhc3MgV0VCQ09SRV9FWFBP
UlQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIDogcHVibGljIEltYWdlQnVmZmVyQ0dCYWNr
ZW5kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSW50U2l6ZSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUpOwogCi0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93
Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9yRm9ybWF0KTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4g
Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9yRm9ybWF0KTsKICAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCi0gICAgSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNp
Y2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiYmKTsKKyAgICBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENvbG9yRm9ybWF0LCBzdGQ6OnVuaXF1ZV9w
dHI8SU9TdXJmYWNlPiYmKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgZmx1c2hDb250ZXh0KCkgb3ZlcnJpZGU7CkBAIC02OSw3ICs2
OSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgUmV0YWluUHRyPENHQ29sb3JT
cGFjZVJlZj4gY29udGV4dENvbG9yU3BhY2UoY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAgICAg
dW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvckZvcm1hdCBi
YWNrZW5kQ29sb3JGb3JtYXQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJT1N1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBtdXRhYmxlIGJvb2wgbV9yZXF1aXJlc0RyYXdB
ZnRlclB1dEltYWdlRGF0YSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDg3YTY1YTFhMDUwYWFiZTYwZTUw
YzNhMWMyMzEzMzlkZWFmNmI4ODUuLjkxNWFlZWQ5MzkyNzc3OWRkNTI2NTFkNjkzOWQxZTdiNzQ4
NzRkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5oCkBAIC00OSwxNyArNDksMjEgQEAgY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNz
IEltYWdlQnVmZmVyOwogI2VuZGlmCiAKK2VudW0gY2xhc3MgQ29sb3JGb3JtYXQgOiB1aW50OF90
OworCiBjbGFzcyBJT1N1cmZhY2UgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIGVudW0gY2xhc3MgRm9ybWF0IHsKLSAgICAgICAgUkdCQSwKKyAgICAg
ICAgQkdSQSwKICAgICAgICAgWVVWNDIyLAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQogICAg
ICAgICBSR0IxMCwKICAgICAgICAgUkdCMTBBOCwKICNlbmRpZgogICAgIH07CisKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgSU9TdXJmYWNlOjpGb3JtYXQgZm9ybWF0Rm9yQ29sb3JGb3JtYXQo
V2ViQ29yZTo6Q29sb3JGb3JtYXQpOwogICAgIAogICAgIGNsYXNzIExvY2tlciB7CiAgICAgcHVi
bGljOgpAQCAtOTQsOCArOTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHVpbnQzMl90IG1fZmxhZ3M7
CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6
OlJHQkEpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJm
YWNlPiBjcmVhdGUoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVm
LCBGb3JtYXQgPSBGb3JtYXQ6OlJHQkEpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBG
b3JtYXQgPSBGb3JtYXQ6OkJHUkEpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwg
Q0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6OkJHUkEpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tU2VuZFJpZ2h0
KGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYmLCBDR0NvbG9yU3BhY2VSZWYpOwogICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tU3VyZmFjZShJT1N1cmZhY2VS
ZWYsIENHQ29sb3JTcGFjZVJlZik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRl
eCA5MWIxNDFhNTAzYmIyN2JkNDI3YWYzZjcyYTRkMjEzYWJiMzhmZGMzLi5iNzZhMGZlNWE3NDMw
ZGY5NjQ5ZjYwNDI2YzUyMmI1MWMzYzI1MWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0xOTEsNyArMTkxLDcgQEAg
SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBD
R0NvbG9yU3BhY2VSZWYgY29sb3JTcGEKICAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnM7CiAKICAg
ICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgRm9ybWF0OjpSR0JBOgorICAgIGNhc2UgRm9y
bWF0OjpCR1JBOgogICAgICAgICBvcHRpb25zID0gb3B0aW9uc0ZvcjMyQml0U3VyZmFjZShzaXpl
LCAnQkdSQScpOwogICAgICAgICBicmVhazsKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKQEAg
LTI3OSw3ICsyNzksNyBAQCBDR0NvbnRleHRSZWYgSU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNv
bnRleHQoY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKICAgICBzaXplX3QgYml0c1BlclBp
eGVsID0gMzI7CiAgICAgCiAgICAgc3dpdGNoIChmb3JtYXQoKSkgewotICAgIGNhc2UgRm9ybWF0
OjpSR0JBOgorICAgIGNhc2UgRm9ybWF0OjpCR1JBOgogICAgICAgICBicmVhazsKICNpZiBIQVZF
KElPU1VSRkFDRV9SR0IxMCkKICAgICBjYXNlIEZvcm1hdDo6UkdCMTA6CkBAIC0zNTYsNyArMzU2
LDcgQEAgSU9TdXJmYWNlOjpGb3JtYXQgSU9TdXJmYWNlOjpmb3JtYXQoKSBjb25zdAogewogICAg
IHVuc2lnbmVkIHBpeGVsRm9ybWF0ID0gSU9TdXJmYWNlR2V0UGl4ZWxGb3JtYXQobV9zdXJmYWNl
LmdldCgpKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgPT0gJ0JHUkEnKQotICAgICAgICByZXR1cm4g
Rm9ybWF0OjpSR0JBOworICAgICAgICByZXR1cm4gRm9ybWF0OjpCR1JBOwogCiAjaWYgSEFWRShJ
T1NVUkZBQ0VfUkdCMTApCiAgICAgaWYgKHBpeGVsRm9ybWF0ID09ICd3MzByJykKQEAgLTM3MCw3
ICszNzAsNyBAQCBJT1N1cmZhY2U6OkZvcm1hdCBJT1N1cmZhY2U6OmZvcm1hdCgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBGb3JtYXQ6OllVVjQyMjsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBGb3JtYXQ6OlJHQkE7CisgICAgcmV0dXJuIEZvcm1hdDo6QkdSQTsKIH0K
IAogSU9TdXJmYWNlSUQgSU9TdXJmYWNlOjpzdXJmYWNlSUQoKSBjb25zdApAQCAtNDU5LDExICs0
NTksMzYgQEAgdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkK
ICAgICBJT1N1cmZhY2VTZXRWYWx1ZShtX3N1cmZhY2UuZ2V0KCksIGtJT1N1cmZhY2VDb2xvclNw
YWNlLCBjb2xvclNwYWNlUHJvcGVydGllcy5nZXQoKSk7CiB9CiAKK0lPU3VyZmFjZTo6Rm9ybWF0
IElPU3VyZmFjZTo6Zm9ybWF0Rm9yQ29sb3JGb3JtYXQoQ29sb3JGb3JtYXQgZm9ybWF0KQorewor
ICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBDb2xvckZvcm1hdDo6UkdCQTg6CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJT1N1cmZh
Y2U6OkZvcm1hdDo6QkdSQTsKKyAgICBjYXNlIENvbG9yRm9ybWF0OjpCR1JBODoKKyAgICAgICAg
cmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOworI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEw
KQorICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwOgorICAgICAgICByZXR1cm4gSU9TdXJmYWNl
OjpGb3JtYXQ6OlJHQjEwOworICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwQTg6CisgICAgICAg
IHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTBBODsKKyNlbHNlCisgICAgY2FzZSBDb2xv
ckZvcm1hdDo6UkdCMTA6CisgICAgY2FzZSBDb2xvckZvcm1hdDo6UkdCMTBBODoKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIElPU3VyZmFjZTo6
Rm9ybWF0OjpCR1JBOworI2VuZGlmCisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOworfQorCiBzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSU9TdXJmYWNlOjpGb3JtYXQgZm9ybWF0
KQogewogICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgY2FzZSBJT1N1cmZhY2U6OkZvcm1hdDo6
UkdCQToKLSAgICAgICAgdHMgPDwgIlJHQkEiOworICAgIGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6
OkJHUkE6CisgICAgICAgIHRzIDw8ICJCR1JBIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
T1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOgogICAgICAgICB0cyA8PCAiWVVWNDIyIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCmluZGV4IGZmZDk0YjUyOWMwNmE3
ZTJjZGUwMGVjOTRiMzU1Yzg1ZGRhZmI0YzMuLjQ3ZjEyZDIzMGYzNWY0ZmFjYmI1MTdhYmQ3MTM4
ZTMyNzBmZjI4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIu
aApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUlt
YWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKIAogcHVibGljOgotICAgIHN0
YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93
KQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBo
b3N0V2luZG93LCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPEltYWdlQnVmZmVyPihz
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3csIHNpemUpOworICAg
ICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxJbWFn
ZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBj
b2xvckZvcm1hdCwgc2l6ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAppbmRleCAzZGJhYWY5ZjJlYzZiZDExMjdkNTFjMTE3ZTBjMWM3MDU2Y2QyNWQzLi4xYWI3YjBh
M2I2OWVkNjNmNmYwMmE2ZWQ5NTExMGU0ZjhjODk2ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNDQsOSAr
NDQsOSBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0
ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibAogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYg
cmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQgY29sb3JG
b3JtYXQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRl
bXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBudWxscHRyLCByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6
OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBudWxscHRyLCBjb2xvckZvcm1hdCwgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBSZW1vdGVJbWFn
ZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTU0LDcg
KzU0LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChyZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5pbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKG1fYmFja2VuZC0+
bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29s
dXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQobV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCks
IG1fYmFja2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBt
X2JhY2tlbmQtPmNvbG9yRm9ybWF0KCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAg
flJlbW90ZUltYWdlQnVmZmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBlYTU2NDMy
NjFlMjk5ZTEwZDM5MTUwNGI3NTA1MDk5OTYyNzQ0Y2E5Li4xYzdlZDhhZjA4MjU3ZTliMWYxZTkz
MjdmZDZjNTFlOTViOGU1YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC05Niw5ICs5
Niw5IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6YXBwbHlNZWRpYUl0ZW0oRGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSwgR3JhcGhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmltYWdl
QnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OkltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQobG9naWNhbFNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpJbWFnZUJ1
ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShoYW5kbGUpLCByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0
dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAtMTA2
LDE3ICsxMDYsMTcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlM
aXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW4KICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0
ZWQoZmx1c2hJZGVudGlmaWVyLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZl
cihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZv
cm1hdCBjb2xvckZvcm1hdCwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJp
bmdNb2RlOjpBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQpOwogCiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKIAog
ICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAg
ICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShs
b2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgY29sb3JGb3JtYXQsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0
ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwg
KnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBpZiAoIWltYWdlQnVm
ZmVyKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
aW5kZXggYjM2YjlkZDYwNjRlZTVhNTE2M2M2OGU0MTk0NzYzMWZlMDkxMzEzMi4uNTg2MjVhMjRh
ZTk0YzVhMTBkOWRkM2U1ZWNjZWQwNWM2OTgwMmJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGFwcGx5TWVkaWFJdGVtKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKIAog
ICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCi0gICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRX
YXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6
Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZsdXNo
RGlzcGxheUxpc3RXYXNDb21taXR0ZWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQg
c2V0TmV4dEl0ZW1CdWZmZXJUb1JlYWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0byBi
ZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCB3YWtlVXBB
bmRBcHBseURpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciBpbml0aWFsSWRlbnRpZmllciwgdWludDY0X3QgaW5pdGlhbE9mZnNldCwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7
CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBv
dXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRh
UmVmZXJlbmNlJiYpPiYmKTsKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgppbmRleCA2ZjJlMmFiZGY5MjZiY2Q0YTA0YzIzNTU4ZTY1Yjk5NmE1YTA2
MDgyLi42ODAzODkzNTAxNzM2YWNmZGU1YzUxZjZkMmE4MjUwYzI0ODNkZmFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBO
b3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUg
bG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CisgICAgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgV2FrZVVwQW5kQXBwbHlEaXNw
bGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaW5pdGlh
bElkZW50aWZpZXIsIHVpbnQ2NF90IGluaXRpYWxPZmZzZXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiAgICAgR2V0SW1h
Z2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1
dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFn
ZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIERpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9uQnVmZmVySWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGIy
MjY4OGUwZGJjMTkyZWI2N2Y3OGI1MTUyNGVjNTFlZDcxOWQzMzMuLmI5MjY1ZWFlYjhiYmM0Mjll
YWNmMTE5YWVlMTI5ZWU1N2Y1Nzc4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtNTk2LDkgKzU5Niw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCiAgICAgICAg
ICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6Q29sb3JGb3JtYXQnOiBbJzxXZWJDb3JlL0ltYWdlQnVmZmVyQmFj
a2VuZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsn
PFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50
T3JXb3JrZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwK
LSAgICAgICAgJ1dlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QnOiBbJyJEb2N1
bWVudEVkaXRpbmdDb250ZXh0LmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRp
b25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0RhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRy
YWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkRyYWdPcGVyYXRpb24nOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCkBA
IC02NzIsNiArNjcyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5oIiddLAogICAgICAgICAnV2Vi
S2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAg
ICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3JsZFNo
YXJlZC5oIiddLAorICAgICAgICAnV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVz
dCc6IFsnIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Rmlu
ZE9wdGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIiddLAogICAgICAgICAnV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplclN0YXRlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJL
aXQ6Okdlc3R1cmVUeXBlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KaW5kZXggY2VmNWE5ZWQ0ZTJkNGZlMDFiM2I3YzM2MDBiMjU1NzdjNjYwOGI0
My4uMDFkNjM0YTI1ZTEwNzY2MmM5YjEzYTBjOWVlOGIyZGM0ZTEwY2I3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMTY2LDcgKzE2Niw3IEBAIFdlYkNvcmU6OkludFNpemUg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJhY2tpbmdTdG9yZVNpemUoKSBjb25zdAogdW5zaWdu
ZWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVyUGl4ZWwoKSBjb25zdAogewogICAg
IHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpJT1N1
cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CisgICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdDo6QkdSQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6
OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKICAg
ICBjYXNlIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMDogcmV0dXJuIDQ7CkBAIC00
NzQsNyArNDc0LDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAogICAgICAgICByZXR1cm4gbV9p
c09wYXF1ZSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6IFdlYkNvcmU6OklP
U3VyZmFjZTo6Rm9ybWF0OjpSR0IxMEE4OwogI2VuZGlmCiAKLSAgICByZXR1cm4gV2ViQ29yZTo6
SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgcmV0dXJuIFdlYkNvcmU6OklPU3VyZmFjZTo6
Rm9ybWF0OjpCR1JBOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCmluZGV4IDdlMzQxNDM4YjBiZThiYzZmNzBlM2YxNDc2
N2FiYWUzMDU2MWQwNzQuLjg0NDg4N2JiYzNiMWIzYTQzMzg0MTJlOTQzYzlkNjkyY2IxYjYyYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcApAQCAtMTQ5LDcgKzE0
OSw2IEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNv
bnN0IEludFNpemUmIHNpemUsIENvbmZpZ3VyYXRpCiAKIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKLSAgICAvLyBDcmVhdGUgdGhlIHNoYXJlZCBt
ZW1vcnkuCiAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUu
bV9oYW5kbGUsIHByb3RlY3Rpb24pOwogICAgIGlmICghc2hhcmVkTWVtb3J5KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW0KaW5kZXggMWFlN2FlMDlmZjI0YWRjYzg3MTU4N2I5MTBjZDNhNjYyNTEyZjg0
Mi4uNGI3NjYyYTE2NDU5NGRlNmU0M2ZlNDQ0NDhlMDkyMzdkNzJiZWYzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTEwMDYsOSAr
MTAwNiw5IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNo
b3QKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUo
ZGV2aWNlU2NhbGUsIGRldmljZVNjYWxlLCAxKTsKIAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEw
KQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29y
ZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZv
cm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OnNjcmVlblN1
cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEw
IDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZWxzZQotICAgIFdlYkNvcmU6
OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3Jt
YXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNlbmRpZgogICAgIGF1dG8g
c3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50
U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hv
dEZvcm1hdCk7CiAgICAgaWYgKCFzdXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGMzYmVlZjVkMTQwYjcyNDM4ZGM3NTA1NjAz
YWU5YTRjZGUyYTExYjMuLjZiMGJmZmFiOWQ4MDlkOGQ5ZTQ3OWM0ZmM3OWM0MjYyNDhjODc2MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAK
QEAgLTQzLDggKzQzLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKIAot
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9z
dFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9h
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
LCBjb25zdCBIb3N0V2luZG93KiwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpCiB7CisgICAgQVNT
RVJUX1VOVVNFRChjb2xvckZvcm1hdCwgY29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4
KTsKKwogICAgIEludFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXpl
LCByZXNvbHV0aW9uU2NhbGUpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtNjEsMTAgKzYzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFjCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4oc2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShiaXRt
YXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29u
dGV4dCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSBoYW5kbGUpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNv
bG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQogewogICAgIGlmICgh
V1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTaGFyZWFibGVCaXRtYXA6OkhhbmRsZT4oaGFuZGxlKSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTc5LDExICs4MSwxMSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhYwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBXVEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkpOworICAgIHJldHVybiBt
YWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4obG9naWNhbFNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBX
VEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkpOwogfQogCi1JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZWZQdHI8U2hhcmVh
YmxlQml0bWFwPiYmIGJpdG1hcCwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJiBj
b250ZXh0KQotICAgIDogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIHBo
eXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29u
c3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQg
Y29sb3JGb3JtYXQsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYgYml0bWFwLCBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmIGNvbnRleHQpCisgICAgOiBQbGF0Zm9ybUltYWdlQnVm
ZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwgcGh5c2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNvbG9yRm9ybWF0KQogICAgICwgbV9iaXRtYXAoV1RGTW92ZShiaXRtYXApKQog
ICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCA5ZTI0YWI5OWViYzY3NWNlMjAxYTU5
Mzk3MjhjNjE5ZGJhNTk1ZWMzLi4yZmNkMTIxYTM3OGQ3YWQzNWFmOTRmZGU3MjQ5Mjk4MGVjM2U1
YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0lt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgK
QEAgLTQzLDEwICs0MywxMCBAQCBjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1JbWFnZUJ1ZmZlckJhYwogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQpOwog
cHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBjb25z
dCBXZWJDb3JlOjpIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9n
aWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyosIFdlYkNvcmU6OkNvbG9yRm9ybWF0KTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKIAotICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBw
aHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
UmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dD4mJik7CisgICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiwgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4mJik7CiAKICAgICBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7
CiAKQEAgLTYwLDggKzYwLDYgQEAgcHVibGljOgogICAgIHZvaWQgcHV0SW1hZ2VEYXRhKFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklt
YWdlRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVz
dEZvcm1hdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV2ViQ29yZTo6Q29sb3JGb3JtYXQg
YmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV2ViQ29yZTo6Q29s
b3JGb3JtYXQ6OkJHUkE7IH0KLQogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fYml0bWFw
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4
dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDAxZTUzZTE1YzRiMWQxZjUw
YWZkNzBiZGNjOWIxNjg0NDk2ZTVkNjMuLjQ2NmE4YjA3N2RiMjdkMjU5OWY4NDBlMjlmY2E5YjZi
ZWYxYjA3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC02NCwxMCArNjQsMTAg
QEAgcHVibGljOgogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVsZWFz
ZVJlbW90ZVJlc291cmNlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAK
LSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUgaGFuZGxlKQorICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFdlYkNvcmU6OkNvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgaGFuZGxlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2JhY2tlbmQpOwotICAgICAgICBt
X2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBt
X2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShoYW5kbGUp
KTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1pdEZsdXNoRGlzcGxheUxpc3QoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggYjFjMDNiM2FkYTg3NDg0MmRjMTczMDNk
Y2E0MTk5MDkzYjA1MzhmYS4uYjZmOGFiMzgyODg2NmZiM2Q2MjM3YWU1YjA5MGE1NGUzY2Y2YmUz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtODksNyAr
ODksNyBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckZsdXNoRGlz
cGxheUxpc3RXYXNDb21taXR0ZWQoKQogICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5k
RGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkPihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3Nh
Z2VBcnJpdmVzKTsKIH0KIAotUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KQogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZl
cj4gaW1hZ2VCdWZmZXI7CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaQogICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZl
clByb3h5OjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCAqdGhpcyk7CiAKICAgICBpZiAo
aW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBpbWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KCkpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVy
aW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgaW1hZ2VC
dWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNhY2hlSW1h
Z2VCdWZmZXIoaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBpbWFn
ZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKICAgICB9CkBAIC0x
NDUsMTYgKzE0NSwxNiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZgogICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0K
IAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdh
c0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFj
a2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGltYWdlQnVmZmVyID0g
bV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgaWYgKGltYWdlQnVmZmVyLT5pc0FjY2VsZXJhdGVkKCkpCi0gICAgICAgIGRv
d25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5j
cmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dp
Y2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JG
b3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgZWxzZQotICAgICAgICBkb3duY2FzdDxVbmFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNr
ZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwg
V1RGTW92ZShoYW5kbGUpKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmll
ciBmbHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApp
bmRleCBhYmE5NjJlNDA4OTM4Y2YwZmIyZTM0ZDViYTA4MDNhMmUwY2E0NzI3Li5lZDA1MGI1NzVh
OWJjMWY0ZTg3MGU3MWMzNjRkNGQ5YmM1MzAzZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29y
ZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3Jt
YXQpOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlv
bkJ1ZmZlcklkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50
aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpA
QCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmV1c2FibGVIYW5kbGVz
KCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGltYWdlQnVm
ZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgaW1hZ2VCdWZmZXJC
YWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgZmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA3ZTM0MzM1NDc1OGYyNjIyZWU2YTM4YmQyNzBhYmI1NjVlNTEyNTAzLi5jMzMyOTEw
MTZhZTEyZTQ1NjRkOWZhYTU0YjY1YTdjNjc2MmQ0ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIEltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0
ZWQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JT
cGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQor
ICAgIEltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2lj
YWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkNvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDA2ZjM5OTEzZmM2N2I2ODIyZWMyZjFlODFhMzRi
MzgzNzE1OGUxZmYuLjJkZTczZmUzZDIwODRlNjE5NmFhYzc3MTQxYTBmYjUyY2UzZjk1Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5jcHAKQEAgLTM3LDEzICszNywxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3Jl
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyosIENvbG9y
Rm9ybWF0IGNvbG9yRm9ybWF0KQogewogICAgIEludFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxh
dGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwogICAgIGlmIChiYWNrZW5kU2l6
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNl
ID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBjYWNoZWRDR0Nv
bG9yU3BhY2UoY29sb3JTcGFjZSkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3Bh
Y2UpLCBJT1N1cmZhY2U6OmZvcm1hdEZvckNvbG9yRm9ybWF0KGNvbG9yRm9ybWF0KSk7CiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNTMsMTAgKzUzLDEw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dD
b250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkp
OwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBX
VEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRs
ZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0
U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9y
bWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQogewogICAgIGlmICghV1RGOjpo
b2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjcsNyArNjcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZgogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KGxvZ2lj
YWxTaXplLCBpbnRlcm5hbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92
ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAogSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4
IDk1NjE5NGI0ODQ4YzgyZDQ5OGJhNWJjOTBkMDNlNzY4NjkxMmZlMWQuLmY1NmI5NGJkZTliNTIz
YjQ5MmY0ZGYxZjkxYmRlMDNlNzQ4NDkyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzksOCArMzksOCBA
QCBjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgOiBwdWJsaWMgV2Vi
Q29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhYwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQpOwogcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBjb25zdCBXZWJDb3Jl
OjpIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
Y29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyosIFdlYkNvcmU6OkNvbG9yRm9ybWF0KTsKKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKIAogICAgIHVzaW5nIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IGZlZGMzZGIxMGFkNzczYmQ1NTM2MzI2ZmFiMWMxNzQwODVjYjE2ZDAuLmI0M2JhNzkwOTJl
YmZlMmMzN2MwODgxNjlhYWZiM2E4ZmZiZTQ4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC05MTAsMTIgKzkxMCwxMiBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIFdlYkNocm9t
ZUNsaWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KAogICAgIHJldHVybiAq
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUs
IFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkgY29uc3QKK1JlZlB0
cjxJbWFnZUJ1ZmZlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVy
cG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpIGNvbnN0CiB7CiAgICAgaWYgKCFXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IocHVycG9zZSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgcmV0dXJuIGVuc3VyZVJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDE3MWZhNjMzM2RjZTMy
M2MwMGM3OGNlYmRlMjczZjAwZTZjOTBmMDIuLmM1OTM0N2U2ZmYxM2U3NTEzMzhlNTZmMzJmNWJj
M2IyNjhiODIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI0NCw3ICsyNDQsNyBAQCBwcml2
YXRlOgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSYgZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkgY29uc3Q7Ci0gICAg
UmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBXZWJDb3JlOjpSZW5kZXJp
bmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpIGNv
bnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCkgY29uc3QgZmluYWw7CiAjZW5kaWYK
IAogICAgIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJz
KCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBmNDhhN2VkNTU2MGJkMWQyZDA2MGQ5NzU5ODU5YjEyYjY5MzJhZTZhLi5hYTNm
ODA5OTBlNjE4N2ExZTZjNzg4NWQ5NmYxYjVmNGFlNTcxNGViIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEt
MTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IG1pbmltYWwgc3VwcG9ydCBmb3IgZGVlcCBjb2xvciBJT1N1cmZhY2UgYmFja2luZyBzdG9yZSB0
byBJbWFnZUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbToKKyAgICAg
ICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyk6CisKIDIwMjAtMTEtMTEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gU2VhbWxl
c3NseSByZXN1bWUgV2ViQXVkaW8gcGxheWJhY2sgaWYgdGhlIEdQVSBQcm9jZXNzIGNyYXNoZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9T
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KaW5k
ZXggNjE3OGQyYTViNDY4NzVlNzgxZWEzOWI0OWM0NTJhYzczYjU1MjMwOS4uZDcwOWEyZTkxNmE1
MTFiNzA2MThlOTEyYTQ2ZDc2YmI4MDc5YmUxNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KQEAgLTY3LDkgKzY3LDkgQEAgUmVmUHRyPEJp
dG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVu
LCBib29sIGluY3JlbWUKICAgICBzbmFwc2hvdFNpemUuc2NhbGUoZGV2aWNlU2NhbGVGYWN0b3Ip
OwogCiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCi0gICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6IFdlYkNvcmU6OklPU3Vy
ZmFjZTo6Rm9ybWF0OjpSR0JBOworICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBz
aG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1h
dDo6QkdSQTsKICNlbHNlCi0gICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RG
b3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJDb3JlOjpJ
T1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9y
bWF0OjpCR1JBOwogI2VuZGlmCiAgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNl
OjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6
OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90Rm9ybWF0KTsKICAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gY2dJbWFnZSA9IHN1cmZhY2UtPmNyZWF0ZUltYWdlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413869</attachid>
            <date>2020-11-11 14:44:39 -0800</date>
            <delta_ts>2020-11-11 15:14:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111144438.patch</filename>
            <type>text/plain</type>
            <size>92210</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1MjI4ZGZjNGJjNmIy
NTUzOTYzODVjNjQwZTRiNWE3YmM3OWVkYy4uYjc3ZDQ2NDkxNmFhZTFmNTkwYTdjMmQ4OWI5MzNh
ZGY4OGFlYjUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0czsgd2lsbCBiZSBjb3ZlcmVkIGJ5IGFsbCBkZWVwIGNvbG9yIHRlc3RzIHdoZW4g
R1BVIFByb2Nlc3MgRE9NIHJlbmRlcmluZyBsYW5kcy4KKworICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIHBhc3MgYSBDb2xvckZvcm1hdCBpbnRvIHRoZSBJbWFnZUJ1ZmZlciBjb25zdHJ1Y3Rv
ciwKKyAgICAgICAgYW5kIGFkZCBSR0IxMCBhbmQgUkdCMTBBOCBDb2xvckZvcm1hdHMuCisKKyAg
ICAgICAgV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0L3B1dEltYWdlRGF0YSBmb3IgZGVl
cCBjb2xvciBidWZmZXJzLCBiZWNhdXNlCisgICAgICAgIHRoYXQgaXMgbm90IG5lZWRlZCBmb3Ig
SW1hZ2VCdWZmZXJzIGJhY2tpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgKHRoZSBtb3RpdmF0
aW9uCisgICAgICAgIGZvciB0aGlzKSwgYnV0IGlmIHdlIGV2ZW50dWFsbHkgd2FudGVkIHRvIG1v
cmUgZ2VuZXJhbGx5IHN1cHBvcnQgZGVlcCBjb2xvciBJbWFnZUJ1ZmZlcnMsCisgICAgICAgIHRo
YXQncyBtb3N0IG9mIHRoZSByZW1haW5pbmcgd29yay4KKworICAgICAgICBBbHNvLCBzdGFuZGFy
ZGl6ZSBvbiBCR1JBOCBhcyB0aGUgZGVmYXVsdCBDb2xvckZvcm1hdCBmb3IgYnVmZmVycy4KKyAg
ICAgICAgaU9TLCBDYWlybywgSU9TdXJmYWNlLCBhbmQgU2hhcmVhYmxlQml0bWFwIGFsbCBhbHJl
YWR5IHVzZSBCR1JBOCBieSBkZWZhdWx0OworICAgICAgICBvbmx5IEltYWdlQnVmZmVyIHdpdGgg
Q0dCaXRtYXAgYmFja2luZyBzdG9yZSBvbiBtYWNPUyB1c2VkIFJHQkE4LiBTbywKKyAgICAgICAg
Zm9yIHNhbml0eSdzIHNha2UgKGFuZCBzbyB0aGF0IGl0J3MgZWFzeSB0byBoYXZlIGEgZGVmYXVs
dCBwYXNzZWQgaW50bworICAgICAgICB0aGUgY29uc3RydWN0b3IpLCBzdGFuZGFyZGl6ZSBvbiBC
R1JBOC4KKworICAgICAgICAqIGh0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmNy
ZWF0ZUJ1ZmZlckZvclBhaW50aW5nIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpj
cmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRv
dy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgUGx1bWJpbmcgQ29sb3JGb3JtYXQgYXJvdW5kLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6SW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6dG9CR1JBRGF0YSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVscyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dEltYWdlRGF0YSk6Cisg
ICAgICAgIEFzc2VydCB0aGF0IGNvcHlJbWFnZVBpeGVscyBpcyBhbHdheXMgb3BlcmF0aW5nIG9u
IGEgOC1iaXQgYnVmZmVyLAorICAgICAgICBzaW5jZSB0aGF0J3MgYWxsIGl0IHN1cHBvcnRzIGZv
ciBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Y29sb3JGb3JtYXQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpieXRlc1BlclJvdyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmJhY2tlbmRDb2xv
ckZvcm1hdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNmZXJCR1JBUGl4ZWxC
dWZmZXJUb0lPU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1
ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVCaXRtYXBJbWFnZUFmdGVyU2NhbGluZ0lmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCYWNrZW5kOjp0b0NGRGF0YSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb3B5SW1hZ2VQaXhlbHNBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJDR0JpdG1h
cEJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6
OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CisgICAgICAgIEFkb3B0IENvbG9yRm9ybWF0IGFuZCBz
dGFuZGFyZGl6ZSBvbiBCR1JBOC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6YmFja2VuZENv
bG9yRm9ybWF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmVuc3VyZVBsYXRmb3JtQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJT1N1cmZhY2U6OmZvcm1hdEZvckNvbG9yRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisKIDIwMjAtMTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gU2VhbWxlc3NseSByZXN1bWUgV2Vi
QXVkaW8gcGxheWJhY2sgaWYgdGhlIEdQVSBQcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTEy
ZGQzYTU4Y2E4MWRiMGI2MGM4YThmMDI4ZmFlOTQyZGExZmE0Yy4uYzRkZDE2NGE2N2IwYjIwNmNh
MGNiZTZhMjNlMzkzOTBhMDU1MzViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0x
MS0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbWluaW1hbCBzdXBwb3J0IGZvciBkZWVwIGNvbG9yIElPU3VyZmFjZSBiYWNraW5nIHN0b3Jl
IHRvIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVm
ZmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6Cisg
ICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVyUGl4
ZWwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3Vy
ZmFjZUJ1ZmZlckZvcm1hdCBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlQmFja2VuZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6aW1h
Z2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29u
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisKIDIwMjAtMTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbR1BVUHJvY2Vzc10gU2VhbWxlc3NseSByZXN1bWUgV2ViQXVkaW8gcGxheWJhY2sgaWYg
dGhlIEdQVSBQcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q3VzdG9tUGFpbnRDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENh
bnZhcy5jcHAKaW5kZXggZTQ1MDQ0ZjcwOTQ4ZDRmMzkzYmQ5NjhkNDc5ZjM4Yjc3ZmRmOTNhMi4u
NzI5MGI5MDVhMmU4MjJjNjM0YTVmZDNjMjlmZWZlOTNkYTFlYTkzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgSW1hZ2UqIEN1
c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSgpIGNvbnN0CiAgICAgaWYgKCF3aWR0aCgpIHx8
ICFoZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBtX2NvcGllZEJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyKTsKKyAgICBtX2NvcGllZEJ1ZmZlciA9
IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVk
LCAxLCBDb2xvclNwYWNlOjpTUkdCLCBDb2xvckZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOwogICAg
IGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGU1ODMyMTAzMGU4YmFjODRj
NjE0MzY3MjljMDZiNWY3MWRmMjljYmYuLjliZDdhZTUwMzAwYjA4YTU0YzczOTUwMDQ5Zjk0ZDI3
ZGU4Yzg5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC05MzksNyArOTM5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUoc2l6
ZSgpKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2Nl
bGVyYXRlZDsKICAgICAvLyBGSVhNRTogQWRkIGEgbmV3IHNldHRpbmcgZm9yIERpc3BsYXlMaXN0
IGRyYXdpbmcgb24gY2FudmFzLgogICAgIGF1dG8gdXNlRGlzcGxheUxpc3QgPSBtX3VzZXNEaXNw
bGF5TGlzdERyYXdpbmcudmFsdWVPcihkb2N1bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3RE
cmF3aW5nRW5hYmxlZCgpKSA/IFNob3VsZFVzZURpc3BsYXlMaXN0OjpZZXMgOiBTaG91bGRVc2VE
aXNwbGF5TGlzdDo6Tm87Ci0gICAgc2V0SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShz
aXplKCksIHJlbmRlcmluZ01vZGUsIHVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlOjpD
YW52YXMsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGhvc3RXaW5kb3cpKTsKKyAgICBzZXRJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxh
eUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgQ29sb3JTcGFjZTo6U1JHQiwgQ29s
b3JGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KSk7CiAKICAgICBpZiAoYnVmZmVyKCkgJiYgYnVm
ZmVyKCktPmRyYXdpbmdDb250ZXh0KCkpCiAgICAgICAgIGJ1ZmZlcigpLT5kcmF3aW5nQ29udGV4
dCgpLT5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDZkYmI3OTc1
ZWRiMmJkYWNjZmY0MGIwMDRlMTQyMDM1YTc4N2NhNTQuLmM3ZWYxMzQyNzI1NjIzMDc5ZWEyNDY3
ODVkNjkwODg1ODY4ZWVkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gSFRNTFZpZGVvRWxl
bWVudDo6Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiBzCiB7CiAgICAg
YXV0byogaG9zdFdpbmRvdyA9IGRvY3VtZW50KCkudmlldygpICYmIGRvY3VtZW50KCkudmlldygp
LT5yb290KCkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkgOiBudWxs
cHRyOwogICAgIGF1dG8gc2hvdWxkVXNlRGlzcGxheUxpc3QgPSBkb2N1bWVudCgpLnNldHRpbmdz
KCkuZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCgpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olll
cyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5n
UHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgQ29sb3JTcGFjZTo6U1JHQiwgaG9zdFdpbmRvdyk7
CisgICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgc2hv
dWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlhUGFpbnRpbmcsIDEsIENv
bG9yU3BhY2U6OlNSR0IsIENvbG9yRm9ybWF0OjpCR1JBOCwgaG9zdFdpbmRvdyk7CiB9CiAKIHZv
aWQgSFRNTFZpZGVvRWxlbWVudDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmNwcAppbmRleCBlOTY4YjQ4NjAzZTAxZTU4YzYzMzZkZDZkZDljOWExYjU1
MjQyYjEyLi4xZDc0NDM5ZmY4YzI3YTgxNzhiMDI4MDZmODk5OWIyYzNlNzdhMGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtODQsNyArODQsNyBAQCBSZWZQdHI8SW1hZ2VC
dWZmZXI+IEltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBzY3JpcAogICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgaWYgKGRvY3VtZW50LnZpZXcoKSAmJiBk
b2N1bWVudC52aWV3KCktPnJvb3QoKSkgewogICAgICAgICAgICAgYXV0byBob3N0V2luZG93ID0g
ZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKTsKLSAgICAgICAgICAgIHJldHVy
biBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3Bs
YXlMaXN0OjpObywgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2U6OlNSR0IsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgcmV0dXJuIEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6Ok5v
LCBSZW5kZXJpbmdQdXJwb3NlOjpDYW52YXMsIHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZTo6
U1JHQiwgQ29sb3JGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDk5N2YyYWY3Zjk3NTY5MGM3NzM4MTY0MjkyMTVi
OWU1MWJhYzU5ZjEuLjE2MjMwMDM0ZDMzZjk4MjdhMzYyY2JkODUyOWNkMTA2ZmEwMjVjOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTUyMyw5ICs1MjMsOSBAQCB2b2lkIENocm9tZTo6c2V0
Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50aWxNb3VzZU1vdmVzKQog
ICAgIG1fY2xpZW50LnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3ZlcyhoaWRkZW5VbnRpbE1v
dXNlTW92ZXMpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9tZTo6Y3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9tZTo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KSBjb25zdAogewot
ICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2Rl
LCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgIHJldHVybiBtX2Ns
aWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KTsKIH0KIAogUGxhdGZvcm1EaXNw
bGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggY2Y3
NzdlMGNjZDk5YTdjYjU5MTM4ZWFmYjYxMWU0ZjFjMDI2ZmY5Yy4uODJmM2FkMzg1ZTQ0M2QxNzUx
Y2VjNWIxZWE5M2EyODM2N2Y2NzI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC04NCw3ICs4NCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsK
IAotICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRl
cmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3Jt
YXQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1E
aXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAppbmRleCA3YWYxNzhlOTg2NjhkYTljNzE0NDQ0NTEzMjYwNjk3NDg3ZDgzNWM4
Li4wNTI2ZTM1MTIyNzc0MGUxMWM4ZjUwYzkzMTRiMjgyYzIzMGE0YjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAg
dmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0LCBDb2xvclNwYWNl
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZm
ZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJl
bmRlcmluZ1B1cnBvc2UsIGZsb2F0LCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBHcmFwaGljc0xh
eWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4OTY1YTI1M2UxODdlZTk3NmE0ZTY5NDg4ZDRmNjg1
NjhmNWJjNzIxLi4xZDljNGEzNjk1YmMxNTk3NzlkMmNjNmZlMGUyNTAyZmYyYzg1MDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIEltYWdlQnVmZmVyOwogCitlbnVtIGNs
YXNzIENvbG9yRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogZW51bSBjbGFzcyBSZW5kZXJp
bmdQdXJwb3NlIDogdWludDhfdDsKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQm
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5
U2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5n
TW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2Us
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQpIGNvbnN0ID0g
MDsKIAogICAgIC8vIE1ldGhvZCBmb3IgcmV0cmlldmluZyB0aGUgbmF0aXZlIGNsaWVudCBvZiB0
aGUgcGFnZS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGll
bnQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggODU0MDIxNWY2MjM3Y2MwYTNkNjI1ZTMy
ZmE5NjdkZjlhNjJlYzJhZi4uMGU3ZDBkMGRmMmUyOTU0YmM5MzExNzdhOTg1ZjY3Y2M5N2U5MWIw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNy
ZXRlSW1hZ2VCdWZmZXIuaApAQCAtMzQsOSArMzQsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBCYWNr
ZW5kVHlwZT4KIGNsYXNzIENvbmNyZXRlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgSW1hZ2VCdWZmZXIg
ewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEltYWdlQnVmZmVyVHlwZSA9IENvbmNy
ZXRlSW1hZ2VCdWZmZXIsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBzdGF0aWMgUmVmUHRy
PEltYWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhv
c3RXaW5kb3csIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBzdGF0aWMgUmVmUHRyPElt
YWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
LCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMp
CiAgICAgewotICAgICAgICBhdXRvIGJhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdyk7CisgICAgICAgIGF1dG8g
YmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBjb2xvckZvcm1hdCwgaG9zdFdpbmRvdyk7CiAgICAgICAgIGlmICghYmFja2VuZCkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEltYWdlQnVmZmVyVHlwZShXVEZNb3ZlKGJhY2tlbmQpLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRz
Pihhcmd1bWVudHMpLi4uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggOGY2MmRjNmEzNDgzYzg0M2QwNWJlZjY3MzRkYzU0YTEz
YjRiMGU1Zi4uNGJmYWI2MDYzMTJkYmJmN2ZiNDI0YzhjNjAwMjMxYTY2NjYxODc2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAt
MzgsMzUgKzM4LDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBmbG9hdCBN
YXhDbGFtcGVkTGVuZ3RoID0gNDA5NjsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkQXJl
YSA9IE1heENsYW1wZWRMZW5ndGggKiBNYXhDbGFtcGVkTGVuZ3RoOwogCi1SZWZQdHI8SW1hZ2VC
dWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0IHNob3VsZFVzZURpc3Bs
YXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVm
UHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCBzaG91
bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQs
IGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVy
PiBpbWFnZUJ1ZmZlcjsKICAgICBpZiAoaG9zdFdpbmRvdykKLSAgICAgICAgaW1hZ2VCdWZmZXIg
PSBob3N0V2luZG93LT5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJw
b3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgICAgICBpbWFnZUJ1ZmZlciA9
IGhvc3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBv
c2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogCiAgICAgaWYg
KCFpbWFnZUJ1ZmZlciAmJiBzaG91bGRVc2VEaXNwbGF5TGlzdCA9PSBTaG91bGRVc2VEaXNwbGF5
TGlzdDo6WWVzKSB7CiAgICAgICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkKQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdEFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdEFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIGNvbG9yRm9ybWF0LCBob3N0V2luZG93KTsKICAgICAgICAgCiAgICAgICAgIGlmICgh
aW1hZ2VCdWZmZXIpCi0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0VW5hY2Nl
bGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RV
bmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBob3N0V2luZG93KTsKICAgICB9CiAKICAgICBpZiAoIWlt
YWdlQnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6
ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93
KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRl
cmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGhvc3RX
aW5kb3cpOwogCiAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZm
ZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVmZmVy
PiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3cpCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKICAgICAKICAgICBp
ZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAgICAg
aW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIg
PSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb2xvckZvcm1hdCwgaG9zdFdpbmRvdyk7CiAgICAgCiAgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6
OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOwor
ICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGhvc3RXaW5kb3cp
OwogCiAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggY2Y0N2MxOWYwY2UxNzA0ZjAyNTE5NzIw
YjM5MmEwMDI1ZTllMTRkNi4uN2JmOWUxZjhkMzE4N2ZmNmZjNTJiZDYxY2IzMzE0YWQ0ZWY3M2Mx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CkBAIC00Miw4ICs0Miw4IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0OwogY2xhc3MgSW1hZ2VCdWZm
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUJ1ZmZlcj4gewogcHVibGljOgogICAgIC8vIFdp
bGwgcmV0dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiwgUmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBv
c2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpT
UkdCLCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJp
bmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlID0gQ29sb3JTcGFj
ZTo6U1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVu
ZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBDb2xv
ckZvcm1hdCA9IENvbG9yRm9ybWF0OjpCR1JBOCwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRy
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0g
MSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IsIENvbG9yRm9ybWF0ID0gQ29sb3JGb3Jt
YXQ6OkJHUkE4LCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0Nv
bnRleHQmKTsKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0aWJsZSB3aXRo
IHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29sdXRpb24gZm9yIGRyYXdpbmcgaW50byB0
aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXgg
ZjFmMzY3YzA2YTJhMGM5ZDk5MTNjOWM5MjM2YzE5NzM2ZWRlNTlhMi4uMTA2OTU1MjU4NmExMDYy
ZDgwMjk1OWYwZjA4MWYzNjQyMjBiMDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC0zMSwxMSArMzEs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdl
QnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXpl
JiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpCitJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
KQogICAgIDogbV9sb2dpY2FsU2l6ZShsb2dpY2FsU2l6ZSkKICAgICAsIG1fYmFja2VuZFNpemUo
YmFja2VuZFNpemUpCiAgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGUpCiAg
ICAgLCBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKKyAgICAsIG1fY29sb3JGb3JtYXQoY29sb3JG
b3JtYXQpCiB7CiB9CiAKQEAgLTEwNSw4ICsxMDYsOCBAQCBWZWN0b3I8dWludDhfdD4gSW1hZ2VC
dWZmZXJCYWNrZW5kOjp0b0JHUkFEYXRhKHZvaWQqIGRhdGEpIGNvbnN0CiAgICAgdWludDhfdCog
c3JjUm93cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEpOwogCiAgICAgY29weUlt
YWdlUGl4ZWxzKAotICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVk
LCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCi0gICAgICAg
IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgQ29sb3JGb3JtYXQ6OkJH
UkEsIGRlc3RCeXRlc1BlclJvdywgcmVzdWx0LmRhdGEoKSwgbV9sb2dpY2FsU2l6ZSk7CisgICAg
ICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIGNvbG9yRm9ybWF0KCks
IHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAorICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpVbnByZW11bHRpcGxpZWQsIENvbG9yRm9ybWF0OjpCR1JBOCwgZGVzdEJ5dGVzUGVyUm93LCBy
ZXN1bHQuZGF0YSgpLCBtX2xvZ2ljYWxTaXplKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC0yMDksNiArMjEwLDEwIEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhl
bHMoCiAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgQ29sb3JGb3Jt
YXQgc3JjQ29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNS
b3dzLAogICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0LCBDb2xvckZv
cm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCog
ZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CisgICAgLy8gV2UgZG9uJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEgd2l0aCBkZWVw
IGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0
OjpSR0JBOCB8fCBzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworICAgIEFT
U0VSVChkZXN0Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4IHx8IGRlc3RDb2xvckZv
cm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworCiAgICAgaWYgKHNyY0FscGhhRm9ybWF0ID09
IGRlc3RBbHBoYUZvcm1hdCkgewogICAgICAgICBpZiAoc3JjQWxwaGFGb3JtYXQgPT0gQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkKICAgICAgICAgICAgIGNvcHlJbWFnZVBp
eGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQ+KHNyY0Nv
bG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9yRm9ybWF0LCBkZXN0
Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKQEAgLTI1Miw4ICsyNTcsOCBAQCBSZWZQdHI8
SW1hZ2VEYXRhPiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRp
cGxpY2F0aW9uIG91dHB1dAogICAgIHVpbnQ4X3QqIHNyY1Jvd3MgPSByZWludGVycHJldF9jYXN0
PHVpbnQ4X3QqPihkYXRhKSArIHNyY1JlY3RDbGlwcGVkLnkoKSAqIHNyY0J5dGVzUGVyUm93ICsg
c3JjUmVjdENsaXBwZWQueCgpICogNDsKIAogICAgIGNvcHlJbWFnZVBpeGVscygKLSAgICAgICAg
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgYmFja2VuZENvbG9yRm9ybWF0
KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBvdXRwdXRGb3JtYXQsIENvbG9y
Rm9ybWF0OjpSR0JBLCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkp
OworICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBjb2xvckZv
cm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKKyAgICAgICAgb3V0cHV0Rm9ybWF0LCBD
b2xvckZvcm1hdDo6UkdCQTgsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RSZWN0LnNp
emUoKSk7CiAKICAgICByZXR1cm4gaW1hZ2VEYXRhOwogfQpAQCAtMjgzLDggKzI4OCw4IEBAIHZv
aWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBpbnB1dEZvcm1hdCwgY29uc3QKICAgICB1aW50OF90KiBzcmNSb3dzID0gaW1hZ2VEYXRhLmRh
dGEoKS0+ZGF0YSgpICsgc3JjUmVjdENsaXBwZWQueSgpICogc3JjQnl0ZXNQZXJSb3cgKyBzcmNS
ZWN0Q2xpcHBlZC54KCkgKiA0OwogCiAgICAgY29weUltYWdlUGl4ZWxzKAotICAgICAgICBpbnB1
dEZvcm1hdCwgQ29sb3JGb3JtYXQ6OlJHQkEsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAg
ICAgICBkZXN0Rm9ybWF0LCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgZGVzdEJ5dGVzUGVyUm93LCBk
ZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgaW5wdXRGb3JtYXQsIENvbG9yRm9y
bWF0OjpSR0JBOCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCisgICAgICAgIGRlc3RGb3JtYXQs
IGNvbG9yRm9ybWF0KCksIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RSZWN0LnNpemUo
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggYWE5YjM0MWEw
NTczZjJhZDRlOWVkMzA1N2MwNDIxZTk1OTFhZTVjMS4uMWI4YWI1OTdiMDg2ZjI2ZGNmYmNhMzUw
ZDMwY2E1MmY4NGI0OGE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTU1LDggKzU1LDEwIEBAIGVudW0gY2xh
c3MgUHJlc2VydmVSZXNvbHV0aW9uIDogdWludDhfdCB7CiB9OwogCiBlbnVtIGNsYXNzIENvbG9y
Rm9ybWF0IDogdWludDhfdCB7Ci0gICAgUkdCQSwKLSAgICBCR1JBCisgICAgUkdCQTgsCisgICAg
QkdSQTgsCisgICAgUkdCMTAsCisgICAgUkdCMTBBOCwKIH07CiAKIGNsYXNzIEltYWdlQnVmZmVy
QmFja2VuZCB7CkBAIC03Miw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIGJhY2tlbmRT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZW5kU2l6ZTsgfQogICAgIGZsb2F0IHJlc29sdXRp
b25TY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x1dGlvblNjYWxlOyB9CiAgICAgQ29sb3JT
cGFjZSBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgQ29s
b3JGb3JtYXQgY29sb3JGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yRm9ybWF0OyB9CiAK
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1
cm4gQWZmaW5lVHJhbnNmb3JtKCk7IH0KICAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkg
Y29uc3QgeyByZXR1cm4gNCAqIG1fYmFja2VuZFNpemUuYXJlYSgpLnVuc2FmZUdldCgpOyB9CkBA
IC0xMDQsMTAgKzEwNyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNB
Y2NlbGVyYXRlZCA9IGZhbHNlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgSW1h
Z2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpOworICAg
IFdFQkNPUkVfRVhQT1JUIEltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCk7CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVz
UGVyUm93KCkgY29uc3QgeyByZXR1cm4gNCAqIG1fYmFja2VuZFNpemUud2lkdGgoKTsgfQotICAg
IHZpcnR1YWwgQ29sb3JGb3JtYXQgYmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3QgeyByZXR1cm4g
Q29sb3JGb3JtYXQ6OlJHQkE7IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgVCB0
b0JhY2tlbmRDb29yZGluYXRlcyhUIHQpIGNvbnN0CkBAIC0xMzQsNiArMTM2LDIxIEBAIHByb3Rl
Y3RlZDoKICAgICBJbnRTaXplIG1fYmFja2VuZFNpemU7CiAgICAgZmxvYXQgbV9yZXNvbHV0aW9u
U2NhbGU7CiAgICAgQ29sb3JTcGFjZSBtX2NvbG9yU3BhY2U7CisgICAgQ29sb3JGb3JtYXQgbV9j
b2xvckZvcm1hdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JGb3JtYXQ+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OkNvbG9yRm9y
bWF0LAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0OjpSR0JBOCwKKyAgICBXZWJDb3JlOjpDb2xv
ckZvcm1hdDo6QkdSQTgsCisgICAgV2ViQ29yZTo6Q29sb3JGb3JtYXQ6OlJHQjEwLAorICAgIFdl
YkNvcmU6OkNvbG9yRm9ybWF0OjpSR0IxMEE4CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
VmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
VmlkZW9TYW1wbGUuY3BwCmluZGV4IDEwY2IwYTAzNjFlMDk4NDhjNDdhZGRkMWY1YzZlMzc0MDRh
NjRhYjAuLmE2MzUxNDdkMGJjYTNiNzZjZTEyZGY3NjQ4MjQ4YTNkYzgwYmFmMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGkKICAgICB9CiAK
ICAgICBJbnRTaXplIHNpemUgeyBzdGF0aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRXaWR0
aChwaXhlbEJ1ZmZlcikpLCBzdGF0aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQo
cGl4ZWxCdWZmZXIpKSB9OwotICAgIGF1dG8gaW9TdXJmYWNlID0gIElPU3VyZmFjZTo6Y3JlYXRl
KHNpemUsIHNSR0JDb2xvclNwYWNlUmVmKCksIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBKTsKKyAg
ICBhdXRvIGlvU3VyZmFjZSA9ICBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29sb3JTcGFj
ZVJlZigpLCBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQSk7CiAKICAgICBJT1N1cmZhY2U6OkxvY2tl
ciBsb2NrKCppb1N1cmZhY2UpOwogICAgIHZJbWFnZV9CdWZmZXIgc3JjOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0Jh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXggMjNiOTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcx
NmRlZjNhMS4uMDNlYTE2NjIwMTc2YzMxNTkwMzU0NGY2OTliNDFhNTQyYTJmNmY3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICB1c2luZyBJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2Vu
ZDsKIAotICAgIENvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIENvbG9yRm9ybWF0OjpCR1JBOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
VHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mKSB7IH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNr
ZW5kLmNwcAppbmRleCAzZjBlYjA4NDA3YzcyNTMzZGVhMWExNDlmYzdjZDVhNjgyN2U0MDllLi45
ZjZmNDE5ZmJjN2RkYjkyOGM5YjIxNmVhOTI5MTM2MDg0ZTZjY2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VT
dXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC00MSw4ICs0
MSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWlyb0lt
YWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KikK
K3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1h
Z2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xv
ckZvcm1hdCBjb2xvckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCiB7CisgICAgQVNTRVJUKGNv
bG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpCR1JBOCk7CisKICAgICBzdGF0aWMgY2Fpcm9fdXNl
cl9kYXRhX2tleV90IHNfc3VyZmFjZURhdGFLZXk7CiAKICAgICBJbnRTaXplIGJhY2tlbmRTaXpl
ID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKQEAgLTU5LDE2
ICs2MSwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJh
Y2tlbmQ+IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhYwogICAgICAgICBmYXN0RnJlZShkYXRh
KTsKICAgICB9KTsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWly
b0ltYWdlU3VyZmFjZUJhY2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFj
a2VuZChzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZN
b3ZlKHN1cmZhY2UpKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNh
aXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4obmV3IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VC
YWNrZW5kKHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNv
bG9yRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3Vy
ZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dCYpCiB7Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNr
ZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgbnVsbHB0cik7CisgICAgcmV0
dXJuIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwg
Q29sb3JTcGFjZTo6U1JHQiwgQ29sb3JGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKIH0KIAotSW1h
Z2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1
cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUm
IGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJiBzdXJmYWNlKQotICAgIDogSW1hZ2VCdWZmZXJD
YWlyb1N1cmZhY2VCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKQorSW1hZ2VCdWZmZXJDYWlyb0ltYWdl
U3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0
IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29s
b3JGb3JtYXQsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYgc3VyZmFjZSkKKyAgICA6IEltYWdl
QnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpCiB7
CiAgICAgQVNTRVJUKGNhaXJvX3N1cmZhY2VfZ2V0X3R5cGUobV9zdXJmYWNlLmdldCgpKSA9PSBD
QUlST19TVVJGQUNFX1RZUEVfSU1BR0UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tl
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmgKaW5kZXggMTYwMDM3OTRmZGFhOTQ3MzJiNjE1NTdj
NDFlODQ0MjMxYTk4YTcwMS4uMzU1MGVkODdmYjhhNDg1ODk4ZWI2YTljMjBhZmZkNjI2MjhiMGU5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2Vu
ZC5oCkBAIC00MCwxMSArNDAsMTEgQEAgY2xhc3MgSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFj
ZUJhY2tlbmQgOiBwdWJsaWMgSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW4KICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKTsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFj
a2VuZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNh
aXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZs
b2F0U2l6ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiBwcml2YXRlOgotICAgIEltYWdl
QnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYpOworICAgIEltYWdlQnVmZmVyQ2Fp
cm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENvbG9yRm9ybWF0LCBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiYmKTsKIAogICAgIHZvaWQgcGxh
dGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiYg
bG9va1VwVGFibGUpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAppbmRleCA4
YzVhYmY3YzkzZTc5NzEzZjcxM2E2ZGJkZTliYzAxN2YyMWY4OWJjLi45MTIxYTliODJjNzRiMzMz
ZjBlY2M2ZTYzZTU3MmZjNWZhYzVkNzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCkBAIC03
OSw3ICs3OSw3IEBAIHN0YXRpYyBSZWZQdHI8SW1hZ2U+IGNyZWF0ZUJpdG1hcEltYWdlQWZ0ZXJT
Y2FsaW5nSWZOZWVkZWQoUmVmUHRyPE5hdGl2ZUltYWdlPiYmCiAgICAgaWYgKHJlc29sdXRpb25T
Y2FsZSA9PSAxIHx8IHByZXNlcnZlUmVzb2x1dGlvbiA9PSBQcmVzZXJ2ZVJlc29sdXRpb246Olll
cykKICAgICAgICAgaW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKGNyZWF0ZUNyb3BwZWRJbWFn
ZUlmTmVjZXNzYXJ5KGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGJhY2tlbmRTaXplKSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250
ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXplLmhlaWdodCgpLCA4
LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VB
bHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0Yo
Q0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXpl
LmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYo
KSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMy
SG9zdCkpOwogICAgICAgICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29udGV4dC5nZXQoKSwga0NH
QmxlbmRNb2RlQ29weSk7CiAgICAgICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4dC5nZXQo
KSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgbG9naWNhbFNpemUpKTsKICAgICAgICAg
RmxvYXRTaXplIGltYWdlU2l6ZUluVXNlclNwYWNlID0gbG9naWNhbFNpemU7CkBAIC0xNjIsNyAr
MTYyLDcgQEAgUmV0YWluUHRyPENGRGF0YVJlZj4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OnRvQ0ZE
YXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGkKICAgICAgICAgaW1hZ2UgPSBjcmVhdGVD
cm9wcGVkSW1hZ2VJZk5lY2Vzc2FyeShpbWFnZS5nZXQoKSwgYmFja2VuZFNpemUoKSk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5n
U3RvcmUpLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0Yo
Q0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJhY2tlbmRTaXplKCkud2lkdGgoKSwgYmFja2VuZFNp
emUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tlbmRTaXplKCkud2lkdGgoKSwgc1JHQkNvbG9yU3Bh
Y2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAgICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJhY2tlbmRTaXplKCku
d2lkdGgoKSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tlbmRTaXplKCkud2lk
dGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJz
dCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0NvbnRleHRTZXRCbGVu
ZE1vZGUoY29udGV4dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAgICAgIENHQ29udGV4
dENsaXBUb1JlY3QoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBiYWNrZW5kU2l6ZSgp
LndpZHRoKCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCkpKTsKICAgICAgICAgQ0dDb250ZXh0RHJh
d0ltYWdlKGNvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UoMCwgMCwgYmFja2VuZFNpemUoKS53aWR0
aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwpAQCAtMjE5LDEyICsy
MTksMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlJbWFnZVBpeGVsc0FjY2VsZXJhdGVkKAog
ICAgIH0KIAogICAgIGlmIChkZXN0QWxwaGFGb3JtYXQgPT0gQWxwaGFQcmVtdWx0aXBsaWNhdGlv
bjo6VW5wcmVtdWx0aXBsaWVkKSB7Ci0gICAgICAgIGlmIChzcmNDb2xvckZvcm1hdCA9PSBDb2xv
ckZvcm1hdDo6UkdCQSkKKyAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0
OjpSR0JBOCkKICAgICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlEYXRhX1JHQkE4ODg4KCZz
cmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZJ
bWFnZVVucHJlbXVsdGlwbHlEYXRhX0JHUkE4ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFn
cyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9y
bWF0OjpSR0JBKQorICAgICAgICBpZiAoc3JjQ29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJH
QkE4KQogICAgICAgICAgICAgdkltYWdlUHJlbXVsdGlwbHlEYXRhX1JHQkE4ODg4KCZzcmMsICZk
ZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZJbWFnZVBy
ZW11bHRpcGx5RGF0YV9CR1JBODg4OCgmc3JjLCAmZGVzdCwga3ZJbWFnZU5vRmxhZ3MpOwpAQCAt
MjQxLDYgKzI0MSwxMCBAQCB2b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpjb3B5SW1hZ2VQaXhl
bHMoCiAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgQ29sb3JGb3Jt
YXQgc3JjQ29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNS
b3dzLAogICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0LCBDb2xvckZv
cm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCog
ZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CisgICAgLy8gV2UgZG9uJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEgd2l0aCBkZWVw
IGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0
OjpSR0JBOCB8fCBzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworICAgIEFT
U0VSVChkZXN0Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4IHx8IGRlc3RDb2xvckZv
cm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworCiAgICAgaWYgKHNyY0FscGhhRm9ybWF0ID09
IGRlc3RBbHBoYUZvcm1hdCAmJiBzcmNDb2xvckZvcm1hdCA9PSBkZXN0Q29sb3JGb3JtYXQpIHsK
ICAgICAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMoc3JjQWxwaGFGb3Jt
YXQsIHNyY0NvbG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdEFscGhhRm9y
bWF0LCBkZXN0Q29sb3JGb3JtYXQsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAKaW5kZXgg
NmMwMzNjNjM4MzhhZmUxYTBmNjI3ZDZiNDRhMTU0NmYzZmVlZTczMC4uYjE2ZWUyMWM5MmI4ODcx
NWFjOTQyNDI1ZjVhNjg1MjE4OWQxN2JiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kLmNwcApAQCAtMzcsMTYgKzM3LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi1jb25zdGV4cHIgY29uc3QgQ0dCaXRtYXBJbmZvIERlZmF1
bHRCaXRtYXBJbmZvID0ga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1h
cEJ5dGVPcmRlcjMySG9zdDsKLSNlbHNlCi1jb25zdGV4cHIgY29uc3QgQ0dCaXRtYXBJbmZvIERl
ZmF1bHRCaXRtYXBJbmZvID0ga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0OwotI2VuZGlm
Ci0KIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2Vu
ZCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gSW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYg
Y2dDb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShj
b25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYgY2dDb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xv
ckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCiB7CisgICAgQVNTRVJUX1VOVVNFRChjb2xvckZv
cm1hdCwgY29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OkJHUkE4KTsKKwogICAgIEludFNpemUg
YmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUp
OwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtNjIsNyArNTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoYwogICAgIHNpemVfdCBu
dW1CeXRlcyA9IGJhY2tlbmRTaXplLmhlaWdodCgpICogYnl0ZXNQZXJSb3c7CiAgICAgdmVyaWZ5
SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChkYXRhLCBudW1CeXRlcyk7CiAKLSAgICBhdXRvIGNnQ29u
dGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGJhY2tlbmRTaXplLndp
ZHRoKCksIGJhY2tlbmRTaXplLmhlaWdodCgpLCA4LCBieXRlc1BlclJvdywgY2dDb2xvclNwYWNl
LCBEZWZhdWx0Qml0bWFwSW5mbykpOworICAgIGF1dG8gY2dDb250ZXh0ID0gYWRvcHRDRihDR0Jp
dG1hcENvbnRleHRDcmVhdGUoZGF0YSwgYmFja2VuZFNpemUud2lkdGgoKSwgYmFja2VuZFNpemUu
aGVpZ2h0KCksIDgsIGJ5dGVzUGVyUm93LCBjZ0NvbG9yU3BhY2UsIGtDR0ltYWdlQWxwaGFQcmVt
dWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKICAgICBpZiAoIWNn
Q29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTc0LDI0ICs3MCwyNCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kOjpjcmVhdGUoYwogCiAgICAgYXV0byBkYXRhUHJvdmlkZXIgPSBhZG9wdENG
KENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgZGF0YSwgbnVtQnl0ZXMsIHJlbGVhc2VJ
bWFnZURhdGEpKTsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChzaXplLCBiYWNrZW5k
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBkYXRhLCBXVEZNb3ZlKGRhdGFQcm92
aWRlciksIFdURk1vdmUoY29udGV4dCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPihuZXcgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQo
c2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3Jt
YXQsIGRhdGEsIFdURk1vdmUoZGF0YVByb3ZpZGVyKSwgV1RGTW92ZShjb250ZXh0KSkpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGF1dG8gY2dDb2xvclNwYWNlID0gY29u
dGV4dENvbG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFj
ZS5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQo
KSwgQ29sb3JGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKICAgICAKLSAgICByZXR1cm4gSW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBu
dWxscHRyKTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShz
aXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBDb2xvckZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4g
SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1h
dCBjb2xvckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKIHsKLSAgICByZXR1
cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgaG9zdFdpbmRv
dyk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFj
ZSksIGNvbG9yRm9ybWF0LCBob3N0V2luZG93KTsKIH0KIAotSW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgdm9pZCogZGF0YSwgUmV0YWluUHRyPENHRGF0YVByb3Zp
ZGVyUmVmPiYmIGRhdGFQcm92aWRlciwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4m
JiBjb250ZXh0KQotICAgIDogSW1hZ2VCdWZmZXJDR0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZDo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgdm9pZCog
ZGF0YSwgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiYmIGRhdGFQcm92aWRlciwgc3RkOjp1
bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJiBjb250ZXh0KQorICAgIDogSW1hZ2VCdWZmZXJD
R0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIGNvbG9yRm9ybWF0KQogICAgICwgbV9kYXRhKGRhdGEpCiAgICAgLCBtX2RhdGFQcm92
aWRlcihXVEZNb3ZlKGRhdGFQcm92aWRlcikpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250
ZXh0KSkKQEAgLTExNiw3ICsxMTIsNyBAQCBSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weQogICAgIGNh
c2UgRG9udENvcHlCYWNraW5nU3RvcmU6CiAgICAgICAgIHJldHVybiBOYXRpdmVJbWFnZTo6Y3Jl
YXRlKGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZSgKICAgICAgICAgICAgIG1fYmFja2VuZFNpemUud2lk
dGgoKSwgbV9iYWNrZW5kU2l6ZS5oZWlnaHQoKSwgOCwgMzIsIGJ5dGVzUGVyUm93KCksCi0gICAg
ICAgICAgICBjYWNoZWRDR0NvbG9yU3BhY2UobV9jb2xvclNwYWNlKSwgRGVmYXVsdEJpdG1hcElu
Zm8sIG1fZGF0YVByb3ZpZGVyLmdldCgpLAorICAgICAgICAgICAgY2FjaGVkQ0dDb2xvclNwYWNl
KG1fY29sb3JTcGFjZSksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRt
YXBCeXRlT3JkZXIzMkhvc3QsIG1fZGF0YVByb3ZpZGVyLmdldCgpLAogICAgICAgICAgICAgMCwg
dHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZC5oCmluZGV4IDdkMjMzZDIyMjc4NWFkM2RkZjA2M2M0YTg2NDhmZGZm
YWNlN2NmOTkuLjQ2NmQ3ZmE1ZTUyM2YxZGI4ZTYzOWE0ODllNGRmMjYyY2FhNDE2ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaApAQCAtMzYsOCArMzYsOCBAQCBjbGFzcyBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZCA6IHB1YmxpYyBJbWFnZUJ1ZmZlckNHQmFja2VuZCB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZCk7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQpOwogcHVi
bGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEhvc3RX
aW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIENvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93
Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSwgQ29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqKTsKICAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUyLDExICs1Miw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9IHRydWU7CiAK
IHByaXZhdGU6Ci0gICAgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRl
clJlZj4mJiwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJik7Ci0KLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIENvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbG9yRm9ybWF0OjpCR1JBOyB9Ci0jZW5kaWYKKyAgICBJ
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSwgQ29sb3JGb3JtYXQsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJl
Zj4mJiwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJik7CiAKICAgICB2b2lkKiBt
X2RhdGE7CiAgICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBtX2RhdGFQcm92aWRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGE5ZDU0ODVhMjYxYjVh
MGRmNTNkMmI4OTcxMGFlODM3ZmJmOWIxYWUuLjBmNzgzN2MwZTg2YzcyOGI4NjY5YjY0Mzg5MmY5
ZWQ4NjUxNTRmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAt
NjQsMTMgKzY0LDEzIEBAIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IEltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZDo6Y29udGV4dENvbG9yU3BhY2UoY29uc3QKICAgICByZXR1cm4gSW1hZ2VC
dWZmZXJDR0JhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnRleHQpOwogfQogCi1zdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYgY2dDb2xvclNwYWNl
LCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29s
b3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAgSW50U2l6ZSBi
YWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKHNpemUsIHJlc29sdXRpb25TY2FsZSk7
CiAgICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFj
a2VuZFNpemUsIGNnQ29sb3JTcGFjZSk7CisgICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpj
cmVhdGUoYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBjZ0NvbG9yU3BhY2UsIElPU3VyZmFjZTo6
Zm9ybWF0Rm9yQ29sb3JGb3JtYXQoY29sb3JGb3JtYXQpKTsKICAgICBpZiAoIXN1cmZhY2UpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC04MCwyNSArODAsMjQgQEAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kOjpjcmVhdGUKIAogICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZs
b2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXplKSk7CiAKLSAgICByZXR1cm4g
bWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoc3VyZmFjZSkpOworICAgIHJl
dHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4oc2l6ZSwgYmFja2Vu
ZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUo
c3VyZmFjZSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUm
IHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBpZiAoYXV0byBj
Z0NvbG9yU3BhY2UgPSBjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KSkKLSAgICAgICAgcmV0dXJu
IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6
OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdC
LCBjZ0NvbG9yU3BhY2UuZ2V0KCksIENvbG9yRm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CiAgICAg
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEs
IENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBDb2xvckZvcm1h
dDo6QkdSQTgsIG51bGxwdHIpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cq
IGhvc3RXaW5kb3cpCiB7Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6
Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVkQ0dDb2xvclNw
YWNlKGNvbG9yU3BhY2UpLCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBj
YWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIGNvbG9yRm9ybWF0LCBob3N0V2luZG93KTsK
IH0KIAotCi1JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIHN0
ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYgc3VyZmFjZSkKLSAgICA6IEltYWdlQnVmZmVyQ0dC
YWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlKQorSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xv
ckZvcm1hdCBjb2xvckZvcm1hdCwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNl
KQorICAgIDogSW1hZ2VCdWZmZXJDR0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KQogICAgICwgbV9zdXJmYWNl
KFdURk1vdmUoc3VyZmFjZSkpCiB7CiAgICAgQVNTRVJUKG1fc3VyZmFjZSk7CkBAIC0xMzAsMTEg
KzEyOSw2IEBAIHVuc2lnbmVkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Ynl0ZXNQZXJS
b3coKSBjb25zdAogICAgIHJldHVybiBtX3N1cmZhY2UtPmJ5dGVzUGVyUm93KCk7CiB9CiAKLUNv
bG9yRm9ybWF0IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6YmFja2VuZENvbG9yRm9ybWF0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ29sb3JGb3JtYXQ6OkJHUkE7Ci19Ci0KIFJlZlB0cjxO
YXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Uo
QmFja2luZ1N0b3JlQ29weSkgY29uc3QKIHsKICAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0
ZShtX3N1cmZhY2UtPmNyZWF0ZUltYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuaAppbmRleCBmNTA5ZWVlNjVhNzIyZTEyMDFmZmMwZmI1NzdjZmI4MmJmZWM2OTBjLi4zNzJi
MmIzYWQ3MTZlY2FiZjUwZmRlZGQ0ZWNjNjA4M2YzZTliZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQuaApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCA6IHB1YmxpYyBJbWFnZUJ1ZmZlckNHQmFja2Vu
ZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlQmFja2VuZFNpemUoY29u
c3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlKTsKIAotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVh
dGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBD
R0NvbG9yU3BhY2VSZWYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyop
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
PiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlLCBDR0NvbG9yU3BhY2VSZWYsIENvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93Kik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKIAotICAgIEltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNh
bFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4mJik7CisgICAgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCwgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4mJik7CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlOwpAQCAtNjksNyArNjks
NiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIFJldGFpblB0cjxDR0NvbG9yU3Bh
Y2VSZWY+IGNvbnRleHRDb2xvclNwYWNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogICAgIHVu
c2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3JGb3JtYXQgYmFj
a2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiBtX3N1cmZhY2U7CiAgICAgbXV0YWJsZSBib29sIG1fcmVxdWlyZXNEcmF3QWZ0
ZXJQdXRJbWFnZURhdGEgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCA4N2E2NWExYTA1MGFhYmU2MGU1MGMz
YTFjMjMxMzM5ZGVhZjZiODg1Li45MTVhZWVkOTM5Mjc3NzlkZDUyNjUxZDY5MzlkMWU3Yjc0ODc0
ZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9J
T1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9J
T1N1cmZhY2UuaApAQCAtNDksMTcgKzQ5LDIxIEBAIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJ
bWFnZUJ1ZmZlcjsKICNlbmRpZgogCitlbnVtIGNsYXNzIENvbG9yRm9ybWF0IDogdWludDhfdDsK
KwogY2xhc3MgSU9TdXJmYWNlIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIEZvcm1hdCB7Ci0gICAgICAgIFJHQkEsCisgICAgICAg
IEJHUkEsCiAgICAgICAgIFlVVjQyMiwKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKICAgICAg
ICAgUkdCMTAsCiAgICAgICAgIFJHQjEwQTgsCiAjZW5kaWYKICAgICB9OworCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIElPU3VyZmFjZTo6Rm9ybWF0IGZvcm1hdEZvckNvbG9yRm9ybWF0KFdl
YkNvcmU6OkNvbG9yRm9ybWF0KTsKICAgICAKICAgICBjbGFzcyBMb2NrZXIgewogICAgIHB1Ymxp
YzoKQEAgLTk0LDggKzk4LDggQEAgcHVibGljOgogICAgICAgICB1aW50MzJfdCBtX2ZsYWdzOwog
ICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gY3JlYXRlKEludFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpS
R0JBKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gY3JlYXRlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwg
Rm9ybWF0ID0gRm9ybWF0OjpSR0JBKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9y
bWF0ID0gRm9ybWF0OjpCR1JBKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENH
Q29sb3JTcGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVNlbmRSaWdodChj
b25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmJiwgQ0dDb2xvclNwYWNlUmVmKTsKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVm
LCBDR0NvbG9yU3BhY2VSZWYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXgg
OTFiMTQxYTUwM2JiMjdiZDQyN2FmM2Y3MmE0ZDIxM2FiYjM4ZmRjMy4uYjc2YTBmZTVhNzQzMGRm
OTY0OWY2MDQyNmM1MjJiNTFjM2MyNTFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIElP
U3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dD
b2xvclNwYWNlUmVmIGNvbG9yU3BhCiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zOwogCiAgICAg
c3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEZvcm1hdDo6UkdCQToKKyAgICBjYXNlIEZvcm1h
dDo6QkdSQToKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnNGb3IzMkJpdFN1cmZhY2Uoc2l6ZSwg
J0JHUkEnKTsKICAgICAgICAgYnJlYWs7CiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCkBAIC0y
NzksNyArMjc5LDcgQEAgQ0dDb250ZXh0UmVmIElPU3VyZmFjZTo6ZW5zdXJlUGxhdGZvcm1Db250
ZXh0KGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiAgICAgc2l6ZV90IGJpdHNQZXJQaXhl
bCA9IDMyOwogICAgIAogICAgIHN3aXRjaCAoZm9ybWF0KCkpIHsKLSAgICBjYXNlIEZvcm1hdDo6
UkdCQToKKyAgICBjYXNlIEZvcm1hdDo6QkdSQToKICAgICAgICAgYnJlYWs7CiAjaWYgSEFWRShJ
T1NVUkZBQ0VfUkdCMTApCiAgICAgY2FzZSBGb3JtYXQ6OlJHQjEwOgpAQCAtMzU2LDcgKzM1Niw3
IEBAIElPU3VyZmFjZTo6Rm9ybWF0IElPU3VyZmFjZTo6Zm9ybWF0KCkgY29uc3QKIHsKICAgICB1
bnNpZ25lZCBwaXhlbEZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KG1fc3VyZmFjZS5n
ZXQoKSk7CiAgICAgaWYgKHBpeGVsRm9ybWF0ID09ICdCR1JBJykKLSAgICAgICAgcmV0dXJuIEZv
cm1hdDo6UkdCQTsKKyAgICAgICAgcmV0dXJuIEZvcm1hdDo6QkdSQTsKIAogI2lmIEhBVkUoSU9T
VVJGQUNFX1JHQjEwKQogICAgIGlmIChwaXhlbEZvcm1hdCA9PSAndzMwcicpCkBAIC0zNzAsNyAr
MzcwLDcgQEAgSU9TdXJmYWNlOjpGb3JtYXQgSU9TdXJmYWNlOjpmb3JtYXQoKSBjb25zdAogICAg
ICAgICByZXR1cm4gRm9ybWF0OjpZVVY0MjI7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gRm9ybWF0OjpSR0JBOworICAgIHJldHVybiBGb3JtYXQ6OkJHUkE7CiB9CiAK
IElPU3VyZmFjZUlEIElPU3VyZmFjZTo6c3VyZmFjZUlEKCkgY29uc3QKQEAgLTQ1OSwxMSArNDU5
LDM2IEBAIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiAg
ICAgSU9TdXJmYWNlU2V0VmFsdWUobV9zdXJmYWNlLmdldCgpLCBrSU9TdXJmYWNlQ29sb3JTcGFj
ZSwgY29sb3JTcGFjZVByb3BlcnRpZXMuZ2V0KCkpOwogfQogCitJT1N1cmZhY2U6OkZvcm1hdCBJ
T1N1cmZhY2U6OmZvcm1hdEZvckNvbG9yRm9ybWF0KENvbG9yRm9ybWF0IGZvcm1hdCkKK3sKKyAg
ICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQkE4OgorICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSU9TdXJmYWNl
OjpGb3JtYXQ6OkJHUkE7CisgICAgY2FzZSBDb2xvckZvcm1hdDo6QkdSQTg6CisgICAgICAgIHJl
dHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKKyNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkK
KyAgICBjYXNlIENvbG9yRm9ybWF0OjpSR0IxMDoKKyAgICAgICAgcmV0dXJuIElPU3VyZmFjZTo6
Rm9ybWF0OjpSR0IxMDsKKyAgICBjYXNlIENvbG9yRm9ybWF0OjpSR0IxMEE4OgorICAgICAgICBy
ZXR1cm4gSU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwQTg7CisjZWxzZQorICAgIGNhc2UgQ29sb3JG
b3JtYXQ6OlJHQjEwOgorICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwQTg6CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJT1N1cmZhY2U6OkZv
cm1hdDo6QkdSQTsKKyNlbmRpZgorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKK30KKwogc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIElPU3VyZmFjZTo6Rm9ybWF0IGZvcm1hdCkK
IHsKICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6OlJH
QkE6Ci0gICAgICAgIHRzIDw8ICJSR0JBIjsKKyAgICBjYXNlIElPU3VyZmFjZTo6Rm9ybWF0OjpC
R1JBOgorICAgICAgICB0cyA8PCAiQkdSQSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSU9T
dXJmYWNlOjpGb3JtYXQ6OllVVjQyMjoKICAgICAgICAgdHMgPDwgIllVVjQyMiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCBmZmQ5NGI1MjljMDZhN2Uy
Y2RlMDBlYzk0YjM1NWM4NWRkYWZiNGMzLi5hMWEzMGFmNTlkMGM2YmQ0NzRhZjExYmEzOWJiMjQ1
NDY2NDA0MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgK
QEAgLTM2LDkgKzM2LDkgQEAgY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFn
ZUJ1ZmZlcjxCYWNrZW5kVHlwZT4gewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVy
ID0gQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAKIHB1YmxpYzoKLSAgICBzdGF0
aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykK
KyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3Jt
YXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiAgICAgewotICAgICAgICByZXR1cm4g
QmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxJbWFnZUJ1ZmZlcj4oc2l6
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBzaXplKTsKKyAgICAg
ICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1hZ2VC
dWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGhv
c3RXaW5kb3csIHNpemUpOwogICAgIH0KIAogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgK
aW5kZXggM2RiYWFmOWYyZWM2YmQxMTI3ZDUxYzExN2UwYzFjNzA1NmNkMjVkMy4uNDc2M2JiNTM3
MjA4NDgyZjU2NmRkMDVkNzZmY2ZjNjc4NTJlMTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTQ0LDkgKzQ0
LDkgQEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q29uY3JldGVJ
bWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmwKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0IGNvbG9yRm9y
bWF0LCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1w
bGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0
ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIG51bGxwdHIsIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQs
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgUmVtb3RlSW1hZ2VC
dWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBAIC01NCw3ICs1
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQocmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgewotICAgICAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChtX2JhY2tlbmQtPmxv
Z2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0
aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7Cisg
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5pbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVh
dGVkKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgpLCBt
X2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwgbV9i
YWNrZW5kLT5jb2xvckZvcm1hdCgpLCBtX2JhY2tlbmQtPmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIH5S
ZW1vdGVJbWFnZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZWE1NjQzMjYx
ZTI5OWUxMGQzOTE1MDRiNzUwNTA5OTk2Mjc0NGNhOS4uMWM3ZWQ4YWYwODI1N2U5YjFmMWU5MzI3
ZmQ2YzUxZTk1YjhlNWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtOTYsOSArOTYs
OSBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5TWVkaWFJdGVtKERpc3BsYXlM
aXN0OjpJdGVtSGFuZGxlIGl0ZW0sIEdyYXBoaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29u
c3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppbWFnZUJ1
ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGxvZ2ljYWxTaXplLCBiYWNrZW5k
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6SW1hZ2VCdWZm
ZXJCYWNrZW5kV2FzQ3JlYXRlZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAK
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRl
ZChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTEwNiwx
NyArMTA2LDE3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlz
dFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVuCiAgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVk
KGZsdXNoSWRlbnRpZmllciwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3Jt
YXQgY29sb3JGb3JtYXQsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6QWNjZWxlcmF0ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkKTsKIAogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXI7CiAKICAg
ICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9n
aWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1v
dGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIGNvbG9yRm9ybWF0LCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
IAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVy
YXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAg
ICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsICp0
aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZl
cikgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmlu
ZGV4IGIzNmI5ZGQ2MDY0ZWU1YTUxNjNjNjhlNDE5NDc2MzFmZTA5MTMxMzIuLjU4NjI1YTI0YWU5
NGM1YTEwZDlkZDNlNWVjY2VkMDVjNjk4MDJiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAt
NjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhcHBseU1lZGlhSXRlbShXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUhhbmRsZSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKICAg
ICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgotICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2Fz
Q3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVh
dGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBmbHVzaERp
c3BsYXlMaXN0V2FzQ29tbWl0dGVkKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNl
dE5leHRJdGVtQnVmZmVyVG9SZWFkKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRl
bnRpZmllcik7CkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUg
cmVjZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0LCBX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgd2FrZVVwQW5k
QXBwbHlEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZp
ZXIgaW5pdGlhbElkZW50aWZpZXIsIHVpbnQ2NF90IGluaXRpYWxPZmZzZXQsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwog
ICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJl
ZmVyZW5jZSYmKT4mJik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4KaW5kZXggNmYyZTJhYmRmOTI2YmNkNGEwNGMyMzU1OGU2NWI5OTZhNWEwNjA4
Mi4uNjgwMzg5MzUwMTczNmFjZmRlNWM1MWY2ZDJhODI1MGMyNDgzZGZhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgTm90
UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxv
Z2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQor
ICAgIENyZWF0ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2Vi
Q29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OkNv
bG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIFdha2VVcEFuZEFwcGx5RGlzcGxh
eUxpc3QoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGluaXRpYWxJ
ZGVudGlmaWVyLCB1aW50NjRfdCBpbml0aWFsT2Zmc2V0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQogICAgIEdldEltYWdl
RGF0YShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRG
b3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgLT4gKElQQzo6SW1hZ2VE
YXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMKICAgICBEaWRDcmVhdGVTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUsIFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50
aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBiMjI2
ODhlMGRiYzE5MmViNjdmNzhiNTE1MjRlYzUxZWQ3MTlkMzMzLi5iOTI2NWVhZWI4YmJjNDI5ZWFj
ZjExOWFlZTEyOWVlNTdmNTc3ODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKQEAgLTU5Niw5ICs1OTYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToK
ICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddLAogICAgICAgICAn
UEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4nXSwKKyAg
ICAgICAgJ1dlYkNvcmU6OkNvbG9yRm9ybWF0JzogWyc8V2ViQ29yZS9JbWFnZUJ1ZmZlckJhY2tl
bmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxX
ZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCi0g
ICAgICAgICdXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0JzogWyciRG9jdW1l
bnRFZGl0aW5nQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3MnOiBbJzxXZWJDb3JlL0RyYWdEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFn
SGFuZGxpbmdNZXRob2QnOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpEcmFnT3BlcmF0aW9uJzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLApAQCAt
NjcyLDYgKzY3Miw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2Vi
S2l0OjpBbGxvd092ZXJ3cml0ZSc6IFsnIkRvd25sb2FkSUQuaCInXSwKICAgICAgICAgJ1dlYktp
dDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJzogWyciU2Vzc2lvblN0YXRlLmgiJ10sCiAgICAg
ICAgICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXInOiBbJyJDb250ZW50V29ybGRTaGFy
ZWQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Qn
OiBbJyJEb2N1bWVudEVkaXRpbmdDb250ZXh0LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkZpbmRP
cHRpb25zJzogWyciV2ViRmluZE9wdGlvbnMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6R2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSc6IFsnIkdlc3R1cmVUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0
OjpHZXN0dXJlVHlwZSc6IFsnIkdlc3R1cmVUeXBlcy5oIiddLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tCmluZGV4IGNlZjVhOWVkNGUyZDRmZTAxYjNiN2MzNjAwYjI1NTc3YzY2MDhiNDMu
LjAxZDYzNGEyNWUxMDc2NjJjOWIxM2EwYzllZThiMmRjNGUxMGNiN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUubW0KQEAgLTE2Niw3ICsxNjYsNyBAQCBXZWJDb3JlOjpJbnRTaXplIFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpiYWNraW5nU3RvcmVTaXplKCkgY29uc3QKIHVuc2lnbmVk
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRlc1BlclBpeGVsKCkgY29uc3QKIHsKICAgICBz
d2l0Y2ggKHN1cmZhY2VCdWZmZXJGb3JtYXQoKSkgewotICAgIGNhc2UgV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQ6OlJHQkE6IHJldHVybiA0OworICAgIGNhc2UgV2ViQ29yZTo6SU9TdXJmYWNl
OjpGb3JtYXQ6OkJHUkE6IHJldHVybiA0OwogICAgIGNhc2UgV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQ6OllVVjQyMjogcmV0dXJuIDI7CiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCiAgICAg
Y2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTA6IHJldHVybiA0OwpAQCAtNDc0
LDcgKzQ3NCw3IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOjpzdXJmYWNlQnVmZmVyRm9ybWF0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIG1faXNP
cGFxdWUgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1
cmZhY2U6OkZvcm1hdDo6UkdCMTBBODsKICNlbmRpZgogCi0gICAgcmV0dXJuIFdlYkNvcmU6OklP
U3VyZmFjZTo6Rm9ybWF0OjpSR0JBOworICAgIHJldHVybiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZv
cm1hdDo6QkdSQTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvU2hhcmVhYmxlQml0bWFwLmNwcAppbmRleCA3ZTM0MTQzOGIwYmU4YmM2ZjcwZTNmMTQ3Njdh
YmFlMzA1NjFkMDc0Li44NDQ4ODdiYmMzYjFiM2E0MzM4NDEyZTk0M2M5ZDY5MmNiMWI2MmIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKQEAgLTE0OSw3ICsxNDks
NiBAQCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShjb25z
dCBJbnRTaXplJiBzaXplLCBDb25maWd1cmF0aQogCiBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBT
aGFyZWFibGVCaXRtYXA6OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhhbmRsZSwgU2hhcmVkTWVtb3J5
OjpQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiB7Ci0gICAgLy8gQ3JlYXRlIHRoZSBzaGFyZWQgbWVt
b3J5LgogICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLm1f
aGFuZGxlLCBwcm90ZWN0aW9uKTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCmluZGV4IDFhZTdhZTA5ZmYyNGFkY2M4NzE1ODdiOTEwY2QzYTY2MjUxMmY4NDIu
LjRiNzY2MmExNjQ1OTRkZTZlNDNmZTQ0NDQ4ZTA5MjM3ZDcyYmVmMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0xMDA2LDkgKzEw
MDYsOSBAQCAtIChSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90
CiAgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRl
dmljZVNjYWxlLCBkZXZpY2VTY2FsZSwgMSk7CiAKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkK
LSAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6
OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpzY3JlZW5TdXBw
b3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogI2Vsc2UKLSAgICBXZWJDb3JlOjpJ
T1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9y
bWF0OjpSR0JBOworICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0
ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZW5kaWYKICAgICBhdXRvIHN1
cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZEludFNp
emUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25hcHNob3RG
b3JtYXQpOwogICAgIGlmICghc3VyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmNwcAppbmRleCBjM2JlZWY1ZDE0MGI3MjQzOGRjNzUwNTYwM2Fl
OWE0Y2RlMmExMWIzLi4wNWZmNjZiYTAxNWVlNmNhYTkwZmZmOGM5NWYyYzFmYWMwZTFkMTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCkBA
IC00Myw4ICs0MywxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZCk7CiAKLXN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IEltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RX
aW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqKQogeworICAgIEFTU0VS
VF9VTlVTRUQoY29sb3JGb3JtYXQsIGNvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpSR0JBOCk7
CisKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwg
cmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTYxLDEwICs2MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhYwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KHNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoYml0bWFw
KSwgV1RGTW92ZShjb250ZXh0KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRl
eHQpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFj
a2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xv
ckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKICAgICBpZiAoIVdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8U2hhcmVhYmxlQml0bWFwOjpIYW5kbGU+KGhhbmRsZSkpIHsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC03OSwxMSArODEsMTEgQEAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWMKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kPihsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBi
YWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RG
TW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKIH0KIAotSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4mJiBiaXRtYXAsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29u
dGV4dCkKLSAgICA6IFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBwaHlz
aWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSkKK0ltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNvbnN0
IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNv
bG9yRm9ybWF0LCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYmIGJpdG1hcCwgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzQ29udGV4dD4mJiBjb250ZXh0KQorICAgIDogUGxhdGZvcm1JbWFnZUJ1ZmZl
ckJhY2tlbmQobG9naWNhbFNpemUsIHBoeXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBjb2xvckZvcm1hdCkKICAgICAsIG1fYml0bWFwKFdURk1vdmUoYml0bWFwKSkKICAg
ICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKaW5kZXggOWUyNGFiOTllYmM2NzVjZTIwMWE1OTM5
NzI4YzYxOWRiYTU5NWVjMy4uNzNlMTIzMWY3YjZkNGU2NDNlY2EzZDhlMWJmMTZmZDAyNDdhYzhj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCkBA
IC00MywxMCArNDMsMTAgQEAgY2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VCdWZmZXJCYWMKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZCk7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgY29uc3Qg
V2ViQ29yZTo6SG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Us
IFdlYkNvcmU6OkNvbG9yRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+
IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSk7CiAKLSAgICBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGh5
c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFJl
ZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ+JiYpOworICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+JiYpOwogCiAgICAgSW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Owog
CkBAIC02MCw4ICs2MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1dEltYWdlRGF0YShXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFn
ZURhdGEmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RG
b3JtYXQpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0IGJh
Y2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYkNvcmU6OkNvbG9y
Rm9ybWF0OjpCR1JBOyB9Ci0KICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBtX2JpdG1hcDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCAwMWU1M2UxNWM0YjFkMWY1MGFm
ZDcwYmRjYzliMTY4NDQ5NmU1ZDYzLi40NjZhOGIwNzdkYjI3ZDI1OTlmODQwZTI5ZmNhOWI2YmVm
MWIwN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNjQsMTAgKzY0LDEwIEBA
IHB1YmxpYzoKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCi0g
ICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSkKKyAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBX
ZWJDb3JlOjpDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGhhbmRsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9iYWNrZW5kKTsKLSAgICAgICAgbV9i
YWNrZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAgICAgICAgbV9i
YWNrZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7
CiAgICAgfQogCiAgICAgdm9pZCBjb21taXRGbHVzaERpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGIxYzAzYjNhZGE4NzQ4NDJkYzE3MzAzZGNh
NDE5OTA5M2IwNTM4ZmEuLmI2ZjhhYjM4Mjg4NjZmYjNkNjIzN2FlNWIwOTBhNTRlM2NmNmJlMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JGbHVzaERpc3Bs
YXlMaXN0V2FzQ29tbWl0dGVkKCkKICAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERp
c3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Rmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ciwgMV9zLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdl
QXJyaXZlcyk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UpCitSZWZQdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IGltYWdlQnVmZmVyOwogCkBAIC0xMDAsNyArMTAwLDcgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2kKICAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eTo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgKnRoaXMpOwogCiAgICAgaWYgKGlt
YWdlQnVmZmVyKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
KSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmlu
Z01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGltYWdlQnVm
ZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSksIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOwogICAgICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZUltYWdl
QnVmZmVyKGltYWdlQnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgaW1hZ2VC
dWZmZXIuZ2V0KCkpOwogICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiAgICAgfQpAQCAtMTQ1
LDE2ICsxNDUsMTYgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWYKICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXND
cmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9n
aWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IG1f
cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNhY2hlZEltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGlmIChpbWFnZUJ1ZmZlci0+aXNBY2NlbGVyYXRlZCgpKQotICAgICAgICBkb3du
Y2FzdDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3Jl
YXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAgICAgICAgZG93bmNhc3Q8QWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5PigqaW1hZ2VCdWZmZXIpLmNyZWF0ZUJhY2tlbmQobG9naWNh
bFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9y
bWF0LCBXVEZNb3ZlKGhhbmRsZSkpOwogICAgIGVsc2UKLSAgICAgICAgZG93bmNhc3Q8VW5hY2Nl
bGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2Vu
ZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
V1RGTW92ZShoYW5kbGUpKTsKKyAgICAgICAgZG93bmNhc3Q8VW5hY2NlbGVyYXRlZFJlbW90ZUlt
YWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdU
Rk1vdmUoaGFuZGxlKSk7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpm
bHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIg
Zmx1c2hJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5k
ZXggYWJhOTYyZTQwODkzOGNmMGZiMmUzNGQ1YmEwODAzYTJlMGNhNDcyNy4uZWQwNTBiNTc1YTli
YzFmNGU4NzBlNzFjMzY0ZDRkOWJjNTMwM2QwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAg
ICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZm
ZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6
OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0
KTsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHNyY1JlY3QsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBzdWJtaXREaXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25C
dWZmZXJJZGVudGlmaWVyKTsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlm
aWVyIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKQEAg
LTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVJldXNhYmxlSGFuZGxlcygp
OwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuCi0gICAgdm9pZCBpbWFnZUJ1ZmZl
ckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGltYWdlQnVmZmVyQmFj
a2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIGZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZs
dXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAog
ICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggN2UzNDMzNTQ3NThmMjYyMmVlNmEzOGJkMjcwYWJiNTY1ZTUxMjUwMy4uYzMzMjkxMDE2
YWUxMmU0NTY0ZDlmYWE1NGI2NWE3YzY3NjJkNGU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVk
KFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAg
ICBJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2Fs
U2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGVudW06dWludDhfdCBXZWJDb3JlOjpD
b2xvckZvcm1hdCBjb2xvckZvcm1hdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUg
aGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQogICAgIEZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCAwNmYzOTkxM2ZjNjdiNjgyMmVjMmYxZTgxYTM0YjM4
MzcxNThlMWZmLi4yMzlhNjA2MGRjNWMwMTEzNzNlMDZhYmFiYzEzYjU4ODhiNDA3YjhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQpOwogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0
ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBj
b25zdCBIb3N0V2luZG93KikKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRl
QmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gc3VyZmFjZSA9
IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2FjaGVkQ0dDb2xv
clNwYWNlKGNvbG9yU3BhY2UpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0
ZShiYWNrZW5kU2l6ZSwgYmFja2VuZFNpemUsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNl
KSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JDb2xvckZvcm1hdChjb2xvckZvcm1hdCkpOwogICAgIGlm
ICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTUzLDEwICs1MywxMCBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZgogCiAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0KGNnQ29u
dGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgYmFja2VuZFNpemUpKTsK
IAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RG
TW92ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKLXN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUp
CitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1h
dCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKICAgICBpZiAoIVdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgewogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTY3LDcgKzY3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmYK
ICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJu
IG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihsb2dpY2Fs
U2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUo
c3VyZmFjZSkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZD4obG9naWNhbFNpemUsIGludGVybmFsU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6
OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAppbmRleCA5
NTYxOTRiNDg0OGM4MmQ0OThiYTViYzkwZDAzZTc2ODY5MTJmZTFkLi5jMzgwOTYwZmI1ZjczOTky
OTQzZGUzYzk1ZWZiNmVkNWNmMTZmZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTM5LDggKzM5LDggQEAg
Y2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kIDogcHVibGljIFdlYkNv
cmU6OkltYWdlQnVmZmVySU9TdXJmYWMKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgY29uc3QgV2ViQ29yZTo6
SG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdl
YkNvcmU6OkNvbG9yRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+
IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSk7CiAKICAgICB1c2luZyBXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCBmZWRjM2RiMTBhZDc3M2JkNTUzNjMyNmZhYjFjMTc0MDg1Y2IxNmQwLi5iNDNiYTc5MDkyZWJm
ZTJjMzdjMDg4MTY5YWFmYjNhOGZmYmU0ODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
OTEwLDEyICs5MTAsMTIgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBXZWJDaHJvbWVD
bGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgKICAgICByZXR1cm4gKm1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpIGNvbnN0CitSZWZQdHI8
SW1hZ2VCdWZmZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBv
c2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KSBjb25zdAogewogICAgIGlmICghV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKHB1cnBvc2UpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkoKS5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgIHJldHVybiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkoKS5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KTsKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxNzFmYTYzMzNkY2UzMjNj
MDBjNzhjZWJkZTI3M2YwMGU2YzkwZjAyLi5jNTkzNDdlNmZmMTNlNzUxMzM4ZTU2ZjMyZjViYzNi
MjY4YjgyM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNDQsNyArMjQ0LDcgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkmIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpIGNvbnN0OwotICAgIFJl
ZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgV2ViQ29yZTo6UmVuZGVyaW5n
UHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKSBjb25z
dCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIFdl
YkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6
Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAK
ICAgICBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycygp
IGNvbnN0IGZpbmFsCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjQ4YTdlZDU1NjBiZDFkMmQwNjBkOTc1OTg1OWIxMmI2OTMyYWU2YS4uYWEzZjgw
OTkwZTYxODdhMWU2Yzc4ODVkOTZmMWI1ZjRhZTU3MTRlYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTEx
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBt
aW5pbWFsIHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8g
SW1hZ2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW06CisgICAgICAg
IChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorCiAyMDIwLTExLTExICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVByb2Nlc3NdIFNlYW1sZXNz
bHkgcmVzdW1lIFdlYkF1ZGlvIHBsYXliYWNrIGlmIHRoZSBHUFUgUHJvY2VzcyBjcmFzaGVzCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCmluZGV4
IDYxNzhkMmE1YjQ2ODc1ZTc4MWVhMzliNDljNDUyYWM3M2I1NTIzMDkuLmQ3MDlhMmU5MTZhNTEx
YjcwNjE4ZTkxMmE0NmQ3NmJiODA3OWJlMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCkBAIC02Nyw5ICs2Nyw5IEBAIFJlZlB0cjxCaXRt
YXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwg
Ym9vbCBpbmNyZW1lCiAgICAgc25hcHNob3RTaXplLnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKTsK
IAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9y
bWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9y
KCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hv
dEZvcm1hdCA9IFdlYkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6
OkJHUkE7CiAjZWxzZQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9y
bWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1h
dDo6QkdSQTsKICNlbmRpZgogICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6
Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpz
UkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hvdEZvcm1hdCk7CiAgICAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IGNnSW1hZ2UgPSBzdXJmYWNlLT5jcmVhdGVJbWFnZSgpOwo=
</data>
<flag name="commit-queue"
          id="430562"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413872</attachid>
            <date>2020-11-11 15:11:42 -0800</date>
            <delta_ts>2020-11-11 15:49:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111151141.patch</filename>
            <type>text/plain</type>
            <size>94459</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1MjI4ZGZjNGJjNmIy
NTUzOTYzODVjNjQwZTRiNWE3YmM3OWVkYy4uYjc3ZDQ2NDkxNmFhZTFmNTkwYTdjMmQ4OWI5MzNh
ZGY4OGFlYjUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0czsgd2lsbCBiZSBjb3ZlcmVkIGJ5IGFsbCBkZWVwIGNvbG9yIHRlc3RzIHdoZW4g
R1BVIFByb2Nlc3MgRE9NIHJlbmRlcmluZyBsYW5kcy4KKworICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIHBhc3MgYSBDb2xvckZvcm1hdCBpbnRvIHRoZSBJbWFnZUJ1ZmZlciBjb25zdHJ1Y3Rv
ciwKKyAgICAgICAgYW5kIGFkZCBSR0IxMCBhbmQgUkdCMTBBOCBDb2xvckZvcm1hdHMuCisKKyAg
ICAgICAgV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0L3B1dEltYWdlRGF0YSBmb3IgZGVl
cCBjb2xvciBidWZmZXJzLCBiZWNhdXNlCisgICAgICAgIHRoYXQgaXMgbm90IG5lZWRlZCBmb3Ig
SW1hZ2VCdWZmZXJzIGJhY2tpbmcgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgKHRoZSBtb3RpdmF0
aW9uCisgICAgICAgIGZvciB0aGlzKSwgYnV0IGlmIHdlIGV2ZW50dWFsbHkgd2FudGVkIHRvIG1v
cmUgZ2VuZXJhbGx5IHN1cHBvcnQgZGVlcCBjb2xvciBJbWFnZUJ1ZmZlcnMsCisgICAgICAgIHRo
YXQncyBtb3N0IG9mIHRoZSByZW1haW5pbmcgd29yay4KKworICAgICAgICBBbHNvLCBzdGFuZGFy
ZGl6ZSBvbiBCR1JBOCBhcyB0aGUgZGVmYXVsdCBDb2xvckZvcm1hdCBmb3IgYnVmZmVycy4KKyAg
ICAgICAgaU9TLCBDYWlybywgSU9TdXJmYWNlLCBhbmQgU2hhcmVhYmxlQml0bWFwIGFsbCBhbHJl
YWR5IHVzZSBCR1JBOCBieSBkZWZhdWx0OworICAgICAgICBvbmx5IEltYWdlQnVmZmVyIHdpdGgg
Q0dCaXRtYXAgYmFja2luZyBzdG9yZSBvbiBtYWNPUyB1c2VkIFJHQkE4LiBTbywKKyAgICAgICAg
Zm9yIHNhbml0eSdzIHNha2UgKGFuZCBzbyB0aGF0IGl0J3MgZWFzeSB0byBoYXZlIGEgZGVmYXVs
dCBwYXNzZWQgaW50bworICAgICAgICB0aGUgY29uc3RydWN0b3IpLCBzdGFuZGFyZGl6ZSBvbiBC
R1JBOC4KKworICAgICAgICAqIGh0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmNy
ZWF0ZUJ1ZmZlckZvclBhaW50aW5nIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpj
cmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRv
dy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgUGx1bWJpbmcgQ29sb3JGb3JtYXQgYXJvdW5kLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6SW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6dG9CR1JBRGF0YSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVscyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnB1dEltYWdlRGF0YSk6Cisg
ICAgICAgIEFzc2VydCB0aGF0IGNvcHlJbWFnZVBpeGVscyBpcyBhbHdheXMgb3BlcmF0aW5nIG9u
IGEgOC1iaXQgYnVmZmVyLAorICAgICAgICBzaW5jZSB0aGF0J3MgYWxsIGl0IHN1cHBvcnRzIGZv
ciBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Y29sb3JGb3JtYXQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpieXRlc1BlclJvdyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmJhY2tlbmRDb2xv
ckZvcm1hdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNmZXJCR1JBUGl4ZWxC
dWZmZXJUb0lPU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1
ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVCaXRtYXBJbWFnZUFmdGVyU2NhbGluZ0lmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCYWNrZW5kOjp0b0NGRGF0YSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb3B5SW1hZ2VQaXhlbHNBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJDR0JpdG1h
cEJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6
OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CisgICAgICAgIEFkb3B0IENvbG9yRm9ybWF0IGFuZCBz
dGFuZGFyZGl6ZSBvbiBCR1JBOC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6YmFja2VuZENv
bG9yRm9ybWF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmVuc3VyZVBsYXRmb3JtQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJT1N1cmZhY2U6OmZvcm1hdEZvckNvbG9yRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisKIDIwMjAtMTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gU2VhbWxlc3NseSByZXN1bWUgV2Vi
QXVkaW8gcGxheWJhY2sgaWYgdGhlIEdQVSBQcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTEy
ZGQzYTU4Y2E4MWRiMGI2MGM4YThmMDI4ZmFlOTQyZGExZmE0Yy4uYzRkZDE2NGE2N2IwYjIwNmNh
MGNiZTZhMjNlMzkzOTBhMDU1MzViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0x
MS0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbWluaW1hbCBzdXBwb3J0IGZvciBkZWVwIGNvbG9yIElPU3VyZmFjZSBiYWNraW5nIHN0b3Jl
IHRvIEltYWdlQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTg4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyOjpSZW1vdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVm
ZmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6Cisg
ICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVyUGl4
ZWwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3Vy
ZmFjZUJ1ZmZlckZvcm1hdCBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlQmFja2VuZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6aW1h
Z2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29u
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisKIDIwMjAtMTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbR1BVUHJvY2Vzc10gU2VhbWxlc3NseSByZXN1bWUgV2ViQXVkaW8gcGxheWJhY2sgaWYg
dGhlIEdQVSBQcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q3VzdG9tUGFpbnRDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENh
bnZhcy5jcHAKaW5kZXggZTQ1MDQ0ZjcwOTQ4ZDRmMzkzYmQ5NjhkNDc5ZjM4Yjc3ZmRmOTNhMi4u
NzI5MGI5MDVhMmU4MjJjNjM0YTVmZDNjMjlmZWZlOTNkYTFlYTkzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgSW1hZ2UqIEN1
c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSgpIGNvbnN0CiAgICAgaWYgKCF3aWR0aCgpIHx8
ICFoZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBtX2NvcGllZEJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyKTsKKyAgICBtX2NvcGllZEJ1ZmZlciA9
IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVk
LCAxLCBDb2xvclNwYWNlOjpTUkdCLCBDb2xvckZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOwogICAg
IGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGU1ODMyMTAzMGU4YmFjODRj
NjE0MzY3MjljMDZiNWY3MWRmMjljYmYuLjliZDdhZTUwMzAwYjA4YTU0YzczOTUwMDQ5Zjk0ZDI3
ZGU4Yzg5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC05MzksNyArOTM5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUoc2l6
ZSgpKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2Nl
bGVyYXRlZDsKICAgICAvLyBGSVhNRTogQWRkIGEgbmV3IHNldHRpbmcgZm9yIERpc3BsYXlMaXN0
IGRyYXdpbmcgb24gY2FudmFzLgogICAgIGF1dG8gdXNlRGlzcGxheUxpc3QgPSBtX3VzZXNEaXNw
bGF5TGlzdERyYXdpbmcudmFsdWVPcihkb2N1bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3RE
cmF3aW5nRW5hYmxlZCgpKSA/IFNob3VsZFVzZURpc3BsYXlMaXN0OjpZZXMgOiBTaG91bGRVc2VE
aXNwbGF5TGlzdDo6Tm87Ci0gICAgc2V0SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShz
aXplKCksIHJlbmRlcmluZ01vZGUsIHVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlOjpD
YW52YXMsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGhvc3RXaW5kb3cpKTsKKyAgICBzZXRJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxh
eUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgQ29sb3JTcGFjZTo6U1JHQiwgQ29s
b3JGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KSk7CiAKICAgICBpZiAoYnVmZmVyKCkgJiYgYnVm
ZmVyKCktPmRyYXdpbmdDb250ZXh0KCkpCiAgICAgICAgIGJ1ZmZlcigpLT5kcmF3aW5nQ29udGV4
dCgpLT5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDZkYmI3OTc1
ZWRiMmJkYWNjZmY0MGIwMDRlMTQyMDM1YTc4N2NhNTQuLmM3ZWYxMzQyNzI1NjIzMDc5ZWEyNDY3
ODVkNjkwODg1ODY4ZWVkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gSFRNTFZpZGVvRWxl
bWVudDo6Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiBzCiB7CiAgICAg
YXV0byogaG9zdFdpbmRvdyA9IGRvY3VtZW50KCkudmlldygpICYmIGRvY3VtZW50KCkudmlldygp
LT5yb290KCkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkgOiBudWxs
cHRyOwogICAgIGF1dG8gc2hvdWxkVXNlRGlzcGxheUxpc3QgPSBkb2N1bWVudCgpLnNldHRpbmdz
KCkuZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCgpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olll
cyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5n
UHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgQ29sb3JTcGFjZTo6U1JHQiwgaG9zdFdpbmRvdyk7
CisgICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgc2hv
dWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlhUGFpbnRpbmcsIDEsIENv
bG9yU3BhY2U6OlNSR0IsIENvbG9yRm9ybWF0OjpCR1JBOCwgaG9zdFdpbmRvdyk7CiB9CiAKIHZv
aWQgSFRNTFZpZGVvRWxlbWVudDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmNwcAppbmRleCBlOTY4YjQ4NjAzZTAxZTU4YzYzMzZkZDZkZDljOWExYjU1
MjQyYjEyLi4xZDc0NDM5ZmY4YzI3YTgxNzhiMDI4MDZmODk5OWIyYzNlNzdhMGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtODQsNyArODQsNyBAQCBSZWZQdHI8SW1hZ2VC
dWZmZXI+IEltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBzY3JpcAogICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgaWYgKGRvY3VtZW50LnZpZXcoKSAmJiBk
b2N1bWVudC52aWV3KCktPnJvb3QoKSkgewogICAgICAgICAgICAgYXV0byBob3N0V2luZG93ID0g
ZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKTsKLSAgICAgICAgICAgIHJldHVy
biBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3Bs
YXlMaXN0OjpObywgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2U6OlNSR0IsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgcmV0dXJuIEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6Ok5v
LCBSZW5kZXJpbmdQdXJwb3NlOjpDYW52YXMsIHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZTo6
U1JHQiwgQ29sb3JGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDk5N2YyYWY3Zjk3NTY5MGM3NzM4MTY0MjkyMTVi
OWU1MWJhYzU5ZjEuLjE2MjMwMDM0ZDMzZjk4MjdhMzYyY2JkODUyOWNkMTA2ZmEwMjVjOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTUyMyw5ICs1MjMsOSBAQCB2b2lkIENocm9tZTo6c2V0
Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50aWxNb3VzZU1vdmVzKQog
ICAgIG1fY2xpZW50LnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3ZlcyhoaWRkZW5VbnRpbE1v
dXNlTW92ZXMpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9tZTo6Y3JlYXRlSW1hZ2VC
dWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9tZTo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KSBjb25zdAogewot
ICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2Rl
LCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgIHJldHVybiBtX2Ns
aWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KTsKIH0KIAogUGxhdGZvcm1EaXNw
bGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggY2Y3
NzdlMGNjZDk5YTdjYjU5MTM4ZWFmYjYxMWU0ZjFjMDI2ZmY5Yy4uODJmM2FkMzg1ZTQ0M2QxNzUx
Y2VjNWIxZWE5M2EyODM2N2Y2NzI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC04NCw3ICs4NCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsK
IAotICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRl
cmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3Jt
YXQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1E
aXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAppbmRleCA3YWYxNzhlOTg2NjhkYTljNzE0NDQ0NTEzMjYwNjk3NDg3ZDgzNWM4
Li4wNTI2ZTM1MTIyNzc0MGUxMWM4ZjUwYzkzMTRiMjgyYzIzMGE0YjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAg
dmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0LCBDb2xvclNwYWNl
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZm
ZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJl
bmRlcmluZ1B1cnBvc2UsIGZsb2F0LCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBHcmFwaGljc0xh
eWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4OTY1YTI1M2UxODdlZTk3NmE0ZTY5NDg4ZDRmNjg1
NjhmNWJjNzIxLi4xZDljNGEzNjk1YmMxNTk3NzlkMmNjNmZlMGUyNTAyZmYyYzg1MDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIEltYWdlQnVmZmVyOwogCitlbnVtIGNs
YXNzIENvbG9yRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogZW51bSBjbGFzcyBSZW5kZXJp
bmdQdXJwb3NlIDogdWludDhfdDsKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQm
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5
U2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5n
TW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2Us
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQpIGNvbnN0ID0g
MDsKIAogICAgIC8vIE1ldGhvZCBmb3IgcmV0cmlldmluZyB0aGUgbmF0aXZlIGNsaWVudCBvZiB0
aGUgcGFnZS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGll
bnQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggODU0MDIxNWY2MjM3Y2MwYTNkNjI1ZTMy
ZmE5NjdkZjlhNjJlYzJhZi4uMGU3ZDBkMGRmMmUyOTU0YmM5MzExNzdhOTg1ZjY3Y2M5N2U5MWIw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNy
ZXRlSW1hZ2VCdWZmZXIuaApAQCAtMzQsOSArMzQsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBCYWNr
ZW5kVHlwZT4KIGNsYXNzIENvbmNyZXRlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgSW1hZ2VCdWZmZXIg
ewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEltYWdlQnVmZmVyVHlwZSA9IENvbmNy
ZXRlSW1hZ2VCdWZmZXIsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBzdGF0aWMgUmVmUHRy
PEltYWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhv
c3RXaW5kb3csIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBzdGF0aWMgUmVmUHRyPElt
YWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
LCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMp
CiAgICAgewotICAgICAgICBhdXRvIGJhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdyk7CisgICAgICAgIGF1dG8g
YmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBjb2xvckZvcm1hdCwgaG9zdFdpbmRvdyk7CiAgICAgICAgIGlmICghYmFja2VuZCkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEltYWdlQnVmZmVyVHlwZShXVEZNb3ZlKGJhY2tlbmQpLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRz
Pihhcmd1bWVudHMpLi4uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggOGY2MmRjNmEzNDgzYzg0M2QwNWJlZjY3MzRkYzU0YTEz
YjRiMGU1Zi4uNGJmYWI2MDYzMTJkYmJmN2ZiNDI0YzhjNjAwMjMxYTY2NjYxODc2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAt
MzgsMzUgKzM4LDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBmbG9hdCBN
YXhDbGFtcGVkTGVuZ3RoID0gNDA5NjsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkQXJl
YSA9IE1heENsYW1wZWRMZW5ndGggKiBNYXhDbGFtcGVkTGVuZ3RoOwogCi1SZWZQdHI8SW1hZ2VC
dWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0IHNob3VsZFVzZURpc3Bs
YXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVm
UHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCBzaG91
bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQs
IGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVy
PiBpbWFnZUJ1ZmZlcjsKICAgICBpZiAoaG9zdFdpbmRvdykKLSAgICAgICAgaW1hZ2VCdWZmZXIg
PSBob3N0V2luZG93LT5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJw
b3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgICAgICBpbWFnZUJ1ZmZlciA9
IGhvc3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBv
c2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpOwogCiAgICAgaWYg
KCFpbWFnZUJ1ZmZlciAmJiBzaG91bGRVc2VEaXNwbGF5TGlzdCA9PSBTaG91bGRVc2VEaXNwbGF5
TGlzdDo6WWVzKSB7CiAgICAgICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkKQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdEFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdEFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIGNvbG9yRm9ybWF0LCBob3N0V2luZG93KTsKICAgICAgICAgCiAgICAgICAgIGlmICgh
aW1hZ2VCdWZmZXIpCi0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0VW5hY2Nl
bGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RV
bmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBob3N0V2luZG93KTsKICAgICB9CiAKICAgICBpZiAoIWlt
YWdlQnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6
ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93
KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRl
cmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGhvc3RX
aW5kb3cpOwogCiAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZm
ZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVmZmVy
PiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3cpCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKICAgICAKICAgICBp
ZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAgICAg
aW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIg
PSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb2xvckZvcm1hdCwgaG9zdFdpbmRvdyk7CiAgICAgCiAgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6
OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOwor
ICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIGhvc3RXaW5kb3cp
OwogCiAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggY2Y0N2MxOWYwY2UxNzA0ZjAyNTE5NzIw
YjM5MmEwMDI1ZTllMTRkNi4uN2JmOWUxZjhkMzE4N2ZmNmZjNTJiZDYxY2IzMzE0YWQ0ZWY3M2Mx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CkBAIC00Miw4ICs0Miw4IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0OwogY2xhc3MgSW1hZ2VCdWZm
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUJ1ZmZlcj4gewogcHVibGljOgogICAgIC8vIFdp
bGwgcmV0dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiwgUmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBv
c2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpT
UkdCLCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJp
bmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlID0gQ29sb3JTcGFj
ZTo6U1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVu
ZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBDb2xv
ckZvcm1hdCA9IENvbG9yRm9ybWF0OjpCR1JBOCwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRy
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0g
MSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IsIENvbG9yRm9ybWF0ID0gQ29sb3JGb3Jt
YXQ6OkJHUkE4LCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0Nv
bnRleHQmKTsKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0aWJsZSB3aXRo
IHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29sdXRpb24gZm9yIGRyYXdpbmcgaW50byB0
aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXgg
ZjFmMzY3YzA2YTJhMGM5ZDk5MTNjOWM5MjM2YzE5NzM2ZWRlNTlhMi4uMTA2OTU1MjU4NmExMDYy
ZDgwMjk1OWYwZjA4MWYzNjQyMjBiMDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC0zMSwxMSArMzEs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdl
QnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXpl
JiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpCitJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
KQogICAgIDogbV9sb2dpY2FsU2l6ZShsb2dpY2FsU2l6ZSkKICAgICAsIG1fYmFja2VuZFNpemUo
YmFja2VuZFNpemUpCiAgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGUpCiAg
ICAgLCBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKKyAgICAsIG1fY29sb3JGb3JtYXQoY29sb3JG
b3JtYXQpCiB7CiB9CiAKQEAgLTEwNSw4ICsxMDYsOCBAQCBWZWN0b3I8dWludDhfdD4gSW1hZ2VC
dWZmZXJCYWNrZW5kOjp0b0JHUkFEYXRhKHZvaWQqIGRhdGEpIGNvbnN0CiAgICAgdWludDhfdCog
c3JjUm93cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEpOwogCiAgICAgY29weUlt
YWdlUGl4ZWxzKAotICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVk
LCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCi0gICAgICAg
IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCwgQ29sb3JGb3JtYXQ6OkJH
UkEsIGRlc3RCeXRlc1BlclJvdywgcmVzdWx0LmRhdGEoKSwgbV9sb2dpY2FsU2l6ZSk7CisgICAg
ICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIGNvbG9yRm9ybWF0KCks
IHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAorICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpVbnByZW11bHRpcGxpZWQsIENvbG9yRm9ybWF0OjpCR1JBOCwgZGVzdEJ5dGVzUGVyUm93LCBy
ZXN1bHQuZGF0YSgpLCBtX2xvZ2ljYWxTaXplKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC0yMDksNiArMjEwLDEwIEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhl
bHMoCiAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgQ29sb3JGb3Jt
YXQgc3JjQ29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNS
b3dzLAogICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0LCBDb2xvckZv
cm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCog
ZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CisgICAgLy8gV2UgZG9uJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEgd2l0aCBkZWVw
IGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0
OjpSR0JBOCB8fCBzcmNDb2xvckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworICAgIEFT
U0VSVChkZXN0Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4IHx8IGRlc3RDb2xvckZv
cm1hdCA9PSBDb2xvckZvcm1hdDo6QkdSQTgpOworCiAgICAgaWYgKHNyY0FscGhhRm9ybWF0ID09
IGRlc3RBbHBoYUZvcm1hdCkgewogICAgICAgICBpZiAoc3JjQWxwaGFGb3JtYXQgPT0gQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkKICAgICAgICAgICAgIGNvcHlJbWFnZVBp
eGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQ+KHNyY0Nv
bG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9yRm9ybWF0LCBkZXN0
Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKQEAgLTI1Miw4ICsyNTcsOCBAQCBSZWZQdHI8
SW1hZ2VEYXRhPiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRp
cGxpY2F0aW9uIG91dHB1dAogICAgIHVpbnQ4X3QqIHNyY1Jvd3MgPSByZWludGVycHJldF9jYXN0
PHVpbnQ4X3QqPihkYXRhKSArIHNyY1JlY3RDbGlwcGVkLnkoKSAqIHNyY0J5dGVzUGVyUm93ICsg
c3JjUmVjdENsaXBwZWQueCgpICogNDsKIAogICAgIGNvcHlJbWFnZVBpeGVscygKLSAgICAgICAg
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgYmFja2VuZENvbG9yRm9ybWF0
KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBvdXRwdXRGb3JtYXQsIENvbG9y
Rm9ybWF0OjpSR0JBLCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkp
OworICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBjb2xvckZv
cm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKKyAgICAgICAgb3V0cHV0Rm9ybWF0LCBD
b2xvckZvcm1hdDo6UkdCQTgsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RSZWN0LnNp
emUoKSk7CiAKICAgICByZXR1cm4gaW1hZ2VEYXRhOwogfQpAQCAtMjgzLDggKzI4OCw4IEBAIHZv
aWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBpbnB1dEZvcm1hdCwgY29uc3QKICAgICB1aW50OF90KiBzcmNSb3dzID0gaW1hZ2VEYXRhLmRh
dGEoKS0+ZGF0YSgpICsgc3JjUmVjdENsaXBwZWQueSgpICogc3JjQnl0ZXNQZXJSb3cgKyBzcmNS
ZWN0Q2xpcHBlZC54KCkgKiA0OwogCiAgICAgY29weUltYWdlUGl4ZWxzKAotICAgICAgICBpbnB1
dEZvcm1hdCwgQ29sb3JGb3JtYXQ6OlJHQkEsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAg
ICAgICBkZXN0Rm9ybWF0LCBiYWNrZW5kQ29sb3JGb3JtYXQoKSwgZGVzdEJ5dGVzUGVyUm93LCBk
ZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgaW5wdXRGb3JtYXQsIENvbG9yRm9y
bWF0OjpSR0JBOCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsCisgICAgICAgIGRlc3RGb3JtYXQs
IGNvbG9yRm9ybWF0KCksIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RSZWN0LnNpemUo
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggYWE5YjM0MWEw
NTczZjJhZDRlOWVkMzA1N2MwNDIxZTk1OTFhZTVjMS4uMWI4YWI1OTdiMDg2ZjI2ZGNmYmNhMzUw
ZDMwY2E1MmY4NGI0OGE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKQEAgLTU1LDggKzU1LDEwIEBAIGVudW0gY2xh
c3MgUHJlc2VydmVSZXNvbHV0aW9uIDogdWludDhfdCB7CiB9OwogCiBlbnVtIGNsYXNzIENvbG9y
Rm9ybWF0IDogdWludDhfdCB7Ci0gICAgUkdCQSwKLSAgICBCR1JBCisgICAgUkdCQTgsCisgICAg
QkdSQTgsCisgICAgUkdCMTAsCisgICAgUkdCMTBBOCwKIH07CiAKIGNsYXNzIEltYWdlQnVmZmVy
QmFja2VuZCB7CkBAIC03Miw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIGJhY2tlbmRT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZW5kU2l6ZTsgfQogICAgIGZsb2F0IHJlc29sdXRp
b25TY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x1dGlvblNjYWxlOyB9CiAgICAgQ29sb3JT
cGFjZSBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgQ29s
b3JGb3JtYXQgY29sb3JGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yRm9ybWF0OyB9CiAK
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1
cm4gQWZmaW5lVHJhbnNmb3JtKCk7IH0KICAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkg
Y29uc3QgeyByZXR1cm4gNCAqIG1fYmFja2VuZFNpemUuYXJlYSgpLnVuc2FmZUdldCgpOyB9CkBA
IC0xMDQsMTAgKzEwNyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNB
Y2NlbGVyYXRlZCA9IGZhbHNlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgSW1h
Z2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpOworICAg
IFdFQkNPUkVfRVhQT1JUIEltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCk7CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVz
UGVyUm93KCkgY29uc3QgeyByZXR1cm4gNCAqIG1fYmFja2VuZFNpemUud2lkdGgoKTsgfQotICAg
IHZpcnR1YWwgQ29sb3JGb3JtYXQgYmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3QgeyByZXR1cm4g
Q29sb3JGb3JtYXQ6OlJHQkE7IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgVCB0
b0JhY2tlbmRDb29yZGluYXRlcyhUIHQpIGNvbnN0CkBAIC0xMzQsNiArMTM2LDIxIEBAIHByb3Rl
Y3RlZDoKICAgICBJbnRTaXplIG1fYmFja2VuZFNpemU7CiAgICAgZmxvYXQgbV9yZXNvbHV0aW9u
U2NhbGU7CiAgICAgQ29sb3JTcGFjZSBtX2NvbG9yU3BhY2U7CisgICAgQ29sb3JGb3JtYXQgbV9j
b2xvckZvcm1hdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JGb3JtYXQ+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OkNvbG9yRm9y
bWF0LAorICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0OjpSR0JBOCwKKyAgICBXZWJDb3JlOjpDb2xv
ckZvcm1hdDo6QkdSQTgsCisgICAgV2ViQ29yZTo6Q29sb3JGb3JtYXQ6OlJHQjEwLAorICAgIFdl
YkNvcmU6OkNvbG9yRm9ybWF0OjpSR0IxMEE4CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
VmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
VmlkZW9TYW1wbGUuY3BwCmluZGV4IDEwY2IwYTAzNjFlMDk4NDhjNDdhZGRkMWY1YzZlMzc0MDRh
NjRhYjAuLmE2MzUxNDdkMGJjYTNiNzZjZTEyZGY3NjQ4MjQ4YTNkYzgwYmFmMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGkKICAgICB9CiAK
ICAgICBJbnRTaXplIHNpemUgeyBzdGF0aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRXaWR0
aChwaXhlbEJ1ZmZlcikpLCBzdGF0aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQo
cGl4ZWxCdWZmZXIpKSB9OwotICAgIGF1dG8gaW9TdXJmYWNlID0gIElPU3VyZmFjZTo6Y3JlYXRl
KHNpemUsIHNSR0JDb2xvclNwYWNlUmVmKCksIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBKTsKKyAg
ICBhdXRvIGlvU3VyZmFjZSA9ICBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29sb3JTcGFj
ZVJlZigpLCBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQSk7CiAKICAgICBJT1N1cmZhY2U6OkxvY2tl
ciBsb2NrKCppb1N1cmZhY2UpOwogICAgIHZJbWFnZV9CdWZmZXIgc3JjOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0Jh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXggMjNiOTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcx
NmRlZjNhMS4uMDNlYTE2NjIwMTc2YzMxNTkwMzU0NGY2OTliNDFhNTQyYTJmNmY3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICB1c2luZyBJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2Vu
ZDsKIAotICAgIENvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIENvbG9yRm9ybWF0OjpCR1JBOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
VHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mKSB7IH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNr
ZW5kLmNwcAppbmRleCAzZjBlYjA4NDA3YzcyNTMzZGVhMWExNDlmYzdjZDVhNjgyN2U0MDllLi45
ZjZmNDE5ZmJjN2RkYjkyOGM5YjIxNmVhOTI5MTM2MDg0ZTZjY2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VT
dXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC00MSw4ICs0
MSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWlyb0lt
YWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KikK
K3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1h
Z2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xv
ckZvcm1hdCBjb2xvckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCiB7CisgICAgQVNTRVJUKGNv
bG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpCR1JBOCk7CisKICAgICBzdGF0aWMgY2Fpcm9fdXNl
cl9kYXRhX2tleV90IHNfc3VyZmFjZURhdGFLZXk7CiAKICAgICBJbnRTaXplIGJhY2tlbmRTaXpl
ID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKQEAgLTU5LDE2
ICs2MSwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJh
Y2tlbmQ+IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhYwogICAgICAgICBmYXN0RnJlZShkYXRh
KTsKICAgICB9KTsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWly
b0ltYWdlU3VyZmFjZUJhY2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFj
a2VuZChzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZN
b3ZlKHN1cmZhY2UpKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNh
aXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4obmV3IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VC
YWNrZW5kKHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNv
bG9yRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3Vy
ZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dCYpCiB7Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNr
ZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgbnVsbHB0cik7CisgICAgcmV0
dXJuIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwg
Q29sb3JTcGFjZTo6U1JHQiwgQ29sb3JGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKIH0KIAotSW1h
Z2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1
cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUm
IGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJiBzdXJmYWNlKQotICAgIDogSW1hZ2VCdWZmZXJD
YWlyb1N1cmZhY2VCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKQorSW1hZ2VCdWZmZXJDYWlyb0ltYWdl
U3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0
IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29s
b3JGb3JtYXQsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYgc3VyZmFjZSkKKyAgICA6IEltYWdl
QnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpCiB7
CiAgICAgQVNTRVJUKGNhaXJvX3N1cmZhY2VfZ2V0X3R5cGUobV9zdXJmYWNlLmdldCgpKSA9PSBD
QUlST19TVVJGQUNFX1RZUEVfSU1BR0UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tl
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmgKaW5kZXggMTYwMDM3OTRmZGFhOTQ3MzJiNjE1NTdj
NDFlODQ0MjMxYTk4YTcwMS4uMzU1MGVkODdmYjhhNDg1ODk4ZWI2YTljMjBhZmZkNjI2MjhiMGU5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2Vu
ZC5oCkBAIC00MCwxMSArNDAsMTEgQEAgY2xhc3MgSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFj
ZUJhY2tlbmQgOiBwdWJsaWMgSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW4KICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKTsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFj
a2VuZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNh
aXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZs
b2F0U2l6ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiBwcml2YXRlOgotICAgIEltYWdl
QnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYpOworICAgIEltYWdlQnVmZmVyQ2Fp
cm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IENvbG9yRm9ybWF0LCBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiYmKTsKIAogICAgIHZvaWQgcGxh
dGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiYg
bG9va1VwVGFibGUpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
U3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDkzMTA4ZDA0ZWM5YjExYmYwZTU0MjU3NmZmM2Q3OTkz
NGI4MDdiODMuLjI5OWQ2YTgzZjgxMzAzMmI0NmI3MzdiODY4YjIwMjUyMWYzNTFjOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtNDMsOCAr
NDMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNl
QmFja2VuZDo6SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJiBz
dXJmYWNlKQotICAgIDogSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZlckNhaXJvU3Vy
ZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
LCBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiYmIHN1cmZhY2UpCisgICAgOiBJbWFnZUJ1ZmZlckNh
aXJvQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgY29sb3JGb3JtYXQpCiAgICAgLCBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkK
IHsKICAgICBBU1NFUlQoY2Fpcm9fc3VyZmFjZV9zdGF0dXMobV9zdXJmYWNlLmdldCgpKSA9PSBD
QUlST19TVEFUVVNfU1VDQ0VTUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNl
QmFja2VuZC5oCmluZGV4IDJiYjQwMjI2NTBjZjljMDFiNDZhMjJmODEzNmZmMGNiZjVlYjI0MTAu
LjNhMzM5Mzg5ZTRmN2YyNTZhNmRhNjcwMjVkZmYwMzAyMWJkMGU5YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJm
YWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9y
bWF0LCBjb25zdCBJbWFnZURhdGEmLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQ
b2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJy
aWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKGNv
bnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+
JiYpOworICAgIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4m
Jik7CiAKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGNhaXJvU3VyZmFjZUNvZXJjZVRvSW1hZ2Uo
KSBjb25zdDsKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
R0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDR0JhY2tlbmQuY3BwCmluZGV4IDhjNWFiZjdjOTNlNzk3MTNmNzEzYTZkYmRlOWJjMDE3
ZjIxZjg5YmMuLjkxMjFhOWI4MmM3NGIzMzNmMGVjYzZlNjNlNTcyZmM1ZmFjNWQ3MTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dC
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQmFja2VuZC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIFJlZlB0cjxJbWFn
ZT4gY3JlYXRlQml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZChSZWZQdHI8TmF0aXZlSW1h
Z2U+JiYKICAgICBpZiAocmVzb2x1dGlvblNjYWxlID09IDEgfHwgcHJlc2VydmVSZXNvbHV0aW9u
ID09IFByZXNlcnZlUmVzb2x1dGlvbjo6WWVzKQogICAgICAgICBpbWFnZSA9IE5hdGl2ZUltYWdl
OjpjcmVhdGUoY3JlYXRlQ3JvcHBlZEltYWdlSWZOZWNlc3NhcnkoaW1hZ2UtPnBsYXRmb3JtSW1h
Z2UoKS5nZXQoKSwgYmFja2VuZFNpemUpKTsKICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBjb250
ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwgbG9naWNhbFNpemUud2lkdGgo
KSwgbG9naWNhbFNpemUuaGVpZ2h0KCksIDgsIDQgKiBsb2dpY2FsU2l6ZS53aWR0aCgpLCBzUkdC
Q29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpKTsKKyAgICAg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwgbG9naWNh
bFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCksIDgsIDQgKiBsb2dpY2FsU2l6ZS53
aWR0aCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZp
cnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0KSk7CiAgICAgICAgIENHQ29udGV4dFNldEJs
ZW5kTW9kZShjb250ZXh0LmdldCgpLCBrQ0dCbGVuZE1vZGVDb3B5KTsKICAgICAgICAgQ0dDb250
ZXh0Q2xpcFRvUmVjdChjb250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygp
LCBsb2dpY2FsU2l6ZSkpOwogICAgICAgICBGbG9hdFNpemUgaW1hZ2VTaXplSW5Vc2VyU3BhY2Ug
PSBsb2dpY2FsU2l6ZTsKQEAgLTE2Miw3ICsxNjIsNyBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBJ
bWFnZUJ1ZmZlckNHQmFja2VuZDo6dG9DRkRhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0
aQogICAgICAgICBpbWFnZSA9IGNyZWF0ZUNyb3BwZWRJbWFnZUlmTmVjZXNzYXJ5KGltYWdlLmdl
dCgpLCBiYWNrZW5kU2l6ZSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBpbWFnZSA9IGNvcHlO
YXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSktPnBsYXRmb3JtSW1hZ2UoKTsKLSAgICAg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwgYmFja2Vu
ZFNpemUoKS53aWR0aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpLCA4LCA0ICogYmFja2VuZFNp
emUoKS53aWR0aCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlw
bGllZExhc3QpKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRl
eHRDcmVhdGUoMCwgYmFja2VuZFNpemUoKS53aWR0aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgp
LCA4LCA0ICogYmFja2VuZFNpemUoKS53aWR0aCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJ
bWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0KSk7
CiAgICAgICAgIENHQ29udGV4dFNldEJsZW5kTW9kZShjb250ZXh0LmdldCgpLCBrQ0dCbGVuZE1v
ZGVDb3B5KTsKICAgICAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjb250ZXh0LmdldCgpLCBDR1Jl
Y3RNYWtlKDAsIDAsIGJhY2tlbmRTaXplKCkud2lkdGgoKSwgYmFja2VuZFNpemUoKS5oZWlnaHQo
KSkpOwogICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFr
ZSgwLCAwLCBiYWNrZW5kU2l6ZSgpLndpZHRoKCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCkpLCBp
bWFnZS5nZXQoKSk7CkBAIC0yMTksMTIgKzIxOSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29w
eUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQoCiAgICAgfQogCiAgICAgaWYgKGRlc3RBbHBoYUZvcm1h
dCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQpIHsKLSAgICAgICAg
aWYgKHNyY0NvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpSR0JBKQorICAgICAgICBpZiAoc3Jj
Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4KQogICAgICAgICAgICAgdkltYWdlVW5w
cmVtdWx0aXBseURhdGFfUkdCQTg4ODgoJnNyYywgJmRlc3QsIGt2SW1hZ2VOb0ZsYWdzKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgdkltYWdlVW5wcmVtdWx0aXBseURhdGFfQkdSQTg4ODgo
JnNyYywgJmRlc3QsIGt2SW1hZ2VOb0ZsYWdzKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAo
c3JjQ29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkEpCisgICAgICAgIGlmIChzcmNDb2xv
ckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6UkdCQTgpCiAgICAgICAgICAgICB2SW1hZ2VQcmVtdWx0
aXBseURhdGFfUkdCQTg4ODgoJnNyYywgJmRlc3QsIGt2SW1hZ2VOb0ZsYWdzKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgdkltYWdlUHJlbXVsdGlwbHlEYXRhX0JHUkE4ODg4KCZzcmMsICZk
ZXN0LCBrdkltYWdlTm9GbGFncyk7CkBAIC0yNDEsNiArMjQxLDEwIEBAIHZvaWQgSW1hZ2VCdWZm
ZXJDR0JhY2tlbmQ6OmNvcHlJbWFnZVBpeGVscygKICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9u
IHNyY0FscGhhRm9ybWF0LCBDb2xvckZvcm1hdCBzcmNDb2xvckZvcm1hdCwgdW5zaWduZWQgc3Jj
Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jvd3MsCiAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBkZXN0QWxwaGFGb3JtYXQsIENvbG9yRm9ybWF0IGRlc3RDb2xvckZvcm1hdCwgdW5zaWduZWQg
ZGVzdEJ5dGVzUGVyUm93LCB1aW50OF90KiBkZXN0Um93cywgY29uc3QgSW50U2l6ZSYgc2l6ZSkg
Y29uc3QKIHsKKyAgICAvLyBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCBnZXR0aW5nIG9yIHB1
dHRpbmcgcGl4ZWwgZGF0YSB3aXRoIGRlZXAgY29sb3IgYnVmZmVycy4KKyAgICBBU1NFUlQoc3Jj
Q29sb3JGb3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4IHx8IHNyY0NvbG9yRm9ybWF0ID09IENv
bG9yRm9ybWF0OjpCR1JBOCk7CisgICAgQVNTRVJUKGRlc3RDb2xvckZvcm1hdCA9PSBDb2xvckZv
cm1hdDo6UkdCQTggfHwgZGVzdENvbG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpCR1JBOCk7CisK
ICAgICBpZiAoc3JjQWxwaGFGb3JtYXQgPT0gZGVzdEFscGhhRm9ybWF0ICYmIHNyY0NvbG9yRm9y
bWF0ID09IGRlc3RDb2xvckZvcm1hdCkgewogICAgICAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNv
cHlJbWFnZVBpeGVscyhzcmNBbHBoYUZvcm1hdCwgc3JjQ29sb3JGb3JtYXQsIHNyY0J5dGVzUGVy
Um93LCBzcmNSb3dzLCBkZXN0QWxwaGFGb3JtYXQsIGRlc3RDb2xvckZvcm1hdCwgZGVzdEJ5dGVz
UGVyUm93LCBkZXN0Um93cywgc2l6ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA2YzAzM2M2MzgzOGFmZTFhMGY2MjdkNmI0NGExNTQ2
ZjNmZWVlNzMwLi5iMTZlZTIxYzkyYjg4NzE1YWM5NDI0MjVmNWE2ODUyMTg5ZDE3YmJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCkBAIC0zNywxNiArMzcsMTIgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNvbnN0ZXhw
ciBjb25zdCBDR0JpdG1hcEluZm8gRGVmYXVsdEJpdG1hcEluZm8gPSBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0OwotI2Vsc2UKLWNvbnN0
ZXhwciBjb25zdCBDR0JpdG1hcEluZm8gRGVmYXVsdEJpdG1hcEluZm8gPSBrQ0dJbWFnZUFscGhh
UHJlbXVsdGlwbGllZExhc3Q7Ci0jZW5kaWYKLQogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cq
KQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0Nv
bG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93KikKIHsK
KyAgICBBU1NFUlRfVU5VU0VEKGNvbG9yRm9ybWF0LCBjb2xvckZvcm1hdCA9PSBDb2xvckZvcm1h
dDo6QkdSQTgpOworCiAgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRT
aXplKHNpemUsIHJlc29sdXRpb25TY2FsZSk7CiAgICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02Miw3ICs1OCw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQ6OmNyZWF0ZShjCiAgICAgc2l6ZV90IG51bUJ5dGVzID0gYmFja2VuZFNpemUuaGVpZ2h0KCkg
KiBieXRlc1BlclJvdzsKICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKGRhdGEsIG51
bUJ5dGVzKTsKIAotICAgIGF1dG8gY2dDb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRD
cmVhdGUoZGF0YSwgYmFja2VuZFNpemUud2lkdGgoKSwgYmFja2VuZFNpemUuaGVpZ2h0KCksIDgs
IGJ5dGVzUGVyUm93LCBjZ0NvbG9yU3BhY2UsIERlZmF1bHRCaXRtYXBJbmZvKSk7CisgICAgYXV0
byBjZ0NvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZShkYXRhLCBiYWNrZW5k
U2l6ZS53aWR0aCgpLCBiYWNrZW5kU2l6ZS5oZWlnaHQoKSwgOCwgYnl0ZXNQZXJSb3csIGNnQ29s
b3JTcGFjZSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVP
cmRlcjMySG9zdCkpOwogICAgIGlmICghY2dDb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtNzQsMjQgKzcwLDI0IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjCiAKICAgICBh
dXRvIGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgw
LCBkYXRhLCBudW1CeXRlcywgcmVsZWFzZUltYWdlRGF0YSkpOwogCi0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4obmV3IEltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kKHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIGRhdGEsIFdURk1vdmUoZGF0YVByb3ZpZGVyKSwgV1RGTW92ZShjb250ZXh0KSkpOworICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+KG5ldyBJ
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgZGF0YSwgV1RGTW92ZShkYXRhUHJvdmlkZXIp
LCBXVEZNb3ZlKGNvbnRleHQpKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBp
ZiAoYXV0byBjZ0NvbG9yU3BhY2UgPSBjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KSkKLSAgICAg
ICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29s
b3JTcGFjZTo6U1JHQiwgY2dDb2xvclNwYWNlLmdldCgpLCBudWxscHRyKTsKKyAgICAgICAgcmV0
dXJuIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFj
ZTo6U1JHQiwgY2dDb2xvclNwYWNlLmdldCgpLCBDb2xvckZvcm1hdDo6QkdSQTgsIG51bGxwdHIp
OwogICAgIAotICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNp
emUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIENvbG9y
Rm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25z
dCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3Jl
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBjb25zdCBIb3N0V2luZG93
KiBob3N0V2luZG93KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6
Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVkQ0dDb2xvclNw
YWNlKGNvbG9yU3BhY2UpLCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNh
Y2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgY29sb3JGb3JtYXQsIGhvc3RXaW5kb3cpOwog
fQogCi1JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCB2b2lkKiBk
YXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+JiYgZGF0YVByb3ZpZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmIGNvbnRleHQpCi0gICAgOiBJbWFnZUJ1ZmZlckNH
QmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSkKK0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9y
Rm9ybWF0IGNvbG9yRm9ybWF0LCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJS
ZWY+JiYgZGF0YVByb3ZpZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmIGNv
bnRleHQpCisgICAgOiBJbWFnZUJ1ZmZlckNHQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQpCiAgICAgLCBtX2Rh
dGEoZGF0YSkKICAgICAsIG1fZGF0YVByb3ZpZGVyKFdURk1vdmUoZGF0YVByb3ZpZGVyKSkKICAg
ICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQpAQCAtMTE2LDcgKzExMiw3IEBAIFJlZlB0
cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFn
ZShCYWNraW5nU3RvcmVDb3B5CiAgICAgY2FzZSBEb250Q29weUJhY2tpbmdTdG9yZToKICAgICAg
ICAgcmV0dXJuIE5hdGl2ZUltYWdlOjpjcmVhdGUoYWRvcHRDRihDR0ltYWdlQ3JlYXRlKAogICAg
ICAgICAgICAgbV9iYWNrZW5kU2l6ZS53aWR0aCgpLCBtX2JhY2tlbmRTaXplLmhlaWdodCgpLCA4
LCAzMiwgYnl0ZXNQZXJSb3coKSwKLSAgICAgICAgICAgIGNhY2hlZENHQ29sb3JTcGFjZShtX2Nv
bG9yU3BhY2UpLCBEZWZhdWx0Qml0bWFwSW5mbywgbV9kYXRhUHJvdmlkZXIuZ2V0KCksCisgICAg
ICAgICAgICBjYWNoZWRDR0NvbG9yU3BhY2UobV9jb2xvclNwYWNlKSwga0NHSW1hZ2VBbHBoYVBy
ZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCwgbV9kYXRhUHJvdmlk
ZXIuZ2V0KCksCiAgICAgICAgICAgICAwLCB0cnVlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0
KSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKaW5kZXggN2QyMzNk
MjIyNzg1YWQzZGRmMDYzYzRhODY0OGZkZmZhY2U3Y2Y5OS4uNDY2ZDdmYTVlNTIzZjFkYjhlNjM5
YTQ4OWU0ZGYyNjJjYWE0MTZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCkBA
IC0zNiw4ICszNiw4IEBAIGNsYXNzIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kIDogcHVibGlj
IEltYWdlQnVmZmVyQ0dCYWNrZW5kIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmLCBjb25zdCBI
b3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUm
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgQ29s
b3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCwgY29uc3QgSG9zdFdp
bmRvdyopOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsK
IAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNTIs
MTEgKzUyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdpbkF0
VXBwZXJMZWZ0Q29ybmVyID0gdHJ1ZTsKIAogcHJpdmF0ZToKLSAgICBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBw
aHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgdm9pZCogZGF0
YSwgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NDb250ZXh0PiYmKTsKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29sb3JGb3Jt
YXQgYmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29sb3JGb3Jt
YXQ6OkJHUkE7IH0KLSNlbmRpZgorICAgIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0
IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBDb2xvckZvcm1hdCwgdm9pZCogZGF0YSwg
UmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3ND
b250ZXh0PiYmKTsKIAogICAgIHZvaWQqIG1fZGF0YTsKICAgICBSZXRhaW5QdHI8Q0dEYXRhUHJv
dmlkZXJSZWY+IG1fZGF0YVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZC5jcHAKaW5kZXggYTlkNTQ4NWEyNjFiNWEwZGY1M2QyYjg5NzEwYWU4MzdmYmY5YjFhZS4uMGY3
ODM3YzBlODZjNzI4Yjg2NjliNjQzODkyZjllZDg2NTE1NGZmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC02NCwxMyArNjQsMTMgQEAgUmV0YWluUHRyPENHQ29s
b3JTcGFjZVJlZj4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb250ZXh0Q29sb3JTcGFj
ZShjb25zdAogICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29udGV4dENvbG9yU3Bh
Y2UoY29udGV4dCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENH
Q29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cp
CitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYgY2dD
b2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9z
dFdpbmRvdykKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNp
emUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFj
ZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2dDb2xvclNwYWNlKTsKKyAgICBh
dXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFja2VuZFNpemUs
IGNnQ29sb3JTcGFjZSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JDb2xvckZvcm1hdChjb2xvckZvcm1h
dCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTgw
LDI1ICs4MCwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
PiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZQogCiAgICAgQ0dDb250ZXh0Q2xl
YXJSZWN0KGNnQ29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgYmFj
a2VuZFNpemUpKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
V1RGTW92ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KQogewogICAgIGlmIChhdXRvIGNnQ29sb3JTcGFjZSA9IGNvbnRleHRDb2xvclNwYWNl
KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpj
cmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgY2dDb2xvclNwYWNlLmdldCgpLCBudWxs
cHRyKTsKKyAgICAgICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRl
KHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQoKSwgQ29sb3JGb3Jt
YXQ6OkJHUkE4LCBudWxscHRyKTsKICAgICAKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgbnVsbHB0cik7Cisg
ICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENv
bG9yU3BhY2U6OlNSR0IsIENvbG9yRm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xv
ckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKIHsKLSAgICByZXR1cm4gSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIGhvc3RXaW5kb3cpOwor
ICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwg
Y29sb3JGb3JtYXQsIGhvc3RXaW5kb3cpOwogfQogCi0KLUltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJm
YWNlKQotICAgIDogSW1hZ2VCdWZmZXJDR0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBzdGQ6OnVuaXF1
ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UpCisgICAgOiBJbWFnZUJ1ZmZlckNHQmFja2VuZChs
b2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29s
b3JGb3JtYXQpCiAgICAgLCBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkKIHsKICAgICBBU1NF
UlQobV9zdXJmYWNlKTsKQEAgLTEzMCwxMSArMTI5LDYgQEAgdW5zaWduZWQgSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3VyZmFj
ZS0+Ynl0ZXNQZXJSb3coKTsKIH0KIAotQ29sb3JGb3JtYXQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpiYWNrZW5kQ29sb3JGb3JtYXQoKSBjb25zdAotewotICAgIHJldHVybiBDb2xvckZv
cm1hdDo6QkdSQTsKLX0KLQogUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5KSBjb25zdAogewogICAg
IHJldHVybiBOYXRpdmVJbWFnZTo6Y3JlYXRlKG1fc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGY1MDllZWU2NWE3MjJlMTIwMWZm
YzBmYjU3N2NmYjgyYmZlYzY5MGMuLjM3MmIyYjNhZDcxNmVjYWJmNTBmZGVkZDRlY2M2MDgzZjNl
OWJkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zOSwxMSArMzks
MTEgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIDog
cHVibGljIEltYWdlQnVmZmVyQ0dCYWNrZW5kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSW50U2l6
ZSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRv
dyopOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBjb25zdCBIb3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgQ29sb3JGb3Jt
YXQsIGNvbnN0IEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgQ29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cq
KTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCi0g
ICAgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlLCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmKTsKKyAgICBJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50
U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIENv
bG9yRm9ybWF0LCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmKTsKIAogICAgIEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZmx1c2hDb250ZXh0
KCkgb3ZlcnJpZGU7CkBAIC02OSw3ICs2OSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBz
dGF0aWMgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29udGV4dENvbG9yU3BhY2UoY29uc3Qg
R3JhcGhpY3NDb250ZXh0Jik7CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBDb2xvckZvcm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQoKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBtdXRh
YmxlIGJvb2wgbV9yZXF1aXJlc0RyYXdBZnRlclB1dEltYWdlRGF0YSB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmlu
ZGV4IDg3YTY1YTFhMDUwYWFiZTYwZTUwYzNhMWMyMzEzMzlkZWFmNmI4ODUuLjkxNWFlZWQ5Mzky
Nzc3OWRkNTI2NTFkNjkzOWQxZTdiNzQ4NzRkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBAIC00OSwxNyArNDksMjEgQEAg
Y2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlQnVmZmVyOwogI2VuZGlmCiAKK2VudW0gY2xh
c3MgQ29sb3JGb3JtYXQgOiB1aW50OF90OworCiBjbGFzcyBJT1N1cmZhY2UgZmluYWwgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgRm9ybWF0
IHsKLSAgICAgICAgUkdCQSwKKyAgICAgICAgQkdSQSwKICAgICAgICAgWVVWNDIyLAogI2lmIEhB
VkUoSU9TVVJGQUNFX1JHQjEwKQogICAgICAgICBSR0IxMCwKICAgICAgICAgUkdCMTBBOCwKICNl
bmRpZgogICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSU9TdXJmYWNlOjpGb3Jt
YXQgZm9ybWF0Rm9yQ29sb3JGb3JtYXQoV2ViQ29yZTo6Q29sb3JGb3JtYXQpOwogICAgIAogICAg
IGNsYXNzIExvY2tlciB7CiAgICAgcHVibGljOgpAQCAtOTQsOCArOTgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHVpbnQzMl90IG1fZmxhZ3M7CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgQ0dDb2xvclNw
YWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6OlJHQkEpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgSW50U2l6ZSBjb250
ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6OlJHQkEpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50
U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6OkJHUkEpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6
ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQgPSBGb3JtYXQ6
OkJHUkEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJm
YWNlPiBjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYmLCBDR0Nv
bG9yU3BhY2VSZWYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVh
dGVGcm9tU3VyZmFjZShJT1N1cmZhY2VSZWYsIENHQ29sb3JTcGFjZVJlZik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFn
ZShDR0ltYWdlUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCA5MWIxNDFhNTAzYmIyN2JkNDI3YWYzZjcyYTRkMjEz
YWJiMzhmZGMzLi5iNzZhMGZlNWE3NDMwZGY5NjQ5ZjYwNDI2YzUyMmI1MWMzYzI1MWIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tCkBAIC0xOTEsNyArMTkxLDcgQEAgSU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXpl
LCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGEKICAgICBOU0Rp
Y3Rpb25hcnkgKm9wdGlvbnM7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgRm9y
bWF0OjpSR0JBOgorICAgIGNhc2UgRm9ybWF0OjpCR1JBOgogICAgICAgICBvcHRpb25zID0gb3B0
aW9uc0ZvcjMyQml0U3VyZmFjZShzaXplLCAnQkdSQScpOwogICAgICAgICBicmVhazsKICNpZiBI
QVZFKElPU1VSRkFDRV9SR0IxMCkKQEAgLTI3OSw3ICsyNzksNyBAQCBDR0NvbnRleHRSZWYgSU9T
dXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQoY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dykKICAgICBzaXplX3QgYml0c1BlclBpeGVsID0gMzI7CiAgICAgCiAgICAgc3dpdGNoIChmb3Jt
YXQoKSkgewotICAgIGNhc2UgRm9ybWF0OjpSR0JBOgorICAgIGNhc2UgRm9ybWF0OjpCR1JBOgog
ICAgICAgICBicmVhazsKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKICAgICBjYXNlIEZvcm1h
dDo6UkdCMTA6CkBAIC0zNTYsNyArMzU2LDcgQEAgSU9TdXJmYWNlOjpGb3JtYXQgSU9TdXJmYWNl
Ojpmb3JtYXQoKSBjb25zdAogewogICAgIHVuc2lnbmVkIHBpeGVsRm9ybWF0ID0gSU9TdXJmYWNl
R2V0UGl4ZWxGb3JtYXQobV9zdXJmYWNlLmdldCgpKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgPT0g
J0JHUkEnKQotICAgICAgICByZXR1cm4gRm9ybWF0OjpSR0JBOworICAgICAgICByZXR1cm4gRm9y
bWF0OjpCR1JBOwogCiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCiAgICAgaWYgKHBpeGVsRm9y
bWF0ID09ICd3MzByJykKQEAgLTM3MCw3ICszNzAsNyBAQCBJT1N1cmZhY2U6OkZvcm1hdCBJT1N1
cmZhY2U6OmZvcm1hdCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBGb3JtYXQ6OllVVjQyMjsKIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBGb3JtYXQ6OlJHQkE7CisgICAg
cmV0dXJuIEZvcm1hdDo6QkdSQTsKIH0KIAogSU9TdXJmYWNlSUQgSU9TdXJmYWNlOjpzdXJmYWNl
SUQoKSBjb25zdApAQCAtNDU5LDExICs0NTksMzYgQEAgdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVD
b2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkKICAgICBJT1N1cmZhY2VTZXRWYWx1ZShtX3N1cmZhY2Uu
Z2V0KCksIGtJT1N1cmZhY2VDb2xvclNwYWNlLCBjb2xvclNwYWNlUHJvcGVydGllcy5nZXQoKSk7
CiB9CiAKK0lPU3VyZmFjZTo6Rm9ybWF0IElPU3VyZmFjZTo6Zm9ybWF0Rm9yQ29sb3JGb3JtYXQo
Q29sb3JGb3JtYXQgZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBD
b2xvckZvcm1hdDo6UkdCQTg6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKKyAgICBjYXNlIENvbG9y
Rm9ybWF0OjpCR1JBODoKKyAgICAgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwor
I2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQorICAgIGNhc2UgQ29sb3JGb3JtYXQ6OlJHQjEwOgor
ICAgICAgICByZXR1cm4gSU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwOworICAgIGNhc2UgQ29sb3JG
b3JtYXQ6OlJHQjEwQTg6CisgICAgICAgIHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTBB
ODsKKyNlbHNlCisgICAgY2FzZSBDb2xvckZvcm1hdDo6UkdCMTA6CisgICAgY2FzZSBDb2xvckZv
cm1hdDo6UkdCMTBBODoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOworI2VuZGlmCisgICAgfQorCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpC
R1JBOworfQorCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
SU9TdXJmYWNlOjpGb3JtYXQgZm9ybWF0KQogewogICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQToKLSAgICAgICAgdHMgPDwgIlJHQkEiOworICAg
IGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE6CisgICAgICAgIHRzIDw8ICJCR1JBIjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOgogICAgICAg
ICB0cyA8PCAiWVVWNDIyIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ci5oCmluZGV4IGZmZDk0YjUyOWMwNmE3ZTJjZGUwMGVjOTRiMzU1Yzg1ZGRhZmI0YzMuLmExYTMw
YWY1OWQwYzZiZDQ3NGFmMTFiYTM5YmIyNDU0NjY0MDQxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBJbWFnZUJ1
ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7CiAgICAgdXNp
bmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRU
eXBlPjsKIAogcHVibGljOgotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25z
dCBIb3N0V2luZG93KiBob3N0V2luZG93KQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dykKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxh
dGUgY3JlYXRlPEltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IGhvc3RXaW5kb3csIHNpemUpOworICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6OnRlbXBsYXRlIGNyZWF0ZTxJbWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb2xvckZvcm1hdCwgaG9zdFdpbmRvdywgc2l6ZSk7CiAgICAgfQogCiAgICAg
c3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCAzZGJhYWY5ZjJlYzZiZDExMjdkNTFjMTE3
ZTBjMWM3MDU2Y2QyNWQzLi40NzYzYmI1MzcyMDg0ODJmNTY2ZGQwNWQ3NmZjZmM2Nzg1MmUxM2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaApAQCAtNDQsOSArNDQsOSBAQCBjbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6
IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibAog
ICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
KyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2Vi
Q29yZTo6Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gQmFz
ZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlcj4o
c2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBudWxscHRyLCByZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4g
QmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZl
cj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwgbnVsbHB0
ciwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsK
ICAgICB9CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5
cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZChyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICAsIG1f
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
ICAgICB7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5pbWFnZUJ1ZmZlckJhY2tl
bmRXYXNDcmVhdGVkKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5k
U2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3Bh
Y2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQobV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBt
X2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFja2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1f
YmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tlbmQtPmNvbG9yRm9ybWF0KCksIG1fYmFja2Vu
ZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcik7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcAppbmRleCBlYTU2NDMyNjFlMjk5ZTEwZDM5MTUwNGI3NTA1MDk5OTYyNzQ0Y2E5
Li4xYzdlZDhhZjA4MjU3ZTliMWYxZTkzMjdmZDZjNTFlOTViOGU1YjllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCkBAIC05Niw5ICs5Niw5IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6YXBwbHlNZWRpYUl0ZW0oRGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSwgR3JhcGhpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VC
dWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZv
cm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIFdURk1vdmUoaGFuZGxlKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGxvZ2ljYWxTaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xvckZvcm1hdCwg
V1RGTW92ZShoYW5kbGUpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpm
bHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIg
Zmx1c2hJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKQpAQCAtMTA2LDE3ICsxMDYsMTcgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0OjpGbHVz
aElkZW4KICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZs
dXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoZmx1c2hJZGVudGlmaWVyLCByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQo
cmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdN
b2RlID09IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogCiAgICAgUmVmUHRyPEltYWdl
QnVmZmVyPiBpbWFnZUJ1ZmZlcjsKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmlu
Z01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVt
b3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaW1h
Z2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsICp0aGlzLCByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShs
b2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVk
UmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb2xvckZvcm1hdCwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CiAKICAgICBpZiAoIWltYWdlQnVmZmVyKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggYjM2YjlkZDYwNjRlZTVhNTE2M2M2OGU0MTk0
NzYzMWZlMDkxMzEzMi4uNTg2MjVhMjRhZTk0YzVhMTBkOWRkM2U1ZWNjZWQwNWM2OTgwMmJjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGFwcGx5TWVkaWFJdGVtKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCi0gICAg
dm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQs
IEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKIAogICAgIHZvaWQgc2V0TmV4dEl0ZW1CdWZmZXJUb1JlYWQoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7
CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJl
bmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6
OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgdm9pZCB3YWtlVXBBbmRBcHBseURpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpbml0aWFsSWRlbnRpZmllciwgdWludDY0X3Qg
aW5pdGlhbE9mZnNldCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uQnVmZmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3Jj
UmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKICAgICB2b2lkIHJlbGVh
c2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCA2ZjJlMmFiZGY5MjZi
Y2Q0YTA0YzIzNTU4ZTY1Yjk5NmE1YTA2MDgyLi42ODAzODkzNTAxNzM2YWNmZGU1YzUxZjZkMmE4
MjUwYzI0ODNkZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpA
QCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVJbWFnZUJ1
ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6
RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNl
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
CiAgICAgV2FrZVVwQW5kQXBwbHlEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bUJ1ZmZlcklkZW50aWZpZXIgaW5pdGlhbElkZW50aWZpZXIsIHVpbnQ2NF90IGluaXRpYWxPZmZz
ZXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZl
cklkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBo
YVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0
LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJv
bm91cwogICAgIERpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IGIyMjY4OGUwZGJjMTkyZWI2N2Y3OGI1MTUyNGVjNTFlZDcx
OWQzMzMuLmI5MjY1ZWFlYjhiYmM0MjllYWNmMTE5YWVlMTI5ZWU1N2Y1Nzc4NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNTk2LDkgKzU5Niw5IEBAIGRl
ZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQv
V1RGU3RyaW5nLmg+J10sCiAgICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9u
SUQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNv
cmUvQXV0b3BsYXlFdmVudC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6Q29sb3JGb3JtYXQnOiBb
JzxXZWJDb3JlL0ltYWdlQnVmZmVyQmFja2VuZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKLSAgICAgICAgJ1dlYktpdDo6RG9jdW1lbnRFZGl0aW5n
Q29udGV4dFJlcXVlc3QnOiBbJyJEb2N1bWVudEVkaXRpbmdDb250ZXh0LmgiJ10sCiAgICAgICAg
ICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0RhdGEuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUvRHJh
Z0FjdGlvbnMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdPcGVyYXRpb24nOiBbJzxXZWJD
b3JlL0RyYWdBY3Rpb25zLmg+J10sCkBAIC02NzIsNiArNjcyLDcgQEAgZGVmIGhlYWRlcnNfZm9y
X3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxv
YWRJRC5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBb
JyJTZXNzaW9uU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRp
Zmllcic6IFsnIkNvbnRlbnRXb3JsZFNoYXJlZC5oIiddLAorICAgICAgICAnV2ViS2l0OjpEb2N1
bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCc6IFsnIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6RmluZE9wdGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIidd
LAogICAgICAgICAnV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0YXRlJzogWyciR2VzdHVyZVR5
cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6Okdlc3R1cmVUeXBlJzogWyciR2VzdHVyZVR5cGVz
LmgiJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggY2VmNWE5ZWQ0ZTJkNGZl
MDFiM2I3YzM2MDBiMjU1NzdjNjYwOGI0My4uMDFkNjM0YTI1ZTEwNzY2MmM5YjEzYTBjOWVlOGIy
ZGM0ZTEwY2I3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMTY2LDcgKzE2
Niw3IEBAIFdlYkNvcmU6OkludFNpemUgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJhY2tpbmdT
dG9yZVNpemUoKSBjb25zdAogdW5zaWduZWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVz
UGVyUGl4ZWwoKSBjb25zdAogewogICAgIHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7
Ci0gICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTogcmV0dXJuIDQ7CiAgICAg
Y2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKICNpZiBI
QVZFKElPU1VSRkFDRV9SR0IxMCkKICAgICBjYXNlIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0
OjpSR0IxMDogcmV0dXJuIDQ7CkBAIC00NzQsNyArNDc0LDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNl
OjpGb3JtYXQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBj
b25zdAogICAgICAgICByZXR1cm4gbV9pc09wYXF1ZSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9y
bWF0OjpSR0IxMCA6IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMEE4OwogI2VuZGlm
CiAKLSAgICByZXR1cm4gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgcmV0
dXJuIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCmluZGV4IDdl
MzQxNDM4YjBiZThiYzZmNzBlM2YxNDc2N2FiYWUzMDU2MWQwNzQuLjg0NDg4N2JiYzNiMWIzYTQz
Mzg0MTJlOTQzYzlkNjkyY2IxYjYyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1NoYXJlYWJsZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxl
Qml0bWFwLmNwcApAQCAtMTQ5LDcgKzE0OSw2IEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNo
YXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIENvbmZpZ3VyYXRpCiAK
IFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEhh
bmRsZSYgaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKLSAg
ICAvLyBDcmVhdGUgdGhlIHNoYXJlZCBtZW1vcnkuCiAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBT
aGFyZWRNZW1vcnk6Om1hcChoYW5kbGUubV9oYW5kbGUsIHByb3RlY3Rpb24pOwogICAgIGlmICgh
c2hhcmVkTWVtb3J5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggMWFlN2FlMDlmZjI0YWRj
Yzg3MTU4N2I5MTBjZDNhNjYyNTEyZjg0Mi4uNGI3NjYyYTE2NDU5NGRlNmU0M2ZlNDQ0NDhlMDky
MzdkNzJiZWYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW0KQEAgLTEwMDYsOSArMTAwNiw5IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdT
bmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9
IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoZGV2aWNlU2NhbGUsIGRldmljZVNjYWxlLCAxKTsKIAog
I2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0
IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkg
PyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6
OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZv
cm1hdCA9IFdlYkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6
SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJH
UkE7CiAjZWxzZQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0
ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6
QkdSQTsKICNlbmRpZgogICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3Jl
YXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdC
Q29sb3JTcGFjZVJlZigpLCBzbmFwc2hvdEZvcm1hdCk7CiAgICAgaWYgKCFzdXJmYWNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGMz
YmVlZjVkMTQwYjcyNDM4ZGM3NTA1NjAzYWU5YTRjZGUyYTExYjMuLjA1ZmY2NmJhMDE1ZWU2Y2Fh
OTBmZmY4Yzk1ZjJjMWZhYzBlMWQxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZC5jcHAKQEAgLTQzLDggKzQzLDEwIEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVh
dGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xvckZvcm1hdCBjb2xvckZvcm1hdCwgY29uc3Qg
SG9zdFdpbmRvdyopCiB7CisgICAgQVNTRVJUX1VOVVNFRChjb2xvckZvcm1hdCwgY29sb3JGb3Jt
YXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkE4KTsKKwogICAgIEludFNpemUgYmFja2VuZFNpemUgPSBj
YWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2NhbGUpOwogICAgIGlmIChiYWNr
ZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNjEsMTAgKzYz
LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFjCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KHNpemUsIGJh
Y2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZN
b3ZlKGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCitzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJp
dG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJ
bnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgaGFuZGxlKQogewogICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZT4oaGFuZGxlKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTc5LDExICs4MSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhYwogICAgIGlmICghY29u
dGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGJpdG1hcCksIFdURk1vdmUo
Y29udGV4dCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZD4obG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3ZlKGJpdG1hcCksIFdURk1vdmUoY29udGV4dCkp
OwogfQogCi1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJ
bnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYmIGJpdG1hcCwgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzQ29udGV4dD4mJiBjb250ZXh0KQotICAgIDogUGxhdGZvcm1JbWFnZUJ1ZmZl
ckJhY2tlbmQobG9naWNhbFNpemUsIHBoeXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlKQorSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3Qg
SW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIFJlZlB0cjxTaGFyZWFibGVCaXRt
YXA+JiYgYml0bWFwLCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiYmIGNvbnRleHQp
CisgICAgOiBQbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwgcGh5c2ljYWxT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0KQogICAgICwgbV9i
aXRtYXAoV1RGTW92ZShiaXRtYXApKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0lt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRl
eCA5ZTI0YWI5OWViYzY3NWNlMjAxYTU5Mzk3MjhjNjE5ZGJhNTk1ZWMzLi43M2UxMjMxZjdiNmQ0
ZTY0M2VjYTNkOGUxYmYxNmZkMDI0N2FjOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTQzLDEwICs0MywxMCBAQCBjbGFzcyBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1JbWFn
ZUJ1ZmZlckJhYwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQpOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlLCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6
Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIGNvbnN0IFdl
YkNvcmU6Okhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZv
cm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKIAotICAgIEltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4mJik7CisgICAgSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1hdCwgUmVmUHRy
PFNoYXJlYWJsZUJpdG1hcD4mJiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dD4mJik7CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7CiAKQEAgLTYwLDggKzYwLDYgQEAgcHVibGljOgogICAg
IHZvaWQgcHV0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRG
b3JtYXQsIGNvbnN0IFdlYkNvcmU6OkltYWdlRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0g
ICAgV2ViQ29yZTo6Q29sb3JGb3JtYXQgYmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gV2ViQ29yZTo6Q29sb3JGb3JtYXQ6OkJHUkE7IH0KLQogICAgIFJlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IG1fYml0bWFwOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5o
CmluZGV4IDAxZTUzZTE1YzRiMWQxZjUwYWZkNzBiZGNjOWIxNjg0NDk2ZTVkNjMuLjQ2NmE4YjA3
N2RiMjdkMjU5OWY4NDBlMjlmY2E5YjZiZWYxYjA3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oCkBAIC02NCwxMCArNjQsMTAgQEAgcHVibGljOgogICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS0+cmVsZWFzZVJlbW90ZVJlc291cmNlKG1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKICAgICB9CiAKLSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFj
a2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xv
clNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQorICAgIHZvaWQgY3JlYXRl
QmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OkNvbG9yRm9ybWF0IGNvbG9yRm9ybWF0
LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KCFtX2JhY2tlbmQpOwotICAgICAgICBtX2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxv
Z2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZN
b3ZlKGhhbmRsZSkpOworICAgICAgICBtX2JhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKGxv
Z2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb2xv
ckZvcm1hdCwgV1RGTW92ZShoYW5kbGUpKTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1pdEZsdXNo
RGlzcGxheUxpc3QoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXgg
YjFjMDNiM2FkYTg3NDg0MmRjMTczMDNkY2E0MTk5MDkzYjA1MzhmYS4uYjZmOGFiMzgyODg2NmZi
M2Q2MjM3YWU1YjA5MGE1NGUzY2Y2YmUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcApAQCAtODksNyArODksNyBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6d2FpdEZvckZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoKQogICAgIHJldHVy
biBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkPiht
X3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50
ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAotUmVmUHRyPEltYWdlQnVm
ZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9h
dFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0KQog
ewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXI7CiAKQEAgLTEwMCw3ICsxMDAs
NyBAQCBSZWZQdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaQogICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNj
ZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCAqdGhpcyk7CiAKICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVu
ZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBpbWFnZUJ1ZmZlci0+cmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRl
SW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBjb2xvckZvcm1hdCwgaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cigpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiAgICAgICAgIG1fcmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNhY2hlSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcigpLCBpbWFnZUJ1ZmZlci5nZXQoKSk7CiAgICAgICAgIHJldHVybiBp
bWFnZUJ1ZmZlcjsKICAgICB9CkBAIC0xNDUsMTYgKzE0NSwxNiBAQCB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZgogICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVh
c2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDb2xv
ckZvcm1hdCBjb2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsK
ICAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVk
SW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBpZiAoIWltYWdl
QnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKGltYWdlQnVmZmVyLT5pc0Fj
Y2VsZXJhdGVkKCkpCi0gICAgICAgIGRvd25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5k
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAg
ICAgICBkb3duY2FzdDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1
ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgY29sb3JGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgZWxz
ZQotICAgICAgICBkb3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4o
KmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3du
Y2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5j
cmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb2xvckZvcm1hdCwgV1RGTW92ZShoYW5kbGUpKTsKIH0KIAogdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlz
cGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCBhYmE5NjJlNDA4OTM4Y2YwZmIyZTM0ZDViYTA4
MDNhMmUwY2E0NzI3Li5lZDA1MGI1NzVhOWJjMWY0ZTg3MGU3MWMzNjRkNGQ5YmM1MzAzZDBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTczLDcgKzczLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgotICAg
IFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VC
dWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNv
cmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQpOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURh
dGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgdXBkYXRlUmV1c2FibGVIYW5kbGVzKCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNl
aXZlZC4KLSAgICB2b2lkIGltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OworICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpD
b2xvckZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRl
ZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1f
cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3ZTM0MzM1NDc1OGYyNjIyZWU2YTM4YmQy
NzBhYmI1NjVlNTEyNTAzLi5jMzMyOTEwMTZhZTEyZTQ1NjRkOWZhYTU0YjY1YTdjNjc2MmQ0ZThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2Fn
ZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIElt
YWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXpl
LCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIEltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQo
V2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRT
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OkNvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBXZWJLaXQ6
OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgRmx1c2hEaXNw
bGF5TGlzdFdhc0NvbW1pdHRlZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVy
IGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDA2ZjM5
OTEzZmM2N2I2ODIyZWMyZjFlODFhMzRiMzgzNzE1OGUxZmYuLjIzOWE2MDYwZGM1YzAxMTM3M2Uw
NmFiYWJjMTNiNTg4OGI0MDdiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTM3LDEzICszNywxMyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cq
KQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4g
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
Q29sb3JGb3JtYXQgY29sb3JGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqKQogewogICAgIEludFNp
emUgYmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9uU2Nh
bGUpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUs
IGJhY2tlbmRTaXplLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSkpOworICAgIGF1dG8g
c3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2Fj
aGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpLCBJT1N1cmZhY2U6OmZvcm1hdEZvckNvbG9yRm9y
bWF0KGNvbG9yRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIApAQCAtNTMsMTAgKzUzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmCiAKICAg
ICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2lu
dDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKTsKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZNb3Zl
KHN1cmZhY2UpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgaW50ZXJuYWxT
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUm
IGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIENvbG9yRm9ybWF0IGNvbG9yRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFu
ZGxlKQogewogICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0Piho
YW5kbGUpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjcsNyArNjcsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZgogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBpbnRlcm5hbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlx
dWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50
ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNvbG9yRm9ybWF0LCBXVEZN
b3ZlKHN1cmZhY2UpKTsKIH0KIAogSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IDk1NjE5NGI0ODQ4YzgyZDQ5OGJhNWJjOTBkMDNlNzY4
NjkxMmZlMWQuLmMzODA5NjBmYjVmNzM5OTI5NDNkZTNjOTVlZmI2ZWQ1Y2YxNmZkNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuaApAQCAtMzksOCArMzksOCBAQCBjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhYwogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
KTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQpOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlLCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6Q29sb3JGb3JtYXQsIGNvbnN0IFdlYkNv
cmU6Okhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZv
cm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKIAogICAgIHVzaW5nIFdlYkNvcmU6Oklt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGZlZGMzZGIxMGFkNzczYmQ1NTM2MzI2ZmFiMWMx
NzQwODVjYjE2ZDAuLmI0M2JhNzkwOTJlYmZlMmMzN2MwODgxNjlhYWZiM2E4ZmZiZTQ4NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05MTAsMTIgKzkxMCwxMiBAQCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkmIFdlYkNocm9tZUNsaWVudDo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KAogICAgIHJldHVybiAqbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiB9
CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZl
cihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVu
ZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkgY29uc3QKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29sb3JGb3JtYXQgY29sb3JGb3JtYXQpIGNvbnN0
CiB7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5k
ZXJpbmdGb3IocHVycG9zZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJu
IGVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVyKHNp
emUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgcmV0
dXJuIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpLmNyZWF0ZUltYWdlQnVmZmVy
KHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY29sb3JG
b3JtYXQpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDE3MWZhNjMzM2RjZTMyM2MwMGM3OGNlYmRlMjczZjAwZTZjOTBmMDIuLmM1OTM0
N2U2ZmYxM2U3NTEzMzhlNTZmMzJmNWJjM2IyNjhiODIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTI0NCw3ICsyNDQsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
ICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KCkgY29uc3Q7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVh
dGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJp
bmdNb2RlLCBXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwg
V2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgV2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpDb2xvckZvcm1h
dCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogICAgIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFs
bG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNDhhN2VkNTU2MGJkMWQyZDA2MGQ5
NzU5ODU5YjEyYjY5MzJhZTZhLi5hYTNmODA5OTBlNjE4N2ExZTZjNzg4NWQ5NmYxYjVmNGFlNTcx
NGViIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIG1pbmltYWwgc3VwcG9ydCBmb3IgZGVlcCBjb2xvciBJ
T1N1cmZhY2UgYmFja2luZyBzdG9yZSB0byBJbWFnZUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxE
dW1wU3VwcG9ydElPUy5tbToKKyAgICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmll
dyk6CisKIDIwMjAtMTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbR1BVUHJvY2Vzc10gU2VhbWxlc3NseSByZXN1bWUgV2ViQXVkaW8gcGxheWJhY2sgaWYg
dGhlIEdQVSBQcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1Bp
eGVsRHVtcFN1cHBvcnRJT1MubW0KaW5kZXggNjE3OGQyYTViNDY4NzVlNzgxZWEzOWI0OWM0NTJh
YzczYjU1MjMwOS4uZDcwOWEyZTkxNmE1MTFiNzA2MThlOTEyYTQ2ZDc2YmI4MDc5YmUxNCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0KQEAg
LTY3LDkgKzY3LDkgQEAgUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRG
cm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWUKICAgICBzbmFwc2hvdFNpemUu
c2NhbGUoZGV2aWNlU2NhbGVGYWN0b3IpOwogCiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCi0g
ICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpz
Y3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0
OjpSR0IxMCA6IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOworICAgIFdlYkNvcmU6
OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVuU3VwcG9y
dHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBX
ZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNlbHNlCi0gICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1h
dDo6UkdCQTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogI2VuZGlmCiAgICAgYXV0byBzdXJm
YWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXpl
KHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90Rm9y
bWF0KTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IHN1cmZhY2UtPmNyZWF0
ZUltYWdlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413878</attachid>
            <date>2020-11-11 15:49:42 -0800</date>
            <delta_ts>2020-11-11 17:06:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111154941.patch</filename>
            <type>text/plain</type>
            <size>104898</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk1MjI4ZGZjNGJjNmIy
NTUzOTYzODVjNjQwZTRiNWE3YmM3OWVkYy4uZTI5MTM4NWNlZWVlZTc0Njg5MzQyNzQ3ZGE0MmFk
MGVlNmMzYTJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBObyBu
ZXcgdGVzdHM7IHdpbGwgYmUgY292ZXJlZCBieSBhbGwgZGVlcCBjb2xvciB0ZXN0cyB3aGVuIEdQ
VSBQcm9jZXNzIERPTSByZW5kZXJpbmcgbGFuZHMuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byBwYXNzIGEgQ29sb3JGb3JtYXQgaW50byB0aGUgSW1hZ2VCdWZmZXIgY29uc3RydWN0b3Is
CisgICAgICAgIGFuZCBhZGQgUkdCMTAgYW5kIFJHQjEwQTggQ29sb3JGb3JtYXRzLgorCisgICAg
ICAgIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IGdldC9wdXRJbWFnZURhdGEgZm9yIGRlZXAg
Y29sb3IgYnVmZmVycywgYmVjYXVzZQorICAgICAgICB0aGF0IGlzIG5vdCBuZWVkZWQgZm9yIElt
YWdlQnVmZmVycyBiYWNraW5nIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlICh0aGUgbW90aXZhdGlv
bgorICAgICAgICBmb3IgdGhpcyksIGJ1dCBpZiB3ZSBldmVudHVhbGx5IHdhbnRlZCB0byBtb3Jl
IGdlbmVyYWxseSBzdXBwb3J0IGRlZXAgY29sb3IgSW1hZ2VCdWZmZXJzLAorICAgICAgICB0aGF0
J3MgbW9zdCBvZiB0aGUgcmVtYWluaW5nIHdvcmsuCisKKyAgICAgICAgQWxzbywgc3RhbmRhcmRp
emUgb24gQkdSQTggYXMgdGhlIGRlZmF1bHQgQ29sb3JGb3JtYXQgZm9yIGJ1ZmZlcnMuCisgICAg
ICAgIGlPUywgQ2Fpcm8sIElPU3VyZmFjZSwgYW5kIFNoYXJlYWJsZUJpdG1hcCBhbGwgYWxyZWFk
eSB1c2UgQkdSQTggYnkgZGVmYXVsdDsKKyAgICAgICAgb25seSBJbWFnZUJ1ZmZlciB3aXRoIENH
Qml0bWFwIGJhY2tpbmcgc3RvcmUgb24gbWFjT1MgdXNlZCBSR0JBOC4gU28sCisgICAgICAgIGZv
ciBzYW5pdHkncyBzYWtlIChhbmQgc28gdGhhdCBpdCdzIGVhc3kgdG8gaGF2ZSBhIGRlZmF1bHQg
cGFzc2VkIGludG8KKyAgICAgICAgdGhlIGNvbnN0cnVjdG9yKSwgc3RhbmRhcmRpemUgb24gQkdS
QTguCisKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpjcmVh
dGVCdWZmZXJGb3JQYWludGluZyBjb25zdCk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAg
ICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6
Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmg6CisgICAgICAgIFBsdW1iaW5nIENvbG9yRm9ybWF0IGFyb3VuZC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRvQkdSQURhdGEgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURhdGEpOgorICAg
ICAgICBBc3NlcnQgdGhhdCBjb3B5SW1hZ2VQaXhlbHMgaXMgYWx3YXlzIG9wZXJhdGluZyBvbiBh
IDgtYml0IGJ1ZmZlciwKKyAgICAgICAgc2luY2UgdGhhdCdzIGFsbCBpdCBzdXBwb3J0cyBmb3Ig
bm93LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvbG9yRm9ybWF0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Ynl0ZXNQZXJSb3cgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpiYWNrZW5kQ29sb3JG
b3JtYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZmVyQkdSQVBpeGVsQnVm
ZmVyVG9JT1N1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZm
ZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQmFja2VuZDo6dG9DRkRhdGEgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29weUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpj
b3B5TmF0aXZlSW1hZ2UgY29uc3QpOgorICAgICAgICBBZG9wdCBDb2xvckZvcm1hdCBhbmQgc3Rh
bmRhcmRpemUgb24gQkdSQTguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRDb2xv
ckZvcm1hdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpmb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SU9TdXJmYWNlOjpmb3JtYXRGb3JDb2xvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpv
cGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Oklt
YWdlQnVmZmVyOjpjcmVhdGUpOgorCiAyMDIwLTExLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgW0dQVVByb2Nlc3NdIFNlYW1sZXNzbHkgcmVzdW1lIFdlYkF1
ZGlvIHBsYXliYWNrIGlmIHRoZSBHUFUgUHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExMmRk
M2E1OGNhODFkYjBiNjBjOGE4ZjAyOGZhZTk0MmRhMWZhNGMuLjQ4ZWQ0OTkzN2I3NTFiYTZhOWQ5
NmQ5OTJmMmU2OGY5YjhiN2Q4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEt
MTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IG1pbmltYWwgc3VwcG9ydCBmb3IgZGVlcCBjb2xvciBJT1N1cmZhY2UgYmFja2luZyBzdG9yZSB0
byBJbWFnZUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4ODE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlSW1hZ2VCdWZmZXI6OlJlbW90ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAg
ICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6Ynl0ZXNQZXJQaXhlbCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzdXJmYWNl
QnVmZmVyRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF90YWtlVmlld1NuYXBzaG90XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGVCYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVy
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjppbWFnZUJ1
ZmZlckJhY2tlbmRXYXNDcmVhdGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KwogMjAyMC0xMS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFtHUFVQcm9jZXNzXSBTZWFtbGVzc2x5IHJlc3VtZSBXZWJBdWRpbyBwbGF5YmFjayBpZiB0aGUg
R1BVIFByb2Nlc3MgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0
b21QYWludENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFz
LmNwcAppbmRleCBlNDUwNDRmNzA5NDhkNGYzOTNiZDk2OGQ0NzlmMzhiNzdmZGY5M2EyLi45M2Vk
NDM2MDU3NzY3NWZlMjA3OGJhZDQ4NzVhMWYzMDU4ODBjMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcApAQCAtOTIsNyArOTIsNyBAQCBJbWFnZSogQ3VzdG9t
UGFpbnRDYW52YXM6OmNvcGllZEltYWdlKCkgY29uc3QKICAgICBpZiAoIXdpZHRoKCkgfHwgIWhl
aWdodCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29waWVkQnVmZmVyID0g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQs
IDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIG1fY29waWVkQnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEs
IENvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CiAgICAgaWYg
KCFtX2NvcGllZEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggZTU4MzIxMDMwZThiYWM4NGM2MTQz
NjcyOWMwNmI1ZjcxZGYyOWNiZi4uMTY5Y2FhOTAwMjRkMjY3NzIzMDUwNjJmNTk4ZDEyY2NkZGJh
YjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTkz
OSw3ICs5MzksNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigp
IGNvbnN0CiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0ZShzaXplKCkp
ID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBmb3IgRGlzcGxheUxpc3QgZHJh
d2luZyBvbiBjYW52YXMuCiAgICAgYXV0byB1c2VEaXNwbGF5TGlzdCA9IG1fdXNlc0Rpc3BsYXlM
aXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5kaXNwbGF5TGlzdERyYXdp
bmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6IFNob3VsZFVzZURpc3Bs
YXlMaXN0OjpObzsKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
KSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZh
cywgMSwgQ29sb3JTcGFjZTo6U1JHQiwgaG9zdFdpbmRvdykpOworICAgIHNldEltYWdlQnVmZmVy
KEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJpbmdNb2RlLCB1c2VEaXNwbGF5TGlz
dCwgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBQaXhlbEZv
cm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpKTsKIAogICAgIGlmIChidWZmZXIoKSAmJiBidWZmZXIo
KS0+ZHJhd2luZ0NvbnRleHQoKSkKICAgICAgICAgYnVmZmVyKCktPmRyYXdpbmdDb250ZXh0KCkt
PnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggNmRiYjc5NzVlZGIy
YmRhY2NmZjQwYjAwNGUxNDIwMzVhNzg3Y2E1NC4uZTI0NDI0Mjc4NGQwNTAxY2RjNGJhZGE0NGI3
NTYzZTEwNmRiMWVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
CkBAIC0yODcsNyArMjg3LDcgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBIVE1MVmlkZW9FbGVtZW50
OjpjcmVhdGVCdWZmZXJGb3JQYWludGluZyhjb25zdCBGbG9hdFNpemUmIHMKIHsKICAgICBhdXRv
KiBob3N0V2luZG93ID0gZG9jdW1lbnQoKS52aWV3KCkgJiYgZG9jdW1lbnQoKS52aWV3KCktPnJv
b3QoKSA/IGRvY3VtZW50KCkudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKSA6IG51bGxwdHI7
CiAgICAgYXV0byBzaG91bGRVc2VEaXNwbGF5TGlzdCA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5k
aXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkgPyBTaG91bGRVc2VEaXNwbGF5TGlzdDo6WWVzIDog
U2hvdWxkVXNlRGlzcGxheUxpc3Q6Ok5vOwotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHNpemUsIHJlbmRlcmluZ01vZGUsIHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJw
b3NlOjpNZWRpYVBhaW50aW5nLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBob3N0V2luZG93KTsKKyAg
ICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRV
c2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgQ29sb3JT
cGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKIH0KIAogdm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VCaXRtYXAuY3BwCmluZGV4IGU5NjhiNDg2MDNlMDFlNThjNjMzNmRkNmRkOWM5YTFiNTUyNDJi
MTIuLmI0NjYxNjgwNDMwN2I0NWFkM2M3NzYxMmUyN2FlNDliNGFjNmMyYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFJlZlB0cjxJbWFnZUJ1ZmZl
cj4gSW1hZ2VCaXRtYXA6OmNyZWF0ZUltYWdlQnVmZmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwCiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoZG9jdW1lbnQudmlldygpICYmIGRvY3Vt
ZW50LnZpZXcoKS0+cm9vdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGhvc3RXaW5kb3cgPSBkb2N1
bWVudC52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOwotICAgICAgICAgICAgcmV0dXJuIElt
YWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxp
c3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3NlOjpDYW52YXMsIHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZTo6U1JHQiwgaG9zdFdpbmRvdyk7CisgICAgICAgICAgICByZXR1cm4gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdDo6Tm8sIFJl
bmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlOjpTUkdC
LCBQaXhlbEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpOwogICAgICAgICB9CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggOTk3ZjJhZjdmOTc1NjkwYzc3MzgxNjQyOTIxNWI5ZTUx
YmFjNTlmMS4uMGEwOThkMmRiNDkyMGQ3M2MyZjEwODE0NWIyMzBiZDkwODRhNjk1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcApAQCAtNTIzLDkgKzUyMyw5IEBAIHZvaWQgQ2hyb21lOjpzZXRDdXJz
b3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCiAgICAg
bV9jbGllbnQuc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGhpZGRlblVudGlsTW91c2VN
b3Zlcyk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2hyb21lOjpjcmVhdGVJbWFnZUJ1ZmZl
cihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVu
ZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkgY29uc3QKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2hyb21lOjpjcmVhdGVJbWFn
ZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fY2xpZW50LmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1
cnBvc2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgcmV0dXJuIG1fY2xpZW50
LmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBvc2UsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpOwogfQogCiBQbGF0Zm9ybURpc3BsYXlJ
RCBDaHJvbWU6OmRpc3BsYXlJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCBjZjc3N2Uw
Y2NkOTlhN2NiNTkxMzhlYWZiNjExZTRmMWMwMjZmZjljLi4yMzMyOGY1NmExOTEyMDQ5ZDQ3OTc2
NDFkMDE0MDA1NTE1OTAzNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTg0LDcgKzg0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOwogCi0g
ICAgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUm
LCBSZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3Jl
YXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5n
UHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBQaXhlbEZvcm1hdCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3Bs
YXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCmluZGV4IDdhZjE3OGU5ODY2OGRhOWM3MTQ0NDQ1MTMyNjA2OTc0ODdkODM1YzguLjNh
OWUxZDY2OTA5N2U1OTVkOWI1N2ZjNGNmZjdlNjFhNWQxOGQwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
UmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9y
KFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKLSAgICB2aXJ0
dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXpl
JiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQsIENvbG9yU3BhY2UpIGNv
bnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4g
Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVy
aW5nUHVycG9zZSwgZmxvYXQsIENvbG9yU3BhY2UsIFBpeGVsRm9ybWF0KSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAKICAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdyYXBoaWNzTGF5ZXIg
dG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vSG9zdFdpbmRvdy5oCmluZGV4IDg5NjVhMjUzZTE4N2VlOTc2YTRlNjk0ODhkNGY2ODU2OGY1
YmM3MjEuLjQzZGIxZmZhZTAxMmJiMjE4OTRmMmNhOTYzMDcyMTQ3NjZhYWRkOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgQ3Vyc29yOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiAKK2VudW0gY2xhc3Mg
UGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsK
IGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1B1
cnBvc2UgOiB1aW50OF90OwpAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJ
bnRQb2ludCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3Jl
ZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEltYWdl
QnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2Rl
LCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBQaXhlbEZvcm1hdCkgY29uc3QgPSAwOwog
CiAgICAgLy8gTWV0aG9kIGZvciByZXRyaWV2aW5nIHRoZSBuYXRpdmUgY2xpZW50IG9mIHRoZSBw
YWdlLgogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgp
IGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbmNyZXRlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAppbmRleCA4NTQwMjE1ZjYyMzdjYzBhM2Q2MjVlMzJmYTk2
N2RmOWE2MmVjMmFmLi44Zjg0ZTliYTIyY2NlNWQ5Mjc2MmI1YWM2NzkyMzIyZWVkYTM2OWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJ
bWFnZUJ1ZmZlci5oCkBAIC0zNCw5ICszNCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRU
eXBlPgogY2xhc3MgQ29uY3JldGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBJbWFnZUJ1ZmZlciB7CiBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW1hZ2VCdWZmZXJUeXBlID0gQ29uY3JldGVJ
bWFnZUJ1ZmZlciwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIHN0YXRpYyBSZWZQdHI8SW1h
Z2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdp
bmRvdywgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VC
dWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNv
bnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAg
ICB7Ci0gICAgICAgIGF1dG8gYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUoc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgYXV0byBiYWNr
ZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKICAgICAgICAgaWYgKCFiYWNrZW5kKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1h
Z2VCdWZmZXJUeXBlKFdURk1vdmUoYmFja2VuZCksIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFy
Z3VtZW50cykuLi4pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmNwcAppbmRleCA4ZjYyZGM2YTM0ODNjODQzZDA1YmVmNjczNGRjNTRhMTNiNGIw
ZTVmLi42YzExZTU1NjU1MmZkMmMzNjVkMTk0MGM4Y2I1YmU0YjJlODlkY2I0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCkBAIC0zOCwz
NSArMzgsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGZsb2F0IE1heENs
YW1wZWRMZW5ndGggPSA0MDk2Owogc3RhdGljIGNvbnN0IGZsb2F0IE1heENsYW1wZWRBcmVhID0g
TWF4Q2xhbXBlZExlbmd0aCAqIE1heENsYW1wZWRMZW5ndGg7CiAKLVJlZlB0cjxJbWFnZUJ1ZmZl
cj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Qgc2hvdWxkVXNlRGlzcGxheUxp
c3QsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitSZWZQdHI8
SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0IHNob3VsZFVz
ZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29u
c3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGlt
YWdlQnVmZmVyOwogICAgIGlmIChob3N0V2luZG93KQotICAgICAgICBpbWFnZUJ1ZmZlciA9IGhv
c3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHB1cnBvc2Us
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSk7CisgICAgICAgIGltYWdlQnVmZmVyID0gaG9z
dFdpbmRvdy0+Y3JlYXRlSW1hZ2VCdWZmZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcHVycG9zZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCk7CiAKICAgICBpZiAoIWlt
YWdlQnVmZmVyICYmIHNob3VsZFVzZURpc3BsYXlMaXN0ID09IFNob3VsZFVzZURpc3BsYXlMaXN0
OjpZZXMpIHsKICAgICAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNj
ZWxlcmF0ZWQpCi0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0QWNjZWxlcmF0
ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
aG9zdFdpbmRvdyk7CisgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0QWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFj
ZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOwogICAgICAgICAKICAgICAgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKLSAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RVbmFjY2VsZXJh
dGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdFVuYWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOwogICAgIH0KIAogICAgIGlmICghaW1hZ2VC
dWZmZXIpCi0gICAgICAgIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBy
ZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOwor
ICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5n
TW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRv
dyk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitSZWZQdHI8SW1hZ2VCdWZmZXI+IElt
YWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
LCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykK
IHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyOwogICAgIAogICAgIGlmIChy
ZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICBpbWFn
ZUJ1ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKICAgICAKICAgICBpZiAoIWltYWdlQnVm
ZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdyk7CisgICAg
ICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiAK
ICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBjZjQ3YzE5ZjBjZTE3MDRmMDI1MTk3MjBiMzky
YTAwMjVlOWUxNGQ2Li5jMmY0ZmQ2YjJmNzRhNmM2NTc2ZWI0MTJkZjRjOTMyNzgzM2MyZWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAg
LTQyLDggKzQyLDggQEAgY2xhc3MgRHJhd2luZ0NvbnRleHQ7CiBjbGFzcyBJbWFnZUJ1ZmZlciA6
IHB1YmxpYyBSZWZDb3VudGVkPEltYWdlQnVmZmVyPiB7CiBwdWJsaWM6CiAgICAgLy8gV2lsbCBy
ZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUm
LCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0Is
IGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0cik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpT
UkdCLCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJp
bmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9y
bWF0ID0gUGl4ZWxGb3JtYXQ6OkJHUkE4LCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25z
dCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBD
b2xvclNwYWNlID0gQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQgPSBQaXhlbEZvcm1hdDo6
QkdSQTgsIGNvbnN0IEhvc3RXaW5kb3cqID0gbnVsbHB0cik7CiAgICAgc3RhdGljIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4
dCYpOwogCiAgICAgLy8gQ3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRpYmxlIHdpdGggdGhl
IGNvbnRleHQsIHdpdGggc3VpdGFibGUgcmVzb2x1dGlvbiBmb3IgZHJhd2luZyBpbnRvIHRoZSBi
dWZmZXIgYW5kIHRoZW4gaW50byB0aGlzIGNvbnRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAppbmRleCBmMWYz
NjdjMDZhMmEwYzlkOTkxM2M5YzkyMzZjMTk3MzZlZGU1OWEyLi43ZjBmZTllNmQ5NjZlNzRiNDVm
ODVhYWQwZTNiMmZiODRkOTQ1MGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKQEAgLTMxLDExICszMSwxMiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdlQnVmZmVyQmFja2VuZDo6SW1hZ2VCdWZm
ZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkK
K0ltYWdlQnVmZmVyQmFja2VuZDo6SW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQpCiAg
ICAgOiBtX2xvZ2ljYWxTaXplKGxvZ2ljYWxTaXplKQogICAgICwgbV9iYWNrZW5kU2l6ZShiYWNr
ZW5kU2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKHJlc29sdXRpb25TY2FsZSkKICAgICAs
IG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQorICAgICwgbV9waXhlbEZvcm1hdChwaXhlbEZvcm1h
dCkKIHsKIH0KIApAQCAtMTA1LDEzICsxMDYsMTMgQEAgVmVjdG9yPHVpbnQ4X3Q+IEltYWdlQnVm
ZmVyQmFja2VuZDo6dG9CR1JBRGF0YSh2b2lkKiBkYXRhKSBjb25zdAogICAgIHVpbnQ4X3QqIHNy
Y1Jvd3MgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhKTsKIAogICAgIGNvcHlJbWFn
ZVBpeGVscygKLSAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwg
YmFja2VuZENvbG9yRm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBB
bHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIENvbG9yRm9ybWF0OjpCR1JB
LCBkZXN0Qnl0ZXNQZXJSb3csIHJlc3VsdC5kYXRhKCksIG1fbG9naWNhbFNpemUpOworICAgICAg
ICBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBz
cmNCeXRlc1BlclJvdywgc3JjUm93cywKKyAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6
VW5wcmVtdWx0aXBsaWVkLCBQaXhlbEZvcm1hdDo6QkdSQTgsIGRlc3RCeXRlc1BlclJvdywgcmVz
dWx0LmRhdGEoKSwgbV9sb2dpY2FsU2l6ZSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1z
dGF0aWMgaW5saW5lIHZvaWQgY29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQoQ29sb3JG
b3JtYXQgc3JjQ29sb3JGb3JtYXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBDb2xvckZvcm1h
dCBkZXN0Q29sb3JGb3JtYXQsIHVpbnQ4X3QqIGRlc3RQaXhlbCkKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZChQaXhlbEZvcm1hdCBzcmNQaXhlbEZv
cm1hdCwgY29uc3QgdWludDhfdCogc3JjUGl4ZWwsIFBpeGVsRm9ybWF0IGRlc3RQaXhlbEZvcm1h
dCwgdWludDhfdCogZGVzdFBpeGVsKQogewogICAgIHVpbnQ4X3QgYWxwaGEgPSBzcmNQaXhlbFsz
XTsKICAgICBpZiAoIWFscGhhKSB7CkBAIC0xMTksNyArMTIwLDcgQEAgc3RhdGljIGlubGluZSB2
b2lkIGNvcHlQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkKENvbG9yRm9ybWF0IHNyY0NvbG9y
Rm9ybWF0LAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHNyY0NvbG9yRm9ybWF0
ID09IGRlc3RDb2xvckZvcm1hdCkgeworICAgIGlmIChzcmNQaXhlbEZvcm1hdCA9PSBkZXN0UGl4
ZWxGb3JtYXQpIHsKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGRlc3RQaXhl
bClbMF0gPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3JjUGl4ZWwpWzBdOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTMxLDE1ICsxMzIsMTUgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIGNvcHlQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkKENvbG9yRm9ybWF0IHNyY0Nv
bG9yRm9ybWF0LAogICAgIGRlc3RQaXhlbFszXSA9IHNyY1BpeGVsWzNdOwogfQogCi1zdGF0aWMg
aW5saW5lIHZvaWQgY29weVByZW11bHRpcGxpZWRUb1VucHJlbXVsdGlwbGllZChDb2xvckZvcm1h
dCBzcmNDb2xvckZvcm1hdCwgY29uc3QgdWludDhfdCogc3JjUGl4ZWwsIENvbG9yRm9ybWF0IGRl
c3RDb2xvckZvcm1hdCwgdWludDhfdCogZGVzdFBpeGVsKQorc3RhdGljIGlubGluZSB2b2lkIGNv
cHlQcmVtdWx0aXBsaWVkVG9VbnByZW11bHRpcGxpZWQoUGl4ZWxGb3JtYXQgc3JjUGl4ZWxGb3Jt
YXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBQaXhlbEZvcm1hdCBkZXN0UGl4ZWxGb3JtYXQs
IHVpbnQ4X3QqIGRlc3RQaXhlbCkKIHsKICAgICB1aW50OF90IGFscGhhID0gc3JjUGl4ZWxbM107
CiAgICAgaWYgKCFhbHBoYSB8fCBhbHBoYSA9PSAyNTUpIHsKLSAgICAgICAgY29weVByZW11bHRp
cGxpZWRUb1ByZW11bHRpcGxpZWQoc3JjQ29sb3JGb3JtYXQsIHNyY1BpeGVsLCBkZXN0Q29sb3JG
b3JtYXQsIGRlc3RQaXhlbCk7CisgICAgICAgIGNvcHlQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBs
aWVkKHNyY1BpeGVsRm9ybWF0LCBzcmNQaXhlbCwgZGVzdFBpeGVsRm9ybWF0LCBkZXN0UGl4ZWwp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09IGRl
c3RDb2xvckZvcm1hdCkgeworICAgIGlmIChzcmNQaXhlbEZvcm1hdCA9PSBkZXN0UGl4ZWxGb3Jt
YXQpIHsKICAgICAgICAgZGVzdFBpeGVsWzBdID0gKHNyY1BpeGVsWzBdICogMjU1KSAvIGFscGhh
OwogICAgICAgICBkZXN0UGl4ZWxbMV0gPSAoc3JjUGl4ZWxbMV0gKiAyNTUpIC8gYWxwaGE7CiAg
ICAgICAgIGRlc3RQaXhlbFsyXSA9IChzcmNQaXhlbFsyXSAqIDI1NSkgLyBhbHBoYTsKQEAgLTE1
NCwxNSArMTU1LDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5UHJlbXVsdGlwbGllZFRvVW5w
cmVtdWx0aXBsaWVkKENvbG9yRm9ybWF0IHNyY0NvbG9yRm9ybWF0CiAgICAgZGVzdFBpeGVsWzNd
ID0gYWxwaGE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5VW5wcmVtdWx0aXBsaWVkVG9Q
cmVtdWx0aXBsaWVkKENvbG9yRm9ybWF0IHNyY0NvbG9yRm9ybWF0LCBjb25zdCB1aW50OF90KiBz
cmNQaXhlbCwgQ29sb3JGb3JtYXQgZGVzdENvbG9yRm9ybWF0LCB1aW50OF90KiBkZXN0UGl4ZWwp
CitzdGF0aWMgaW5saW5lIHZvaWQgY29weVVucHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZChQ
aXhlbEZvcm1hdCBzcmNQaXhlbEZvcm1hdCwgY29uc3QgdWludDhfdCogc3JjUGl4ZWwsIFBpeGVs
Rm9ybWF0IGRlc3RQaXhlbEZvcm1hdCwgdWludDhfdCogZGVzdFBpeGVsKQogewogICAgIHVpbnQ4
X3QgYWxwaGEgPSBzcmNQaXhlbFszXTsKICAgICBpZiAoIWFscGhhIHx8IGFscGhhID09IDI1NSkg
ewotICAgICAgICBjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZChzcmNDb2xvckZvcm1h
dCwgc3JjUGl4ZWwsIGRlc3RDb2xvckZvcm1hdCwgZGVzdFBpeGVsKTsKKyAgICAgICAgY29weVBy
ZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQoc3JjUGl4ZWxGb3JtYXQsIHNyY1BpeGVsLCBkZXN0
UGl4ZWxGb3JtYXQsIGRlc3RQaXhlbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAoc3JjQ29sb3JGb3JtYXQgPT0gZGVzdENvbG9yRm9ybWF0KSB7CisgICAgaWYgKHNyY1BpeGVs
Rm9ybWF0ID09IGRlc3RQaXhlbEZvcm1hdCkgewogICAgICAgICBkZXN0UGl4ZWxbMF0gPSAoc3Jj
UGl4ZWxbMF0gKiBhbHBoYSArIDI1NCkgLyAyNTU7CiAgICAgICAgIGRlc3RQaXhlbFsxXSA9IChz
cmNQaXhlbFsxXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKICAgICAgICAgZGVzdFBpeGVsWzJdID0g
KHNyY1BpeGVsWzJdICogYWxwaGEgKyAyNTQpIC8gMjU1OwpAQCAtMTc3LDkgKzE3OCw5IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBjb3B5VW5wcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkKENvbG9y
Rm9ybWF0IHNyY0NvbG9yRm9ybWF0CiAgICAgZGVzdFBpeGVsWzNdID0gYWxwaGE7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgdm9pZCBjb3B5VW5wcmVtdWx0aXBsaWVkVG9VbnByZW11bHRpcGxpZWQoQ29s
b3JGb3JtYXQgc3JjQ29sb3JGb3JtYXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBDb2xvckZv
cm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVpbnQ4X3QqIGRlc3RQaXhlbCkKK3N0YXRpYyBpbmxpbmUg
dm9pZCBjb3B5VW5wcmVtdWx0aXBsaWVkVG9VbnByZW11bHRpcGxpZWQoUGl4ZWxGb3JtYXQgc3Jj
UGl4ZWxGb3JtYXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBQaXhlbEZvcm1hdCBkZXN0UGl4
ZWxGb3JtYXQsIHVpbnQ4X3QqIGRlc3RQaXhlbCkKIHsKLSAgICBpZiAoc3JjQ29sb3JGb3JtYXQg
PT0gZGVzdENvbG9yRm9ybWF0KSB7CisgICAgaWYgKHNyY1BpeGVsRm9ybWF0ID09IGRlc3RQaXhl
bEZvcm1hdCkgewogICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQzMl90Kj4oZGVzdFBpeGVs
KVswXSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihzcmNQaXhlbClbMF07CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTEsMzggKzE5Miw0MiBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgY29weVVucHJlbXVsdGlwbGllZFRvVW5wcmVtdWx0aXBsaWVkKENvbG9yRm9ybWF0IHNy
Y0NvbG9yRm9ybQogICAgIGRlc3RQaXhlbFszXSA9IHNyY1BpeGVsWzNdOwogfQogCi10ZW1wbGF0
ZTx2b2lkICgqY29weUZ1bmN0b3IpKENvbG9yRm9ybWF0LCBjb25zdCB1aW50OF90KiwgQ29sb3JG
b3JtYXQsIHVpbnQ4X3QqKT4KK3RlbXBsYXRlPHZvaWQgKCpjb3B5RnVuY3RvcikoUGl4ZWxGb3Jt
YXQsIGNvbnN0IHVpbnQ4X3QqLCBQaXhlbEZvcm1hdCwgdWludDhfdCopPgogc3RhdGljIGlubGlu
ZSB2b2lkIGNvcHlJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQoCi0gICAgQ29sb3JGb3JtYXQgc3Jj
Q29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNSb3dzLAot
ICAgIENvbG9yRm9ybWF0IGRlc3RDb2xvckZvcm1hdCwgdW5zaWduZWQgZGVzdEJ5dGVzUGVyUm93
LCB1aW50OF90KiBkZXN0Um93cywgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBQaXhlbEZvcm1h
dCBzcmNQaXhlbEZvcm1hdCwgdW5zaWduZWQgc3JjQnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jv
d3MsCisgICAgUGl4ZWxGb3JtYXQgZGVzdFBpeGVsRm9ybWF0LCB1bnNpZ25lZCBkZXN0Qnl0ZXNQ
ZXJSb3csIHVpbnQ4X3QqIGRlc3RSb3dzLCBjb25zdCBJbnRTaXplJiBzaXplKQogewogICAgIHNp
emVfdCBieXRlc1BlclJvdyA9IHNpemUud2lkdGgoKSAqIDQ7CiAgICAgZm9yIChpbnQgeSA9IDA7
IHkgPCBzaXplLmhlaWdodCgpOyArK3kpIHsKICAgICAgICAgZm9yIChzaXplX3QgeCA9IDA7IHgg
PCBieXRlc1BlclJvdzsgeCArPSA0KQotICAgICAgICAgICAgY29weUZ1bmN0b3Ioc3JjQ29sb3JG
b3JtYXQsICZzcmNSb3dzW3hdLCBkZXN0Q29sb3JGb3JtYXQsICZkZXN0Um93c1t4XSk7CisgICAg
ICAgICAgICBjb3B5RnVuY3RvcihzcmNQaXhlbEZvcm1hdCwgJnNyY1Jvd3NbeF0sIGRlc3RQaXhl
bEZvcm1hdCwgJmRlc3RSb3dzW3hdKTsKICAgICAgICAgc3JjUm93cyArPSBzcmNCeXRlc1BlclJv
dzsKICAgICAgICAgZGVzdFJvd3MgKz0gZGVzdEJ5dGVzUGVyUm93OwogICAgIH0KIH0KIAogdm9p
ZCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVscygKLSAgICBBbHBoYVByZW11bHRp
cGxpY2F0aW9uIHNyY0FscGhhRm9ybWF0LCBDb2xvckZvcm1hdCBzcmNDb2xvckZvcm1hdCwgdW5z
aWduZWQgc3JjQnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jvd3MsCi0gICAgQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBkZXN0QWxwaGFGb3JtYXQsIENvbG9yRm9ybWF0IGRlc3RDb2xvckZvcm1hdCwg
dW5zaWduZWQgZGVzdEJ5dGVzUGVyUm93LCB1aW50OF90KiBkZXN0Um93cywgY29uc3QgSW50U2l6
ZSYgc2l6ZSkgY29uc3QKKyAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHNyY0FscGhhRm9ybWF0
LCBQaXhlbEZvcm1hdCBzcmNQaXhlbEZvcm1hdCwgdW5zaWduZWQgc3JjQnl0ZXNQZXJSb3csIHVp
bnQ4X3QqIHNyY1Jvd3MsCisgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0QWxwaGFGb3Jt
YXQsIFBpeGVsRm9ybWF0IGRlc3RQaXhlbEZvcm1hdCwgdW5zaWduZWQgZGVzdEJ5dGVzUGVyUm93
LCB1aW50OF90KiBkZXN0Um93cywgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKKyAgICAv
LyBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCBnZXR0aW5nIG9yIHB1dHRpbmcgcGl4ZWwgZGF0
YSB3aXRoIGRlZXAgY29sb3IgYnVmZmVycy4KKyAgICBBU1NFUlQoc3JjUGl4ZWxGb3JtYXQgPT0g
UGl4ZWxGb3JtYXQ6OlJHQkE4IHx8IHNyY1BpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JB
OCk7CisgICAgQVNTRVJUKGRlc3RQaXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6UkdCQTggfHwg
ZGVzdFBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CisKICAgICBpZiAoc3JjQWxw
aGFGb3JtYXQgPT0gZGVzdEFscGhhRm9ybWF0KSB7CiAgICAgICAgIGlmIChzcmNBbHBoYUZvcm1h
dCA9PSBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkKQotICAgICAgICAgICAg
Y29weUltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlw
bGllZD4oc3JjQ29sb3JGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0Q29sb3JG
b3JtYXQsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOworICAgICAgICAgICAgY29w
eUltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGll
ZD4oc3JjUGl4ZWxGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0UGl4ZWxGb3Jt
YXQsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBjb3B5SW1hZ2VQaXhlbHNVbmFjY2VsZXJhdGVkPGNvcHlVbnByZW11bHRpcGxpZWRU
b1VucHJlbXVsdGlwbGllZD4oc3JjQ29sb3JGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dz
LCBkZXN0Q29sb3JGb3JtYXQsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOworICAg
ICAgICAgICAgY29weUltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxjb3B5VW5wcmVtdWx0aXBsaWVk
VG9VbnByZW11bHRpcGxpZWQ+KHNyY1BpeGVsRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93
cywgZGVzdFBpeGVsRm9ybWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChkZXN0QWxwaGFGb3JtYXQgPT0gQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkKSB7Ci0gICAgICAgIGNvcHlJbWFnZVBp
eGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1VucHJlbXVsdGlwbGllZD4oc3Jj
Q29sb3JGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0Q29sb3JGb3JtYXQsIGRl
c3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOworICAgICAgICBjb3B5SW1hZ2VQaXhlbHNV
bmFjY2VsZXJhdGVkPGNvcHlQcmVtdWx0aXBsaWVkVG9VbnByZW11bHRpcGxpZWQ+KHNyY1BpeGVs
Rm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdFBpeGVsRm9ybWF0LCBkZXN0Qnl0
ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGNvcHlJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVVucHJlbXVsdGlwbGllZFRvUHJlbXVs
dGlwbGllZD4oc3JjQ29sb3JGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0Q29s
b3JGb3JtYXQsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOworICAgIGNvcHlJbWFn
ZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVVucHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZD4o
c3JjUGl4ZWxGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0UGl4ZWxGb3JtYXQs
IGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOwogfQogCiBSZWZQdHI8SW1hZ2VEYXRh
PiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9u
IG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgdm9pZCogZGF0YSkgY29uc3QK
QEAgLTI1Miw4ICsyNTcsOCBAQCBSZWZQdHI8SW1hZ2VEYXRhPiBJbWFnZUJ1ZmZlckJhY2tlbmQ6
OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dAogICAgIHVpbnQ4X3Qq
IHNyY1Jvd3MgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhKSArIHNyY1JlY3RDbGlw
cGVkLnkoKSAqIHNyY0J5dGVzUGVyUm93ICsgc3JjUmVjdENsaXBwZWQueCgpICogNDsKIAogICAg
IGNvcHlJbWFnZVBpeGVscygKLSAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVs
dGlwbGllZCwgYmFja2VuZENvbG9yRm9ybWF0KCksIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLAot
ICAgICAgICBvdXRwdXRGb3JtYXQsIENvbG9yRm9ybWF0OjpSR0JBLCBkZXN0Qnl0ZXNQZXJSb3cs
IGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkpOworICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0
aW9uOjpQcmVtdWx0aXBsaWVkLCBwaXhlbEZvcm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93
cywKKyAgICAgICAgb3V0cHV0Rm9ybWF0LCBQaXhlbEZvcm1hdDo6UkdCQTgsIGRlc3RCeXRlc1Bl
clJvdywgZGVzdFJvd3MsIGRlc3RSZWN0LnNpemUoKSk7CiAKICAgICByZXR1cm4gaW1hZ2VEYXRh
OwogfQpAQCAtMjgzLDggKzI4OCw4IEBAIHZvaWQgSW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFn
ZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QKICAgICB1aW50
OF90KiBzcmNSb3dzID0gaW1hZ2VEYXRhLmRhdGEoKS0+ZGF0YSgpICsgc3JjUmVjdENsaXBwZWQu
eSgpICogc3JjQnl0ZXNQZXJSb3cgKyBzcmNSZWN0Q2xpcHBlZC54KCkgKiA0OwogCiAgICAgY29w
eUltYWdlUGl4ZWxzKAotICAgICAgICBpbnB1dEZvcm1hdCwgQ29sb3JGb3JtYXQ6OlJHQkEsIHNy
Y0J5dGVzUGVyUm93LCBzcmNSb3dzLAotICAgICAgICBkZXN0Rm9ybWF0LCBiYWNrZW5kQ29sb3JG
b3JtYXQoKSwgZGVzdEJ5dGVzUGVyUm93LCBkZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAg
ICAgICAgaW5wdXRGb3JtYXQsIFBpeGVsRm9ybWF0OjpSR0JBOCwgc3JjQnl0ZXNQZXJSb3csIHNy
Y1Jvd3MsCisgICAgICAgIGRlc3RGb3JtYXQsIHBpeGVsRm9ybWF0KCksIGRlc3RCeXRlc1BlclJv
dywgZGVzdFJvd3MsIGRlc3RSZWN0LnNpemUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKaW5kZXggYWE5YjM0MWEwNTczZjJhZDRlOWVkMzA1N2MwNDIxZTk1OTFhZTVj
MS4uNWUyZmEwMjEyMzhlMzVjZTE5YzBhNDVmYWFhYzM5OGM3MWNlZTNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgK
QEAgLTU0LDkgKzU0LDExIEBAIGVudW0gY2xhc3MgUHJlc2VydmVSZXNvbHV0aW9uIDogdWludDhf
dCB7CiAgICAgWWVzLAogfTsKIAotZW51bSBjbGFzcyBDb2xvckZvcm1hdCA6IHVpbnQ4X3Qgewot
ICAgIFJHQkEsCi0gICAgQkdSQQorZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Qgewor
ICAgIFJHQkE4LAorICAgIEJHUkE4LAorICAgIFJHQjEwLAorICAgIFJHQjEwQTgsCiB9OwogCiBj
bGFzcyBJbWFnZUJ1ZmZlckJhY2tlbmQgewpAQCAtNzIsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAg
SW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZFNpemU7IH0KICAg
ICBmbG9hdCByZXNvbHV0aW9uU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdXRpb25TY2Fs
ZTsgfQogICAgIENvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JT
cGFjZTsgfQorICAgIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9w
aXhlbEZvcm1hdDsgfQogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9y
bSgpIGNvbnN0IHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOyB9CiAgICAgdmlydHVhbCBzaXpl
X3QgbWVtb3J5Q29zdCgpIGNvbnN0IHsgcmV0dXJuIDQgKiBtX2JhY2tlbmRTaXplLmFyZWEoKS51
bnNhZmVHZXQoKTsgfQpAQCAtMTA0LDEwICsxMDcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzQWNjZWxlcmF0ZWQgPSBmYWxzZTsKIAogcHJvdGVjdGVkOgotICAgIFdF
QkNPUkVfRVhQT1JUIEltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQpOwogCiAgICAgdmlydHVh
bCB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IHsgcmV0dXJuIDQgKiBtX2JhY2tlbmRTaXpl
LndpZHRoKCk7IH0KLSAgICB2aXJ0dWFsIENvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgp
IGNvbnN0IHsgcmV0dXJuIENvbG9yRm9ybWF0OjpSR0JBOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogICAgIFQgdG9CYWNrZW5kQ29vcmRpbmF0ZXMoVCB0KSBjb25zdApAQCAtMTIyLDgg
KzEyNCw4IEBAIHByb3RlY3RlZDoKICAgICBJbnRSZWN0IGJhY2tlbmRSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gSW50UmVjdChJbnRQb2ludDo6emVybygpLCBtX2JhY2tlbmRTaXplKTsgfTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjb3B5SW1hZ2VQaXhlbHMoCi0gICAgICAgIEFs
cGhhUHJlbXVsdGlwbGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIENvbG9yRm9ybWF0IHNyY0NvbG9y
Rm9ybWF0LCB1bnNpZ25lZCBzcmNCeXRlc1BlclJvdywgdWludDhfdCogc3JjUm93cywKLSAgICAg
ICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0QWxwaGFGb3JtYXQsIENvbG9yRm9ybWF0IGRl
c3RDb2xvckZvcm1hdCwgdW5zaWduZWQgZGVzdEJ5dGVzUGVyUm93LCB1aW50OF90KiBkZXN0Um93
cywgY29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9u
IHNyY0FscGhhRm9ybWF0LCBQaXhlbEZvcm1hdCBzcmNQaXhlbEZvcm1hdCwgdW5zaWduZWQgc3Jj
Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jvd3MsCisgICAgICAgIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gZGVzdEFscGhhRm9ybWF0LCBQaXhlbEZvcm1hdCBkZXN0UGl4ZWxGb3JtYXQsIHVuc2ln
bmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCogZGVzdFJvd3MsIGNvbnN0IEludFNpemUmKSBj
b25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiB0b0JHUkFEYXRhKHZv
aWQqIGRhdGEpIGNvbnN0OwogCkBAIC0xMzQsNiArMTM2LDIxIEBAIHByb3RlY3RlZDoKICAgICBJ
bnRTaXplIG1fYmFja2VuZFNpemU7CiAgICAgZmxvYXQgbV9yZXNvbHV0aW9uU2NhbGU7CiAgICAg
Q29sb3JTcGFjZSBtX2NvbG9yU3BhY2U7CisgICAgUGl4ZWxGb3JtYXQgbV9waXhlbEZvcm1hdDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGl4ZWxGb3JtYXQ+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OlBpeGVsRm9ybWF0LAorICAgIFdl
YkNvcmU6OlBpeGVsRm9ybWF0OjpSR0JBOCwKKyAgICBXZWJDb3JlOjpQaXhlbEZvcm1hdDo6QkdS
QTgsCisgICAgV2ViQ29yZTo6UGl4ZWxGb3JtYXQ6OlJHQjEwLAorICAgIFdlYkNvcmU6OlBpeGVs
Rm9ybWF0OjpSR0IxMEE4CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
Y3BwCmluZGV4IDEwY2IwYTAzNjFlMDk4NDhjNDdhZGRkMWY1YzZlMzc0MDRhNjRhYjAuLmE2MzUx
NDdkMGJjYTNiNzZjZTEyZGY3NjQ4MjQ4YTNkYzgwYmFmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKQEAgLTU2
LDcgKzU2LDcgQEAgc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFu
c2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJmYWNlKENWUGkKICAgICB9CiAKICAgICBJbnRTaXpl
IHNpemUgeyBzdGF0aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZl
cikpLCBzdGF0aWNfY2FzdDxpbnQ+KENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIp
KSB9OwotICAgIGF1dG8gaW9TdXJmYWNlID0gIElPU3VyZmFjZTo6Y3JlYXRlKHNpemUsIHNSR0JD
b2xvclNwYWNlUmVmKCksIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBKTsKKyAgICBhdXRvIGlvU3Vy
ZmFjZSA9ICBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBJT1N1
cmZhY2U6OkZvcm1hdDo6QkdSQSk7CiAKICAgICBJT1N1cmZhY2U6OkxvY2tlciBsb2NrKCppb1N1
cmZhY2UpOwogICAgIHZJbWFnZV9CdWZmZXIgc3JjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNr
ZW5kLmgKaW5kZXggMjNiOTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcxNmRlZjNhMS4uMDNl
YTE2NjIwMTc2YzMxNTkwMzU0NGY2OTliNDFhNTQyYTJmNmY3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckNhaXJvQmFja2VuZC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAg
ICB1c2luZyBJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZDsKIAotICAgIENv
bG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENv
bG9yRm9ybWF0OjpCR1JBOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtVHJhbnNmb3JtQ29s
b3JTcGFjZShjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mKSB7IH0KIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcAppbmRl
eCAzZjBlYjA4NDA3YzcyNTMzZGVhMWExNDlmYzdjZDVhNjgyN2U0MDllLi4xY2QwNzU0YjM5MTQz
YWY0MjliNDZkNWQ3OGU0NTFmMGQxZTA3NGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC00MSw4ICs0MSwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZl
ckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
ckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWly
b0ltYWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhl
bEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCiB7CisgICAgQVNTRVJUKHBpeGVsRm9ybWF0ID09
IFBpeGVsRm9ybWF0OjpCR1JBOCk7CisKICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90
IHNfc3VyZmFjZURhdGFLZXk7CiAKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRl
QmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKQEAgLTU5LDE2ICs2MSwxNiBAQCBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IEltYWdl
QnVmZmVyQ2Fpcm9JbWFnZVN1cmZhYwogICAgICAgICBmYXN0RnJlZShkYXRhKTsKICAgICB9KTsK
IAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFj
ZUJhY2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZChzaXplLCBi
YWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2Up
KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJm
YWNlQmFja2VuZD4obmV3IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKHNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBX
VEZNb3ZlKHN1cmZhY2UpKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJv
SW1hZ2VTdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6
OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpCiB7
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpjcmVhdGUo
c2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgbnVsbHB0cik7CisgICAgcmV0dXJuIEltYWdlQnVm
ZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6
U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKIH0KIAotSW1hZ2VCdWZmZXJDYWly
b0ltYWdlU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5k
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4mJiBzdXJmYWNlKQotICAgIDogSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VC
YWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBXVEZNb3ZlKHN1cmZhY2UpKQorSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tl
bmQ6OkltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYgc3VyZmFjZSkKKyAgICA6IEltYWdlQnVmZmVyQ2Fpcm9T
dXJmYWNlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpCiB7CiAgICAgQVNTRVJU
KGNhaXJvX3N1cmZhY2VfZ2V0X3R5cGUobV9zdXJmYWNlLmdldCgpKSA9PSBDQUlST19TVVJGQUNF
X1RZUEVfSU1BR0UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1
cmZhY2VCYWNrZW5kLmgKaW5kZXggMTYwMDM3OTRmZGFhOTQ3MzJiNjE1NTdjNDFlODQ0MjMxYTk4
YTcwMS4uZDE2ZDMzZWFjNDZjNWRmNjZmYjhmYTJkOTU0OTEwZTJmOTExNWEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
b0ltYWdlU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5oCkBAIC00MCwx
MSArNDAsMTEgQEAgY2xhc3MgSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQgOiBw
dWJsaWMgSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW4KICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kKTsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJm
YWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFBpeGVsRm9ybWF0
LCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiBwcml2YXRlOgotICAgIEltYWdlQnVmZmVyQ2Fpcm9J
bWFnZVN1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IElu
dFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYpOworICAgIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZh
Y2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFBpeGVsRm9ybWF0
LCBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiYmKTsKIAogICAgIHZvaWQgcGxhdGZvcm1UcmFuc2Zv
cm1Db2xvclNwYWNlKGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiYgbG9va1VwVGFibGUp
IG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tl
bmQuY3BwCmluZGV4IDkzMTA4ZDA0ZWM5YjExYmYwZTU0MjU3NmZmM2Q3OTkzNGI4MDdiODMuLjli
ODIxNjRhZWEzMzA3MWU1MzYxYzZmZTM5YjFiODI3YzliNmIxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNl
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtNDMsOCArNDMsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZDo6SW1h
Z2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJiBzdXJmYWNlKQotICAg
IDogSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6
OkltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBSZWZQdHI8Y2Fp
cm9fc3VyZmFjZV90PiYmIHN1cmZhY2UpCisgICAgOiBJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZChs
b2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4
ZWxGb3JtYXQpCiAgICAgLCBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkKIHsKICAgICBBU1NF
UlQoY2Fpcm9fc3VyZmFjZV9zdGF0dXMobV9zdXJmYWNlLmdldCgpKSA9PSBDQUlST19TVEFUVVNf
U1VDQ0VTUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5oCmlu
ZGV4IDJiYjQwMjI2NTBjZjljMDFiNDZhMjJmODEzNmZmMGNiZjVlYjI0MTAuLjEyYWEyYjFjZTg4
ZWU0MjY0NWZhNzcyZTY3OWY1ZDQxOTVhMjY3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9TdXJmYWNlQmFja2VuZC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBJ
bWFnZURhdGEmLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
aW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYpOworICAgIElt
YWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBQaXhlbEZvcm1hdCwgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJik7CiAKICAgICBS
ZWZQdHI8TmF0aXZlSW1hZ2U+IGNhaXJvU3VyZmFjZUNvZXJjZVRvSW1hZ2UoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tl
bmQuY3BwCmluZGV4IDhjNWFiZjdjOTNlNzk3MTNmNzEzYTZkYmRlOWJjMDE3ZjIxZjg5YmMuLmQ2
NjBhNTZmYzY2NGU4ZDRkZDA1YWU5YjEyYzQ4MjA2YTc2MzJmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFj
a2VuZC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIFJlZlB0cjxJbWFnZT4gY3JlYXRlQml0
bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZChSZWZQdHI8TmF0aXZlSW1hZ2U+JiYKICAgICBp
ZiAocmVzb2x1dGlvblNjYWxlID09IDEgfHwgcHJlc2VydmVSZXNvbHV0aW9uID09IFByZXNlcnZl
UmVzb2x1dGlvbjo6WWVzKQogICAgICAgICBpbWFnZSA9IE5hdGl2ZUltYWdlOjpjcmVhdGUoY3Jl
YXRlQ3JvcHBlZEltYWdlSWZOZWNlc3NhcnkoaW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwg
YmFja2VuZFNpemUpKTsKICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRD
RihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNp
emUuaGVpZ2h0KCksIDgsIDQgKiBsb2dpY2FsU2l6ZS53aWR0aCgpLCBzUkdCQ29sb3JTcGFjZVJl
ZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpKTsKKyAgICAgICAgYXV0byBjb250
ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwgbG9naWNhbFNpemUud2lkdGgo
KSwgbG9naWNhbFNpemUuaGVpZ2h0KCksIDgsIDQgKiBsb2dpY2FsU2l6ZS53aWR0aCgpLCBzUkdC
Q29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0
bWFwQnl0ZU9yZGVyMzJIb3N0KSk7CiAgICAgICAgIENHQ29udGV4dFNldEJsZW5kTW9kZShjb250
ZXh0LmdldCgpLCBrQ0dCbGVuZE1vZGVDb3B5KTsKICAgICAgICAgQ0dDb250ZXh0Q2xpcFRvUmVj
dChjb250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBsb2dpY2FsU2l6
ZSkpOwogICAgICAgICBGbG9hdFNpemUgaW1hZ2VTaXplSW5Vc2VyU3BhY2UgPSBsb2dpY2FsU2l6
ZTsKQEAgLTE2Miw3ICsxNjIsNyBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBJbWFnZUJ1ZmZlckNH
QmFja2VuZDo6dG9DRkRhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aQogICAgICAgICBp
bWFnZSA9IGNyZWF0ZUNyb3BwZWRJbWFnZUlmTmVjZXNzYXJ5KGltYWdlLmdldCgpLCBiYWNrZW5k
U2l6ZSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZShE
b250Q29weUJhY2tpbmdTdG9yZSktPnBsYXRmb3JtSW1hZ2UoKTsKLSAgICAgICAgYXV0byBjb250
ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwgYmFja2VuZFNpemUoKS53aWR0
aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpLCA4LCA0ICogYmFja2VuZFNpemUoKS53aWR0aCgp
LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpKTsK
KyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoMCwg
YmFja2VuZFNpemUoKS53aWR0aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpLCA4LCA0ICogYmFj
a2VuZFNpemUoKS53aWR0aCgpLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0KSk7CiAgICAgICAgIENH
Q29udGV4dFNldEJsZW5kTW9kZShjb250ZXh0LmdldCgpLCBrQ0dCbGVuZE1vZGVDb3B5KTsKICAg
ICAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKDAsIDAs
IGJhY2tlbmRTaXplKCkud2lkdGgoKSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSkpOwogICAgICAg
ICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBiYWNr
ZW5kU2l6ZSgpLndpZHRoKCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCkpLCBpbWFnZS5nZXQoKSk7
CkBAIC0yMDMsMTEgKzIwMywxMSBAQCBzdGF0aWMgaW5saW5lIHZJbWFnZV9CdWZmZXIgbWFrZVZJ
bWFnZUJ1ZmZlcih1bnNpZ25lZCBieXRlc1BlclJvdywgdWludDhfdCogcm93cwogfQogCiBzdGF0
aWMgaW5saW5lIHZvaWQgY29weUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQoCi0gICAgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgQ29sb3JGb3JtYXQgc3JjQ29sb3JGb3JtYXQs
IHZJbWFnZV9CdWZmZXImIHNyYywKLSAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RBbHBo
YUZvcm1hdCwgQ29sb3JGb3JtYXQgZGVzdENvbG9yRm9ybWF0LCB2SW1hZ2VfQnVmZmVyJiBkZXN0
KQorICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIFBpeGVsRm9ybWF0
IHNyY1BpeGVsRm9ybWF0LCB2SW1hZ2VfQnVmZmVyJiBzcmMsCisgICAgQWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBkZXN0QWxwaGFGb3JtYXQsIFBpeGVsRm9ybWF0IGRlc3RQaXhlbEZvcm1hdCwgdklt
YWdlX0J1ZmZlciYgZGVzdCkKIHsKICAgICBpZiAoc3JjQWxwaGFGb3JtYXQgPT0gZGVzdEFscGhh
Rm9ybWF0KSB7Ci0gICAgICAgIEFTU0VSVChzcmNDb2xvckZvcm1hdCAhPSBkZXN0Q29sb3JGb3Jt
YXQpOworICAgICAgICBBU1NFUlQoc3JjUGl4ZWxGb3JtYXQgIT0gZGVzdFBpeGVsRm9ybWF0KTsK
ICAgICAgICAgLy8gVGhlIGRlc3RpbmF0aW9uIGFscGhhIGZvcm1hdCBjYW4gYmUgdW5wcmVtdWx0
aXBsaWVkIGluIHRoZQogICAgICAgICAvLyBjYXNlIG9mIGFuIEltYWdlQml0bWFwIGNyZWF0ZWQg
ZnJvbSBhbiBJbWFnZURhdGEgd2l0aAogICAgICAgICAvLyBwcmVtdWx0aXBseUFscGhhPT0ibm9u
ZSIuCkBAIC0yMTksMTggKzIxOSwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29weUltYWdlUGl4
ZWxzQWNjZWxlcmF0ZWQoCiAgICAgfQogCiAgICAgaWYgKGRlc3RBbHBoYUZvcm1hdCA9PSBBbHBo
YVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQpIHsKLSAgICAgICAgaWYgKHNyY0Nv
bG9yRm9ybWF0ID09IENvbG9yRm9ybWF0OjpSR0JBKQorICAgICAgICBpZiAoc3JjUGl4ZWxGb3Jt
YXQgPT0gUGl4ZWxGb3JtYXQ6OlJHQkE4KQogICAgICAgICAgICAgdkltYWdlVW5wcmVtdWx0aXBs
eURhdGFfUkdCQTg4ODgoJnNyYywgJmRlc3QsIGt2SW1hZ2VOb0ZsYWdzKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgdkltYWdlVW5wcmVtdWx0aXBseURhdGFfQkdSQTg4ODgoJnNyYywgJmRl
c3QsIGt2SW1hZ2VOb0ZsYWdzKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoc3JjQ29sb3JG
b3JtYXQgPT0gQ29sb3JGb3JtYXQ6OlJHQkEpCisgICAgICAgIGlmIChzcmNQaXhlbEZvcm1hdCA9
PSBQaXhlbEZvcm1hdDo6UkdCQTgpCiAgICAgICAgICAgICB2SW1hZ2VQcmVtdWx0aXBseURhdGFf
UkdCQTg4ODgoJnNyYywgJmRlc3QsIGt2SW1hZ2VOb0ZsYWdzKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdkltYWdlUHJlbXVsdGlwbHlEYXRhX0JHUkE4ODg4KCZzcmMsICZkZXN0LCBrdklt
YWdlTm9GbGFncyk7CiAgICAgfQogCi0gICAgaWYgKHNyY0NvbG9yRm9ybWF0ICE9IGRlc3RDb2xv
ckZvcm1hdCkgeworICAgIGlmIChzcmNQaXhlbEZvcm1hdCAhPSBkZXN0UGl4ZWxGb3JtYXQpIHsK
ICAgICAgICAgLy8gU3dhcCBwaXhlbCBjaGFubmVscyBCR1JBIDwtPiBSR0JBLgogICAgICAgICBj
b25zdCB1aW50OF90IG1hcFs0XSA9IHsgMiwgMSwgMCwgMyB9OwogICAgICAgICB2SW1hZ2VQZXJt
dXRlQ2hhbm5lbHNfQVJHQjg4ODgoJmRlc3QsICZkZXN0LCBtYXAsIGt2SW1hZ2VOb0ZsYWdzKTsK
QEAgLTIzOCwxOCArMjM4LDIyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5SW1hZ2VQaXhlbHNB
Y2NlbGVyYXRlZCgKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y29weUltYWdlUGl4
ZWxzKAotICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIENvbG9yRm9y
bWF0IHNyY0NvbG9yRm9ybWF0LCB1bnNpZ25lZCBzcmNCeXRlc1BlclJvdywgdWludDhfdCogc3Jj
Um93cywKLSAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RBbHBoYUZvcm1hdCwgQ29sb3JG
b3JtYXQgZGVzdENvbG9yRm9ybWF0LCB1bnNpZ25lZCBkZXN0Qnl0ZXNQZXJSb3csIHVpbnQ4X3Qq
IGRlc3RSb3dzLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAorICAgIEFscGhhUHJlbXVsdGlw
bGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIFBpeGVsRm9ybWF0IHNyY1BpeGVsRm9ybWF0LCB1bnNp
Z25lZCBzcmNCeXRlc1BlclJvdywgdWludDhfdCogc3JjUm93cywKKyAgICBBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGRlc3RBbHBoYUZvcm1hdCwgUGl4ZWxGb3JtYXQgZGVzdFBpeGVsRm9ybWF0LCB1
bnNpZ25lZCBkZXN0Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIGRlc3RSb3dzLCBjb25zdCBJbnRTaXpl
JiBzaXplKSBjb25zdAogewotICAgIGlmIChzcmNBbHBoYUZvcm1hdCA9PSBkZXN0QWxwaGFGb3Jt
YXQgJiYgc3JjQ29sb3JGb3JtYXQgPT0gZGVzdENvbG9yRm9ybWF0KSB7Ci0gICAgICAgIEltYWdl
QnVmZmVyQmFja2VuZDo6Y29weUltYWdlUGl4ZWxzKHNyY0FscGhhRm9ybWF0LCBzcmNDb2xvckZv
cm1hdCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsIGRlc3RBbHBoYUZvcm1hdCwgZGVzdENvbG9y
Rm9ybWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKKyAgICAvLyBXZSBkb24n
dCBjdXJyZW50bHkgc3VwcG9ydCBnZXR0aW5nIG9yIHB1dHRpbmcgcGl4ZWwgZGF0YSB3aXRoIGRl
ZXAgY29sb3IgYnVmZmVycy4KKyAgICBBU1NFUlQoc3JjUGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3Jt
YXQ6OlJHQkE4IHx8IHNyY1BpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CisgICAg
QVNTRVJUKGRlc3RQaXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6UkdCQTggfHwgZGVzdFBpeGVs
Rm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CisKKyAgICBpZiAoc3JjQWxwaGFGb3JtYXQg
PT0gZGVzdEFscGhhRm9ybWF0ICYmIHNyY1BpeGVsRm9ybWF0ID09IGRlc3RQaXhlbEZvcm1hdCkg
eworICAgICAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVscyhzcmNBbHBoYUZv
cm1hdCwgc3JjUGl4ZWxGb3JtYXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0QWxwaGFG
b3JtYXQsIGRlc3RQaXhlbEZvcm1hdCwgZGVzdEJ5dGVzUGVyUm93LCBkZXN0Um93cywgc2l6ZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICB2SW1hZ2VfQnVmZmVyIHNyYyA9IG1ha2VW
SW1hZ2VCdWZmZXIoc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsIHNpemUpOwogICAgIHZJbWFnZV9C
dWZmZXIgZGVzdCA9IG1ha2VWSW1hZ2VCdWZmZXIoZGVzdEJ5dGVzUGVyUm93LCBkZXN0Um93cywg
c2l6ZSk7CiAKLSAgICBjb3B5SW1hZ2VQaXhlbHNBY2NlbGVyYXRlZChzcmNBbHBoYUZvcm1hdCwg
c3JjQ29sb3JGb3JtYXQsIHNyYywgZGVzdEFscGhhRm9ybWF0LCBkZXN0Q29sb3JGb3JtYXQsIGRl
c3QpOworICAgIGNvcHlJbWFnZVBpeGVsc0FjY2VsZXJhdGVkKHNyY0FscGhhRm9ybWF0LCBzcmNQ
aXhlbEZvcm1hdCwgc3JjLCBkZXN0QWxwaGFGb3JtYXQsIGRlc3RQaXhlbEZvcm1hdCwgZGVzdCk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmgKaW5kZXggYzdjYTM5ODAzNGYyNWEzMzQ5
MjQ3ZDQzNGY1ZjY1OWY5MmFmM2Q0My4uNGEzNGE4YWU1YmM2MjBmOTQxMWY0YmQxYmNkYjA1MGVk
Yjg2OTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDR0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oCkBAIC01Myw4ICs1Myw4IEBAIHByb3RlY3Rl
ZDoKIAogI2lmIFVTRShBQ0NFTEVSQVRFKQogICAgIHZvaWQgY29weUltYWdlUGl4ZWxzKAotICAg
ICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHNyY0FscGhhRm9ybWF0LCBDb2xvckZvcm1hdCBz
cmNDb2xvckZvcm1hdCwgdW5zaWduZWQgc3JjQnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jvd3Ms
Ci0gICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0LCBDb2xvckZv
cm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCog
ZGVzdFJvd3MsIGNvbnN0IEludFNpemUmKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgUGl4ZWxGb3JtYXQgc3JjUGl4ZWxGb3Jt
YXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNSb3dzLAorICAgICAgICBB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RBbHBoYUZvcm1hdCwgUGl4ZWxGb3JtYXQgZGVzdFBp
eGVsRm9ybWF0LCB1bnNpZ25lZCBkZXN0Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIGRlc3RSb3dzLCBj
b25zdCBJbnRTaXplJikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcAppbmRleCA2YzAzM2M2MzgzOGFmZTFhMGY2MjdkNmI0NGEx
NTQ2ZjNmZWVlNzMwLi5mMjE4ZjI3ZjJmNTNjNWE0YWRiYjZhNWFlZGMzYzQ5ZTQ4Y2Q2M2E0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuY3BwCkBAIC0zNywxNiArMzcsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNvbnN0
ZXhwciBjb25zdCBDR0JpdG1hcEluZm8gRGVmYXVsdEJpdG1hcEluZm8gPSBrQ0dJbWFnZUFscGhh
UHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0OwotI2Vsc2UKLWNv
bnN0ZXhwciBjb25zdCBDR0JpdG1hcEluZm8gRGVmYXVsdEJpdG1hcEluZm8gPSBrQ0dJbWFnZUFs
cGhhUHJlbXVsdGlwbGllZExhc3Q7Ci0jZW5kaWYKLQogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5k
b3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBj
Z0NvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93KikK
IHsKKyAgICBBU1NFUlQocGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKwogICAg
IEludFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0
aW9uU2NhbGUpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwpAQCAtNjIsNyArNTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoYwogICAg
IHNpemVfdCBudW1CeXRlcyA9IGJhY2tlbmRTaXplLmhlaWdodCgpICogYnl0ZXNQZXJSb3c7CiAg
ICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChkYXRhLCBudW1CeXRlcyk7CiAKLSAgICBh
dXRvIGNnQ29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGJhY2tl
bmRTaXplLndpZHRoKCksIGJhY2tlbmRTaXplLmhlaWdodCgpLCA4LCBieXRlc1BlclJvdywgY2dD
b2xvclNwYWNlLCBEZWZhdWx0Qml0bWFwSW5mbykpOworICAgIGF1dG8gY2dDb250ZXh0ID0gYWRv
cHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoZGF0YSwgYmFja2VuZFNpemUud2lkdGgoKSwgYmFj
a2VuZFNpemUuaGVpZ2h0KCksIDgsIGJ5dGVzUGVyUm93LCBjZ0NvbG9yU3BhY2UsIGtDR0ltYWdl
QWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKICAg
ICBpZiAoIWNnQ29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTc0LDI0ICs3
MCwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IEltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoYwogCiAgICAgYXV0byBkYXRhUHJvdmlkZXIg
PSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgZGF0YSwgbnVtQnl0ZXMs
IHJlbGVhc2VJbWFnZURhdGEpKTsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJDR0JpdG1hcEJhY2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChzaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBkYXRhLCBXVEZNb3Zl
KGRhdGFQcm92aWRlciksIFdURk1vdmUoY29udGV4dCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPihuZXcgSW1hZ2VCdWZmZXJDR0JpdG1h
cEJhY2tlbmQoc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
cGl4ZWxGb3JtYXQsIGRhdGEsIFdURk1vdmUoZGF0YVByb3ZpZGVyKSwgV1RGTW92ZShjb250ZXh0
KSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBj
b25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKGF1dG8gY2dDb2xvclNw
YWNlID0gY29udGV4dENvbG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAgIHJldHVybiBJbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNn
Q29sb3JTcGFjZS5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JT
cGFjZS5nZXQoKSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKICAgICAKLSAgICByZXR1
cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNl
OjpTUkdCLCBudWxscHRyKTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6
OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgsIG51
bGxwdHIpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+
IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9z
dFdpbmRvdyogaG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQ
aXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKIHsK
LSAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwg
aG9zdFdpbmRvdyk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVh
dGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2Uo
Y29sb3JTcGFjZSksIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKIH0KIAotSW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgdm9pZCogZGF0YSwgUmV0YWluUHRyPENH
RGF0YVByb3ZpZGVyUmVmPiYmIGRhdGFQcm92aWRlciwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
Q29udGV4dD4mJiBjb250ZXh0KQotICAgIDogSW1hZ2VCdWZmZXJDR0JhY2tlbmQobG9naWNhbFNp
emUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpCitJbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1h
dCwgdm9pZCogZGF0YSwgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiYmIGRhdGFQcm92aWRl
ciwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJiBjb250ZXh0KQorICAgIDogSW1h
Z2VCdWZmZXJDR0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KQogICAgICwgbV9kYXRhKGRhdGEpCiAgICAgLCBt
X2RhdGFQcm92aWRlcihXVEZNb3ZlKGRhdGFQcm92aWRlcikpCiAgICAgLCBtX2NvbnRleHQoV1RG
TW92ZShjb250ZXh0KSkKQEAgLTExNiw3ICsxMTIsNyBAQCBSZWZQdHI8TmF0aXZlSW1hZ2U+IElt
YWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29w
eQogICAgIGNhc2UgRG9udENvcHlCYWNraW5nU3RvcmU6CiAgICAgICAgIHJldHVybiBOYXRpdmVJ
bWFnZTo6Y3JlYXRlKGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZSgKICAgICAgICAgICAgIG1fYmFja2Vu
ZFNpemUud2lkdGgoKSwgbV9iYWNrZW5kU2l6ZS5oZWlnaHQoKSwgOCwgMzIsIGJ5dGVzUGVyUm93
KCksCi0gICAgICAgICAgICBjYWNoZWRDR0NvbG9yU3BhY2UobV9jb2xvclNwYWNlKSwgRGVmYXVs
dEJpdG1hcEluZm8sIG1fZGF0YVByb3ZpZGVyLmdldCgpLAorICAgICAgICAgICAgY2FjaGVkQ0dD
b2xvclNwYWNlKG1fY29sb3JTcGFjZSksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3Qg
fCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QsIG1fZGF0YVByb3ZpZGVyLmdldCgpLAogICAgICAg
ICAgICAgMCwgdHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oCmluZGV4IDdkMjMzZDIyMjc4NWFkM2RkZjA2M2M0
YTg2NDhmZGZmYWNlN2NmOTkuLmU5MmM5MmY1ZDUwZmRlNTdhYWEzY2E1YzJmZjI5ZGYwOGI4NjRk
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaApAQCAtMzYsOCArMzYsOCBAQCBj
bGFzcyBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZCA6IHB1YmxpYyBJbWFnZUJ1ZmZlckNHQmFj
a2VuZCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZCk7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQpOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgY29uc3QgSG9zdFdpbmRvdyopOwotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IGNyZWF0
ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNv
bnN0IEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIFBpeGVsRm9ybWF0LCBjb25zdCBI
b3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqKTsKICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29u
c3QgRmxvYXRTaXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAKICAgICBHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUyLDExICs1Miw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9
IHRydWU7CiAKIHByaXZhdGU6Ci0gICAgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0Rh
dGFQcm92aWRlclJlZj4mJiwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJik7Ci0K
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIENvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZv
cm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbG9yRm9ybWF0OjpCR1JBOyB9Ci0jZW5k
aWYKKyAgICBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0RhdGFQ
cm92aWRlclJlZj4mJiwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4mJik7CiAKICAg
ICB2b2lkKiBtX2RhdGE7CiAgICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBtX2RhdGFQ
cm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGE5ZDU0
ODVhMjYxYjVhMGRmNTNkMmI4OTcxMGFlODM3ZmJmOWIxYWUuLmZlOWQzYjJmOWVmYTYwYjY4Mjlh
NGYzYTQxMTI3OWQ2Y2U1NTkwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
LmNwcApAQCAtNjQsMTMgKzY0LDEzIEBAIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29udGV4dENvbG9yU3BhY2UoY29uc3QKICAgICByZXR1
cm4gSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnRleHQpOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYgY2dD
b2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAg
SW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKHNpemUsIHJlc29sdXRp
b25TY2FsZSk7CiAgICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5k
U2l6ZSwgYmFja2VuZFNpemUsIGNnQ29sb3JTcGFjZSk7CisgICAgYXV0byBzdXJmYWNlID0gSU9T
dXJmYWNlOjpjcmVhdGUoYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBjZ0NvbG9yU3BhY2UsIElP
U3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXQpKTsKICAgICBpZiAoIXN1
cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC04MCwyNSArODAsMjQgQEAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGUKIAogICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQu
Z2V0KCksIEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXplKSk7CiAKLSAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJh
Y2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoc3VyZmFjZSkp
OworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4oc2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQs
IFdURk1vdmUoc3VyZmFjZSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBp
ZiAoYXV0byBjZ0NvbG9yU3BhY2UgPSBjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KSkKLSAgICAg
ICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENv
bG9yU3BhY2U6OlNSR0IsIGNnQ29sb3JTcGFjZS5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgIHJl
dHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNw
YWNlOjpTUkdCLCBjZ0NvbG9yU3BhY2UuZ2V0KCksIFBpeGVsRm9ybWF0OjpCR1JBOCwgbnVsbHB0
cik7CiAgICAgCi0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRl
KHNpemUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIHJldHVybiBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBQ
aXhlbEZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0
ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhv
c3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZDo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVk
Q0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpLCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIHBpeGVsRm9ybWF0LCBob3N0
V2luZG93KTsKIH0KIAotCi1JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UsIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYgc3VyZmFjZSkKLSAgICA6IEltYWdl
QnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6
ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4m
JiBzdXJmYWNlKQorICAgIDogSW1hZ2VCdWZmZXJDR0JhY2tlbmQobG9naWNhbFNpemUsIGJhY2tl
bmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KQogICAgICwg
bV9zdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpCiB7CiAgICAgQVNTRVJUKG1fc3VyZmFjZSk7CkBA
IC0xMzAsMTEgKzEyOSw2IEBAIHVuc2lnbmVkIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6
Ynl0ZXNQZXJSb3coKSBjb25zdAogICAgIHJldHVybiBtX3N1cmZhY2UtPmJ5dGVzUGVyUm93KCk7
CiB9CiAKLUNvbG9yRm9ybWF0IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6YmFja2VuZENv
bG9yRm9ybWF0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ29sb3JGb3JtYXQ6OkJHUkE7Ci19Ci0K
IFJlZlB0cjxOYXRpdmVJbWFnZT4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0
aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSkgY29uc3QKIHsKICAgICByZXR1cm4gTmF0aXZlSW1h
Z2U6OmNyZWF0ZShtX3N1cmZhY2UtPmNyZWF0ZUltYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQuaAppbmRleCBmNTA5ZWVlNjVhNzIyZTEyMDFmZmMwZmI1NzdjZmI4MmJmZWM2
OTBjLi5lYmViZmFmOTZkYjQ1MTI2M2JlNDUzM2JjNjVjMDU3YjJlYWVmY2UxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNzIFdFQkNP
UkVfRVhQT1JUIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCA6IHB1YmxpYyBJbWFnZUJ1ZmZl
ckNHQmFja2VuZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlQmFja2Vu
ZFNpemUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
KTsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgSG9z
dFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIFBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2lu
ZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UsIFBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKIAotICAgIEltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXpl
JiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4mJik7CisgICAgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBQaXhlbEZvcm1hdCwgc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4mJik7CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIG92ZXJyaWRlOwpAQCAt
NjksNyArNjksNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIFJldGFpblB0cjxD
R0NvbG9yU3BhY2VSZWY+IGNvbnRleHRDb2xvclNwYWNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYp
OwogICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3JG
b3JtYXQgYmFja2VuZENvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBtX3N1cmZhY2U7CiAgICAgbXV0YWJsZSBib29sIG1fcmVxdWly
ZXNEcmF3QWZ0ZXJQdXRJbWFnZURhdGEgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCA4N2E2NWExYTA1MGFh
YmU2MGU1MGMzYTFjMjMxMzM5ZGVhZjZiODg1Li4yMDU2NWM5YWY5ZDhiMjRkMmZjYjc4YzM1ODJl
NmE3NmFlYTg2NWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UuaApAQCAtNDksMTcgKzQ5LDIxIEBAIGNsYXNzIEhvc3RXaW5kb3c7
CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKICNlbmRpZgogCitlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDog
dWludDhfdDsKKwogY2xhc3MgSU9TdXJmYWNlIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIEZvcm1hdCB7Ci0gICAgICAgIFJHQkEs
CisgICAgICAgIEJHUkEsCiAgICAgICAgIFlVVjQyMiwKICNpZiBIQVZFKElPU1VSRkFDRV9SR0Ix
MCkKICAgICAgICAgUkdCMTAsCiAgICAgICAgIFJHQjEwQTgsCiAjZW5kaWYKICAgICB9OworCisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIElPU3VyZmFjZTo6Rm9ybWF0IGZvcm1hdEZvclBpeGVs
Rm9ybWF0KFdlYkNvcmU6OlBpeGVsRm9ybWF0KTsKICAgICAKICAgICBjbGFzcyBMb2NrZXIgewog
ICAgIHB1YmxpYzoKQEAgLTk0LDggKzk4LDggQEAgcHVibGljOgogICAgICAgICB1aW50MzJfdCBt
X2ZsYWdzOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0ID0g
Rm9ybWF0OjpSR0JBKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JT
cGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpSR0JBKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIENHQ29sb3JTcGFj
ZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlKEludFNpemUsIEludFNpemUgY29udGV4
dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0ID0gRm9ybWF0OjpCR1JBKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVNl
bmRSaWdodChjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmJiwgQ0dDb2xvclNwYWNlUmVmKTsKICAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVN1cmZhY2UoSU9T
dXJmYWNlUmVmLCBDR0NvbG9yU3BhY2VSZWYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KaW5kZXggOTFiMTQxYTUwM2JiMjdiZDQyN2FmM2Y3MmE0ZDIxM2FiYjM4ZmRjMy4uMTExMDhm
OTNhNjRjYTQzNzU0YTRiYzU5YTNmMjM0MGYxN2Q1YTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMTkxLDcgKzE5
MSw3IEBAIElPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0
U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhCiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25z
OwogCiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEZvcm1hdDo6UkdCQToKKyAgICBj
YXNlIEZvcm1hdDo6QkdSQToKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnNGb3IzMkJpdFN1cmZh
Y2Uoc2l6ZSwgJ0JHUkEnKTsKICAgICAgICAgYnJlYWs7CiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdC
MTApCkBAIC0yNzksNyArMjc5LDcgQEAgQ0dDb250ZXh0UmVmIElPU3VyZmFjZTo6ZW5zdXJlUGxh
dGZvcm1Db250ZXh0KGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiAgICAgc2l6ZV90IGJp
dHNQZXJQaXhlbCA9IDMyOwogICAgIAogICAgIHN3aXRjaCAoZm9ybWF0KCkpIHsKLSAgICBjYXNl
IEZvcm1hdDo6UkdCQToKKyAgICBjYXNlIEZvcm1hdDo6QkdSQToKICAgICAgICAgYnJlYWs7CiAj
aWYgSEFWRShJT1NVUkZBQ0VfUkdCMTApCiAgICAgY2FzZSBGb3JtYXQ6OlJHQjEwOgpAQCAtMzU2
LDcgKzM1Niw3IEBAIElPU3VyZmFjZTo6Rm9ybWF0IElPU3VyZmFjZTo6Zm9ybWF0KCkgY29uc3QK
IHsKICAgICB1bnNpZ25lZCBwaXhlbEZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KG1f
c3VyZmFjZS5nZXQoKSk7CiAgICAgaWYgKHBpeGVsRm9ybWF0ID09ICdCR1JBJykKLSAgICAgICAg
cmV0dXJuIEZvcm1hdDo6UkdCQTsKKyAgICAgICAgcmV0dXJuIEZvcm1hdDo6QkdSQTsKIAogI2lm
IEhBVkUoSU9TVVJGQUNFX1JHQjEwKQogICAgIGlmIChwaXhlbEZvcm1hdCA9PSAndzMwcicpCkBA
IC0zNzAsNyArMzcwLDcgQEAgSU9TdXJmYWNlOjpGb3JtYXQgSU9TdXJmYWNlOjpmb3JtYXQoKSBj
b25zdAogICAgICAgICByZXR1cm4gRm9ybWF0OjpZVVY0MjI7CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gRm9ybWF0OjpSR0JBOworICAgIHJldHVybiBGb3JtYXQ6OkJH
UkE7CiB9CiAKIElPU3VyZmFjZUlEIElPU3VyZmFjZTo6c3VyZmFjZUlEKCkgY29uc3QKQEAgLTQ1
OSwxMSArNDU5LDM2IEBAIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVy
dGllcygpCiAgICAgSU9TdXJmYWNlU2V0VmFsdWUobV9zdXJmYWNlLmdldCgpLCBrSU9TdXJmYWNl
Q29sb3JTcGFjZSwgY29sb3JTcGFjZVByb3BlcnRpZXMuZ2V0KCkpOwogfQogCitJT1N1cmZhY2U6
OkZvcm1hdCBJT1N1cmZhY2U6OmZvcm1hdEZvclBpeGVsRm9ybWF0KFBpeGVsRm9ybWF0IGZvcm1h
dCkKK3sKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgUGl4ZWxGb3JtYXQ6OlJHQkE4
OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CisgICAgY2FzZSBQaXhlbEZvcm1hdDo6QkdSQTg6Cisg
ICAgICAgIHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKKyNpZiBIQVZFKElPU1VSRkFD
RV9SR0IxMCkKKyAgICBjYXNlIFBpeGVsRm9ybWF0OjpSR0IxMDoKKyAgICAgICAgcmV0dXJuIElP
U3VyZmFjZTo6Rm9ybWF0OjpSR0IxMDsKKyAgICBjYXNlIFBpeGVsRm9ybWF0OjpSR0IxMEE4Ogor
ICAgICAgICByZXR1cm4gSU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwQTg7CisjZWxzZQorICAgIGNh
c2UgUGl4ZWxGb3JtYXQ6OlJHQjEwOgorICAgIGNhc2UgUGl4ZWxGb3JtYXQ6OlJHQjEwQTg6Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJT1N1
cmZhY2U6OkZvcm1hdDo6QkdSQTsKKyNlbmRpZgorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKK30KKwogc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIElPU3VyZmFjZTo6Rm9ybWF0
IGZvcm1hdCkKIHsKICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAgIGNhc2UgSU9TdXJmYWNlOjpG
b3JtYXQ6OlJHQkE6Ci0gICAgICAgIHRzIDw8ICJSR0JBIjsKKyAgICBjYXNlIElPU3VyZmFjZTo6
Rm9ybWF0OjpCR1JBOgorICAgICAgICB0cyA8PCAiQkdSQSI7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSU9TdXJmYWNlOjpGb3JtYXQ6OllVVjQyMjoKICAgICAgICAgdHMgPDwgIllVVjQyMiI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAppbmRleCBmZmQ5NGI1
MjljMDZhN2UyY2RlMDBlYzk0YjM1NWM4NWRkYWZiNGMzLi5mNWIyMjM0MDJhZWIzNzcyOGI3MzAx
ZmI2NjcxMThhM2IyZThiMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKQEAgLTM2LDkgKzM2LDkgQEAgY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29u
Y3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4gewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyID0gQ29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAKIHB1YmxpYzoK
LSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9z
dFdpbmRvdykKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQg
cGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiAgICAgewotICAgICAg
ICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxJbWFnZUJ1
ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93LCBzaXpl
KTsKKyAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVh
dGU8SW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxG
b3JtYXQsIGhvc3RXaW5kb3csIHNpemUpOwogICAgIH0KIAogICAgIHN0YXRpYyBhdXRvIGNyZWF0
ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmgKaW5kZXggM2RiYWFmOWYyZWM2YmQxMTI3ZDUxYzExN2UwYzFjNzA1NmNkMjVkMy4u
ODY3MDQyMzVhMTBhMjBhYjEwMmIwMDNmY2IwZmEyNWRiMjY1YjgzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAg
LTQ0LDkgKzQ0LDkgQEAgY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6
Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmwKICAgICB1c2luZyBCYXNlQ29u
Y3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1
dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgc3RhdGljIGF1dG8g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0
IHBpeGVsRm9ybWF0LCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdl
QnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8UmVtb3RlSW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIG51bGxwdHIsIHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgUmVt
b3RlSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBA
IC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgLCBtX3JlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgewotICAgICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChtX2Jh
Y2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5k
LT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+
Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5pbWFnZUJ1ZmZlckJhY2tl
bmRXYXNDcmVhdGVkKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5k
U2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3Bh
Y2UoKSwgbV9iYWNrZW5kLT5waXhlbEZvcm1hdCgpLCBtX2JhY2tlbmQtPmNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0K
IAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXgg
ZWE1NjQzMjYxZTI5OWUxMGQzOTE1MDRiNzUwNTA5OTk2Mjc0NGNhOS4uNzAyMDFmNTNhYWE5Y2Rl
NmI2MGUzODQxYjVmOWUwOGE4NTNjYjUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAt
OTYsOSArOTYsOSBAQCBib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmFwcGx5TWVkaWFJdGVt
KERpc3BsYXlMaXN0OjpJdGVtSGFuZGxlIGl0ZW0sIEdyYXBoaQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGxvZ2ljYWxTaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRs
ZSksIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
SW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSwg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdFdh
c0NvbW1pdHRlZChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
QEAgLTEwNiwxNyArMTA2LDE3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hE
aXNwbGF5TGlzdFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdDo6Rmx1c2hJZGVuCiAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaERpc3BsYXlMaXN0V2Fz
Q29tbWl0dGVkKGZsdXNoSWRlbnRpZmllciwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKHJlbmRlcmluZ01vZGUgPT0g
UmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdN
b2RlOjpVbmFjY2VsZXJhdGVkKTsKIAogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZm
ZXI7CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRl
ZCkKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpj
cmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIGltYWdlQnVmZmVyID0gQWNjZWxl
cmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIGltYWdlQnVmZmVyID0g
VW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CisgICAgICAgIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVy
OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxG
b3JtYXQsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgaWYgKCFp
bWFnZUJ1ZmZlcikgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCmluZGV4IGIzNmI5ZGQ2MDY0ZWU1YTUxNjNjNjhlNDE5NDc2MzFmZTA5MTMxMzIuLjlm
MDkyN2Y0ZmFiOGMwNWY3ZDhlYmM0ZmNkN2YzN2Y4MWEyYTk1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhcHBseU1lZGlhSXRlbShX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
Jik7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgotICAgIHZvaWQgaW1hZ2VCdWZmZXJC
YWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tl
bmRXYXNDcmVhdGVkKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdl
YkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAg
ICB2b2lkIHNldE5leHRJdGVtQnVmZmVyVG9SZWFkKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
QnVmZmVySWRlbnRpZmllcik7CkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2Fn
ZXMgdG8gYmUgcmVjZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVs
Rm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
d2FrZVVwQW5kQXBwbHlEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cklkZW50aWZpZXIgaW5pdGlhbElkZW50aWZpZXIsIHVpbnQ2NF90IGluaXRpYWxPZmZzZXQsIFdl
YkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50
aWZpZXIpOwogICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6Oklt
YWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggNmYyZTJhYmRmOTI2YmNkNGEwNGMyMzU1OGU2NWI5
OTZhNWEwNjA4Mi4uYTM3MmM2MjI5ODUwNTNiMzQ2MmUzNzk2YzA2MGQzNWE5YmM0N2FhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6Rmxv
YXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKQorICAgIENyZWF0ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2Fs
U2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIFdha2VVcEFuZEFw
cGx5RGlzcGxheUxpc3QoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVy
IGluaXRpYWxJZGVudGlmaWVyLCB1aW50NjRfdCBpbml0aWFsT2Zmc2V0LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQogICAg
IEdldEltYWdlRGF0YShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgLT4gKElQ
Qzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMKICAgICBEaWRDcmVh
dGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBo
YW5kbGUsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1
ZmZlcklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpp
bmRleCBiMjI2ODhlMGRiYzE5MmViNjdmNzhiNTE1MjRlYzUxZWQ3MTlkMzMzLi5kNzhiMTRlNTY1
ZDQ4MmIyNDc0MGRmMmFkZDM1ZWM2MzE3NjkwOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKQEAgLTU5OCw3ICs1OTgsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlw
ZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNv
cmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VHlwZXMuaD4nXSwKLSAgICAgICAgJ1dlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVl
c3QnOiBbJyJEb2N1bWVudEVkaXRpbmdDb250ZXh0LmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpE
cmFnQXBwbGljYXRpb25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0RhdGEuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdPcGVyYXRpb24nOiBbJzxXZWJDb3JlL0RyYWdBY3Rp
b25zLmg+J10sCkBAIC02MjgsNiArNjI3LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6
CiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJk
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCc6IFsnPFdlYkNv
cmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpQaXhlbEZvcm1hdCc6IFsnPFdlYkNvcmUvSW1hZ2VCdWZmZXJC
YWNrZW5kLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFja0RhdGEnOiBb
JzxXZWJDb3JlL1BsYXRmb3JtVGV4dFRyYWNrLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbHVn
aW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5JzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCkBAIC02
NzIsNiArNjcyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJL
aXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5oIiddLAogICAgICAgICAnV2ViS2l0
OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAgICAg
ICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3JsZFNoYXJl
ZC5oIiddLAorICAgICAgICAnV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCc6
IFsnIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6RmluZE9w
dGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIiddLAogICAgICAgICAnV2ViS2l0OjpHZXN0dXJl
UmVjb2duaXplclN0YXRlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
Okdlc3R1cmVUeXBlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUubW0KaW5kZXggY2VmNWE5ZWQ0ZTJkNGZlMDFiM2I3YzM2MDBiMjU1NzdjNjYwOGI0My4u
MDFkNjM0YTI1ZTEwNzY2MmM5YjEzYTBjOWVlOGIyZGM0ZTEwY2I3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbQpAQCAtMTY2LDcgKzE2Niw3IEBAIFdlYkNvcmU6OkludFNpemUgUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJhY2tpbmdTdG9yZVNpemUoKSBjb25zdAogdW5zaWduZWQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVyUGl4ZWwoKSBjb25zdAogewogICAgIHN3
aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CisgICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6
OkZvcm1hdDo6QkdSQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZv
cm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKICNpZiBIQVZFKElPU1VSRkFDRV9SR0IxMCkKICAgICBj
YXNlIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMDogcmV0dXJuIDQ7CkBAIC00NzQs
NyArNDc0LDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAogICAgICAgICByZXR1cm4gbV9pc09w
YXF1ZSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6IFdlYkNvcmU6OklPU3Vy
ZmFjZTo6Rm9ybWF0OjpSR0IxMEE4OwogI2VuZGlmCiAKLSAgICByZXR1cm4gV2ViQ29yZTo6SU9T
dXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgcmV0dXJuIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9y
bWF0OjpCR1JBOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9TaGFyZWFibGVCaXRtYXAuY3BwCmluZGV4IDdlMzQxNDM4YjBiZThiYzZmNzBlM2YxNDc2N2Fi
YWUzMDU2MWQwNzQuLjg0NDg4N2JiYzNiMWIzYTQzMzg0MTJlOTQzYzlkNjkyY2IxYjYyYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcApAQCAtMTQ5LDcgKzE0OSw2
IEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0
IEludFNpemUmIHNpemUsIENvbmZpZ3VyYXRpCiAKIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNo
YXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBTaGFyZWRNZW1vcnk6
OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKLSAgICAvLyBDcmVhdGUgdGhlIHNoYXJlZCBtZW1v
cnkuCiAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUubV9o
YW5kbGUsIHByb3RlY3Rpb24pOwogICAgIGlmICghc2hhcmVkTWVtb3J5KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KaW5kZXggMWFlN2FlMDlmZjI0YWRjYzg3MTU4N2I5MTBjZDNhNjYyNTEyZjg0Mi4u
NGI3NjYyYTE2NDU5NGRlNmU0M2ZlNDQ0NDhlMDkyMzdkNzJiZWYzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTEwMDYsOSArMTAw
Niw5IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QK
ICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoZGV2
aWNlU2NhbGUsIGRldmljZVNjYWxlLCAxKTsKIAogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEwKQot
ICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6
c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1h
dDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKKyAgICBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OnNjcmVlblN1cHBv
cnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwIDog
V2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZWxzZQotICAgIFdlYkNvcmU6OklP
U3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQg
PSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNlbmRpZgogICAgIGF1dG8gc3Vy
ZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6
ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hvdEZv
cm1hdCk7CiAgICAgaWYgKCFzdXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGMzYmVlZjVkMTQwYjcyNDM4ZGM3NTA1NjAzYWU5
YTRjZGUyYTExYjMuLjRiNGJlNzg5MTAwOGYwM2VkMGI4ZWZmYmZjZWU2M2FkY2Y1MTQ4YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKQEAg
LTQzLDggKzQzLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKIAotc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdp
bmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
PiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQ
aXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCiB7CisgICAgQVNTRVJU
KHBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCk7CisKICAgICBJbnRTaXplIGJhY2tl
bmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKICAg
ICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTYxLDEwICs2MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhYwogICAgIGlmICghY29udGV4
dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoYml0bWFwKSwgV1RGTW92ZShjb250ZXh0KSk7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
PihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZv
cm1hdCwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQorc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGU+KGhhbmRsZSkpIHsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC03OSwxMSArODEsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
U2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWMKICAg
ICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPihsb2dpY2FsU2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShiaXRtYXAp
LCBXVEZNb3ZlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3Zl
KGNvbnRleHQpKTsKIH0KIAotSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4mJiBiaXRtYXAsIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29udGV4dCkKLSAgICA6IFBsYXRmb3Jt
SW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBwaHlzaWNhbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSkKK0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6SW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPiYmIGJpdG1hcCwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4m
JiBjb250ZXh0KQorICAgIDogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUs
IHBoeXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkK
ICAgICAsIG1fYml0bWFwKFdURk1vdmUoYml0bWFwKSkKICAgICAsIG1fY29udGV4dChXVEZNb3Zl
KGNvbnRleHQpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kLmgKaW5kZXggOWUyNGFiOTllYmM2NzVjZTIwMWE1OTM5NzI4YzYxOWRiYTU5NWVjMy4uMGM3
ZjA0N2Y4ODM1ZTRiOGQ2M2MxNWY0MWVjOTIxMDJlNDU4NTM5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0lt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCkBAIC00MywxMCArNDMsMTAgQEAgY2xh
c3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kIDogcHVibGljIFdlYkNvcmU6OlBs
YXRmb3JtSW1hZ2VCdWZmZXJCYWMKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZCk7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyop
OwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSk7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0
LCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5h
bFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29y
ZTo6UGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSk7CiAKLSAgICBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
JiYsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+JiYpOworICAgIElt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3Jt
YXQsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ+JiYpOwogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0
ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OwogCkBAIC02MCw4ICs2MCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHB1dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFnZURhdGEmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBX
ZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCiBw
cml2YXRlOgotICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0IGJhY2tlbmRDb2xvckZvcm1hdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYkNvcmU6OkNvbG9yRm9ybWF0OjpCR1JBOyB9Ci0KICAg
ICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBtX2JpdG1hcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaAppbmRleCAwMWU1M2UxNWM0YjFkMWY1MGFmZDcwYmRjYzliMTY4NDQ5NmU1ZDYz
Li5kMWJmNGQyZDJkZTc2YjE5NmUyMWU2M2MzZmJkMGM2Njg4NDM0MmY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaApAQCAtNjQsMTAgKzY0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVhc2VSZW1vdGVSZXNvdXJjZShtX3JlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCi0gICAgdm9pZCBjcmVhdGVCYWNrZW5k
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKKyAgICB2
b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKICAgICB7CiAgICAg
ICAgIEFTU0VSVCghbV9iYWNrZW5kKTsKLSAgICAgICAgbV9iYWNrZW5kID0gQmFja2VuZFR5cGU6
OmNyZWF0ZShsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAgICAgICAgbV9iYWNrZW5kID0gQmFja2VuZFR5cGU6
OmNyZWF0ZShsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgfQogCiAgICAgdm9pZCBj
b21taXRGbHVzaERpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZp
ZXIgZmx1c2hJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
Y3BwCmluZGV4IGIxYzAzYjNhZGE4NzQ4NDJkYzE3MzAzZGNhNDE5OTA5M2IwNTM4ZmEuLmY4ODRh
NjU5MDU0NTNlMjdjYmRhMmM0NmEwNjQ4ZGVlZDBkN2JiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKCkK
ICAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hEaXNwbGF5TGlzdFdhc0Nv
bW1pdHRlZD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgMV9zLCBJUEM6OldhaXRGb3JP
cHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7CiB9CiAKLVJlZlB0
cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1
ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCitSZWZQdHI8SW1h
Z2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhl
bEZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyOwogCkBAIC0x
MDAsNyArMTAwLDcgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2kKICAgICAgICAgaW1hZ2VCdWZm
ZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgKnRoaXMpOwogCiAgICAgaWYgKGltYWdlQnVmZmVyKSB7Ci0gICAgICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVy
KHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaW1hZ2VC
dWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGltYWdlQnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgICAgICBt
X3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZUltYWdlQnVmZmVyKGltYWdlQnVmZmVyLT5y
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIuZ2V0KCkpOwogICAgICAg
ICByZXR1cm4gaW1hZ2VCdWZmZXI7CiAgICAgfQpAQCAtMTQ1LDE2ICsxNDUsMTYgQEAgdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWYKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjppbWFnZUJ1ZmZlckJh
Y2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBo
YW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCiB7CiAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNhY2hlZEltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAg
aWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmIChpbWFnZUJ1
ZmZlci0+aXNBY2NlbGVyYXRlZCgpKQotICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRlZFJlbW90
ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2FsU2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5k
bGUpKTsKKyAgICAgICAgZG93bmNhc3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
PigqaW1hZ2VCdWZmZXIpLmNyZWF0ZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKGhhbmRsZSkp
OwogICAgIGVsc2UKLSAgICAgICAgZG93bmNhc3Q8VW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVm
ZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2Vu
ZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAg
ICAgICAgZG93bmNhc3Q8VW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFn
ZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CiB9CiAK
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0V2FzQ29t
bWl0dGVkKERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggYWJhOTYyZTQwODkzOGNmMGZi
MmUzNGQ1YmEwODAzYTJlMGNhNDcyNy4uMmIyNzEwNjZhZWE4YmI0M2U4N2U5YWI4OTk4YTgxNDRl
ZTI3MDNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC03Myw3
ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUg
c2VudC4KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSk7CisgICAgUmVmUHRyPFdlYkNv
cmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0KTsKICAgICBSZWZQdHI8V2ViQ29y
ZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdWJtaXREaXNwbGF5TGlz
dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKTsKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIGZsdXNoRGlzcGxheUxpc3RB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHVwZGF0ZVJldXNhYmxlSGFuZGxlcygpOwogCiAgICAgLy8gTWVzc2FnZXMg
dG8gYmUgcmVjZWl2ZWQuCi0gICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3Bh
Y2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
YmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
V2ViQ29yZTo6UGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RX
YXNDb21taXR0ZWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KaW5kZXggN2UzNDMzNTQ3NThmMjYy
MmVlNmEzOGJkMjcwYWJiNTY1ZTUxMjUwMy4uODE5YjBlN2ViYTMzOTMwZWQ0OWEzMTE4Y2RlMDk1
MzMwYjQ2OWQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBOb3RSZWZDb3VudGVk
IHsKLSAgICBJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKFdlYkNvcmU6OkZsb2F0U2l6ZSBs
b2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmRX
YXNDcmVhdGVkKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6
ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIGVudW06dWludDhfdCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1h
dCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAg
IEZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNo
SWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcApp
bmRleCAwNmYzOTkxM2ZjNjdiNjgyMmVjMmYxZTgxYTM0YjM4MzcxNThlMWZmLi41MTYyN2M1ZWRk
ODkxYjk0ZjM2MzkxYzBhYjRjMjgwOGM2ODBiZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0zNywx
MyArMzcsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQpOwogCi1zdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBI
b3N0V2luZG93KikKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93KikKIHsK
ICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVz
b2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJh
Y2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpKTsK
KyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFja2Vu
ZFNpemUsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgSU9TdXJmYWNlOjpmb3JtYXRG
b3JQaXhlbEZvcm1hdChwaXhlbEZvcm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKQEAgLTUzLDEwICs1MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZgogCiAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0KGNnQ29udGV4dC5nZXQoKSwgRmxvYXRSZWN0
KEZsb2F0UG9pbnQ6Onplcm8oKSwgYmFja2VuZFNpemUpKTsKIAotICAgIHJldHVybiBtYWtlVW5p
cXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4oc2l6ZSwgYmFja2VuZFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShzdXJmYWNlKSk7CisgICAg
cmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihz
aXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUm
IGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCitzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSkKIHsKICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8TWFjaFNl
bmRSaWdodD4oaGFuZGxlKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY3
LDcgKzY3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmYKICAgICBpZiAoIXN1cmZhY2UpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoc3VyZmFjZSkpOworICAgIHJldHVy
biBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4obG9naWNh
bFNpemUsIGludGVybmFsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZv
cm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAKIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAppbmRleCA5NTYxOTRiNDg0OGM4MmQ0OThiYTVi
YzkwZDAzZTc2ODY5MTJmZTFkLi5lZDUxNjI0ZWIwYWExMDUwZTEzYmZhMTdlYTM0ZjBmZTNjMWZm
ZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmgKQEAgLTM5LDggKzM5LDggQEAgY2xhc3MgSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kIDogcHVibGljIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJm
YWMKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZCk7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyopOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSk7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBj
b25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5h
bFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29y
ZTo6UGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSk7CiAKICAgICB1c2luZyBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZWRjM2RiMTBhZDc3M2JkNTUz
NjMyNmZhYjFjMTc0MDg1Y2IxNmQwLi5jMjNmZmY2MjU4ZjJhMTJiNWIwMjlmYWUxZjRlNTUxOTZm
MTJlOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTEwLDEyICs5MTAsMTIgQEAgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBXZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSgKICAgICByZXR1cm4gKm1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9y
bWF0KSBjb25zdAogewogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNl
UmVtb3RlUmVuZGVyaW5nRm9yKHB1cnBvc2UpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIHJldHVybiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKS5jcmVhdGVJbWFn
ZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Up
OworICAgIHJldHVybiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKS5jcmVhdGVJ
bWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIHBpeGVsRm9ybWF0KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCAxNzFmYTYzMzNkY2UzMjNjMDBjNzhjZWJkZTI3M2YwMGU2Yzkw
ZjAyLi45NzM4ZDFiMzk1MjY3MGYwMDg0OGQxMTdhNmUzYjhmYzQyMTJkZjAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC0yNDQsNyArMjQ0LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIGVuc3VyZVJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eSgpIGNvbnN0OwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29y
ZTo6UmVuZGVyaW5nTW9kZSwgV2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBv
c2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6
UGl4ZWxGb3JtYXQpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBDb21wb3NpdGluZ1RyaWdn
ZXJGbGFncyBhbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0IGZpbmFsCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQ4YTdlZDU1NjBi
ZDFkMmQwNjBkOTc1OTg1OWIxMmI2OTMyYWU2YS4uNGRkNjBjMjc4ZDZiMDI0Zjc4YTY0NzYwNWFi
NmU1MDk0MjYxN2QwMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTExICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFsIHN1cHBvcnQgZm9yIGRl
ZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VCdWZmZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODgxNgorCisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lv
cy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZy
b21XZWJWaWV3KToKKwogMjAyMC0xMS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBTZWFtbGVzc2x5IHJlc3VtZSBXZWJBdWRpbyBwbGF5
YmFjayBpZiB0aGUgR1BVIFByb2Nlc3MgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbQppbmRleCA2MTc4ZDJhNWI0Njg3NWU3ODFlYTM5
YjQ5YzQ1MmFjNzNiNTUyMzA5Li5kNzA5YTJlOTE2YTUxMWI3MDYxOGU5MTJhNDZkNzZiYjgwNzli
ZTE0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9y
dElPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElP
Uy5tbQpAQCAtNjcsOSArNjcsOSBAQCBSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFw
Q29udGV4dEZyb21XZWJWaWV3KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jcmVtZQogICAgIHNuYXBz
aG90U2l6ZS5zY2FsZShkZXZpY2VTY2FsZUZhY3Rvcik7CiAKICNpZiBIQVZFKElPU1VSRkFDRV9S
R0IxMCkKLSAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdl
YkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNl
OjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAg
V2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpzY3Jl
ZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpS
R0IxMCA6IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogI2Vsc2UKLSAgICBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFj
ZTo6Rm9ybWF0OjpSR0JBOworICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90
Rm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZW5kaWYKICAgICBh
dXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRl
ZEludFNpemUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25h
cHNob3RGb3JtYXQpOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gc3VyZmFj
ZS0+Y3JlYXRlSW1hZ2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413889</attachid>
            <date>2020-11-11 17:06:12 -0800</date>
            <delta_ts>2020-11-11 17:48:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218816-20201111170611.patch</filename>
            <type>text/plain</type>
            <size>104738</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ5ZTkyYjk5NTVlNDlh
ZTMwMDE1ODA0M2VmMDJmODQ4MmQ3NDM4ZC4uMGFhNjcwN2JmOWEyNTVhMDM1OTZjOTQ1NDFlYjRk
N2ZiZjMzODQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIwLTExLTExICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtaW5pbWFs
IHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcgc3RvcmUgdG8gSW1hZ2VC
dWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBObyBu
ZXcgdGVzdHM7IHdpbGwgYmUgY292ZXJlZCBieSBhbGwgZGVlcCBjb2xvciB0ZXN0cyB3aGVuIEdQ
VSBQcm9jZXNzIERPTSByZW5kZXJpbmcgbGFuZHMuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byBwYXNzIGEgQ29sb3JGb3JtYXQgaW50byB0aGUgSW1hZ2VCdWZmZXIgY29uc3RydWN0b3Is
CisgICAgICAgIGFuZCBhZGQgUkdCMTAgYW5kIFJHQjEwQTggQ29sb3JGb3JtYXRzLgorCisgICAg
ICAgIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IGdldC9wdXRJbWFnZURhdGEgZm9yIGRlZXAg
Y29sb3IgYnVmZmVycywgYmVjYXVzZQorICAgICAgICB0aGF0IGlzIG5vdCBuZWVkZWQgZm9yIElt
YWdlQnVmZmVycyBiYWNraW5nIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlICh0aGUgbW90aXZhdGlv
bgorICAgICAgICBmb3IgdGhpcyksIGJ1dCBpZiB3ZSBldmVudHVhbGx5IHdhbnRlZCB0byBtb3Jl
IGdlbmVyYWxseSBzdXBwb3J0IGRlZXAgY29sb3IgSW1hZ2VCdWZmZXJzLAorICAgICAgICB0aGF0
J3MgbW9zdCBvZiB0aGUgcmVtYWluaW5nIHdvcmsuCisKKyAgICAgICAgQWxzbywgc3RhbmRhcmRp
emUgb24gQkdSQTggYXMgdGhlIGRlZmF1bHQgQ29sb3JGb3JtYXQgZm9yIGJ1ZmZlcnMuCisgICAg
ICAgIGlPUywgQ2Fpcm8sIElPU3VyZmFjZSwgYW5kIFNoYXJlYWJsZUJpdG1hcCBhbGwgYWxyZWFk
eSB1c2UgQkdSQTggYnkgZGVmYXVsdDsKKyAgICAgICAgb25seSBJbWFnZUJ1ZmZlciB3aXRoIENH
Qml0bWFwIGJhY2tpbmcgc3RvcmUgb24gbWFjT1MgdXNlZCBSR0JBOC4gU28sCisgICAgICAgIGZv
ciBzYW5pdHkncyBzYWtlIChhbmQgc28gdGhhdCBpdCdzIGVhc3kgdG8gaGF2ZSBhIGRlZmF1bHQg
cGFzc2VkIGludG8KKyAgICAgICAgdGhlIGNvbnN0cnVjdG9yKSwgc3RhbmRhcmRpemUgb24gQkdS
QTguCisKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpjcmVh
dGVCdWZmZXJGb3JQYWludGluZyBjb25zdCk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAg
ICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6
Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmg6CisgICAgICAgIFBsdW1iaW5nIENvbG9yRm9ybWF0IGFyb3VuZC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OnRvQkdSQURhdGEgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpwdXRJbWFnZURhdGEpOgorICAg
ICAgICBBc3NlcnQgdGhhdCBjb3B5SW1hZ2VQaXhlbHMgaXMgYWx3YXlzIG9wZXJhdGluZyBvbiBh
IDgtYml0IGJ1ZmZlciwKKyAgICAgICAgc2luY2UgdGhhdCdzIGFsbCBpdCBzdXBwb3J0cyBmb3Ig
bm93LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNvbG9yRm9ybWF0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6Ynl0ZXNQZXJSb3cgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpiYWNrZW5kQ29sb3JG
b3JtYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZmVyQkdSQVBpeGVsQnVm
ZmVyVG9JT1N1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm9CYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZm
ZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQml0bWFwSW1hZ2VBZnRlclNjYWxpbmdJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQmFja2VuZDo6dG9DRkRhdGEgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29weUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpj
b3B5TmF0aXZlSW1hZ2UgY29uc3QpOgorICAgICAgICBBZG9wdCBDb2xvckZvcm1hdCBhbmQgc3Rh
bmRhcmRpemUgb24gQkdSQTguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRDb2xv
ckZvcm1hdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjplbnN1cmVQbGF0Zm9ybUNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpmb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SU9TdXJmYWNlOjpmb3JtYXRGb3JDb2xvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpv
cGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Oklt
YWdlQnVmZmVyOjpjcmVhdGUpOgorCiAyMDIwLTExLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2FjaGUgdGhlIE5hdGl2ZUlt
YWdlIGluIEdQVSBQcm9jZXNzIGFuZCBhbGxvdyByZWZlcmVuY2luZyBpdCB3aXRoIGl0cyBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTY1MDMzYTVjZTYzMjY5Yjg0ODM4ZWI2
M2I2NzRmNjQ5MmQ0OWRkMS4uOTRkN2YyMWVkMzYxYTJlMmY1MmE2ZGNiYTA5N2RjMzZjYmYwZDI5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0xMS0xMSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbWluaW1hbCBzdXBwb3J0IGZv
ciBkZWVwIGNvbG9yIElPU3VyZmFjZSBiYWNraW5nIHN0b3JlIHRvIEltYWdlQnVmZmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4MTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
QnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6UmVt
b3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRlc1BlclBpeGVsIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQgY29uc3Qp
OgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VWaWV3U25hcHNob3Rd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJp
dG1hcEJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJv
eHk6OmNyZWF0ZUJhY2tlbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6
OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10g
Q2FjaGUgdGhlIE5hdGl2ZUltYWdlIGluIEdQVSBQcm9jZXNzIGFuZCBhbGxvdyByZWZlcmVuY2lu
ZyBpdCB3aXRoIGl0cyBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9DdXN0b21QYWludENhbnZhcy5jcHAKaW5kZXggZTQ1MDQ0ZjcwOTQ4ZDRmMzkzYmQ5NjhkNDc5
ZjM4Yjc3ZmRmOTNhMi4uOTNlZDQzNjA1Nzc2NzVmZTIwNzhiYWQ0ODc1YTFmMzA1ODgwYzJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKQEAgLTkyLDcgKzky
LDcgQEAgSW1hZ2UqIEN1c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSgpIGNvbnN0CiAgICAg
aWYgKCF3aWR0aCgpIHx8ICFoZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBtX2NvcGllZEJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdN
b2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyKTsKKyAgICBt
X2NvcGllZEJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgs
IG51bGxwdHIpOwogICAgIGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGU1
ODMyMTAzMGU4YmFjODRjNjE0MzY3MjljMDZiNWY3MWRmMjljYmYuLjE2OWNhYTkwMDI0ZDI2Nzcy
MzA1MDYyZjU5OGQxMmNjZGRiYWIzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCkBAIC05MzksNyArOTM5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6
Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHNob3Vs
ZEFjY2VsZXJhdGUoc2l6ZSgpKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVy
aW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKICAgICAvLyBGSVhNRTogQWRkIGEgbmV3IHNldHRpbmcg
Zm9yIERpc3BsYXlMaXN0IGRyYXdpbmcgb24gY2FudmFzLgogICAgIGF1dG8gdXNlRGlzcGxheUxp
c3QgPSBtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcudmFsdWVPcihkb2N1bWVudCgpLnNldHRpbmdz
KCkuZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCgpKSA/IFNob3VsZFVzZURpc3BsYXlMaXN0OjpZ
ZXMgOiBTaG91bGRVc2VEaXNwbGF5TGlzdDo6Tm87Ci0gICAgc2V0SW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKCksIHJlbmRlcmluZ01vZGUsIHVzZURpc3BsYXlMaXN0LCBSZW5k
ZXJpbmdQdXJwb3NlOjpDYW52YXMsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGhvc3RXaW5kb3cpKTsK
KyAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5n
TW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgQ29sb3JT
cGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KSk7CiAKICAgICBpZiAo
YnVmZmVyKCkgJiYgYnVmZmVyKCktPmRyYXdpbmdDb250ZXh0KCkpCiAgICAgICAgIGJ1ZmZlcigp
LT5kcmF3aW5nQ29udGV4dCgpLT5zZXRUcmFja3NEaXNwbGF5TGlzdFJlcGxheShtX3RyYWNrc0Rp
c3BsYXlMaXN0UmVwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
CmluZGV4IDZkYmI3OTc1ZWRiMmJkYWNjZmY0MGIwMDRlMTQyMDM1YTc4N2NhNTQuLmUyNDQyNDI3
ODRkMDUwMWNkYzRiYWRhNDRiNzU2M2UxMDZkYjFlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVmlkZW9FbGVtZW50LmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIFJlZlB0cjxJbWFnZUJ1ZmZl
cj4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRT
aXplJiBzCiB7CiAgICAgYXV0byogaG9zdFdpbmRvdyA9IGRvY3VtZW50KCkudmlldygpICYmIGRv
Y3VtZW50KCkudmlldygpLT5yb290KCkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0
V2luZG93KCkgOiBudWxscHRyOwogICAgIGF1dG8gc2hvdWxkVXNlRGlzcGxheUxpc3QgPSBkb2N1
bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCgpID8gU2hvdWxkVXNl
RGlzcGxheUxpc3Q6OlllcyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICByZXR1cm4g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5
TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgQ29sb3JTcGFjZTo6U1JH
QiwgaG9zdFdpbmRvdyk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVu
ZGVyaW5nTW9kZSwgc2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlh
UGFpbnRpbmcsIDEsIENvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0OjpCR1JBOCwgaG9zdFdp
bmRvdyk7CiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFpbnRDdXJyZW50RnJhbWVJbkNv
bnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAppbmRleCBlOTY4YjQ4NjAzZTAxZTU4YzYz
MzZkZDZkZDljOWExYjU1MjQyYjEyLi5iNDY2MTY4MDQzMDdiNDVhZDNjNzc2MTJlMjdhZTQ5YjRh
YzZjMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtODQsNyArODQsNyBA
QCBSZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJ1ZmZlcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcAogICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgaWYgKGRvY3Vt
ZW50LnZpZXcoKSAmJiBkb2N1bWVudC52aWV3KCktPnJvb3QoKSkgewogICAgICAgICAgICAgYXV0
byBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKTsKLSAg
ICAgICAgICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUs
IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObywgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2U6OlNSR0IsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAg
cmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNl
RGlzcGxheUxpc3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3NlOjpDYW52YXMsIHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDk5N2YyYWY3Zjk3NTY5
MGM3NzM4MTY0MjkyMTViOWU1MWJhYzU5ZjEuLjBhMDk4ZDJkYjQ5MjBkNzNjMmYxMDgxNDViMjMw
YmQ5MDg0YTY5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTUyMyw5ICs1MjMsOSBAQCB2
b2lkIENocm9tZTo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50
aWxNb3VzZU1vdmVzKQogICAgIG1fY2xpZW50LnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zl
cyhoaWRkZW5VbnRpbE1vdXNlTW92ZXMpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IENocm9t
ZTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+
IENocm9tZTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9y
bWF0KSBjb25zdAogewotICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXpl
LCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOwor
ICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2Rl
LCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0K
IAogUGxhdGZvcm1EaXNwbGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKaW5kZXggY2Y3NzdlMGNjZDk5YTdjYjU5MTM4ZWFmYjYxMWU0ZjFjMDI2ZmY5Yy4uMjMz
MjhmNTZhMTkxMjA0OWQ0Nzk3NjQxZDAxNDAwNTUxNTkwMzUwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJz
b3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhi
b29sKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRl
cmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSwgUGl4ZWxGb3JtYXQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUGxhdGZvcm1EaXNwbGF5
SUQgZGlzcGxheUlEKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRD
aGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3YWYxNzhlOTg2NjhkYTljNzE0NDQ0NTEz
MjYwNjk3NDg3ZDgzNWM4Li4zYTllMWQ2NjkwOTdlNTk1ZDliNTdmYzRjZmY3ZTYxYTVkMThkMGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVs
bHB0cjsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVm
ZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZs
b2F0LCBDb2xvclNwYWNlKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJl
bmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0LCBDb2xvclNwYWNlLCBQaXhlbEZv
cm1hdCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgLy8gUGFzcyBudWxscHRyIGFz
IHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4OTY1YTI1M2UxODdlZTk3
NmE0ZTY5NDg4ZDRmNjg1NjhmNWJjNzIxLi40M2RiMWZmYWUwMTJiYjIxODk0ZjJjYTk2MzA3MjE0
NzY2YWFkZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCkBAIC0zMiw2ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIEltYWdlQnVm
ZmVyOwogCitlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgQ29s
b3JTcGFjZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogZW51
bSBjbGFzcyBSZW5kZXJpbmdQdXJwb3NlIDogdWludDhfdDsKQEAgLTYwLDcgKzYxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXco
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3
VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAKLSAgICB2
aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiwgUmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2VCdWZm
ZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFJl
bmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQpIGNvbnN0ID0gMDsKIAogICAgIC8vIE1ldGhvZCBmb3IgcmV0cmlldmluZyB0aGUgbmF0
aXZlIGNsaWVudCBvZiB0aGUgcGFnZS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBw
bGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggODU0MDIxNWY2
MjM3Y2MwYTNkNjI1ZTMyZmE5NjdkZjlhNjJlYzJhZi4uOGY4NGU5YmEyMmNjZTVkOTI3NjJiNWFj
Njc5MjMyMmVlZGEzNjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMzQsOSArMzQsOSBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBCYWNrZW5kVHlwZT4KIGNsYXNzIENvbmNyZXRlSW1hZ2VCdWZmZXIgOiBwdWJs
aWMgSW1hZ2VCdWZmZXIgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEltYWdlQnVm
ZmVyVHlwZSA9IENvbmNyZXRlSW1hZ2VCdWZmZXIsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAg
ICBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBz
dGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9y
bWF0IHBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93LCBBcmd1bWVudHMm
Ji4uLiBhcmd1bWVudHMpCiAgICAgewotICAgICAgICBhdXRvIGJhY2tlbmQgPSBCYWNrZW5kVHlw
ZTo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdyk7
CisgICAgICAgIGF1dG8gYmFja2VuZCA9IEJhY2tlbmRUeXBlOjpjcmVhdGUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiAgICAgICAg
IGlmICghYmFja2VuZCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEltYWdlQnVmZmVyVHlwZShXVEZNb3ZlKGJhY2tlbmQpLCBzdGQ6OmZv
cndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggOGY2MmRjNmEzNDgzYzg0M2Qw
NWJlZjY3MzRkYzU0YTEzYjRiMGU1Zi4uNmMxMWU1NTY1NTJmZDJjMzY1ZDE5NDBjOGNiNWJlNGIy
ZTg5ZGNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmNwcApAQCAtMzgsMzUgKzM4LDM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRp
YyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkTGVuZ3RoID0gNDA5NjsKIHN0YXRpYyBjb25zdCBmbG9h
dCBNYXhDbGFtcGVkQXJlYSA9IE1heENsYW1wZWRMZW5ndGggKiBNYXhDbGFtcGVkTGVuZ3RoOwog
Ci1SZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0
IHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBo
b3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VE
aXNwbGF5TGlzdCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSBwdXJwb3Nl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3Jt
YXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAgUmVm
UHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlcjsKICAgICBpZiAoaG9zdFdpbmRvdykKLSAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBob3N0V2luZG93LT5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5k
ZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgICAg
ICBpbWFnZUJ1ZmZlciA9IGhvc3RXaW5kb3ctPmNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRl
cmluZ01vZGUsIHB1cnBvc2UsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3Jt
YXQpOwogCiAgICAgaWYgKCFpbWFnZUJ1ZmZlciAmJiBzaG91bGRVc2VEaXNwbGF5TGlzdCA9PSBT
aG91bGRVc2VEaXNwbGF5TGlzdDo6WWVzKSB7CiAgICAgICAgIGlmIChyZW5kZXJpbmdNb2RlID09
IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBE
aXNwbGF5TGlzdEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZmZXIg
PSBEaXNwbGF5TGlzdEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKICAgICAgICAg
CiAgICAgICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERp
c3BsYXlMaXN0VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgICAgIGltYWdlQnVmZmVy
ID0gRGlzcGxheUxpc3RVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKICAgICB9
CiAKICAgICBpZiAoIWltYWdlQnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBob3N0V2luZG93KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4
ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOwogCiAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQogCi1S
ZWZQdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVm
UHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3cpCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZl
cjsKICAgICAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVy
YXRlZCkKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVh
dGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBob3N0V2luZG93KTsKKyAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiAgICAg
CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKLSAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJh
dGVkSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IGhvc3RXaW5kb3cpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3Jt
YXQsIGhvc3RXaW5kb3cpOwogCiAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMDI5Yjc1M2Nj
MDcxMDYxM2FkYzIxMmJlM2FkNWQxZmQyMGI4NGJjMS4uODZmMzE4MjEzY2M4YTRmNTUwNDNkNWVl
MDhhYjVkYjdlMTc5OGYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oCkBAIC00Myw4ICs0Myw4IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0Owog
Y2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUJ1ZmZlcj4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxJbWFnZUJ1ZmZlcj4gewogcHVibGljOgogICAgIC8vIFdpbGwgcmV0
dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwg
UmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBj
b25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2Rl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlID0gQ29sb3JTcGFjZTo6U1JH
QiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5n
TW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1h
dCA9IFBpeGVsRm9ybWF0OjpCR1JBOCwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29s
b3JTcGFjZSA9IENvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OkJH
UkE4LCBjb25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBSZWZQdHI8SW1h
Z2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0NvbnRleHQm
KTsKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0aWJsZSB3aXRoIHRoZSBj
b250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29sdXRpb24gZm9yIGRyYXdpbmcgaW50byB0aGUgYnVm
ZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5jcHAKaW5kZXggZjFmMzY3
YzA2YTJhMGM5ZDk5MTNjOWM5MjM2YzE5NzM2ZWRlNTlhMi4uN2YwZmU5ZTZkOTY2ZTc0YjQ1Zjg1
YWFkMGUzYjJmYjg0ZDk0NTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCkBAIC0zMSwxMSArMzEsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVy
QmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCitJ
bWFnZUJ1ZmZlckJhY2tlbmQ6OkltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KQogICAg
IDogbV9sb2dpY2FsU2l6ZShsb2dpY2FsU2l6ZSkKICAgICAsIG1fYmFja2VuZFNpemUoYmFja2Vu
ZFNpemUpCiAgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGUpCiAgICAgLCBt
X2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKKyAgICAsIG1fcGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXQp
CiB7CiB9CiAKQEAgLTEwNSwxMyArMTA2LDEzIEBAIFZlY3Rvcjx1aW50OF90PiBJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OnRvQkdSQURhdGEodm9pZCogZGF0YSkgY29uc3QKICAgICB1aW50OF90KiBzcmNS
b3dzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YSk7CiAKICAgICBjb3B5SW1hZ2VQ
aXhlbHMoCi0gICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIGJh
Y2tlbmRDb2xvckZvcm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKLSAgICAgICAgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkLCBDb2xvckZvcm1hdDo6QkdSQSwg
ZGVzdEJ5dGVzUGVyUm93LCByZXN1bHQuZGF0YSgpLCBtX2xvZ2ljYWxTaXplKTsKKyAgICAgICAg
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgcGl4ZWxGb3JtYXQoKSwgc3Jj
Qnl0ZXNQZXJSb3csIHNyY1Jvd3MsCisgICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVu
cHJlbXVsdGlwbGllZCwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBkZXN0Qnl0ZXNQZXJSb3csIHJlc3Vs
dC5kYXRhKCksIG1fbG9naWNhbFNpemUpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3Rh
dGljIGlubGluZSB2b2lkIGNvcHlQcmVtdWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkKENvbG9yRm9y
bWF0IHNyY0NvbG9yRm9ybWF0LCBjb25zdCB1aW50OF90KiBzcmNQaXhlbCwgQ29sb3JGb3JtYXQg
ZGVzdENvbG9yRm9ybWF0LCB1aW50OF90KiBkZXN0UGl4ZWwpCitzdGF0aWMgaW5saW5lIHZvaWQg
Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQoUGl4ZWxGb3JtYXQgc3JjUGl4ZWxGb3Jt
YXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBQaXhlbEZvcm1hdCBkZXN0UGl4ZWxGb3JtYXQs
IHVpbnQ4X3QqIGRlc3RQaXhlbCkKIHsKICAgICB1aW50OF90IGFscGhhID0gc3JjUGl4ZWxbM107
CiAgICAgaWYgKCFhbHBoYSkgewpAQCAtMTE5LDcgKzEyMCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZChDb2xvckZvcm1hdCBzcmNDb2xvckZv
cm1hdCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChzcmNDb2xvckZvcm1hdCA9
PSBkZXN0Q29sb3JGb3JtYXQpIHsKKyAgICBpZiAoc3JjUGl4ZWxGb3JtYXQgPT0gZGVzdFBpeGVs
Rm9ybWF0KSB7CiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihkZXN0UGl4ZWwp
WzBdID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KHNyY1BpeGVsKVswXTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzMSwxNSArMTMyLDE1IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZChDb2xvckZvcm1hdCBzcmNDb2xv
ckZvcm1hdCwKICAgICBkZXN0UGl4ZWxbM10gPSBzcmNQaXhlbFszXTsKIH0KIAotc3RhdGljIGlu
bGluZSB2b2lkIGNvcHlQcmVtdWx0aXBsaWVkVG9VbnByZW11bHRpcGxpZWQoQ29sb3JGb3JtYXQg
c3JjQ29sb3JGb3JtYXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBDb2xvckZvcm1hdCBkZXN0
Q29sb3JGb3JtYXQsIHVpbnQ4X3QqIGRlc3RQaXhlbCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5
UHJlbXVsdGlwbGllZFRvVW5wcmVtdWx0aXBsaWVkKFBpeGVsRm9ybWF0IHNyY1BpeGVsRm9ybWF0
LCBjb25zdCB1aW50OF90KiBzcmNQaXhlbCwgUGl4ZWxGb3JtYXQgZGVzdFBpeGVsRm9ybWF0LCB1
aW50OF90KiBkZXN0UGl4ZWwpCiB7CiAgICAgdWludDhfdCBhbHBoYSA9IHNyY1BpeGVsWzNdOwog
ICAgIGlmICghYWxwaGEgfHwgYWxwaGEgPT0gMjU1KSB7Ci0gICAgICAgIGNvcHlQcmVtdWx0aXBs
aWVkVG9QcmVtdWx0aXBsaWVkKHNyY0NvbG9yRm9ybWF0LCBzcmNQaXhlbCwgZGVzdENvbG9yRm9y
bWF0LCBkZXN0UGl4ZWwpOworICAgICAgICBjb3B5UHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGll
ZChzcmNQaXhlbEZvcm1hdCwgc3JjUGl4ZWwsIGRlc3RQaXhlbEZvcm1hdCwgZGVzdFBpeGVsKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChzcmNDb2xvckZvcm1hdCA9PSBkZXN0
Q29sb3JGb3JtYXQpIHsKKyAgICBpZiAoc3JjUGl4ZWxGb3JtYXQgPT0gZGVzdFBpeGVsRm9ybWF0
KSB7CiAgICAgICAgIGRlc3RQaXhlbFswXSA9IChzcmNQaXhlbFswXSAqIDI1NSkgLyBhbHBoYTsK
ICAgICAgICAgZGVzdFBpeGVsWzFdID0gKHNyY1BpeGVsWzFdICogMjU1KSAvIGFscGhhOwogICAg
ICAgICBkZXN0UGl4ZWxbMl0gPSAoc3JjUGl4ZWxbMl0gKiAyNTUpIC8gYWxwaGE7CkBAIC0xNTQs
MTUgKzE1NSwxNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29weVByZW11bHRpcGxpZWRUb1VucHJl
bXVsdGlwbGllZChDb2xvckZvcm1hdCBzcmNDb2xvckZvcm1hdAogICAgIGRlc3RQaXhlbFszXSA9
IGFscGhhOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weVVucHJlbXVsdGlwbGllZFRvUHJl
bXVsdGlwbGllZChDb2xvckZvcm1hdCBzcmNDb2xvckZvcm1hdCwgY29uc3QgdWludDhfdCogc3Jj
UGl4ZWwsIENvbG9yRm9ybWF0IGRlc3RDb2xvckZvcm1hdCwgdWludDhfdCogZGVzdFBpeGVsKQor
c3RhdGljIGlubGluZSB2b2lkIGNvcHlVbnByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQoUGl4
ZWxGb3JtYXQgc3JjUGl4ZWxGb3JtYXQsIGNvbnN0IHVpbnQ4X3QqIHNyY1BpeGVsLCBQaXhlbEZv
cm1hdCBkZXN0UGl4ZWxGb3JtYXQsIHVpbnQ4X3QqIGRlc3RQaXhlbCkKIHsKICAgICB1aW50OF90
IGFscGhhID0gc3JjUGl4ZWxbM107CiAgICAgaWYgKCFhbHBoYSB8fCBhbHBoYSA9PSAyNTUpIHsK
LSAgICAgICAgY29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQoc3JjQ29sb3JGb3JtYXQs
IHNyY1BpeGVsLCBkZXN0Q29sb3JGb3JtYXQsIGRlc3RQaXhlbCk7CisgICAgICAgIGNvcHlQcmVt
dWx0aXBsaWVkVG9QcmVtdWx0aXBsaWVkKHNyY1BpeGVsRm9ybWF0LCBzcmNQaXhlbCwgZGVzdFBp
eGVsRm9ybWF0LCBkZXN0UGl4ZWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KHNyY0NvbG9yRm9ybWF0ID09IGRlc3RDb2xvckZvcm1hdCkgeworICAgIGlmIChzcmNQaXhlbEZv
cm1hdCA9PSBkZXN0UGl4ZWxGb3JtYXQpIHsKICAgICAgICAgZGVzdFBpeGVsWzBdID0gKHNyY1Bp
eGVsWzBdICogYWxwaGEgKyAyNTQpIC8gMjU1OwogICAgICAgICBkZXN0UGl4ZWxbMV0gPSAoc3Jj
UGl4ZWxbMV0gKiBhbHBoYSArIDI1NCkgLyAyNTU7CiAgICAgICAgIGRlc3RQaXhlbFsyXSA9IChz
cmNQaXhlbFsyXSAqIGFscGhhICsgMjU0KSAvIDI1NTsKQEAgLTE3Nyw5ICsxNzgsOSBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgY29weVVucHJlbXVsdGlwbGllZFRvUHJlbXVsdGlwbGllZChDb2xvckZv
cm1hdCBzcmNDb2xvckZvcm1hdAogICAgIGRlc3RQaXhlbFszXSA9IGFscGhhOwogfQogCi1zdGF0
aWMgaW5saW5lIHZvaWQgY29weVVucHJlbXVsdGlwbGllZFRvVW5wcmVtdWx0aXBsaWVkKENvbG9y
Rm9ybWF0IHNyY0NvbG9yRm9ybWF0LCBjb25zdCB1aW50OF90KiBzcmNQaXhlbCwgQ29sb3JGb3Jt
YXQgZGVzdENvbG9yRm9ybWF0LCB1aW50OF90KiBkZXN0UGl4ZWwpCitzdGF0aWMgaW5saW5lIHZv
aWQgY29weVVucHJlbXVsdGlwbGllZFRvVW5wcmVtdWx0aXBsaWVkKFBpeGVsRm9ybWF0IHNyY1Bp
eGVsRm9ybWF0LCBjb25zdCB1aW50OF90KiBzcmNQaXhlbCwgUGl4ZWxGb3JtYXQgZGVzdFBpeGVs
Rm9ybWF0LCB1aW50OF90KiBkZXN0UGl4ZWwpCiB7Ci0gICAgaWYgKHNyY0NvbG9yRm9ybWF0ID09
IGRlc3RDb2xvckZvcm1hdCkgeworICAgIGlmIChzcmNQaXhlbEZvcm1hdCA9PSBkZXN0UGl4ZWxG
b3JtYXQpIHsKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGRlc3RQaXhlbClb
MF0gPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc3JjUGl4ZWwpWzBdOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTkxLDM4ICsxOTIsNDIgQEAgc3RhdGljIGlubGluZSB2
b2lkIGNvcHlVbnByZW11bHRpcGxpZWRUb1VucHJlbXVsdGlwbGllZChDb2xvckZvcm1hdCBzcmND
b2xvckZvcm0KICAgICBkZXN0UGl4ZWxbM10gPSBzcmNQaXhlbFszXTsKIH0KIAotdGVtcGxhdGU8
dm9pZCAoKmNvcHlGdW5jdG9yKShDb2xvckZvcm1hdCwgY29uc3QgdWludDhfdCosIENvbG9yRm9y
bWF0LCB1aW50OF90Kik+Cit0ZW1wbGF0ZTx2b2lkICgqY29weUZ1bmN0b3IpKFBpeGVsRm9ybWF0
LCBjb25zdCB1aW50OF90KiwgUGl4ZWxGb3JtYXQsIHVpbnQ4X3QqKT4KIHN0YXRpYyBpbmxpbmUg
dm9pZCBjb3B5SW1hZ2VQaXhlbHNVbmFjY2VsZXJhdGVkKAotICAgIENvbG9yRm9ybWF0IHNyY0Nv
bG9yRm9ybWF0LCB1bnNpZ25lZCBzcmNCeXRlc1BlclJvdywgdWludDhfdCogc3JjUm93cywKLSAg
ICBDb2xvckZvcm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywg
dWludDhfdCogZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgUGl4ZWxGb3JtYXQg
c3JjUGl4ZWxGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNSb3dz
LAorICAgIFBpeGVsRm9ybWF0IGRlc3RQaXhlbEZvcm1hdCwgdW5zaWduZWQgZGVzdEJ5dGVzUGVy
Um93LCB1aW50OF90KiBkZXN0Um93cywgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBzaXpl
X3QgYnl0ZXNQZXJSb3cgPSBzaXplLndpZHRoKCkgKiA0OwogICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgc2l6ZS5oZWlnaHQoKTsgKyt5KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IHggPSAwOyB4IDwg
Ynl0ZXNQZXJSb3c7IHggKz0gNCkKLSAgICAgICAgICAgIGNvcHlGdW5jdG9yKHNyY0NvbG9yRm9y
bWF0LCAmc3JjUm93c1t4XSwgZGVzdENvbG9yRm9ybWF0LCAmZGVzdFJvd3NbeF0pOworICAgICAg
ICAgICAgY29weUZ1bmN0b3Ioc3JjUGl4ZWxGb3JtYXQsICZzcmNSb3dzW3hdLCBkZXN0UGl4ZWxG
b3JtYXQsICZkZXN0Um93c1t4XSk7CiAgICAgICAgIHNyY1Jvd3MgKz0gc3JjQnl0ZXNQZXJSb3c7
CiAgICAgICAgIGRlc3RSb3dzICs9IGRlc3RCeXRlc1BlclJvdzsKICAgICB9CiB9CiAKIHZvaWQg
SW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMoCi0gICAgQWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgQ29sb3JGb3JtYXQgc3JjQ29sb3JGb3JtYXQsIHVuc2ln
bmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNSb3dzLAotICAgIEFscGhhUHJlbXVsdGlw
bGljYXRpb24gZGVzdEFscGhhRm9ybWF0LCBDb2xvckZvcm1hdCBkZXN0Q29sb3JGb3JtYXQsIHVu
c2lnbmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCogZGVzdFJvd3MsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvbnN0CisgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwg
UGl4ZWxGb3JtYXQgc3JjUGl4ZWxGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50
OF90KiBzcmNSb3dzLAorICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0
LCBQaXhlbEZvcm1hdCBkZXN0UGl4ZWxGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywg
dWludDhfdCogZGVzdFJvd3MsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CisgICAgLy8g
V2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEg
d2l0aCBkZWVwIGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY1BpeGVsRm9ybWF0ID09IFBp
eGVsRm9ybWF0OjpSR0JBOCB8fCBzcmNQaXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgp
OworICAgIEFTU0VSVChkZXN0UGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OlJHQkE4IHx8IGRl
c3RQaXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgpOworCiAgICAgaWYgKHNyY0FscGhh
Rm9ybWF0ID09IGRlc3RBbHBoYUZvcm1hdCkgewogICAgICAgICBpZiAoc3JjQWxwaGFGb3JtYXQg
PT0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCkKLSAgICAgICAgICAgIGNv
cHlJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxp
ZWQ+KHNyY0NvbG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9yRm9y
bWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKKyAgICAgICAgICAgIGNvcHlJ
bWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQ+
KHNyY1BpeGVsRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdFBpeGVsRm9ybWF0
LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgY29weUltYWdlUGl4ZWxzVW5hY2NlbGVyYXRlZDxjb3B5VW5wcmVtdWx0aXBsaWVkVG9V
bnByZW11bHRpcGxpZWQ+KHNyY0NvbG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywg
ZGVzdENvbG9yRm9ybWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKKyAgICAg
ICAgICAgIGNvcHlJbWFnZVBpeGVsc1VuYWNjZWxlcmF0ZWQ8Y29weVVucHJlbXVsdGlwbGllZFRv
VW5wcmVtdWx0aXBsaWVkPihzcmNQaXhlbEZvcm1hdCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3Ms
IGRlc3RQaXhlbEZvcm1hdCwgZGVzdEJ5dGVzUGVyUm93LCBkZXN0Um93cywgc2l6ZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoZGVzdEFscGhhRm9ybWF0ID09IEFscGhhUHJl
bXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlwbGllZCkgewotICAgICAgICBjb3B5SW1hZ2VQaXhl
bHNVbmFjY2VsZXJhdGVkPGNvcHlQcmVtdWx0aXBsaWVkVG9VbnByZW11bHRpcGxpZWQ+KHNyY0Nv
bG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9yRm9ybWF0LCBkZXN0
Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKKyAgICAgICAgY29weUltYWdlUGl4ZWxzVW5h
Y2NlbGVyYXRlZDxjb3B5UHJlbXVsdGlwbGllZFRvVW5wcmVtdWx0aXBsaWVkPihzcmNQaXhlbEZv
cm1hdCwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3MsIGRlc3RQaXhlbEZvcm1hdCwgZGVzdEJ5dGVz
UGVyUm93LCBkZXN0Um93cywgc2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBj
b3B5SW1hZ2VQaXhlbHNVbmFjY2VsZXJhdGVkPGNvcHlVbnByZW11bHRpcGxpZWRUb1ByZW11bHRp
cGxpZWQ+KHNyY0NvbG9yRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdENvbG9y
Rm9ybWF0LCBkZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKKyAgICBjb3B5SW1hZ2VQ
aXhlbHNVbmFjY2VsZXJhdGVkPGNvcHlVbnByZW11bHRpcGxpZWRUb1ByZW11bHRpcGxpZWQ+KHNy
Y1BpeGVsRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdFBpeGVsRm9ybWF0LCBk
ZXN0Qnl0ZXNQZXJSb3csIGRlc3RSb3dzLCBzaXplKTsKIH0KIAogUmVmUHRyPEltYWdlRGF0YT4g
SW1hZ2VCdWZmZXJCYWNrZW5kOjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBv
dXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIHZvaWQqIGRhdGEpIGNvbnN0CkBA
IC0yNTIsOCArMjU3LDggQEAgUmVmUHRyPEltYWdlRGF0YT4gSW1hZ2VCdWZmZXJCYWNrZW5kOjpn
ZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXQKICAgICB1aW50OF90KiBz
cmNSb3dzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YSkgKyBzcmNSZWN0Q2xpcHBl
ZC55KCkgKiBzcmNCeXRlc1BlclJvdyArIHNyY1JlY3RDbGlwcGVkLngoKSAqIDQ7CiAKICAgICBj
b3B5SW1hZ2VQaXhlbHMoCi0gICAgICAgIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQsIGJhY2tlbmRDb2xvckZvcm1hdCgpLCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywKLSAg
ICAgICAgb3V0cHV0Rm9ybWF0LCBDb2xvckZvcm1hdDo6UkdCQSwgZGVzdEJ5dGVzUGVyUm93LCBk
ZXN0Um93cywgZGVzdFJlY3Quc2l6ZSgpKTsKKyAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlv
bjo6UHJlbXVsdGlwbGllZCwgcGl4ZWxGb3JtYXQoKSwgc3JjQnl0ZXNQZXJSb3csIHNyY1Jvd3Ms
CisgICAgICAgIG91dHB1dEZvcm1hdCwgUGl4ZWxGb3JtYXQ6OlJHQkE4LCBkZXN0Qnl0ZXNQZXJS
b3csIGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkpOwogCiAgICAgcmV0dXJuIGltYWdlRGF0YTsK
IH0KQEAgLTI4Myw4ICsyODgsOCBAQCB2b2lkIEltYWdlQnVmZmVyQmFja2VuZDo6cHV0SW1hZ2VE
YXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0CiAgICAgdWludDhf
dCogc3JjUm93cyA9IGltYWdlRGF0YS5kYXRhKCktPmRhdGEoKSArIHNyY1JlY3RDbGlwcGVkLnko
KSAqIHNyY0J5dGVzUGVyUm93ICsgc3JjUmVjdENsaXBwZWQueCgpICogNDsKIAogICAgIGNvcHlJ
bWFnZVBpeGVscygKLSAgICAgICAgaW5wdXRGb3JtYXQsIENvbG9yRm9ybWF0OjpSR0JBLCBzcmNC
eXRlc1BlclJvdywgc3JjUm93cywKLSAgICAgICAgZGVzdEZvcm1hdCwgYmFja2VuZENvbG9yRm9y
bWF0KCksIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIGRlc3RSZWN0LnNpemUoKSk7CisgICAg
ICAgIGlucHV0Rm9ybWF0LCBQaXhlbEZvcm1hdDo6UkdCQTgsIHNyY0J5dGVzUGVyUm93LCBzcmNS
b3dzLAorICAgICAgICBkZXN0Rm9ybWF0LCBwaXhlbEZvcm1hdCgpLCBkZXN0Qnl0ZXNQZXJSb3cs
IGRlc3RSb3dzLCBkZXN0UmVjdC5zaXplKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCmluZGV4IGFhOWIzNDFhMDU3M2YyYWQ0ZTllZDMwNTdjMDQyMWU5NTkxYWU1YzEu
LjVlMmZhMDIxMjM4ZTM1Y2UxOWMwYTQ1ZmFhYWMzOThjNzFjZWUzYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBA
IC01NCw5ICs1NCwxMSBAQCBlbnVtIGNsYXNzIFByZXNlcnZlUmVzb2x1dGlvbiA6IHVpbnQ4X3Qg
ewogICAgIFllcywKIH07CiAKLWVudW0gY2xhc3MgQ29sb3JGb3JtYXQgOiB1aW50OF90IHsKLSAg
ICBSR0JBLAotICAgIEJHUkEKK2VudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90IHsKKyAg
ICBSR0JBOCwKKyAgICBCR1JBOCwKKyAgICBSR0IxMCwKKyAgICBSR0IxMEE4LAogfTsKIAogY2xh
c3MgSW1hZ2VCdWZmZXJCYWNrZW5kIHsKQEAgLTcyLDYgKzc0LDcgQEAgcHVibGljOgogICAgIElu
dFNpemUgYmFja2VuZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2JhY2tlbmRTaXplOyB9CiAgICAg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHV0aW9uU2NhbGU7
IH0KICAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3Bh
Y2U7IH0KKyAgICBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4
ZWxGb3JtYXQ7IH0KIAogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0o
KSBjb25zdCB7IHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsgfQogICAgIHZpcnR1YWwgc2l6ZV90
IG1lbW9yeUNvc3QoKSBjb25zdCB7IHJldHVybiA0ICogbV9iYWNrZW5kU2l6ZS5hcmVhKCkudW5z
YWZlR2V0KCk7IH0KQEAgLTEwNCwxMCArMTA3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBpc0FjY2VsZXJhdGVkID0gZmFsc2U7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJD
T1JFX0VYUE9SVCBJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFBpeGVsRm9ybWF0KTsKIAogICAgIHZpcnR1YWwg
dW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCB7IHJldHVybiA0ICogbV9iYWNrZW5kU2l6ZS53
aWR0aCgpOyB9Ci0gICAgdmlydHVhbCBDb2xvckZvcm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQoKSBj
b25zdCB7IHJldHVybiBDb2xvckZvcm1hdDo6UkdCQTsgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4KICAgICBUIHRvQmFja2VuZENvb3JkaW5hdGVzKFQgdCkgY29uc3QKQEAgLTEyMiw4ICsx
MjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW50UmVjdCBiYWNrZW5kUmVjdCgpIGNvbnN0IHsgcmV0
dXJuIEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgbV9iYWNrZW5kU2l6ZSk7IH07CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgY29weUltYWdlUGl4ZWxzKAotICAgICAgICBBbHBo
YVByZW11bHRpcGxpY2F0aW9uIHNyY0FscGhhRm9ybWF0LCBDb2xvckZvcm1hdCBzcmNDb2xvckZv
cm1hdCwgdW5zaWduZWQgc3JjQnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jvd3MsCi0gICAgICAg
IEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEFscGhhRm9ybWF0LCBDb2xvckZvcm1hdCBkZXN0
Q29sb3JGb3JtYXQsIHVuc2lnbmVkIGRlc3RCeXRlc1BlclJvdywgdWludDhfdCogZGVzdFJvd3Ms
IGNvbnN0IEludFNpemUmKSBjb25zdDsKKyAgICAgICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBz
cmNBbHBoYUZvcm1hdCwgUGl4ZWxGb3JtYXQgc3JjUGl4ZWxGb3JtYXQsIHVuc2lnbmVkIHNyY0J5
dGVzUGVyUm93LCB1aW50OF90KiBzcmNSb3dzLAorICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0
aW9uIGRlc3RBbHBoYUZvcm1hdCwgUGl4ZWxGb3JtYXQgZGVzdFBpeGVsRm9ybWF0LCB1bnNpZ25l
ZCBkZXN0Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIGRlc3RSb3dzLCBjb25zdCBJbnRTaXplJikgY29u
c3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gdG9CR1JBRGF0YSh2b2lk
KiBkYXRhKSBjb25zdDsKIApAQCAtMTM0LDYgKzEzNiwyMSBAQCBwcm90ZWN0ZWQ6CiAgICAgSW50
U2l6ZSBtX2JhY2tlbmRTaXplOwogICAgIGZsb2F0IG1fcmVzb2x1dGlvblNjYWxlOwogICAgIENv
bG9yU3BhY2UgbV9jb2xvclNwYWNlOworICAgIFBpeGVsRm9ybWF0IG1fcGl4ZWxGb3JtYXQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBpeGVsRm9ybWF0PiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpQaXhlbEZvcm1hdCwKKyAgICBXZWJD
b3JlOjpQaXhlbEZvcm1hdDo6UkdCQTgsCisgICAgV2ViQ29yZTo6UGl4ZWxGb3JtYXQ6OkJHUkE4
LAorICAgIFdlYkNvcmU6OlBpeGVsRm9ybWF0OjpSR0IxMCwKKyAgICBXZWJDb3JlOjpQaXhlbEZv
cm1hdDo6UkdCMTBBOAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNw
cAppbmRleCAxMGNiMGEwMzYxZTA5ODQ4YzQ3YWRkZDFmNWM2ZTM3NDA0YTY0YWIwLi5hNjM1MTQ3
ZDBiY2EzYjc2Y2UxMmRmNzY0ODI0OGEzZGM4MGJhZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCkBAIC01Niw3
ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gdHJhbnNm
ZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFjZShDVlBpCiAgICAgfQogCiAgICAgSW50U2l6ZSBz
aXplIHsgc3RhdGljX2Nhc3Q8aW50PihDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIp
KSwgc3RhdGljX2Nhc3Q8aW50PihDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSkg
fTsKLSAgICBhdXRvIGlvU3VyZmFjZSA9ICBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzUkdCQ29s
b3JTcGFjZVJlZigpLCBJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQSk7CisgICAgYXV0byBpb1N1cmZh
Y2UgPSAgSU9TdXJmYWNlOjpjcmVhdGUoc2l6ZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgSU9TdXJm
YWNlOjpGb3JtYXQ6OkJHUkEpOwogCiAgICAgSU9TdXJmYWNlOjpMb2NrZXIgbG9jaygqaW9TdXJm
YWNlKTsKICAgICB2SW1hZ2VfQnVmZmVyIHNyYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2Vu
ZC5oCmluZGV4IDIzYjkxOWFkNTIyZWExNzhiMzJjMDA5ZjVkODhkNWQ3MTZkZWYzYTEuLjAzZWEx
NjYyMDE3NmMzMTU5MDM1NDRmNjk5YjQxYTU0MmEyZjZmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQuaApAQCAtNTAsNyArNTAsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAg
dXNpbmcgSW1hZ2VCdWZmZXJCYWNrZW5kOjpJbWFnZUJ1ZmZlckJhY2tlbmQ7CiAKLSAgICBDb2xv
ckZvcm1hdCBiYWNrZW5kQ29sb3JGb3JtYXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb2xv
ckZvcm1hdDo6QkdSQTsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVRyYW5zZm9ybUNvbG9y
U3BhY2UoY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCAyNTY+JikgeyB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5jcHAKaW5kZXgg
M2YwZWIwODQwN2M3MjUzM2RlYTFhMTQ5ZmM3Y2Q1YTY4MjdlNDA5ZS4uMWNkMDc1NGIzOTE0M2Fm
NDI5YjQ2ZDVkNzhlNDUxZjBkMWUwNzRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcApAQCAtNDEsOCArNDEsMTAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJD
YWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQpOwogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJD
YWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNr
ZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyQ2Fpcm9J
bWFnZVN1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxG
b3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqKQogeworICAgIEFTU0VSVChwaXhlbEZvcm1hdCA9PSBQ
aXhlbEZvcm1hdDo6QkdSQTgpOworCiAgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBz
X3N1cmZhY2VEYXRhS2V5OwogCiAgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJh
Y2tlbmRTaXplKHNpemUsIHJlc29sdXRpb25TY2FsZSk7CkBAIC01OSwxNiArNjEsMTYgQEAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1
ZmZlckNhaXJvSW1hZ2VTdXJmYWMKICAgICAgICAgZmFzdEZyZWUoZGF0YSk7CiAgICAgfSk7CiAK
LSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VC
YWNrZW5kPihuZXcgSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQoc2l6ZSwgYmFj
a2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShzdXJmYWNlKSkp
OworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFj
ZUJhY2tlbmQ+KG5ldyBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZChzaXplLCBi
YWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RG
TW92ZShzdXJmYWNlKSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0lt
YWdlU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kOjpj
cmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFwaGljc0NvbnRleHQmKQogewot
ICAgIHJldHVybiBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNp
emUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIHJldHVybiBJbWFnZUJ1ZmZl
ckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIDEsIENvbG9yU3BhY2U6OlNS
R0IsIFBpeGVsRm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CiB9CiAKLUltYWdlQnVmZmVyQ2Fpcm9J
bWFnZVN1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+JiYgc3VyZmFjZSkKLSAgICA6IEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFj
a2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFj
ZSwgV1RGTW92ZShzdXJmYWNlKSkKK0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5k
OjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiYmIHN1cmZhY2UpCisgICAgOiBJbWFnZUJ1ZmZlckNhaXJvU3Vy
ZmFjZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKQogewogICAgIEFTU0VSVChj
YWlyb19zdXJmYWNlX2dldF90eXBlKG1fc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1VSRkFDRV9U
WVBFX0lNQUdFKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJm
YWNlQmFja2VuZC5oCmluZGV4IDE2MDAzNzk0ZmRhYTk0NzMyYjYxNTU3YzQxZTg0NDIzMWE5OGE3
MDEuLmQxNmQzM2VhYzQ2YzVkZjY2ZmI4ZmEyZDk1NDkxMGUyZjkxMTVhMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9J
bWFnZVN1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaApAQCAtNDAsMTEg
KzQwLDExIEBAIGNsYXNzIEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kIDogcHVi
bGljIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuCiAgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZCk7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQpOwogcHVibGlj
OgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFj
ZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBQaXhlbEZvcm1hdCwg
Y29uc3QgSG9zdFdpbmRvdyopOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBjb25z
dCBHcmFwaGljc0NvbnRleHQmKTsKIAogcHJpdmF0ZToKLSAgICBJbWFnZUJ1ZmZlckNhaXJvSW1h
Z2VTdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRT
aXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiYmKTsKKyAgICBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNl
QmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBQaXhlbEZvcm1hdCwg
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4mJik7CiAKICAgICB2b2lkIHBsYXRmb3JtVHJhbnNmb3Jt
Q29sb3JTcGFjZShjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mIGxvb2tVcFRhYmxlKSBv
dmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5k
LmNwcAppbmRleCA5MzEwOGQwNGVjOWIxMWJmMGU1NDI1NzZmZjNkNzk5MzRiODA3YjgzLi45Yjgy
MTY0YWVhMzMwNzFlNTM2MWM2ZmUzOWIxYjgyN2M5YjZiMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTQzLDggKzQzLDggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQ6OkltYWdl
QnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYgc3VyZmFjZSkKLSAgICA6
IEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kOjpJ
bWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6
ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgUmVmUHRyPGNhaXJv
X3N1cmZhY2VfdD4mJiBzdXJmYWNlKQorICAgIDogSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQobG9n
aWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0KQogICAgICwgbV9zdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpCiB7CiAgICAgQVNTRVJU
KGNhaXJvX3N1cmZhY2Vfc3RhdHVzKG1fc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NV
Q0NFU1MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyb1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaAppbmRl
eCAyYmI0MDIyNjUwY2Y5YzAxYjQ2YTIyZjgxMzZmZjBjYmY1ZWIyNDEwLi4xMmFhMmIxY2U4OGVl
NDI2NDVmYTc3MmU2NzlmNWQ0MTk1YTI2NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvU3VyZmFjZUJhY2tlbmQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBw
dXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgSW1h
Z2VEYXRhJiwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2lu
dCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAogcHJvdGVj
dGVkOgotICAgIEltYWdlQnVmZmVyQ2Fpcm9TdXJmYWNlQmFja2VuZChjb25zdCBGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiYmKTsKKyAgICBJbWFn
ZUJ1ZmZlckNhaXJvU3VyZmFjZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSwgUGl4ZWxGb3JtYXQsIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+JiYpOwogCiAgICAgUmVm
UHRyPE5hdGl2ZUltYWdlPiBjYWlyb1N1cmZhY2VDb2VyY2VUb0ltYWdlKCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5k
LmNwcAppbmRleCA4YzVhYmY3YzkzZTc5NzEzZjcxM2E2ZGJkZTliYzAxN2YyMWY4OWJjLi5kNjYw
YTU2ZmM2NjRlOGQ0ZGQwNWFlOWIxMmM0ODIwNmE3NjMyZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tl
bmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBSZWZQdHI8SW1hZ2U+IGNyZWF0ZUJpdG1h
cEltYWdlQWZ0ZXJTY2FsaW5nSWZOZWVkZWQoUmVmUHRyPE5hdGl2ZUltYWdlPiYmCiAgICAgaWYg
KHJlc29sdXRpb25TY2FsZSA9PSAxIHx8IHByZXNlcnZlUmVzb2x1dGlvbiA9PSBQcmVzZXJ2ZVJl
c29sdXRpb246OlllcykKICAgICAgICAgaW1hZ2UgPSBOYXRpdmVJbWFnZTo6Y3JlYXRlKGNyZWF0
ZUNyb3BwZWRJbWFnZUlmTmVjZXNzYXJ5KGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGJh
Y2tlbmRTaXplKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0Yo
Q0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXpl
LmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYo
KSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7CisgICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGxvZ2ljYWxTaXplLndpZHRoKCks
IGxvZ2ljYWxTaXplLmhlaWdodCgpLCA4LCA0ICogbG9naWNhbFNpemUud2lkdGgoKSwgc1JHQkNv
bG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1h
cEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29udGV4
dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAgICAgIENHQ29udGV4dENsaXBUb1JlY3Qo
Y29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgbG9naWNhbFNpemUp
KTsKICAgICAgICAgRmxvYXRTaXplIGltYWdlU2l6ZUluVXNlclNwYWNlID0gbG9naWNhbFNpemU7
CkBAIC0xNjIsNyArMTYyLDcgQEAgUmV0YWluUHRyPENGRGF0YVJlZj4gSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQ6OnRvQ0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGkKICAgICAgICAgaW1h
Z2UgPSBjcmVhdGVDcm9wcGVkSW1hZ2VJZk5lY2Vzc2FyeShpbWFnZS5nZXQoKSwgYmFja2VuZFNp
emUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9u
dENvcHlCYWNraW5nU3RvcmUpLT5wbGF0Zm9ybUltYWdlKCk7Ci0gICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJhY2tlbmRTaXplKCkud2lkdGgo
KSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tlbmRTaXplKCkud2lkdGgoKSwg
c1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0KSk7Cisg
ICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIGJh
Y2tlbmRTaXplKCkud2lkdGgoKSwgYmFja2VuZFNpemUoKS5oZWlnaHQoKSwgOCwgNCAqIGJhY2tl
bmRTaXplKCkud2lkdGgoKSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11
bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOwogICAgICAgICBDR0Nv
bnRleHRTZXRCbGVuZE1vZGUoY29udGV4dC5nZXQoKSwga0NHQmxlbmRNb2RlQ29weSk7CiAgICAg
ICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBi
YWNrZW5kU2l6ZSgpLndpZHRoKCksIGJhY2tlbmRTaXplKCkuaGVpZ2h0KCkpKTsKICAgICAgICAg
Q0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UoMCwgMCwgYmFja2Vu
ZFNpemUoKS53aWR0aCgpLCBiYWNrZW5kU2l6ZSgpLmhlaWdodCgpKSwgaW1hZ2UuZ2V0KCkpOwpA
QCAtMjAzLDExICsyMDMsMTEgQEAgc3RhdGljIGlubGluZSB2SW1hZ2VfQnVmZmVyIG1ha2VWSW1h
Z2VCdWZmZXIodW5zaWduZWQgYnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHJvd3MKIH0KIAogc3RhdGlj
IGlubGluZSB2b2lkIGNvcHlJbWFnZVBpeGVsc0FjY2VsZXJhdGVkKAotICAgIEFscGhhUHJlbXVs
dGlwbGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIENvbG9yRm9ybWF0IHNyY0NvbG9yRm9ybWF0LCB2
SW1hZ2VfQnVmZmVyJiBzcmMsCi0gICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0QWxwaGFG
b3JtYXQsIENvbG9yRm9ybWF0IGRlc3RDb2xvckZvcm1hdCwgdkltYWdlX0J1ZmZlciYgZGVzdCkK
KyAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHNyY0FscGhhRm9ybWF0LCBQaXhlbEZvcm1hdCBz
cmNQaXhlbEZvcm1hdCwgdkltYWdlX0J1ZmZlciYgc3JjLAorICAgIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gZGVzdEFscGhhRm9ybWF0LCBQaXhlbEZvcm1hdCBkZXN0UGl4ZWxGb3JtYXQsIHZJbWFn
ZV9CdWZmZXImIGRlc3QpCiB7CiAgICAgaWYgKHNyY0FscGhhRm9ybWF0ID09IGRlc3RBbHBoYUZv
cm1hdCkgewotICAgICAgICBBU1NFUlQoc3JjQ29sb3JGb3JtYXQgIT0gZGVzdENvbG9yRm9ybWF0
KTsKKyAgICAgICAgQVNTRVJUKHNyY1BpeGVsRm9ybWF0ICE9IGRlc3RQaXhlbEZvcm1hdCk7CiAg
ICAgICAgIC8vIFRoZSBkZXN0aW5hdGlvbiBhbHBoYSBmb3JtYXQgY2FuIGJlIHVucHJlbXVsdGlw
bGllZCBpbiB0aGUKICAgICAgICAgLy8gY2FzZSBvZiBhbiBJbWFnZUJpdG1hcCBjcmVhdGVkIGZy
b20gYW4gSW1hZ2VEYXRhIHdpdGgKICAgICAgICAgLy8gcHJlbXVsdGlwbHlBbHBoYT09Im5vbmUi
LgpAQCAtMjE5LDE4ICsyMTksMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlJbWFnZVBpeGVs
c0FjY2VsZXJhdGVkKAogICAgIH0KIAogICAgIGlmIChkZXN0QWxwaGFGb3JtYXQgPT0gQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbjo6VW5wcmVtdWx0aXBsaWVkKSB7Ci0gICAgICAgIGlmIChzcmNDb2xv
ckZvcm1hdCA9PSBDb2xvckZvcm1hdDo6UkdCQSkKKyAgICAgICAgaWYgKHNyY1BpeGVsRm9ybWF0
ID09IFBpeGVsRm9ybWF0OjpSR0JBOCkKICAgICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlE
YXRhX1JHQkE4ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHZJbWFnZVVucHJlbXVsdGlwbHlEYXRhX0JHUkE4ODg4KCZzcmMsICZkZXN0
LCBrdkltYWdlTm9GbGFncyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNyY0NvbG9yRm9y
bWF0ID09IENvbG9yRm9ybWF0OjpSR0JBKQorICAgICAgICBpZiAoc3JjUGl4ZWxGb3JtYXQgPT0g
UGl4ZWxGb3JtYXQ6OlJHQkE4KQogICAgICAgICAgICAgdkltYWdlUHJlbXVsdGlwbHlEYXRhX1JH
QkE4ODg4KCZzcmMsICZkZXN0LCBrdkltYWdlTm9GbGFncyk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHZJbWFnZVByZW11bHRpcGx5RGF0YV9CR1JBODg4OCgmc3JjLCAmZGVzdCwga3ZJbWFn
ZU5vRmxhZ3MpOwogICAgIH0KIAotICAgIGlmIChzcmNDb2xvckZvcm1hdCAhPSBkZXN0Q29sb3JG
b3JtYXQpIHsKKyAgICBpZiAoc3JjUGl4ZWxGb3JtYXQgIT0gZGVzdFBpeGVsRm9ybWF0KSB7CiAg
ICAgICAgIC8vIFN3YXAgcGl4ZWwgY2hhbm5lbHMgQkdSQSA8LT4gUkdCQS4KICAgICAgICAgY29u
c3QgdWludDhfdCBtYXBbNF0gPSB7IDIsIDEsIDAsIDMgfTsKICAgICAgICAgdkltYWdlUGVybXV0
ZUNoYW5uZWxzX0FSR0I4ODg4KCZkZXN0LCAmZGVzdCwgbWFwLCBrdkltYWdlTm9GbGFncyk7CkBA
IC0yMzgsMTggKzIzOCwyMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29weUltYWdlUGl4ZWxzQWNj
ZWxlcmF0ZWQoCiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmNvcHlJbWFnZVBpeGVs
cygKLSAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHNyY0FscGhhRm9ybWF0LCBDb2xvckZvcm1h
dCBzcmNDb2xvckZvcm1hdCwgdW5zaWduZWQgc3JjQnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jv
d3MsCi0gICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0QWxwaGFGb3JtYXQsIENvbG9yRm9y
bWF0IGRlc3RDb2xvckZvcm1hdCwgdW5zaWduZWQgZGVzdEJ5dGVzUGVyUm93LCB1aW50OF90KiBk
ZXN0Um93cywgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKKyAgICBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIHNyY0FscGhhRm9ybWF0LCBQaXhlbEZvcm1hdCBzcmNQaXhlbEZvcm1hdCwgdW5zaWdu
ZWQgc3JjQnl0ZXNQZXJSb3csIHVpbnQ4X3QqIHNyY1Jvd3MsCisgICAgQWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBkZXN0QWxwaGFGb3JtYXQsIFBpeGVsRm9ybWF0IGRlc3RQaXhlbEZvcm1hdCwgdW5z
aWduZWQgZGVzdEJ5dGVzUGVyUm93LCB1aW50OF90KiBkZXN0Um93cywgY29uc3QgSW50U2l6ZSYg
c2l6ZSkgY29uc3QKIHsKLSAgICBpZiAoc3JjQWxwaGFGb3JtYXQgPT0gZGVzdEFscGhhRm9ybWF0
ICYmIHNyY0NvbG9yRm9ybWF0ID09IGRlc3RDb2xvckZvcm1hdCkgewotICAgICAgICBJbWFnZUJ1
ZmZlckJhY2tlbmQ6OmNvcHlJbWFnZVBpeGVscyhzcmNBbHBoYUZvcm1hdCwgc3JjQ29sb3JGb3Jt
YXQsIHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBkZXN0QWxwaGFGb3JtYXQsIGRlc3RDb2xvckZv
cm1hdCwgZGVzdEJ5dGVzUGVyUm93LCBkZXN0Um93cywgc2l6ZSk7CisgICAgLy8gV2UgZG9uJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgZ2V0dGluZyBvciBwdXR0aW5nIHBpeGVsIGRhdGEgd2l0aCBkZWVw
IGNvbG9yIGJ1ZmZlcnMuCisgICAgQVNTRVJUKHNyY1BpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0
OjpSR0JBOCB8fCBzcmNQaXhlbEZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgpOworICAgIEFT
U0VSVChkZXN0UGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OlJHQkE4IHx8IGRlc3RQaXhlbEZv
cm1hdCA9PSBQaXhlbEZvcm1hdDo6QkdSQTgpOworCisgICAgaWYgKHNyY0FscGhhRm9ybWF0ID09
IGRlc3RBbHBoYUZvcm1hdCAmJiBzcmNQaXhlbEZvcm1hdCA9PSBkZXN0UGl4ZWxGb3JtYXQpIHsK
KyAgICAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpjb3B5SW1hZ2VQaXhlbHMoc3JjQWxwaGFGb3Jt
YXQsIHNyY1BpeGVsRm9ybWF0LCBzcmNCeXRlc1BlclJvdywgc3JjUm93cywgZGVzdEFscGhhRm9y
bWF0LCBkZXN0UGl4ZWxGb3JtYXQsIGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNpemUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgdkltYWdlX0J1ZmZlciBzcmMgPSBtYWtlVklt
YWdlQnVmZmVyKHNyY0J5dGVzUGVyUm93LCBzcmNSb3dzLCBzaXplKTsKICAgICB2SW1hZ2VfQnVm
ZmVyIGRlc3QgPSBtYWtlVkltYWdlQnVmZmVyKGRlc3RCeXRlc1BlclJvdywgZGVzdFJvd3MsIHNp
emUpOwogCi0gICAgY29weUltYWdlUGl4ZWxzQWNjZWxlcmF0ZWQoc3JjQWxwaGFGb3JtYXQsIHNy
Y0NvbG9yRm9ybWF0LCBzcmMsIGRlc3RBbHBoYUZvcm1hdCwgZGVzdENvbG9yRm9ybWF0LCBkZXN0
KTsKKyAgICBjb3B5SW1hZ2VQaXhlbHNBY2NlbGVyYXRlZChzcmNBbHBoYUZvcm1hdCwgc3JjUGl4
ZWxGb3JtYXQsIHNyYywgZGVzdEFscGhhRm9ybWF0LCBkZXN0UGl4ZWxGb3JtYXQsIGRlc3QpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oCmluZGV4IGM3Y2EzOTgwMzRmMjVhMzM0OTI0
N2Q0MzRmNWY2NTlmOTJhZjNkNDMuLjRhMzRhOGFlNWJjNjIwZjk0MTFmNGJkMWJjZGIwNTBlZGI4
NjkwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0dCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaApAQCAtNTMsOCArNTMsOCBAQCBwcm90ZWN0ZWQ6
CiAKICNpZiBVU0UoQUNDRUxFUkFURSkKICAgICB2b2lkIGNvcHlJbWFnZVBpeGVscygKLSAgICAg
ICAgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBzcmNBbHBoYUZvcm1hdCwgQ29sb3JGb3JtYXQgc3Jj
Q29sb3JGb3JtYXQsIHVuc2lnbmVkIHNyY0J5dGVzUGVyUm93LCB1aW50OF90KiBzcmNSb3dzLAot
ICAgICAgICBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RBbHBoYUZvcm1hdCwgQ29sb3JGb3Jt
YXQgZGVzdENvbG9yRm9ybWF0LCB1bnNpZ25lZCBkZXN0Qnl0ZXNQZXJSb3csIHVpbnQ4X3QqIGRl
c3RSb3dzLCBjb25zdCBJbnRTaXplJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIEFscGhhUHJl
bXVsdGlwbGljYXRpb24gc3JjQWxwaGFGb3JtYXQsIFBpeGVsRm9ybWF0IHNyY1BpeGVsRm9ybWF0
LCB1bnNpZ25lZCBzcmNCeXRlc1BlclJvdywgdWludDhfdCogc3JjUm93cywKKyAgICAgICAgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0QWxwaGFGb3JtYXQsIFBpeGVsRm9ybWF0IGRlc3RQaXhl
bEZvcm1hdCwgdW5zaWduZWQgZGVzdEJ5dGVzUGVyUm93LCB1aW50OF90KiBkZXN0Um93cywgY29u
c3QgSW50U2l6ZSYpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQml0bWFwQmFja2VuZC5jcHAKaW5kZXggNmMwMzNjNjM4MzhhZmUxYTBmNjI3ZDZiNDRhMTU0
NmYzZmVlZTczMC4uZjIxOGYyN2YyZjUzYzVhNGFkYmI2YTVhZWRjM2M0OWU0OGNkNjNhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcApAQCAtMzcsMTYgKzM3LDEyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1jb25zdGV4
cHIgY29uc3QgQ0dCaXRtYXBJbmZvIERlZmF1bHRCaXRtYXBJbmZvID0ga0NHSW1hZ2VBbHBoYVBy
ZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdDsKLSNlbHNlCi1jb25z
dGV4cHIgY29uc3QgQ0dCaXRtYXBJbmZvIERlZmF1bHRCaXRtYXBJbmZvID0ga0NHSW1hZ2VBbHBo
YVByZW11bHRpcGxpZWRMYXN0OwotI2VuZGlmCi0KIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShj
b25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYgY2dDb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93
KikKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZm
ZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYgY2dD
b2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCiB7
CisgICAgQVNTRVJUKHBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CisKICAgICBJ
bnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlv
blNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTYyLDcgKzU4LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGMKICAgICBz
aXplX3QgbnVtQnl0ZXMgPSBiYWNrZW5kU2l6ZS5oZWlnaHQoKSAqIGJ5dGVzUGVyUm93OwogICAg
IHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goZGF0YSwgbnVtQnl0ZXMpOwogCi0gICAgYXV0
byBjZ0NvbnRleHQgPSBhZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZShkYXRhLCBiYWNrZW5k
U2l6ZS53aWR0aCgpLCBiYWNrZW5kU2l6ZS5oZWlnaHQoKSwgOCwgYnl0ZXNQZXJSb3csIGNnQ29s
b3JTcGFjZSwgRGVmYXVsdEJpdG1hcEluZm8pKTsKKyAgICBhdXRvIGNnQ29udGV4dCA9IGFkb3B0
Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGRhdGEsIGJhY2tlbmRTaXplLndpZHRoKCksIGJhY2tl
bmRTaXplLmhlaWdodCgpLCA4LCBieXRlc1BlclJvdywgY2dDb2xvclNwYWNlLCBrQ0dJbWFnZUFs
cGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0KSk7CiAgICAg
aWYgKCFjZ0NvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC03NCwyNCArNzAs
MjQgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGMKIAogICAgIGF1dG8gZGF0YVByb3ZpZGVyID0g
YWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGRhdGEsIG51bUJ5dGVzLCBy
ZWxlYXNlSW1hZ2VEYXRhKSk7CiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyQ0dCaXRtYXBCYWNrZW5kPihuZXcgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoc2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgZGF0YSwgV1RGTW92ZShk
YXRhUHJvdmlkZXIpLCBXVEZNb3ZlKGNvbnRleHQpKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4obmV3IEltYWdlQnVmZmVyQ0dCaXRtYXBC
YWNrZW5kKHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0LCBkYXRhLCBXVEZNb3ZlKGRhdGFQcm92aWRlciksIFdURk1vdmUoY29udGV4dCkp
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29u
c3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChhdXRvIGNnQ29sb3JTcGFj
ZSA9IGNvbnRleHRDb2xvclNwYWNlKGNvbnRleHQpKQotICAgICAgICByZXR1cm4gSW1hZ2VCdWZm
ZXJDR0JpdG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBjZ0Nv
bG9yU3BhY2UuZ2V0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gSW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBjZ0NvbG9yU3Bh
Y2UuZ2V0KCksIFBpeGVsRm9ybWF0OjpCR1JBOCwgbnVsbHB0cik7CiAgICAgCi0gICAgcmV0dXJu
IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6
U1JHQiwgbnVsbHB0cik7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpj
cmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBudWxs
cHRyKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJ
bWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJh
Y2tlbmQ+IEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4
ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7Ci0g
ICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSksIGhv
c3RXaW5kb3cpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRl
KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNv
bG9yU3BhY2UpLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiB9CiAKLUltYWdlQnVmZmVyQ0dC
aXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZChjb25zdCBGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0Rh
dGFQcm92aWRlclJlZj4mJiBkYXRhUHJvdmlkZXIsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0Nv
bnRleHQ+JiYgY29udGV4dCkKLSAgICA6IEltYWdlQnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxTaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlKQorSW1hZ2VCdWZmZXJD
R0JpdG1hcEJhY2tlbmQ6OkltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQs
IHZvaWQqIGRhdGEsIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4mJiBkYXRhUHJvdmlkZXIs
IHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29udGV4dCkKKyAgICA6IEltYWdl
QnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkKICAgICAsIG1fZGF0YShkYXRhKQogICAgICwgbV9k
YXRhUHJvdmlkZXIoV1RGTW92ZShkYXRhUHJvdmlkZXIpKQogICAgICwgbV9jb250ZXh0KFdURk1v
dmUoY29udGV4dCkpCkBAIC0xMTYsNyArMTEyLDcgQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkK
ICAgICBjYXNlIERvbnRDb3B5QmFja2luZ1N0b3JlOgogICAgICAgICByZXR1cm4gTmF0aXZlSW1h
Z2U6OmNyZWF0ZShhZG9wdENGKENHSW1hZ2VDcmVhdGUoCiAgICAgICAgICAgICBtX2JhY2tlbmRT
aXplLndpZHRoKCksIG1fYmFja2VuZFNpemUuaGVpZ2h0KCksIDgsIDMyLCBieXRlc1BlclJvdygp
LAotICAgICAgICAgICAgY2FjaGVkQ0dDb2xvclNwYWNlKG1fY29sb3JTcGFjZSksIERlZmF1bHRC
aXRtYXBJbmZvLCBtX2RhdGFQcm92aWRlci5nZXQoKSwKKyAgICAgICAgICAgIGNhY2hlZENHQ29s
b3JTcGFjZShtX2NvbG9yU3BhY2UpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwg
a0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0LCBtX2RhdGFQcm92aWRlci5nZXQoKSwKICAgICAgICAg
ICAgIDAsIHRydWUsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKSk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaAppbmRleCA3ZDIzM2QyMjI3ODVhZDNkZGYwNjNjNGE4
NjQ4ZmRmZmFjZTdjZjk5Li5lOTJjOTJmNWQ1MGZkZTU3YWFhM2NhNWMyZmYyOWRmMDhiODY0ZDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmgKQEAgLTM2LDggKzM2LDggQEAgY2xh
c3MgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQgOiBwdWJsaWMgSW1hZ2VCdWZmZXJDR0JhY2tl
bmQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tl
bmQpOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5k
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25z
dCBIb3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNH
Qml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmLCBQaXhlbEZvcm1hdCwgY29uc3QgSG9z
dFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1h
cEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UsIFBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC01MiwxMSArNTIsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzT3JpZ2luQXRVcHBlckxlZnRDb3JuZXIgPSB0
cnVlOwogCiBwcml2YXRlOgotICAgIEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRh
UHJvdmlkZXJSZWY+JiYsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYpOwotCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb2xvckZvcm1hdCBiYWNrZW5kQ29sb3JGb3Jt
YXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb2xvckZvcm1hdDo6QkdSQTsgfQotI2VuZGlm
CisgICAgSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UsIFBpeGVsRm9ybWF0LCB2b2lkKiBkYXRhLCBSZXRhaW5QdHI8Q0dEYXRhUHJv
dmlkZXJSZWY+JiYsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYpOwogCiAgICAg
dm9pZCogbV9kYXRhOwogICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gbV9kYXRhUHJv
dmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhOWQ1NDg1
YTI2MWI1YTBkZjUzZDJiODk3MTBhZTgzN2ZiZjliMWFlLi5mZTlkM2IyZjllZmE2MGI2ODI5YTRm
M2E0MTEyNzlkNmNlNTU5MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5j
cHAKQEAgLTY0LDEzICs2NCwxMyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0CiAgICAgcmV0dXJu
IEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KTsKIH0KIAot
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmIGNnQ29s
b3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6
Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiBjZ0NvbG9yU3BhY2UsIFBpeGVsRm9y
bWF0IHBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQogewogICAgIElu
dFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShzaXplLCByZXNvbHV0aW9u
U2NhbGUpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoYmFja2VuZFNp
emUsIGJhY2tlbmRTaXplLCBjZ0NvbG9yU3BhY2UpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3Vy
ZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2dDb2xvclNwYWNlLCBJT1N1
cmZhY2U6OmZvcm1hdEZvclBpeGVsRm9ybWF0KHBpeGVsRm9ybWF0KSk7CiAgICAgaWYgKCFzdXJm
YWNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtODAsMjUgKzgwLDI0IEBAIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlCiAKICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0Lmdl
dCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOwogCi0gICAg
cmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNr
ZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKHN1cmZhY2UpKTsK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+KHNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBX
VEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYg
KGF1dG8gY2dDb2xvclNwYWNlID0gY29udGV4dENvbG9yU3BhY2UoY29udGV4dCkpCi0gICAgICAg
IHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShzaXplLCAxLCBDb2xv
clNwYWNlOjpTUkdCLCBjZ0NvbG9yU3BhY2UuZ2V0KCksIG51bGxwdHIpOworICAgICAgICByZXR1
cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFj
ZTo6U1JHQiwgY2dDb2xvclNwYWNlLmdldCgpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIG51bGxwdHIp
OwogICAgIAotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShz
aXplLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBudWxscHRyKTsKKyAgICByZXR1cm4gSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoc2l6ZSwgMSwgQ29sb3JTcGFjZTo6U1JHQiwgUGl4
ZWxGb3JtYXQ6OkJHUkE4LCBudWxscHRyKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBIb3N0
V2luZG93KiBob3N0V2luZG93KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIGNhY2hlZENH
Q29sb3JTcGFjZShjb2xvclNwYWNlKSwgaG9zdFdpbmRvdyk7CisgICAgcmV0dXJuIEltYWdlQnVm
ZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpLCBwaXhlbEZvcm1hdCwgaG9zdFdp
bmRvdyk7CiB9CiAKLQotSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6
ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UpCi0gICAgOiBJbWFnZUJ1
ZmZlckNHQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSkKK0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUm
IGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYg
c3VyZmFjZSkKKyAgICA6IEltYWdlQnVmZmVyQ0dCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5k
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkKICAgICAsIG1f
c3VyZmFjZShXVEZNb3ZlKHN1cmZhY2UpKQogewogICAgIEFTU0VSVChtX3N1cmZhY2UpOwpAQCAt
MTMwLDExICsxMjksNiBAQCB1bnNpZ25lZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJ5
dGVzUGVyUm93KCkgY29uc3QKICAgICByZXR1cm4gbV9zdXJmYWNlLT5ieXRlc1BlclJvdygpOwog
fQogCi1Db2xvckZvcm1hdCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRDb2xv
ckZvcm1hdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENvbG9yRm9ybWF0OjpCR1JBOwotfQotCiBS
ZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2
ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0CiB7CiAgICAgcmV0dXJuIE5hdGl2ZUltYWdl
OjpjcmVhdGUobV9zdXJmYWNlLT5jcmVhdGVJbWFnZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmgKaW5kZXggZjUwOWVlZTY1YTcyMmUxMjAxZmZjMGZiNTc3Y2ZiODJiZmVjNjkw
Yy4uZWJlYmZhZjk2ZGI0NTEyNjNiZTQ1MzNiYzY1YzA1N2IyZWFlZmNlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTM5LDExICszOSwxMSBAQCBjbGFzcyBXRUJDT1JF
X0VYUE9SVCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQgOiBwdWJsaWMgSW1hZ2VCdWZmZXJD
R0JhY2tlbmQgewogcHVibGljOgogICAgIHN0YXRpYyBJbnRTaXplIGNhbGN1bGF0ZUJhY2tlbmRT
aXplKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSk7
CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSwgQ0dDb2xvclNwYWNlUmVmLCBjb25zdCBIb3N0V2luZG93Kik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBG
bG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEhvc3RX
aW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZD4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmLCBQaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRv
dyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBQaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopOwogICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAKLSAgICBJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYg
cGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+JiYpOworICAgIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBwaHlzaWNhbFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQsIHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+JiYpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBmbHVzaENvbnRleHQoKSBvdmVycmlkZTsKQEAgLTY5
LDcgKzY5LDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0dD
b2xvclNwYWNlUmVmPiBjb250ZXh0Q29sb3JTcGFjZShjb25zdCBHcmFwaGljc0NvbnRleHQmKTsK
ICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yRm9y
bWF0IGJhY2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gbV9zdXJmYWNlOwogICAgIG11dGFibGUgYm9vbCBtX3JlcXVpcmVz
RHJhd0FmdGVyUHV0SW1hZ2VEYXRhIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXggODdhNjVhMWEwNTBhYWJl
NjBlNTBjM2ExYzIzMTMzOWRlYWY2Yjg4NS4uMjA1NjVjOWFmOWQ4YjI0ZDJmY2I3OGMzNTgyZTZh
NzZhZWE4NjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ5LDE3ICs0OSwyMSBAQCBjbGFzcyBIb3N0V2luZG93Owog
Y2xhc3MgSW1hZ2VCdWZmZXI7CiAjZW5kaWYKIAorZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVp
bnQ4X3Q7CisKIGNsYXNzIElPU3VyZmFjZSBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBGb3JtYXQgewotICAgICAgICBSR0JBLAor
ICAgICAgICBCR1JBLAogICAgICAgICBZVVY0MjIsCiAjaWYgSEFWRShJT1NVUkZBQ0VfUkdCMTAp
CiAgICAgICAgIFJHQjEwLAogICAgICAgICBSR0IxMEE4LAogI2VuZGlmCiAgICAgfTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBJT1N1cmZhY2U6OkZvcm1hdCBmb3JtYXRGb3JQaXhlbEZv
cm1hdChXZWJDb3JlOjpQaXhlbEZvcm1hdCk7CiAgICAgCiAgICAgY2xhc3MgTG9ja2VyIHsKICAg
ICBwdWJsaWM6CkBAIC05NCw4ICs5OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdWludDMyX3QgbV9m
bGFnczsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJT1N1cmZhY2U+IGNyZWF0ZShJbnRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZvcm1hdCA9IEZv
cm1hdDo6UkdCQSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+IGNyZWF0ZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3Bh
Y2VSZWYsIEZvcm1hdCA9IEZvcm1hdDo6UkdCQSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJbnRTaXplLCBDR0NvbG9yU3BhY2VS
ZWYsIEZvcm1hdCA9IEZvcm1hdDo6QkdSQSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRT
aXplLCBDR0NvbG9yU3BhY2VSZWYsIEZvcm1hdCA9IEZvcm1hdDo6QkdSQSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TZW5k
UmlnaHQoY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiYsIENHQ29sb3JTcGFjZVJlZik7CiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TdXJmYWNlKElPU3Vy
ZmFjZVJlZiwgQ0dDb2xvclNwYWNlUmVmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbUltYWdlKENHSW1hZ2VSZWYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
CmluZGV4IDkxYjE0MWE1MDNiYjI3YmQ0MjdhZjNmNzJhNGQyMTNhYmIzOGZkYzMuLjExMTA4Zjkz
YTY0Y2E0Mzc1NGE0YmM1OWEzZjIzNDBmMTdkNWE4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTE5MSw3ICsxOTEs
NyBAQCBJT1N1cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNp
emUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYQogICAgIE5TRGljdGlvbmFyeSAqb3B0aW9uczsK
IAogICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgY2FzZSBGb3JtYXQ6OlJHQkE6CisgICAgY2Fz
ZSBGb3JtYXQ6OkJHUkE6CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zRm9yMzJCaXRTdXJmYWNl
KHNpemUsICdCR1JBJyk7CiAgICAgICAgIGJyZWFrOwogI2lmIEhBVkUoSU9TVVJGQUNFX1JHQjEw
KQpAQCAtMjc5LDcgKzI3OSw3IEBAIENHQ29udGV4dFJlZiBJT1N1cmZhY2U6OmVuc3VyZVBsYXRm
b3JtQ29udGV4dChjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQogICAgIHNpemVfdCBiaXRz
UGVyUGl4ZWwgPSAzMjsKICAgICAKICAgICBzd2l0Y2ggKGZvcm1hdCgpKSB7Ci0gICAgY2FzZSBG
b3JtYXQ6OlJHQkE6CisgICAgY2FzZSBGb3JtYXQ6OkJHUkE6CiAgICAgICAgIGJyZWFrOwogI2lm
IEhBVkUoSU9TVVJGQUNFX1JHQjEwKQogICAgIGNhc2UgRm9ybWF0OjpSR0IxMDoKQEAgLTM1Niw3
ICszNTYsNyBAQCBJT1N1cmZhY2U6OkZvcm1hdCBJT1N1cmZhY2U6OmZvcm1hdCgpIGNvbnN0CiB7
CiAgICAgdW5zaWduZWQgcGl4ZWxGb3JtYXQgPSBJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChtX3N1
cmZhY2UuZ2V0KCkpOwogICAgIGlmIChwaXhlbEZvcm1hdCA9PSAnQkdSQScpCi0gICAgICAgIHJl
dHVybiBGb3JtYXQ6OlJHQkE7CisgICAgICAgIHJldHVybiBGb3JtYXQ6OkJHUkE7CiAKICNpZiBI
QVZFKElPU1VSRkFDRV9SR0IxMCkKICAgICBpZiAocGl4ZWxGb3JtYXQgPT0gJ3czMHInKQpAQCAt
MzcwLDcgKzM3MCw3IEBAIElPU3VyZmFjZTo6Rm9ybWF0IElPU3VyZmFjZTo6Zm9ybWF0KCkgY29u
c3QKICAgICAgICAgcmV0dXJuIEZvcm1hdDo6WVVWNDIyOwogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIEZvcm1hdDo6UkdCQTsKKyAgICByZXR1cm4gRm9ybWF0OjpCR1JB
OwogfQogCiBJT1N1cmZhY2VJRCBJT1N1cmZhY2U6OnN1cmZhY2VJRCgpIGNvbnN0CkBAIC00NTks
MTEgKzQ1OSwzNiBAQCB2b2lkIElPU3VyZmFjZTo6bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRp
ZXMoKQogICAgIElPU3VyZmFjZVNldFZhbHVlKG1fc3VyZmFjZS5nZXQoKSwga0lPU3VyZmFjZUNv
bG9yU3BhY2UsIGNvbG9yU3BhY2VQcm9wZXJ0aWVzLmdldCgpKTsKIH0KIAorSU9TdXJmYWNlOjpG
b3JtYXQgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhlbEZvcm1hdChQaXhlbEZvcm1hdCBmb3JtYXQp
Cit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIFBpeGVsRm9ybWF0OjpSR0JBODoK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIElP
U3VyZmFjZTo6Rm9ybWF0OjpCR1JBOworICAgIGNhc2UgUGl4ZWxGb3JtYXQ6OkJHUkE4OgorICAg
ICAgICByZXR1cm4gSU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CisjaWYgSEFWRShJT1NVUkZBQ0Vf
UkdCMTApCisgICAgY2FzZSBQaXhlbEZvcm1hdDo6UkdCMTA6CisgICAgICAgIHJldHVybiBJT1N1
cmZhY2U6OkZvcm1hdDo6UkdCMTA7CisgICAgY2FzZSBQaXhlbEZvcm1hdDo6UkdCMTBBODoKKyAg
ICAgICAgcmV0dXJuIElPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMEE4OworI2Vsc2UKKyAgICBjYXNl
IFBpeGVsRm9ybWF0OjpSR0IxMDoKKyAgICBjYXNlIFBpeGVsRm9ybWF0OjpSR0IxMEE4OgorICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSU9TdXJm
YWNlOjpGb3JtYXQ6OkJHUkE7CisjZW5kaWYKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gSU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7Cit9CisKIHN0YXRpYyBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJT1N1cmZhY2U6OkZvcm1hdCBm
b3JtYXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIElPU3VyZmFjZTo6Rm9y
bWF0OjpSR0JBOgotICAgICAgICB0cyA8PCAiUkdCQSI7CisgICAgY2FzZSBJT1N1cmZhY2U6OkZv
cm1hdDo6QkdSQToKKyAgICAgICAgdHMgPDwgIkJHUkEiOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIElPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjI6CiAgICAgICAgIHRzIDw8ICJZVVY0MjIiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKaW5kZXggZmZkOTRiNTI5
YzA2YTdlMmNkZTAwZWM5NGIzNTVjODVkZGFmYjRjMy4uZjViMjIzNDAyYWViMzc3MjhiNzMwMWZi
NjY3MTE4YTNiMmU4YjA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIEltYWdlQnVmZmVyIDogcHVibGljIENvbmNy
ZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+IHsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlciA9IENvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+OwogCiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RX
aW5kb3cpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBp
eGVsRm9ybWF0LCBjb25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1hZ2VCdWZm
ZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgaG9zdFdpbmRvdywgc2l6ZSk7
CisgICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRl
PEltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0LCBob3N0V2luZG93LCBzaXplKTsKICAgICB9CiAKICAgICBzdGF0aWMgYXV0byBjcmVhdGUo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlci5oCmluZGV4IDc2Y2NmNmIzNTk1NDZkMjU1NjI4OTY1ZGE2YjdiMzA3NjA0MWRjNWQuLjQ3
YjQzNmJkNTYyZDFlMTcwNzcwNDU0MmRmOTU3NjA4NWI1ZjQ1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC00
NCw5ICs0NCw5IEBAIGNsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNv
bmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsCiAgICAgdXNpbmcgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlRGF0YTsKIAogcHVibGljOgotICAgIHN0YXRpYyBhdXRv
IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHN0YXRpYyBhdXRvIGNy
ZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZl
cjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIG51bGxwdHIsIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1
ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBudWxscHRyLCByZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIFJlbW90
ZUltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAt
NTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQobV9iYWNr
ZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFja2VuZC0+
cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tlbmQtPmNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaW1hZ2VCdWZmZXJCYWNrZW5k
V2FzQ3JlYXRlZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNp
emUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNl
KCksIG1fYmFja2VuZC0+cGl4ZWxGb3JtYXQoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUoKSwgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAK
ICAgICB+UmVtb3RlSW1hZ2VCdWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGVi
MDBiNmNkNGExOGI4NTdkMTdjZWNmNDI1MmQyMzM1ZTY5OTgzYTUuLmU5MWY5YmRlZmUzNjU5NTIy
NTFlZjNkMzg3Y2JiY2QzYjkyOTJiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTk2
LDkgKzk2LDkgQEAgYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjphcHBseU1lZGlhSXRlbShE
aXNwbGF5TGlzdDo6SXRlbUhhbmRsZSBpdGVtLCBHcmFwaGkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVh
dGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRT
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXpl
LCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6SW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChsb2dpY2FsU2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUp
LCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Oklt
YWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKGhhbmRsZSksIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
OwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RXYXND
b21taXR0ZWQoRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBA
IC0xMDYsMTcgKzEwNiwxNyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlz
cGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3Q6OkZsdXNoSWRlbgogICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hEaXNwbGF5TGlzdFdhc0Nv
bW1pdHRlZChmbHVzaElkZW50aWZpZXIsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciksIG1f
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBp
eGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIEFTU0VSVChyZW5kZXJpbmdNb2RlID09IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIHx8IHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZCk7CiAKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVy
OwogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQp
Ci0gICAgICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJh
dGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMsIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAKICAgICBpZiAoIWltYWdlQnVmZmVyKQotICAgICAgICBpbWFnZUJ1ZmZlciA9IFVu
YWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OworICAgICAgICBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0LCAqdGhpcywgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIGlmICghaW1h
Z2VCdWZmZXIpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaAppbmRleCAwMmQ5NGE4OTczZGU3OGE1MTNlZWI5YjQ0Yzc3NmVkZTVmZTgwMjQ5Li45NWU4
Yzk3NjBkZmI2M2FhMDg0Y2M2ZjdiYWY5ZDJkZjlhNzgyOTljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgYXBwbHlNZWRpYUl0ZW0oV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYp
OwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KLSAgICB2b2lkIGltYWdlQnVmZmVyQmFj
a2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5k
V2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAg
dm9pZCBzZXROZXh0SXRlbUJ1ZmZlclRvUmVhZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1
ZmZlcklkZW50aWZpZXIpOwpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2Vz
IHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZv
cm1hdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHdh
a2VVcEFuZEFwcGx5RGlzcGxheUxpc3QoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyIGluaXRpYWxJZGVudGlmaWVyLCB1aW50NjRfdCBpbml0aWFsT2Zmc2V0LCBXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlm
aWVyKTsKICAgICB2b2lkIGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0
aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFn
ZURhdGFSZWZlcmVuY2UmJik+JiYpOwogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShSZWY8V2Vi
Q29yZTo6TmF0aXZlSW1hZ2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgppbmRleCBmYzQ5ODM2ZGVhMGM0NjliMzA5NTQ3MDE2ZmUwYTM1NDIwOGZhZmQ0Li44ZTI3
ZTA0Zjc3MzgxYTZmYjk5NTczNDJhMjljMjE0NjA3MmVlY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3Vu
dGVkIHsKLSAgICBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNp
emUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgQ3Jl
YXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGl4ZWxGb3Jt
YXQgcGl4ZWxGb3JtYXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgV2FrZVVwQW5kQXBwbHlEaXNwbGF5TGlzdChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaW5pdGlhbElkZW50aWZp
ZXIsIHVpbnQ2NF90IGluaXRpYWxPZmZzZXQsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VEYXRhKGVu
dW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwg
V2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZl
cmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIENhY2hlTmF0aXZlSW1hZ2UoV2ViQ29y
ZTo6TmF0aXZlSW1hZ2VSZWZlcmVuY2UgbmF0aXZlSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBkZmYxNDMzMjgwYWEyZTFhOTAxNWFhMzcyMmM0ZjE4
ZjkwN2NiNjBjLi5kZjFkOTZmYTEwMjY2OWU2NDgyYmVjNTQ5ZDY4ZWYzZjMzNWYxNjc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTU5OCw3ICs1OTgsNiBA
QCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5
RXZlbnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3Mu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJzogWyc8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKLSAgICAgICAgJ1dlYktpdDo6RG9jdW1l
bnRFZGl0aW5nQ29udGV4dFJlcXVlc3QnOiBbJyJEb2N1bWVudEVkaXRpbmdDb250ZXh0LmgiJ10s
CiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyc6IFsnPFdlYkNvcmUvRHJh
Z0RhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZCc6IFsnPFdl
YkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdPcGVyYXRpb24n
OiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCkBAIC02MjgsNiArNjI3LDcgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJzog
Wyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJk
V2ViQ29udGVudCc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpQaXhlbEZvcm1hdCc6IFsn
PFdlYkNvcmUvSW1hZ2VCdWZmZXJCYWNrZW5kLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbGF0
Zm9ybVRleHRUcmFja0RhdGEnOiBbJzxXZWJDb3JlL1BsYXRmb3JtVGV4dFRyYWNrLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5JzogWyc8V2ViQ29yZS9Q
bHVnaW5EYXRhLmg+J10sCkBAIC02NzIsNiArNjcyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5o
IiddLAogICAgICAgICAnV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNz
aW9uU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6
IFsnIkNvbnRlbnRXb3JsZFNoYXJlZC5oIiddLAorICAgICAgICAnV2ViS2l0OjpEb2N1bWVudEVk
aXRpbmdDb250ZXh0UmVxdWVzdCc6IFsnIkRvY3VtZW50RWRpdGluZ0NvbnRleHQuaCInXSwKICAg
ICAgICAgJ1dlYktpdDo6RmluZE9wdGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIiddLAogICAg
ICAgICAnV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0YXRlJzogWyciR2VzdHVyZVR5cGVzLmgi
J10sCiAgICAgICAgICdXZWJLaXQ6Okdlc3R1cmVUeXBlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggY2VmNWE5ZWQ0ZTJkNGZlMDFiM2I3
YzM2MDBiMjU1NzdjNjYwOGI0My4uMDFkNjM0YTI1ZTEwNzY2MmM5YjEzYTBjOWVlOGIyZGM0ZTEw
Y2I3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMTY2LDcgKzE2Niw3IEBA
IFdlYkNvcmU6OkludFNpemUgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJhY2tpbmdTdG9yZVNp
emUoKSBjb25zdAogdW5zaWduZWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJ5dGVzUGVyUGl4
ZWwoKSBjb25zdAogewogICAgIHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CisgICAgY2Fz
ZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBX
ZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKICNpZiBIQVZFKElP
U1VSRkFDRV9SR0IxMCkKICAgICBjYXNlIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0Ix
MDogcmV0dXJuIDQ7CkBAIC00NzQsNyArNDc0LDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAog
ICAgICAgICByZXR1cm4gbV9pc09wYXF1ZSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpS
R0IxMCA6IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMEE4OwogI2VuZGlmCiAKLSAg
ICByZXR1cm4gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgcmV0dXJuIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCmluZGV4IDdlMzQxNDM4
YjBiZThiYzZmNzBlM2YxNDc2N2FiYWUzMDU2MWQwNzQuLjg0NDg4N2JiYzNiMWIzYTQzMzg0MTJl
OTQzYzlkNjkyY2IxYjYyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJl
YWJsZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFw
LmNwcApAQCAtMTQ5LDcgKzE0OSw2IEBAIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IFNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIENvbmZpZ3VyYXRpCiAKIFJlZlB0
cjxTaGFyZWFibGVCaXRtYXA+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYg
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKLSAgICAvLyBD
cmVhdGUgdGhlIHNoYXJlZCBtZW1vcnkuCiAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRN
ZW1vcnk6Om1hcChoYW5kbGUubV9oYW5kbGUsIHByb3RlY3Rpb24pOwogICAgIGlmICghc2hhcmVk
TWVtb3J5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggMWFlN2FlMDlmZjI0YWRjYzg3MTU4
N2I5MTBjZDNhNjYyNTEyZjg0Mi4uNGI3NjYyYTE2NDU5NGRlNmU0M2ZlNDQ0NDhlMDkyMzdkNzJi
ZWYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KQEAgLTEwMDYsOSArMTAwNiw5IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hv
dD4pX3Rha2VWaWV3U25hcHNob3QKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJh
bnNmb3JtM0RNYWtlU2NhbGUoZGV2aWNlU2NhbGUsIGRldmljZVNjYWxlLCAxKTsKIAogI2lmIEhB
VkUoSU9TVVJGQUNFX1JHQjEwKQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBz
aG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1h
dDo6UkdCQTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9
IFdlYkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAj
ZWxzZQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2Vi
Q29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsK
ICNlbmRpZgogICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdl
YkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JT
cGFjZVJlZigpLCBzbmFwc2hvdEZvcm1hdCk7CiAgICAgaWYgKCFzdXJmYWNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGMzYmVlZjVk
MTQwYjcyNDM4ZGM3NTA1NjAzYWU5YTRjZGUyYTExYjMuLjRiNGJlNzg5MTAwOGYwM2VkMGI4ZWZm
YmZjZWU2M2FkY2Y1MTQ4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZC5jcHAKQEAgLTQzLDggKzQzLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29u
c3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgY29uc3QgSG9zdFdpbmRvdyopCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6
OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdp
bmRvdyopCiB7CisgICAgQVNTRVJUKHBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpSR0JBOCk7
CisKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwg
cmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTYxLDEwICs2MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhYwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KHNpemUs
IGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoYml0bWFw
KSwgV1RGTW92ZShjb250ZXh0KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRl
eHQpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFj
a2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhl
bEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKICAgICBpZiAoIVdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8U2hhcmVhYmxlQml0bWFwOjpIYW5kbGU+KGhhbmRsZSkpIHsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC03OSwxMSArODEsMTEgQEAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWMKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kPihsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgV1RGTW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBi
YWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RG
TW92ZShiaXRtYXApLCBXVEZNb3ZlKGNvbnRleHQpKTsKIH0KIAotSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kOjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4mJiBiaXRtYXAsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+JiYgY29u
dGV4dCkKLSAgICA6IFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBwaHlz
aWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSkKK0ltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNvbnN0
IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIHBoeXNpY2FsU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBp
eGVsRm9ybWF0LCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYmIGJpdG1hcCwgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzQ29udGV4dD4mJiBjb250ZXh0KQorICAgIDogUGxhdGZvcm1JbWFnZUJ1ZmZl
ckJhY2tlbmQobG9naWNhbFNpemUsIHBoeXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBwaXhlbEZvcm1hdCkKICAgICAsIG1fYml0bWFwKFdURk1vdmUoYml0bWFwKSkKICAg
ICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKaW5kZXggOWUyNGFiOTllYmM2NzVjZTIwMWE1OTM5
NzI4YzYxOWRiYTU5NWVjMy4uMGM3ZjA0N2Y4ODM1ZTRiOGQ2M2MxNWY0MWVjOTIxMDJlNDU4NTM5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCkBA
IC00MywxMCArNDMsMTAgQEAgY2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VCdWZmZXJCYWMKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZCk7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKTsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgY29uc3Qg
V2ViQ29yZTo6SG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Us
IFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+
IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSk7CiAKLSAgICBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGh5
c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFJl
ZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ+JiYpOworICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZChjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+JiYsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+JiYpOwogCiAgICAgSW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Owog
CkBAIC02MCw4ICs2MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1dEltYWdlRGF0YShXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGlucHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbWFn
ZURhdGEmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RG
b3JtYXQpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIFdlYkNvcmU6OkNvbG9yRm9ybWF0IGJh
Y2tlbmRDb2xvckZvcm1hdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYkNvcmU6OkNvbG9y
Rm9ybWF0OjpCR1JBOyB9Ci0KICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBtX2JpdG1hcDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCA0MjdjYzQ1MTYzYjM1MDY2OWE4
M2UzZDc4YTJmMjZlMmFlZGFiMzVlLi4wNGVkMTJlMmJlMjEyMGI4MGI4NzUyNjM5NDAzODViNzZh
Y2Q3OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNjUsMTAgKzY1LDEwIEBA
IHB1YmxpYzoKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCi0g
ICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSkKKyAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBX
ZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGhhbmRsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9iYWNrZW5kKTsKLSAgICAgICAgbV9i
YWNrZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKKyAgICAgICAgbV9i
YWNrZW5kID0gQmFja2VuZFR5cGU6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7
CiAgICAgfQogCiAgICAgdm9pZCBjb21taXRGbHVzaERpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDI0M2JhOWNhMTE3OGZjODk5OTUxNzdiNmMy
M2QyYTY4MzNkZmU2Y2EuLjcwMGY1ZWMwZjBhMDg5MGQwNzcwYmU3NTgwOTllNjNiNDliMWE2MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JGbHVzaERpc3Bs
YXlMaXN0V2FzQ29tbWl0dGVkKCkKICAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERp
c3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Rmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
ciwgMV9zLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdl
QXJyaXZlcyk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UpCitSZWZQdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCkKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IGltYWdlQnVmZmVyOwogCkBAIC0xMDAsNyArMTAwLDcgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2kKICAgICAgICAgaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eTo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgKnRoaXMpOwogCiAgICAgaWYgKGlt
YWdlQnVmZmVyKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgaW1hZ2VCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
KSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZUltYWdlQnVmZmVyKHNpemUsIHJlbmRlcmlu
Z01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGltYWdlQnVm
ZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSksIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOwogICAgICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiAgICAgfQogCkBAIC0xNDgs
MTYgKzE0OCwxNiBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJl
bW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZgogICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9y
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgaWYgKGltYWdlQnVmZmVyLT5pc0FjY2VsZXJhdGVkKCkpCi0gICAgICAgIGRvd25j
YXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVh
dGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2Fs
U2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3Jt
YXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgZWxzZQotICAgICAgICBkb3duY2FzdDxVbmFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5k
KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBX
VEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBkb3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBi
YWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RG
TW92ZShoYW5kbGUpKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZs
dXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRl
eCBkZDA0ODJjOGI2MWZjMGNmNDYwZTdmZTI0MjdhMjU4NGRkZDQ5YzMzLi43ODU0NThiNzU2ZDk4
OGUzMWM2ODE5ZGNkMWFjNjQ0YmYyNjk4OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAg
ICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6
UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNl
KTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQp
OwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpB
bHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIHN1Ym1pdERpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1
ZmZlcklkZW50aWZpZXIpOwogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZp
ZXIgZmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwpAQCAt
ODksNyArODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmV1c2FibGVIYW5kbGVzKCk7
CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGltYWdlQnVmZmVy
QmFja2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNr
ZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBX
ZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgZmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1
c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsg
KnRoaXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggN2UzNDMzNTQ3NThmMjYyMmVlNmEzOGJkMjcwYWJiNTY1ZTUxMjUwMy4u
ODE5YjBlN2ViYTMzOTMwZWQ0OWEzMTE4Y2RlMDk1MzMwYjQ2OWQ4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIz
LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBJbWFnZUJ1ZmZlckJhY2tlbmRX
YXNDcmVhdGVkKFdlYkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6
ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKFdlYkNvcmU6OkZsb2F0U2l6
ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIEZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0
ZWQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIs
IFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCAwNmYzOTkxM2ZjNjdiNjgyMmVjMmYx
ZTgxYTM0YjM4MzcxNThlMWZmLi41MTYyN2M1ZWRkODkxYjk0ZjM2MzkxYzBhYjRjMjgwOGM2ODBi
ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQpOwogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVs
Rm9ybWF0LCBjb25zdCBIb3N0V2luZG93KikKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0g
Y2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlKTsKICAgICBpZiAoYmFj
a2VuZFNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8g
c3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBiYWNrZW5kU2l6ZSwgY2Fj
aGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZh
Y2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFja2VuZFNpemUsIGNhY2hlZENHQ29sb3JTcGFjZShj
b2xvclNwYWNlKSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhlbEZvcm1hdChwaXhlbEZvcm1hdCkp
OwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTUzLDEw
ICs1MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZgogCiAgICAgQ0dDb250ZXh0Q2xlYXJS
ZWN0KGNnQ29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgYmFja2Vu
ZFNpemUpKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgV1RGTW92ZShzdXJmYWNlKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9CiAK
LXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKICAgICBpZiAo
IVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY3LDcgKzY3LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmYKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
Pihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IFdURk1vdmUoc3VyZmFjZSkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZD4obG9naWNhbFNpemUsIGludGVybmFsU2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CiB9
CiAKIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
aAppbmRleCA5NTYxOTRiNDg0OGM4MmQ0OThiYTViYzkwZDAzZTc2ODY5MTJmZTFkLi5lZDUxNjI0
ZWIwYWExMDUwZTEzYmZhMTdlYTM0ZjBmZTNjMWZmZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTM5LDgg
KzM5LDggQEAgY2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kIDogcHVi
bGljIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWMKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgY29uc3Qg
V2ViQ29yZTo6SG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93Kik7
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSk7CiAKICAgICB1c2luZyBXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCBmZWRjM2RiMTBhZDc3M2JkNTUzNjMyNmZhYjFjMTc0MDg1Y2IxNmQwLi5jMjNm
ZmY2MjU4ZjJhMTJiNWIwMjlmYWUxZjRlNTUxOTZmMTJlOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtOTEwLDEyICs5MTAsMTIgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBX
ZWJDaHJvbWVDbGllbnQ6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgKICAgICBy
ZXR1cm4gKm1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfQogCi1SZWZQdHI8SW1hZ2VC
dWZmZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXpl
JiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2UgcHVy
cG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpIGNvbnN0
CitSZWZQdHI8SW1hZ2VCdWZmZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIFJlbmRl
cmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KSBjb25zdAogewogICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKHB1cnBvc2Up
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBlbnN1cmVSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkoKS5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2Rl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UpOworICAgIHJldHVybiBlbnN1cmVSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoKS5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdN
b2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxNzFmYTYz
MzNkY2UzMjNjMDBjNzhjZWJkZTI3M2YwMGU2YzkwZjAyLi45NzM4ZDFiMzk1MjY3MGYwMDg0OGQx
MTdhNmUzYjhmYzQyMTJkZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNDQsNyArMjQ0LDcg
QEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkmIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpIGNvbnN0
OwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgV2ViQ29yZTo6
UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0
ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmlu
Z01vZGUsIFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQpIGNvbnN0IGZpbmFsOwog
I2VuZGlmCiAKICAgICBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29tcG9zaXRpbmdU
cmlnZ2VycygpIGNvbnN0IGZpbmFsCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggOWQ0OWIyM2YzYWIxMzJiMWExZjEyMzBiNzMyNTE4NWVkMjQ2YWJi
Ni4uYzA3Y2M0MTQwMjMyMmFhMTEzNmZkZjg2YjZiOTQzMmEzOWFkMzFlNCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTExLTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBtaW5pbWFsIHN1cHBvcnQgZm9yIGRlZXAgY29sb3IgSU9TdXJmYWNlIGJhY2tpbmcg
c3RvcmUgdG8gSW1hZ2VCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxODgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tOgor
ICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KToKKwogMjAyMC0xMS0xMSAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0cHld
IEJ1bXAgQ1VSUkVOVF9WRVJTSU9OIHRvIDExLjAgZm9yIE1hYyBwb3J0CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCmluZGV4IDYxNzhkMmE1YjQ2
ODc1ZTc4MWVhMzliNDljNDUyYWM3M2I1NTIzMDkuLmQ3MDlhMmU5MTZhNTExYjcwNjE4ZTkxMmE0
NmQ3NmJiODA3OWJlMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhl
bER1bXBTdXBwb3J0SU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1
bXBTdXBwb3J0SU9TLm1tCkBAIC02Nyw5ICs2Nyw5IEBAIFJlZlB0cjxCaXRtYXBDb250ZXh0PiBj
cmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmNyZW1l
CiAgICAgc25hcHNob3RTaXplLnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKTsKIAogI2lmIEhBVkUo
SU9TVVJGQUNFX1JHQjEwKQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90
Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6
UkdCQTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdl
YkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNl
OjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OkJHUkE7CiAjZWxz
ZQotICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CisgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6QkdSQTsKICNl
bmRpZgogICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNv
cmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFj
ZVJlZigpLCBzbmFwc2hvdEZvcm1hdCk7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1h
Z2UgPSBzdXJmYWNlLT5jcmVhdGVJbWFnZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>