<?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>219368</bug_id>
          
          <creation_ts>2020-11-30 14:06:34 -0800</creation_ts>
          <short_desc>GPU Process: IOSurfaces should not be mapped into the Web Content Process</short_desc>
          <delta_ts>2020-12-01 20:23:36 -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>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</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>1710762</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 14:06:34 -0800</bug_when>
    <thetext>GPU Process: IOSurfaces should not be mapped into the Web Content Process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710763</commentid>
    <comment_count>1</comment_count>
      <attachid>415054</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 14:07:02 -0800</bug_when>
    <thetext>Created attachment 415054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710767</commentid>
    <comment_count>2</comment_count>
      <attachid>415054</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-11-30 14:13:55 -0800</bug_when>
    <thetext>Comment on attachment 415054
Patch

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

&gt; Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:110
&gt; +        if (WebProcess::singleton().shouldUseRemoteRenderingFor(WebCore::RenderingPurpose::DOM)) {
&gt; +            if (m_acceleratesDrawing)

Can we move this into a helper factory function instead of putting it inside encode function?

&gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableUnmappedIOSurfaceBackend.cpp:43
&gt; +        ASSERT_NOT_REACHED();

Can we release assert this?

&gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableUnmappedIOSurfaceBackend.cpp:63
&gt; +    ASSERT_NOT_REACHED();

Can we release assert this? And ditto for the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710802</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 14:48:32 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #2)
&gt; Comment on attachment 415054 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415054&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:110
&gt; &gt; +        if (WebProcess::singleton().shouldUseRemoteRenderingFor(WebCore::RenderingPurpose::DOM)) {
&gt; &gt; +            if (m_acceleratesDrawing)
&gt; 
&gt; Can we move this into a helper factory function instead of putting it inside
&gt; encode function?

I&apos;m going to try to move createImageBufferBackendHandle up in the hierarchy so that this just dissolves.

&gt; &gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableUnmappedIOSurfaceBackend.cpp:43
&gt; &gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; Can we release assert this?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableUnmappedIOSurfaceBackend.cpp:63
&gt; &gt; +    ASSERT_NOT_REACHED();
&gt; 
&gt; Can we release assert this? And ditto for the rest.

Sure, why not!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710809</commentid>
    <comment_count>4</comment_count>
      <attachid>415063</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 14:57:21 -0800</bug_when>
    <thetext>Created attachment 415063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710810</commentid>
    <comment_count>5</comment_count>
      <attachid>415064</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 14:59:04 -0800</bug_when>
    <thetext>Created attachment 415064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710845</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-30 16:30:45 -0800</bug_when>
    <thetext>Committed r270275: &lt;https://trac.webkit.org/changeset/270275&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415064.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710846</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-30 16:31:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/71828486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710883</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 17:35:18 -0800</bug_when>
    <thetext>Looking into the API test failures. Silly me, thinking that the only GPUP bots were post-landing bots. Forgot about the API tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710893</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 18:18:07 -0800</bug_when>
    <thetext>Reverted r270275 for reason:

broke canvas painting

Committed r270280: &lt;https://trac.webkit.org/changeset/270280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710902</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 18:59:52 -0800</bug_when>
    <thetext>Whoops:

        3   0x4f97b8a6f WebKit::ImageBufferShareableUnmappedIOSurfaceBackend::draw(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, WebCore::FloatRect const&amp;, WebCore::ImagePaintingOptions const&amp;)
        4   0x4f97d0e49 WebCore::ConcreteImageBuffer&lt;WebKit::ImageBufferShareableUnmappedIOSurfaceBackend&gt;::draw(WebCore::GraphicsContext&amp;, WebCore::FloatRect const&amp;, WebCore::FloatRect const&amp;, WebCore::ImagePaintingOptions const&amp;)
        5   0x50a8af6d5 WebCore::GraphicsContext::drawImageBuffer(WebCore::ImageBuffer&amp;, WebCore::FloatRect const&amp;, WebCore::FloatRect const&amp;, WebCore::ImagePaintingOptions const&amp;)
        6   0x50a8af774 WebCore::GraphicsContext::drawImageBuffer(WebCore::ImageBuffer&amp;, WebCore::FloatRect const&amp;, WebCore::ImagePaintingOptions const&amp;)
        7   0x509bd2ddb WebCore::HTMLCanvasElement::paint(WebCore::GraphicsContext&amp;, WebCore::LayoutRect const&amp;)
        8   0x50ae37f34 WebCore::RenderHTMLCanvas::paintReplaced(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711237</commentid>
    <comment_count>11</comment_count>
      <attachid>415182</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-01 18:20:32 -0800</bug_when>
    <thetext>Created attachment 415182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711244</commentid>
    <comment_count>12</comment_count>
      <attachid>415182</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-12-01 18:57:03 -0800</bug_when>
    <thetext>Comment on attachment 415182
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:73
&gt; +    static constexpr bool canMapBackingStore = true;

I think you can remove this. ImageBufferIOSurfaceBackend has canMapBackingStore = true from ImageBufferBackend.

&gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:40
&gt; +std::unique_ptr&lt;ImageBufferShareableIOSurfaceBackend&gt; ImageBufferShareableIOSurfaceBackend::create(const FloatSize&amp; logicalSize, const IntSize&amp; internalSize, float resolutionScale, ColorSpace colorSpace, PixelFormat pixelFormat, ImageBufferBackendHandle handle)

Please replace internalSize with backendSize.

&gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:58
&gt; +    RELEASE_ASSERT_NOT_REACHED();
&gt; +    return *(GraphicsContext*)nullptr;

Should all the release_assert implementations be moved to ImageBufferBackend pure virtual methods instead? I think the release_assert implementations in ImageBufferBackend will serve the two purposes well: &apos;Don&apos;t create a backend unless you implement these functions &quot;or&quot; never call any of them&apos;.

&gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:45
&gt; +    ImageBufferShareableIOSurfaceBackend(const WebCore::FloatSize&amp; logicalSize, const WebCore::IntSize&amp; physicalSize, float resolutionScale, WebCore::ColorSpace colorSpace, WebCore::PixelFormat pixelFormat, ImageBufferBackendHandle&amp;&amp; handle)

Please replace physicalSize with backendSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711252</commentid>
    <comment_count>13</comment_count>
      <attachid>415188</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-01 19:44:14 -0800</bug_when>
    <thetext>Created attachment 415188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711254</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-01 20:23:34 -0800</bug_when>
    <thetext>Committed r270342: &lt;https://trac.webkit.org/changeset/270342&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415188.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415054</attachid>
            <date>2020-11-30 14:07:02 -0800</date>
            <delta_ts>2020-11-30 15:01:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219368-20201130140701.patch</filename>
            <type>text/plain</type>
            <size>29686</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxNjBhMjUxN2M5MzQ4MWE4
N2M2MjI4NGY2ODhkMjMzNDNhYzhhMmYuLmViNjQ0ZTMzMGFjMDJmNGM5MTJiZDAzZjA1MjdiZDJl
MDliYjYyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMTEtMzAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgR1BVIFByb2Nlc3M6IElP
U3VyZmFjZXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgaW50byB0aGUgV2ViIENvbnRlbnQgUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ug
dGhlIFdlYiBDb250ZW50IHByb2Nlc3Mgc2FuZGJveCB3aWxsIGV2ZW50dWFsbHkgbm90IGhhdmUg
YWNjZXNzIHRvIElPS2l0LAorICAgICAgICBpdCB3aWxsIG5vdCBiZSBhYmxlIHRvIG1hcC9sb2Nr
L3VzZSBJT1N1cmZhY2VzLiBUaGFua2Z1bGx5LCBhbGwgaXQgcmVhbGx5IG5lZWRzCisgICAgICAg
IHRvIGJlIGFibGUgdG8gZG8gaXMgY2FycnkgYSByZWZlcmVuY2UgdG8gdGhlIHN1cmZhY2UgZnJv
bSB0aGUgR1BVIHByb2Nlc3MgdG8gdGhlCisgICAgICAgIFVJIHByb2Nlc3MgKHdoZXJlIGl0IGlz
IG1hcHBlZCBhbmQgYXBwbGllZCBhcyBsYXllciBjb250ZW50cykuCisKKyAgICAgICAgKiBTaGFy
ZWQvQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZC5oLgorICAgICAgICAoV2ViS2l0OjpDb25jcmV0ZVNoYXJlYWJsZUltYWdl
QnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb25jcmV0ZVNoYXJlYWJsZUltYWdl
QnVmZmVyOjpDb25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6
Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN3
YXBUb1ZhbGlkRnJvbnRCdWZmZXIpOgorICAgICAgICBBZGQgYW5kIGFkb3B0IENvbmNyZXRlU2hh
cmVhYmxlSW1hZ2VCdWZmZXIuIFRoaXMgaXMgYSBDb25jcmV0ZUltYWdlQnVmZmVyIHRoYXQga25v
d3MgaG93CisgICAgICAgIHRvIGNyZWF0ZSBhbiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIHdp
dGggbm8gb3RoZXIgYmVoYXZpb3IgY2hhbmdlLgorICAgICAgICBQcmV2aW91c2x5LCB3ZSB3ZXJl
IChjb21wbGV0ZWx5IGluY29ycmVjdGx5KSBjYXN0aW5nIENvbmNyZXRlSW1hZ2VCdWZmZXIgdG8g
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eQorICAgICAgICB0byBnZXQgdGhpcyBiZWhhdmlvciwgYW5k
IHNvbWVob3cganVzdCBnb3QgdmVyeSBsdWNreS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJh
Y2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90
ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5oOgorICAgICAgICBSZW1vdmUgdGhlIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZCBjcmVhdGUoKSBtZXRob2QgdGhhdCB0YWtlcworICAgICAgICBhbiBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIHNpbmNlIHdlIGFsd2F5cyB1c2UgdGhlIFVubWFwcGVkIHZh
cmlhbnQuCisgICAgICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCBpcyBu
b3cgb25seSB1c2VkOgorICAgICAgICAtIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICAtIGlu
IHRoZSBXZWIgQ29udGVudCBwcm9jZXNzIHdoZW4gRE9NIHJlbmRlcmluZyBpbiB0aGUgR1BVIHBy
b2Nlc3MgaXMgZGlzYWJsZWQKKyAgICAgICAgSW4gYm90aCBjYXNlcywgdGhlIHByb2Nlc3MgdGhh
dCB1c2VzIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCBhbHNvCisgICAgICAg
IG9yaWdpbmF0ZXMgdGhlIHN1cmZhY2UsIHNvIGRvZXMgbm90IGNyZWF0ZSBpdCBmcm9tIGEgaGFu
ZGxlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZDo6Y29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxl
VW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2UgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
Y29weUltYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVV
bm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmRyYXcpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1
ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6ZHJhd1BhdHRlcm4pOgorICAg
ICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZDo6dG9EYXRhVVJMIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFi
bGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjp0b0JHUkFE
YXRhIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpwdXRJbWFnZURh
dGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmg6IEFkZGVkLgorICAgICAgICBBZGQg
YW5kIGFkb3B0IEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLCB3
aGljaCBpcyBhIEltYWdlQnVmZmVyQmFja2VuZAorICAgICAgICB0aGF0IGNhbm5vdCBwZXJmb3Jt
IG1vc3QgSW1hZ2VCdWZmZXJCYWNrZW5kIGR1dGllcywgZXhjZXB0IGNyZWF0aW5nIGFuIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSwKKyAgICAgICAgd2hpY2ggaXQgZG9lcyBieSBjbG9uaW5nIHRo
ZSBleGlzdGluZyBoYW5kbGUuIEl0IGV4cGxpY2l0bHkgZG9lcyAqbm90KiBtYXAgdGhlIElPU3Vy
ZmFjZSBpbiB0aGUKKyAgICAgICAgcHJvY2VzcywgYW5kIGlzIG1lYW50IGZvciB1c2UgaW4gV2Vi
IENvbnRlbnQgcHJvY2Vzc2VzIHRoYXQgZG8gbm90IGhhdmUgYWNjZXNzIHRvIElPU3VyZmFjZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6
CisgICAgICAgIEZpeCBzb21lIHVuaWZpZWQgc291cmNlIGlzc3Vlcy4KKwogMjAyMC0xMS0yOSAg
QWRhbSBNYXphbmRlciAgPG1hemFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEZW55IGxvZ3Mg
Zm9yIGJlbmlnbiBmb250c2VydmljZXNkIGRhZW1vbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Y2YwZDI0
MGExNjIxZWRiM2RkMjY5MjFmY2UwYWMzYjgwMzNkOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyLmgKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordGVtcGxhdGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+CitjbGFzcyBDb25jcmV0ZVNoYXJl
YWJsZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFj
a2VuZFR5cGU+IHsKKyAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6
OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+OworICAgIHVzaW5nIEJhc2VDb25jcmV0
ZUltYWdlQnVmZmVyOjptX2JhY2tlbmQ7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgYXV0byBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPENv
bmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIG51bGxwdHIpOworICAgIH0KKworICAgIENvbmNyZXRlU2hhcmVh
YmxlSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQpCisg
ICAgICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIoV1RGTW92ZShiYWNrZW5kKSkKKyAgICB7
CisgICAgfQorCisgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9iYWNrZW5kLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBlZjk0YzZiMDIwNTA0M2Qz
NzFiZjBmOTY5NmM4ZDhjYTYzNmMwMTI1Li5lYjU0NTkwODE0YmQwODNjYjliMmY0ZDc1MjY0MGRm
Yjc4NTIxYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgogCiAjaW1wb3J0ICJBcmd1
bWVudENvZGVycy5oIgorI2ltcG9ydCAiQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oIgog
I2ltcG9ydCAiTWFjaFBvcnQuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgog
I2ltcG9ydCAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCkBAIC0xMDUsMTAgKzEw
NiwxNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIE9wdGlvbmFsPEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZT4g
aGFuZGxlOwogICAgIGlmIChtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyKSB7CiAgICAgICAgIC8v
IEZJWE1FOiBXZSBuZWVkIHRvIGZsYXR0ZW4gdGhlIGNsYXNzIGhpZXJhcmNoeSBzbyB3ZSBjYW4g
YXZvaWQgdGhpcyBiaWZ1cmNhdGlvbi4KLSAgICAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5n
KQotICAgICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5ICo+KG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgaGFu
ZGxlID0gc3RhdGljX2Nhc3Q8VW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgKj4o
bV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNyZWF0ZUltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSgpOworICAgICAgICBpZiAoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNl
UmVtb3RlUmVuZGVyaW5nRm9yKFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2U6OkRPTSkpIHsKKyAg
ICAgICAgICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykKKyAgICAgICAgICAgICAgICBoYW5k
bGUgPSBzdGF0aWNfY2FzdDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgKj4obV9m
cm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGhhbmRsZSA9IHN0YXRp
Y19jYXN0PFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ICo+KG1fZnJvbnRCdWZm
ZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykK
KyAgICAgICAgICAgICAgICBoYW5kbGUgPSBzdGF0aWNfY2FzdDxDb25jcmV0ZVNoYXJlYWJsZUlt
YWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPiAqPihtX2Zy
b250QnVmZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaGFuZGxlID0gc3RhdGlj
X2Nhc3Q8Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCYWNrZW5kPiAqPihtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+
Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBlbmNvZGVyIDw8IGhhbmRsZTsKQEAgLTE4NSw5ICsxOTMsOSBAQCB2b2lkIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyKCkKICAgICB9CiAKICAgICBpZiAo
bV9hY2NlbGVyYXRlc0RyYXdpbmcpCi0gICAgICAgIG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIg
PSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZVNpemUoKSwgMSwgV2ViQ29yZTo6Q29s
b3JTcGFjZTo6U1JHQiwgcGl4ZWxGb3JtYXQoKSwgbnVsbHB0cik7CisgICAgICAgIG1fZnJvbnRC
dWZmZXIuaW1hZ2VCdWZmZXIgPSBDb25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyPEFjY2VsZXJh
dGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZVNpemUo
KSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQsIDEsIFdlYkNvcmU6OkNvbG9y
U3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCkpOwogICAgIGVsc2UKLSAgICAgICAgbV9mcm9udEJ1
ZmZlci5pbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8VW5hY2NlbGVy
YXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD46OmNyZWF0ZShiYWNraW5nU3RvcmVTaXpl
KCksIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCksIG51bGxwdHIp
OworICAgICAgICBtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyID0gQ29uY3JldGVTaGFyZWFibGVJ
bWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3Jl
YXRlKGJhY2tpbmdTdG9yZVNpemUoKSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVy
YXRlZCwgMSwgV2ViQ29yZTo6Q29sb3JTcGFjZTo6U1JHQiwgcGl4ZWxGb3JtYXQoKSk7CiB9CiAK
IGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CmluZGV4IDk5NTE4MDczMjgwZTljOTVhMmIyNWYwMGJjOGJmYjM4ODc2MjEyNDEuLjkwYjI2
NDY2MGJhODVjOWQ3YmUwZjE1NmJlMmNmZmNkYTk5M2JjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKQEAgLTU3Myw2ICs1NzMsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZp
Y2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDI0NjExYmQxZDNmMzJjNTI2MzE1NTFmMzk2ZTFmODQwNDBlNDg4YmQuLjRhNDdkODVmMzdlYmVj
YzdhYWM1MDdkNTUzZjc0YWU5OGRlNDczMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjk1MSw2ICsyOTUxLDkgQEAKIAkJMkQxQjVE
NUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTJEMUU4
MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dlYkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdLV2ViRXZlbnQuaDsgcGF0aCA9IGlvcy9XS1dlYkV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMUU4MjIyMjE2RkZGNTEwMEExNTI2NSAvKiBXS1dl
YkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tXZWJF
dmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRDI1RjMyNzI1NzU4NzI0MDAyMzFBOEIgLyogQ29uY3JldGVTaGFyZWFibGVJbWFn
ZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyog
SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4QTQ5NTFBRjk2NUExMDBGMTkw
QzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQyOEE0OTYxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tWaWV3TGF5b3V0U3RyYXRl
Z3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhGM0UwMTg4NUNDQzEwMDRC
OUVBRSAvKiBXZWJDaHJvbWVDbGllbnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXZWJDaHJvbWVDbGllbnRJT1MubW07IHBhdGggPSBpb3MvV2ViQ2hyb21l
Q2xpZW50SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI0NCw2ICs2MjQ3
LDcgQEAKIAkJCQlCQ0YxODYzNzE2N0QwNzFFMDBBMUE4NUEgLyogQ2FjaGVNb2RlbC5jcHAgKi8s
CiAJCQkJQkMzMDY1RjkxMjU5MzQ0RTAwRTcxMjc4IC8qIENhY2hlTW9kZWwuaCAqLywKIAkJCQk5
QkM1OUQ2QzFFRkNDQ0I2MDAxRThEMDkgLyogQ2FsbGJhY2tJRC5oICovLAorCQkJCTJEMjVGMzI3
MjU3NTg3MjQwMDIzMUE4QiAvKiBDb25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyLmggKi8sCiAJ
CQkJQ0EwNTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXMuaCAqLywKIAkJCQk1MTI5RUIxMTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdv
cmxkU2hhcmVkLmggKi8sCiAJCQkJNTEwNkQ3QkYxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRN
ZW51Q29udGV4dERhdGEuY3BwICovLApAQCAtODcyMSw2ICs4NzI1LDggQEAKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovLAogCQkJCTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKKwkJCQkyRDI1RjMy
OTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQuY3BwICovLAorCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Bs
YXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgKaW5kZXggODQ5YzYwZDM4MjA1Mjli
NWM4MDViZGFjYTE0NTc2Nzc0N2VjYWIwZC4uNGIyYmVkYWQ4MGNhYzFhZjc2MTlhYTAyZDI4NWRk
NGRhYjU3MGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJhY2tlbmQuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjaWYgSEFWRShJT1NVUkZBQ0UpCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgiCisjaW5jbHVkZSAi
SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIKICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM4LDggKzM5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZCA9IEltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDsKIAogI2lmIEhBVkUoSU9TVVJGQUNFKQordXNp
bmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkQmFja2VuZCA9IEltYWdl
QnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0
ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQ7CiAjZWxzZQordXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJs
ZVVubWFwcGVkQmFja2VuZCA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tl
bmQ7CiB1c2luZyBBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZCA9IFVuYWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMDUxNzY3ODNkNTUzMWJmZTcw
Zjg1MGJmMmMxNDlmNzg4MjJkMGUzOS4uYTFjYjE4ZjI1Yzc4NzUwZjRkZGNjZWZmMDY4YjMxNzky
ZWUyMGJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBA
IC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgVW5hY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgPSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PFVuYWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+OwotdXNpbmcgQWNjZWxlcmF0ZWRSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTxBY2NlbGVyYXRlZElt
YWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD47Cit1c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdl
QnVmZmVyUHJveHkgPSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PEFjY2VsZXJhdGVkSW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZEJhY2tlbmQ+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuY3BwCmluZGV4IDUxNjI3YzVlZGQ4OTFiOTRmMzYzOTFjMGFiNGMyODA4YzY4MGJl
ZmYuLmNjM2UzNDc4ZDFlNzZmOTBmYjg1ZGRmMWIzOWMwYWMyYTBjNzRiOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCIKIAotI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoSU9TVVJGQUNFKQogCiAj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyMCArNTYsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZgogICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4
ZWxGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJ
bnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlIGhhbmRsZSkKLXsKLSAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRS
aWdodD4oaGFuZGxlKSkgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpj
cmVhdGVGcm9tU2VuZFJpZ2h0KFdURk1vdmUoV1RGOjpnZXQ8TWFjaFNlbmRSaWdodD4oaGFuZGxl
KSksIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSk7Ci0gICAgaWYgKCFzdXJmYWNlKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4obG9naWNhbFNpemUsIGludGVybmFsU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShzdXJmYWNl
KSk7Ci19Ci0KIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNl
bmRSaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGVkNTE2MjRlYjBhYTEwNTBlMTNiZmExN2VhMzRm
MGZlM2MxZmZmNmQuLmU5ODVhYzhhZTVhZDU4ZWQ1N2FjZTllOTE5NGE1NGI4NGQ3NWY1OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaApAQCAtMjUsOSArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKElPU1VSRkFD
RSkKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTM1LDEy
ICszNiwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwog
Ci1jbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgOiBwdWJsaWMgV2Vi
Q29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIHsKK2NsYXNzIEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQpOwogcHVibGljOgogICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBj
cmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1h
dCwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyopOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50
ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdl
YkNvcmU6OlBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwogCiAgICAgdXNp
bmcgV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpJbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQ7CiAKQEAgLTQ5LDQgKzQ5LDQgQEAgcHVibGljOgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZVVu
bWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMjBkMTU2NzRkMzI3MGM5Mjg3NjZlNjZjNTYzNDJmMjA4Yjhl
YWUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5j
cHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIK
KworI2lmIEhBVkUoSU9TVVJGQUNFKQorCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRl
eHRDRy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFi
bGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQpOworCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxl
VW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgSW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIEltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCit7CisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPE1hY2hTZW5kUmlnaHQ+KGhhbmRsZSkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBtYWtlVW5p
cXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kPihsb2dpY2Fs
U2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0LCBXVEZNb3ZlKGhhbmRsZSkpOworfQorCitJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1h
Z2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6Z2V0PE1hY2hTZW5k
UmlnaHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJpZ2h0KCk7Cit9CisKK0dyYXBoaWNzQ29udGV4dCYg
SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNvbnRleHQoKSBj
b25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICoo
R3JhcGhpY3NDb250ZXh0KiludWxscHRyOworfQorCitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdl
QnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Uo
QmFja2luZ1N0b3JlQ29weSkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4geyB9OworfQorCitSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyU2hhcmVhYmxlVW5t
YXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSwgUHJlc2Vy
dmVSZXNvbHV0aW9uKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiB7IH07Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQ6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworfQorCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1
cmZhY2VCYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9h
dFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitTdHJpbmcgSW1hZ2VCdWZmZXJTaGFy
ZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YVVSTChjb25zdCBTdHJpbmcmLCBP
cHRpb25hbDxkb3VibGU+LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Cit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IElt
YWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEoY29uc3Qg
U3RyaW5nJiwgT3B0aW9uYWw8ZG91YmxlPikgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8dWludDhfdD4gSW1hZ2VCdWZmZXJT
aGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnRvQkdSQURhdGEoKSBjb25zdAorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1JlZlB0cjxJ
bWFnZURhdGE+IEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpn
ZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiwgY29uc3QgSW50UmVjdCYpIGNvbnN0
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9p
ZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6cHV0SW1hZ2VE
YXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24sIGNvbnN0IEltYWdlRGF0YSYsIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRQb2ludCYsIEFscGhhUHJlbXVsdGlwbGljYXRpb24pCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWI3ZWVjYzc1NGUwNDUxMjg3YWMyYzNlZGExMTc4NzVjYWNkNjFjMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtMCwwICsxLDczIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgSEFWRShJT1NVUkZBQ0UpCisKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvSW1hZ2VCdWZmZXJCYWNrZW5kLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2hhcmVhYmxlQml0bWFwOworCitjbGFz
cyBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZCBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQgeworICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQpOworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJu
YWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNv
cmU6OlBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOworCisgICAgSW1hZ2VC
dWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGh5c2ljYWxTaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwg
V2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSYmIGhhbmRsZSkKKyAgICAgICAgOiBJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIHBo
eXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkKKyAg
ICAgICAgLCBtX2hhbmRsZShXVEZNb3ZlKGhhbmRsZSkpCisgICAgeworICAgIH0KKworICAgIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBj
b25zdDsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdl
KFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHksIFdlYkNv
cmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3KFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1h
Z2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIFN0cmluZyB0b0RhdGFVUkwoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpQ
cmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOworICAgIFZlY3Rvcjx1aW50OF90PiB0
b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBj
b25zdCBvdmVycmlkZTsKKyAgICBWZWN0b3I8dWludDhfdD4gdG9CR1JBRGF0YSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgcHV0SW1hZ2VEYXRhKFdlYkNvcmU6
OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkltYWdl
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZv
cm1hdCkgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVw
cGVyTGVmdENvcm5lciA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzQWNjZWxl
cmF0ZWQgPSB0cnVlOworCitwcml2YXRlOgorICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBt
X2hhbmRsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gSEFWRShJ
T1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggOWE5MTgyZTA2MzU5ZWI2OTU0ZGNkOTFi
ZDE1MDA0MjIyZTM2NDg2MS4uNzAwOTIzMjI4MzM4MDRhNTRlNmE2YjBhNTljYzNhODI0MWNkMzlj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtMjksOSArMjksMTEgQEAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nl
c3Npb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Cg==
</data>
<flag name="commit-queue"
          id="432144"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415063</attachid>
            <date>2020-11-30 14:57:21 -0800</date>
            <delta_ts>2020-11-30 14:59:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219368-20201130145721.patch</filename>
            <type>text/plain</type>
            <size>17708</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxNjBhMjUxN2M5MzQ4MWE4
N2M2MjI4NGY2ODhkMjMzNDNhYzhhMmYuLjA4ZGJkMzg5MjFjNjcyZWYzZDAxNmUzM2VjY2RjZGMz
MGNjNzEwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMTEtMzAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgR1BVIFByb2Nlc3M6IElP
U3VyZmFjZXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgaW50byB0aGUgV2ViIENvbnRlbnQgUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFNpbmNlIHRo
ZSBXZWIgQ29udGVudCBwcm9jZXNzIHNhbmRib3ggd2lsbCBldmVudHVhbGx5IG5vdCBoYXZlIGFj
Y2VzcyB0byBJT0tpdCwKKyAgICAgICAgaXQgd2lsbCBub3QgYmUgYWJsZSB0byBtYXAvbG9jay91
c2UgSU9TdXJmYWNlcy4gVGhhbmtmdWxseSwgYWxsIGl0IHJlYWxseSBuZWVkcworICAgICAgICB0
byBiZSBhYmxlIHRvIGRvIGlzIGNhcnJ5IGEgcmVmZXJlbmNlIHRvIHRoZSBzdXJmYWNlIGZyb20g
dGhlIEdQVSBwcm9jZXNzIHRvIHRoZQorICAgICAgICBVSSBwcm9jZXNzICh3aGVyZSBpdCBpcyBt
YXBwZWQgYW5kIGFwcGxpZWQgYXMgbGF5ZXIgY29udGVudHMpLgorCisgICAgICAgICogU2hhcmVk
L0NvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuaC4KKyAgICAgICAgKFdlYktpdDo6Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1
ZmZlcjo6Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OkNv
bmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSk6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2Fw
VG9WYWxpZEZyb250QnVmZmVyKToKKyAgICAgICAgQWRkIGFuZCBhZG9wdCBDb25jcmV0ZVNoYXJl
YWJsZUltYWdlQnVmZmVyLiBUaGlzIGlzIGEgQ29uY3JldGVJbWFnZUJ1ZmZlciB0aGF0IGtub3dz
IGhvdworICAgICAgICB0byBjcmVhdGUgYW4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCB3aXRo
IG5vIG90aGVyIGJlaGF2aW9yIGNoYW5nZS4KKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd2VyZSAo
Y29tcGxldGVseSBpbmNvcnJlY3RseSkgY2FzdGluZyBDb25jcmV0ZUltYWdlQnVmZmVyIHRvIFJl
bW90ZUltYWdlQnVmZmVyUHJveHkKKyAgICAgICAgdG8gZ2V0IHRoaXMgYmVoYXZpb3IsIGFuZCBz
b21laG93IGp1c3QgZ290IHZlcnkgbHVja3kuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNr
ZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaDoKKyAgICAgICAgUmVtb3ZlIHRoZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQgY3JlYXRlKCkgbWV0aG9kIHRoYXQgdGFrZXMKKyAgICAgICAgYW4gSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLCBzaW5jZSB3ZSBhbHdheXMgdXNlIHRoZSBVbm1hcHBlZCB2YXJp
YW50LgorICAgICAgICBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgaXMgbm93
IG9ubHkgdXNlZDoKKyAgICAgICAgLSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgLSBpbiB0
aGUgV2ViIENvbnRlbnQgcHJvY2VzcyB3aGVuIERPTSByZW5kZXJpbmcgaW4gdGhlIEdQVSBwcm9j
ZXNzIGlzIGRpc2FibGVkCisgICAgICAgIEluIGJvdGggY2FzZXMsIHRoZSBwcm9jZXNzIHRoYXQg
dXNlcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgYWxzbworICAgICAgICBv
cmlnaW5hdGVzIHRoZSBzdXJmYWNlLCBzbyBkb2VzIG5vdCBjcmVhdGUgaXQgZnJvbSBhIGhhbmRs
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6
OmNvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVu
bWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5t
YXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpkcmF3KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmRyYXdQYXR0ZXJuKToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6
OnRvRGF0YVVSTCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxl
VW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6dG9CR1JBRGF0
YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kOjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJ
bWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6cHV0SW1hZ2VEYXRh
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOiBBZGRlZC4KKyAgICAgICAgQWRkIGFu
ZCBhZG9wdCBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZCwgd2hp
Y2ggaXMgYSBJbWFnZUJ1ZmZlckJhY2tlbmQKKyAgICAgICAgdGhhdCBjYW5ub3QgcGVyZm9ybSBt
b3N0IEltYWdlQnVmZmVyQmFja2VuZCBkdXRpZXMsIGV4Y2VwdCBjcmVhdGluZyBhbiBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUsCisgICAgICAgIHdoaWNoIGl0IGRvZXMgYnkgY2xvbmluZyB0aGUg
ZXhpc3RpbmcgaGFuZGxlLiBJdCBleHBsaWNpdGx5IGRvZXMgKm5vdCogbWFwIHRoZSBJT1N1cmZh
Y2UgaW4gdGhlCisgICAgICAgIHByb2Nlc3MsIGFuZCBpcyBtZWFudCBmb3IgdXNlIGluIFdlYiBD
b250ZW50IHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBoYXZlIGFjY2VzcyB0byBJT1N1cmZhY2UuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwOgor
ICAgICAgICBGaXggc29tZSB1bmlmaWVkIHNvdXJjZSBpc3N1ZXMuCisKIDIwMjAtMTEtMjkgIEFk
YW0gTWF6YW5kZXIgIDxtYXphbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgRGVueSBsb2dzIGZv
ciBiZW5pZ24gZm9udHNlcnZpY2VzZCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bQppbmRleCBlZjk0YzZiMDIwNTA0M2QzNzFiZjBmOTY5NmM4ZDhjYTYzNmMwMTI1Li5lYjU0NTkw
ODE0YmQwODNjYjliMmY0ZDc1MjY0MGRmYjc4NTIxYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5oIgogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCAiQ29uY3JldGVT
aGFyZWFibGVJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTWFjaFBvcnQuaCIKICNpbXBvcnQgIlBs
YXRmb3JtQ0FMYXllclJlbW90ZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgiCkBAIC0xMDUsMTAgKzEwNiwxNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIE9wdGlvbmFsPElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZT4gaGFuZGxlOwogICAgIGlmIChtX2Zyb250QnVmZmVyLmlt
YWdlQnVmZmVyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZsYXR0ZW4gdGhlIGNs
YXNzIGhpZXJhcmNoeSBzbyB3ZSBjYW4gYXZvaWQgdGhpcyBiaWZ1cmNhdGlvbi4KLSAgICAgICAg
aWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKQotICAgICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nh
c3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ICo+KG1fZnJvbnRCdWZmZXIuaW1h
Z2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8VW5hY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyUHJveHkgKj4obV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSkt
PmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpOworICAgICAgICBpZiAoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKFdlYkNvcmU6OlJlbmRl
cmluZ1B1cnBvc2U6OkRPTSkpIHsKKyAgICAgICAgICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2lu
ZykKKyAgICAgICAgICAgICAgICBoYW5kbGUgPSBzdGF0aWNfY2FzdDxBY2NlbGVyYXRlZFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgKj4obV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGhhbmRsZSA9IHN0YXRpY19jYXN0PFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5ICo+KG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlm
IChtX2FjY2VsZXJhdGVzRHJhd2luZykKKyAgICAgICAgICAgICAgICBoYW5kbGUgPSBzdGF0aWNf
Y2FzdDxDb25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJT
aGFyZWFibGVCYWNrZW5kPiAqPihtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+Y3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZl
cjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPiAqPihtX2Zyb250QnVm
ZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKQEAgLTE4NSw5ICsx
OTMsOSBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVm
ZmVyKCkKICAgICB9CiAKICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpCi0gICAgICAgIG1f
ZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9y
ZVNpemUoKSwgMSwgV2ViQ29yZTo6Q29sb3JTcGFjZTo6U1JHQiwgcGl4ZWxGb3JtYXQoKSwgbnVs
bHB0cik7CisgICAgICAgIG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIgPSBDb25jcmV0ZVNoYXJl
YWJsZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6
Y3JlYXRlKGJhY2tpbmdTdG9yZVNpemUoKSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQsIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCkpOwogICAg
IGVsc2UKLSAgICAgICAgbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkNvbmNy
ZXRlSW1hZ2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD46
OmNyZWF0ZShiYWNraW5nU3RvcmVTaXplKCksIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0Is
IHBpeGVsRm9ybWF0KCksIG51bGxwdHIpOworICAgICAgICBtX2Zyb250QnVmZmVyLmltYWdlQnVm
ZmVyID0gQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZm
ZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZVNpemUoKSwgV2ViQ29yZTo6
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSwgV2ViQ29yZTo6Q29sb3JTcGFjZTo6U1JH
QiwgcGl4ZWxGb3JtYXQoKSk7CiB9CiAKIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRp
c3BsYXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDk5NTE4MDczMjgwZTljOTVhMmIyNWYw
MGJjOGJmYjM4ODc2MjEyNDEuLjkwYjI2NDY2MGJhODVjOWQ3YmUwZjE1NmJlMmNmZmNkYTk5M2Jj
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3Myw2ICs1NzMsNyBAQCBXZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQ
Q1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAK
K1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NjExYmQxZDNmMzJjNTI2MzE1NTFmMzk2ZTFmODQw
NDBlNDg4YmQuLjRhNDdkODVmMzdlYmVjYzdhYWM1MDdkNTUzZjc0YWU5OGRlNDczMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjk1
MSw2ICsyOTUxLDkgQEAKIAkJMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJl
Q29udHJvbGxlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZp
ZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dlYkV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLV2ViRXZlbnQuaDsgcGF0aCA9
IGlvcy9XS1dlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMUU4MjIy
MjE2RkZGNTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2ZW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI1RjMyNzI1NzU4NzI0MDAyMzFBOEIg
LyogQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25jcmV0
ZVNoYXJlYWJsZUltYWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
MjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFw
cGVkSU9TdXJmYWNlQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI1
RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVV
bm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDI4QTQ5NTFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTYxQUY5NjVBMTAwRjE5MEM5IC8qIFdL
Vmlld0xheW91dFN0cmF0ZWd5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEMjhGM0UwMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJDaHJvbWVDbGllbnRJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJDaHJvbWVDbGllbnRJT1Mu
bW07IHBhdGggPSBpb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjI0NCw2ICs2MjQ3LDcgQEAKIAkJCQlCQ0YxODYzNzE2N0QwNzFFMDBBMUE4
NUEgLyogQ2FjaGVNb2RlbC5jcHAgKi8sCiAJCQkJQkMzMDY1RjkxMjU5MzQ0RTAwRTcxMjc4IC8q
IENhY2hlTW9kZWwuaCAqLywKIAkJCQk5QkM1OUQ2QzFFRkNDQ0I2MDAxRThEMDkgLyogQ2FsbGJh
Y2tJRC5oICovLAorCQkJCTJEMjVGMzI3MjU3NTg3MjQwMDIzMUE4QiAvKiBDb25jcmV0ZVNoYXJl
YWJsZUltYWdlQnVmZmVyLmggKi8sCiAJCQkJQ0EwNTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENv
bnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLywKIAkJCQk1MTI5RUIxMTIzRDBE
RTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVkLmggKi8sCiAJCQkJNTEwNkQ3QkYxOEJE
QkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuY3BwICovLApAQCAtODcyMSw2
ICs4NzI1LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovLAogCQkJCTcy
N0E3RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuaCAqLywKKwkJCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJT
aGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwICovLAorCQkJCTJEMjVGMzI4MjU3
NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
LmgKaW5kZXggODQ5YzYwZDM4MjA1MjliNWM4MDViZGFjYTE0NTc2Nzc0N2VjYWIwZC4uNGIyYmVk
YWQ4MGNhYzFhZjc2MTlhYTAyZDI4NWRkNGRhYjU3MGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxl
QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxh
dGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaApAQCAtMzEsNiArMzEsNyBAQAogCiAj
aWYgSEFWRShJT1NVUkZBQ0UpCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM4LDggKzM5
LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVy
U2hhcmVhYmxlQmFja2VuZCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDsKIAog
I2lmIEhBVkUoSU9TVVJGQUNFKQordXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJs
ZVVubWFwcGVkQmFja2VuZCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VC
YWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ7CiAjZWxzZQordXNpbmcgQWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkQmFja2VuZCA9IFVuYWNjZWxlcmF0ZWRJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ7CiB1c2luZyBBY2NlbGVyYXRlZEltYWdlQnVmZmVy
U2hhcmVhYmxlQmFja2VuZCA9IFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tl
bmQ7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgK
aW5kZXggMDUxNzY3ODNkNTUzMWJmZTcwZjg1MGJmMmMxNDlmNzg4MjJkMGUzOS4uYTFjYjE4ZjI1
Yzc4NzUwZjRkZGNjZWZmMDY4YjMxNzkyZWUyMGJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdXNpbmcgVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgPSBSZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5PFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+
OwotdXNpbmcgQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eTxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD47Cit1c2lu
ZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgPSBSZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5PEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZEJhY2tlbmQ+OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDUxNjI3YzVlZGQ4OTFi
OTRmMzYzOTFjMGFiNGMyODA4YzY4MGJlZmYuLmNjM2UzNDc4ZDFlNzZmOTBmYjg1ZGRmMWIzOWMw
YWMyYTBjNzRiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuaCIKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEhBVkUoSU9TVVJGQUNFKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRD
Ry5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyMCArNTYsNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZgogICAgIHJldHVybiBtYWtlVW5pcXVlPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4oc2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1h
dCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKLXsKLSAgICBpZiAoIVdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0
byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KFdURk1vdmUoV1RGOjpn
ZXQ8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSksIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNl
KSk7Ci0gICAgaWYgKCFzdXJmYWNlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJl
dHVybiBtYWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4obG9n
aWNhbFNpemUsIGludGVybmFsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhl
bEZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7Ci19Ci0KIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGVkNTE2
MjRlYjBhYTEwNTBlMTNiZmExN2VhMzRmMGZlM2MxZmZmNmQuLmU5ODVhYzhhZTVhZDU4ZWQ1N2Fj
ZTllOTE5NGE1NGI4NGQ3NWY1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaApAQCAtMjUsOSArMjUsMTAgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jLmg+CiAKQEAgLTM1LDEyICszNiwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgU2hhcmVhYmxlQml0bWFwOwogCi1jbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
IHsKK2NsYXNzIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQpOwogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgY29uc3QgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyopOwot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUpOwogCiAgICAgdXNpbmcgV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ7CiAKQEAgLTQ5LDQgKzQ5LDQgQEAg
cHVibGljOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoSU9TVVJGQUNF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb24uY3BwCmluZGV4IDlhOTE4MmUwNjM1OWViNjk1NGRjZDkxYmQxNTAwNDIy
MmUzNjQ4NjEuLjcwMDkyMzIyODMzODA0YTU0ZTZhNmIwYTU5Y2MzYTgyNDFjZDM5YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5jcHAKQEAgLTI5LDkgKzI5LDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBVU0UoQVVESU9fU0VTU0lPTikKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415064</attachid>
            <date>2020-11-30 14:59:04 -0800</date>
            <delta_ts>2020-12-01 18:20:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219368-20201130145903.patch</filename>
            <type>text/plain</type>
            <size>29764</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxNjBhMjUxN2M5MzQ4MWE4
N2M2MjI4NGY2ODhkMjMzNDNhYzhhMmYuLjA4ZGJkMzg5MjFjNjcyZWYzZDAxNmUzM2VjY2RjZGMz
MGNjNzEwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMTEtMzAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgR1BVIFByb2Nlc3M6IElP
U3VyZmFjZXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgaW50byB0aGUgV2ViIENvbnRlbnQgUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFNpbmNlIHRo
ZSBXZWIgQ29udGVudCBwcm9jZXNzIHNhbmRib3ggd2lsbCBldmVudHVhbGx5IG5vdCBoYXZlIGFj
Y2VzcyB0byBJT0tpdCwKKyAgICAgICAgaXQgd2lsbCBub3QgYmUgYWJsZSB0byBtYXAvbG9jay91
c2UgSU9TdXJmYWNlcy4gVGhhbmtmdWxseSwgYWxsIGl0IHJlYWxseSBuZWVkcworICAgICAgICB0
byBiZSBhYmxlIHRvIGRvIGlzIGNhcnJ5IGEgcmVmZXJlbmNlIHRvIHRoZSBzdXJmYWNlIGZyb20g
dGhlIEdQVSBwcm9jZXNzIHRvIHRoZQorICAgICAgICBVSSBwcm9jZXNzICh3aGVyZSBpdCBpcyBt
YXBwZWQgYW5kIGFwcGxpZWQgYXMgbGF5ZXIgY29udGVudHMpLgorCisgICAgICAgICogU2hhcmVk
L0NvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuaC4KKyAgICAgICAgKFdlYktpdDo6Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1
ZmZlcjo6Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OkNv
bmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSk6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2Fw
VG9WYWxpZEZyb250QnVmZmVyKToKKyAgICAgICAgQWRkIGFuZCBhZG9wdCBDb25jcmV0ZVNoYXJl
YWJsZUltYWdlQnVmZmVyLiBUaGlzIGlzIGEgQ29uY3JldGVJbWFnZUJ1ZmZlciB0aGF0IGtub3dz
IGhvdworICAgICAgICB0byBjcmVhdGUgYW4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCB3aXRo
IG5vIG90aGVyIGJlaGF2aW9yIGNoYW5nZS4KKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd2VyZSAo
Y29tcGxldGVseSBpbmNvcnJlY3RseSkgY2FzdGluZyBDb25jcmV0ZUltYWdlQnVmZmVyIHRvIFJl
bW90ZUltYWdlQnVmZmVyUHJveHkKKyAgICAgICAgdG8gZ2V0IHRoaXMgYmVoYXZpb3IsIGFuZCBz
b21laG93IGp1c3QgZ290IHZlcnkgbHVja3kuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNr
ZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaDoKKyAgICAgICAgUmVtb3ZlIHRoZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQgY3JlYXRlKCkgbWV0aG9kIHRoYXQgdGFrZXMKKyAgICAgICAgYW4gSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLCBzaW5jZSB3ZSBhbHdheXMgdXNlIHRoZSBVbm1hcHBlZCB2YXJp
YW50LgorICAgICAgICBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgaXMgbm93
IG9ubHkgdXNlZDoKKyAgICAgICAgLSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgLSBpbiB0
aGUgV2ViIENvbnRlbnQgcHJvY2VzcyB3aGVuIERPTSByZW5kZXJpbmcgaW4gdGhlIEdQVSBwcm9j
ZXNzIGlzIGRpc2FibGVkCisgICAgICAgIEluIGJvdGggY2FzZXMsIHRoZSBwcm9jZXNzIHRoYXQg
dXNlcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgYWxzbworICAgICAgICBv
cmlnaW5hdGVzIHRoZSBzdXJmYWNlLCBzbyBkb2VzIG5vdCBjcmVhdGUgaXQgZnJvbSBhIGhhbmRs
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6
OmNvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVu
bWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5t
YXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpkcmF3KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmRyYXdQYXR0ZXJuKToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6
OnRvRGF0YVVSTCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxl
VW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6dG9CR1JBRGF0
YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kOjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJ
bWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6cHV0SW1hZ2VEYXRh
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOiBBZGRlZC4KKyAgICAgICAgQWRkIGFu
ZCBhZG9wdCBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZCwgd2hp
Y2ggaXMgYSBJbWFnZUJ1ZmZlckJhY2tlbmQKKyAgICAgICAgdGhhdCBjYW5ub3QgcGVyZm9ybSBt
b3N0IEltYWdlQnVmZmVyQmFja2VuZCBkdXRpZXMsIGV4Y2VwdCBjcmVhdGluZyBhbiBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUsCisgICAgICAgIHdoaWNoIGl0IGRvZXMgYnkgY2xvbmluZyB0aGUg
ZXhpc3RpbmcgaGFuZGxlLiBJdCBleHBsaWNpdGx5IGRvZXMgKm5vdCogbWFwIHRoZSBJT1N1cmZh
Y2UgaW4gdGhlCisgICAgICAgIHByb2Nlc3MsIGFuZCBpcyBtZWFudCBmb3IgdXNlIGluIFdlYiBD
b250ZW50IHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBoYXZlIGFjY2VzcyB0byBJT1N1cmZhY2UuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwOgor
ICAgICAgICBGaXggc29tZSB1bmlmaWVkIHNvdXJjZSBpc3N1ZXMuCisKIDIwMjAtMTEtMjkgIEFk
YW0gTWF6YW5kZXIgIDxtYXphbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgRGVueSBsb2dzIGZv
ciBiZW5pZ24gZm9udHNlcnZpY2VzZCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGNmMGQyNDBh
MTYyMWVkYjNkZDI2OTIxZmNlMGFjM2I4MDMzZDkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3RlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgorY2xhc3MgQ29uY3JldGVTaGFyZWFi
bGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tl
bmRUeXBlPiB7CisgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpD
b25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKKyAgICB1c2luZyBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOworCitwdWJsaWM6CisgICAgc3RhdGljIGF1dG8gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQpCisgICAgeworICAg
ICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnRlbXBsYXRlIGNyZWF0ZTxDb25j
cmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIHBpeGVsRm9ybWF0LCBudWxscHRyKTsKKyAgICB9CisKKyAgICBDb25jcmV0ZVNoYXJlYWJs
ZUltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kKQorICAg
ICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUoYmFja2VuZCkpCisgICAgewor
ICAgIH0KKworICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYmFja2VuZC0+Y3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggZWY5NGM2YjAyMDUwNDNkMzcx
YmYwZjk2OTZjOGQ4Y2E2MzZjMDEyNS4uZWI1NDU5MDgxNGJkMDgzY2I5YjJmNGQ3NTI2NDBkZmI3
ODUyMWI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMjcsNiArMjcsNyBA
QAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCIKIAogI2ltcG9ydCAiQXJndW1l
bnRDb2RlcnMuaCIKKyNpbXBvcnQgIkNvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXIuaCIKICNp
bXBvcnQgIk1hY2hQb3J0LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKICNp
bXBvcnQgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIgpAQCAtMTA1LDEwICsxMDYs
MTcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBPcHRpb25hbDxJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGU+IGhh
bmRsZTsKICAgICBpZiAobV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlcikgewogICAgICAgICAvLyBG
SVhNRTogV2UgbmVlZCB0byBmbGF0dGVuIHRoZSBjbGFzcyBoaWVyYXJjaHkgc28gd2UgY2FuIGF2
b2lkIHRoaXMgYmlmdXJjYXRpb24uCi0gICAgICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykK
LSAgICAgICAgICAgIGhhbmRsZSA9IHN0YXRpY19jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eSAqPihtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+Y3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGhhbmRs
ZSA9IHN0YXRpY19jYXN0PFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ICo+KG1f
ZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUoKTsKKyAgICAgICAgaWYgKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVzZVJl
bW90ZVJlbmRlcmluZ0ZvcihXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlOjpET00pKSB7CisgICAg
ICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpCisgICAgICAgICAgICAgICAgaGFuZGxl
ID0gc3RhdGljX2Nhc3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ICo+KG1fZnJv
bnRCdWZmZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBoYW5kbGUgPSBzdGF0aWNf
Y2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSAqPihtX2Zyb250QnVmZmVy
LmltYWdlQnVmZmVyLmdldCgpKS0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpCisg
ICAgICAgICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8Q29uY3JldGVTaGFyZWFibGVJbWFn
ZUJ1ZmZlcjxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD4gKj4obV9mcm9u
dEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGhhbmRsZSA9IHN0YXRpY19j
YXN0PENvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVy
U2hhcmVhYmxlQmFja2VuZD4gKj4obV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
ZW5jb2RlciA8PCBoYW5kbGU7CkBAIC0xODUsOSArMTkzLDkgQEAgdm9pZCBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZTo6c3dhcFRvVmFsaWRGcm9udEJ1ZmZlcigpCiAgICAgfQogCiAgICAgaWYgKG1f
YWNjZWxlcmF0ZXNEcmF3aW5nKQotICAgICAgICBtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyID0g
V2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZD46OmNyZWF0ZShiYWNraW5nU3RvcmVTaXplKCksIDEsIFdlYkNvcmU6OkNvbG9y
U3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCksIG51bGxwdHIpOworICAgICAgICBtX2Zyb250QnVm
ZmVyLmltYWdlQnVmZmVyID0gQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcjxBY2NlbGVyYXRl
ZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD46OmNyZWF0ZShiYWNraW5nU3RvcmVTaXplKCks
IFdlYkNvcmU6OlJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkLCAxLCBXZWJDb3JlOjpDb2xvclNw
YWNlOjpTUkdCLCBwaXhlbEZvcm1hdCgpKTsKICAgICBlbHNlCi0gICAgICAgIG1fZnJvbnRCdWZm
ZXIuaW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPFVuYWNjZWxlcmF0
ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+OjpjcmVhdGUoYmFja2luZ1N0b3JlU2l6ZSgp
LCAxLCBXZWJDb3JlOjpDb2xvclNwYWNlOjpTUkdCLCBwaXhlbEZvcm1hdCgpLCBudWxscHRyKTsK
KyAgICAgICAgbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlciA9IENvbmNyZXRlU2hhcmVhYmxlSW1h
Z2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD46OmNyZWF0
ZShiYWNraW5nU3RvcmVTaXplKCksIFdlYkNvcmU6OlJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQsIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCkpOwogfQogCiBi
b29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAppbmRleCA5OTUxODA3MzI4MGU5Yzk1YTJiMjVmMDBiYzhiZmIzODg3NjIxMjQxLi45MGIyNjQ2
NjBiYTg1YzlkN2JlMGYxNTZiZTJjZmZjZGE5OTNiYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CkBAIC01NzMsNiArNTczLDcgQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
IFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNl
RW50cnlQb2ludC5tbQogCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
NDYxMWJkMWQzZjMyYzUyNjMxNTUxZjM5NmUxZjg0MDQwZTQ4OGJkLi40YTQ3ZDg1ZjM3ZWJlY2M3
YWFjNTA3ZDU1M2Y3NGFlOThkZTQ3MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5NTEsNiArMjk1MSw5IEBACiAJCTJEMUI1RDVD
MTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9WaWV3R2VzdHVyZUNvbnRyb2xsZXJN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkyRDFFODIy
MTIxNkZGRjUwMDBBMTUyNjUgLyogV0tXZWJFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS1dlYkV2ZW50Lmg7IHBhdGggPSBpb3MvV0tXZWJFdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDFFODIyMjIxNkZGRjUxMDBBMTUyNjUgLyogV0tXZWJF
dmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLV2ViRXZl
bnQubW07IHBhdGggPSBpb3MvV0tXZWJFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkQyNUYzMjcyNTc1ODcyNDAwMjMxQThCIC8qIENvbmNyZXRlU2hhcmVhYmxlSW1hZ2VC
dWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIgLyog
SW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIElt
YWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5
IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEMjhBNDk2MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlF
QUUgLyogV2ViQ2hyb21lQ2xpZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBwYXRoID0gaW9zL1dlYkNocm9tZUNs
aWVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyNDQsNiArNjI0Nyw3
IEBACiAJCQkJQkNGMTg2MzcxNjdEMDcxRTAwQTFBODVBIC8qIENhY2hlTW9kZWwuY3BwICovLAog
CQkJCUJDMzA2NUY5MTI1OTM0NEUwMEU3MTI3OCAvKiBDYWNoZU1vZGVsLmggKi8sCiAJCQkJOUJD
NTlENkMxRUZDQ0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLywKKwkJCQkyRDI1RjMyNzI1
NzU4NzI0MDAyMzFBOEIgLyogQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oICovLAogCQkJ
CUNBMDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxk
RnJhbWVzLmggKi8sCiAJCQkJNTEyOUVCMTEyM0QwREU3ODAwQUYxQ0Q3IC8qIENvbnRlbnRXb3Js
ZFNoYXJlZC5oICovLAogCQkJCTUxMDZEN0JGMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVu
dUNvbnRleHREYXRhLmNwcCAqLywKQEAgLTg3MjEsNiArODcyNSw4IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyog
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggKi8sCisJCQkJMkQyNUYzMjky
NTc1OEU5MTAwMjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmNwcCAqLywKKwkJCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIgLyogSW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0
Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oCmluZGV4IDg0OWM2MGQzODIwNTI5YjVj
ODA1YmRhY2ExNDU3Njc3NDdlY2FiMGQuLjRiMmJlZGFkODBjYWMxYWY3NjE5YWEwMmQyODVkZDRk
YWI1NzBiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVC
YWNrZW5kLmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2lmIEhBVkUoSU9TVVJGQUNFKQogI2luY2x1
ZGUgIkltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oIgorI2luY2x1ZGUgIklt
YWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgiCiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOCw4ICszOSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ7CiAKICNpZiBIQVZFKElPU1VSRkFDRSkKK3VzaW5n
IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZEJhY2tlbmQgPSBJbWFnZUJ1
ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDsKIHVzaW5nIEFjY2VsZXJhdGVk
SW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kOwogI2Vsc2UKK3VzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVV
bm1hcHBlZEJhY2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
OwogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBVbmFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Bs
YXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDA1MTc2NzgzZDU1MzFiZmU3MGY4
NTBiZjJjMTQ5Zjc4ODIyZDBlMzkuLmExY2IxOGYyNWM3ODc1MGY0ZGRjY2VmZjA2OGIzMTc5MmVl
MjBiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAt
MzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIFVuYWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTxVbmFjY2VsZXJh
dGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjsKLXVzaW5nIEFjY2VsZXJhdGVkUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eSA9IFJlbW90ZUltYWdlQnVmZmVyUHJveHk8QWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+OwordXNpbmcgQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTxBY2NlbGVyYXRlZEltYWdlQnVmZmVy
U2hhcmVhYmxlVW5tYXBwZWRCYWNrZW5kPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmNwcAppbmRleCA1MTYyN2M1ZWRkODkxYjk0ZjM2MzkxYzBhYjRjMjgwOGM2ODBiZWZm
Li5jYzNlMzQ3OGQxZTc2ZjkwZmI4NWRkZjFiMzljMGFjMmEwYzc0YjllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgiCiAKLSNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKElPU1VSRkFDRSkKIAogI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgpAQCAtNTYsMjAgKzU2LDYgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmYK
ICAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50
U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBoYW5kbGUpCi17Ci0gICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE1hY2hTZW5kUmln
aHQ+KGhhbmRsZSkpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKFdURjo6Z2V0PE1hY2hTZW5kUmlnaHQ+KGhhbmRsZSkp
LCBjYWNoZWRDR0NvbG9yU3BhY2UoY29sb3JTcGFjZSkpOwotICAgIGlmICghc3VyZmFjZSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBpbnRlcm5hbFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkp
OwotfQotCiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBjb25zdAogewog
ICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUobV9zdXJmYWNlLT5jcmVhdGVTZW5k
UmlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBlZDUxNjI0ZWIwYWExMDUwZTEzYmZhMTdlYTM0ZjBm
ZTNjMWZmZjZkLi5lOTg1YWM4YWU1YWQ1OGVkNTdhY2U5ZTkxOTRhNTRiODRkNzVmNTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmgKQEAgLTI1LDkgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShJT1NVUkZBQ0Up
CiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCkBAIC0zNSwxMiAr
MzYsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKIAot
Y2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kIDogcHVibGljIFdlYkNv
cmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZCB7CitjbGFzcyBJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKIHB1YmxpYzoKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQs
IGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGludGVy
bmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJD
b3JlOjpQaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKIAogICAgIHVzaW5n
IFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kOwogCkBAIC00OSw0ICs0OSw0IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjM5ZTU3YjIxOTM3NzA1YjJlZDY0ZGY4MDkxNDBjYWI1YzAxMGZl
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3Bw
CkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgiCisK
KyNpZiBIQVZFKElPU1VSRkFDRSkKKworI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Q0cuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQnVmZmVyU2hhcmVhYmxl
VW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kKTsKKworc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
U2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVu
bWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgaGFuZGxlKQoreworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBt
YWtlVW5pcXVlPEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kPihs
b2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0LCBXVEZNb3ZlKGhhbmRsZSkpOworfQorCitJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6Z2V0PE1h
Y2hTZW5kUmlnaHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJpZ2h0KCk7Cit9CisKK0dyYXBoaWNzQ29u
dGV4dCYgSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNvbnRl
eHQoKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuICooR3JhcGhpY3NDb250ZXh0KiludWxscHRyOworfQorCitSZWZQdHI8TmF0aXZlSW1hZ2U+
IEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZl
SW1hZ2UoQmFja2luZ1N0b3JlQ29weSkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5nU3Rv
cmVDb3B5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIEltYWdlQnVmZmVyU2hh
cmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIElt
YWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK1N0cmluZyBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJm
YWNlQmFja2VuZDo6dG9EYXRhVVJMKGNvbnN0IFN0cmluZyYsIE9wdGlvbmFsPGRvdWJsZT4sIFBy
ZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBJbWFnZUJ1ZmZlclNo
YXJlYWJsZVVubWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6dG9EYXRhKGNvbnN0IFN0cmluZyYsIE9w
dGlvbmFsPGRvdWJsZT4pIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8dWludDhfdD4gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnRvQkdSQURhdGEoKSBjb25zdAoreworICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworUmVm
UHRyPEltYWdlRGF0YT4gSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tl
bmQ6OmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uLCBjb25zdCBJbnRSZWN0Jikg
Y29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7
IH07Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tl
bmQ6OnB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uLCBjb25zdCBJbWFnZURhdGEm
LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBBbHBoYVByZW11bHRpcGxpY2F0aW9u
KQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI3ZWVjYzc1NGUwNDUxMjg3YWMyYzNlZGExMTc4NzVjYWNk
NjFjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
aApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShJT1NVUkZBQ0UpCisKKyNpbmNsdWRl
ICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
Q29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJCYWNrZW5kLmg+CisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2hh
cmVhYmxlQml0bWFwOworCitjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZVVubWFwcGVkSU9TdXJm
YWNlQmFja2VuZCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQgewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElP
U3VyZmFjZUJhY2tlbmQpOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyU2hh
cmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5kKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlVW5tYXBwZWRJT1N1cmZhY2VCYWNrZW5k
PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNv
cmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUpOworCisgICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVVbm1hcHBlZElPU3VyZmFjZUJhY2tl
bmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcGh5c2ljYWxTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSYmIGhhbmRsZSkKKyAgICAgICAgOiBJbWFnZUJ1ZmZlckJh
Y2tlbmQobG9naWNhbFNpemUsIHBoeXNpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBwaXhlbEZvcm1hdCkKKyAgICAgICAgLCBtX2hhbmRsZShXVEZNb3ZlKGhhbmRsZSkpCisg
ICAgeworICAgIH0KKworICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUoKSBjb25zdDsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJ
bWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0IG92
ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJh
Y2tpbmdTdG9yZUNvcHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkcmF3KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAg
IFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91Ymxl
PiBxdWFsaXR5LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9u
YWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCBvdmVycmlkZTsKKyAgICBWZWN0b3I8dWludDhfdD4g
dG9CR1JBRGF0YSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURh
dGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
cHV0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gaW5wdXRGb3JtYXQs
IGNvbnN0IFdlYkNvcmU6OkltYWdlRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzQWNjZWxlcmF0ZWQgPSB0cnVlOworCitwcml2YXRlOgorICAgIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBtX2hhbmRsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggOWE5
MTgyZTA2MzU5ZWI2OTU0ZGNkOTFiZDE1MDA0MjIyZTM2NDg2MS4uNzAwOTIzMjI4MzM4MDRhNTRl
NmE2YjBhNTljYzNhODI0MWNkMzljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtMjksOSArMjks
MTEgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQogCiAj
aW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKICNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415182</attachid>
            <date>2020-12-01 18:20:32 -0800</date>
            <delta_ts>2020-12-01 19:44:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219368-20201201182031.patch</filename>
            <type>text/plain</type>
            <size>38876</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlNDA5OTUyNGZiMTAy
MzdiZmEwZWMyMTk5ODExOTlhZTFlODI1Ny4uNDA5M2VjMGVjOThlZDA5Y2QyN2M4NmU0MGM5MGI0
MmVmMmJjNjZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTAxICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdQVSBQcm9jZXNz
OiBJT1N1cmZhY2VzIHNob3VsZCBub3QgYmUgbWFwcGVkIGludG8gdGhlIFdlYiBDb250ZW50IFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTM2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8g
ZGV0ZXJtaW5lIGlmIGFuIGltYWdlIGJ1ZmZlcidzIGJhY2tlbmQgaXMgY2FwYWJsZSBvZiBtYXBw
aW5nIHRoZSBiYWNraW5nIHN0b3JlIGluLXByb2Nlc3Mgb3Igbm90LgorCiAyMDIwLTEyLTAxICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhIEluIEdQVSBQ
cm9jZXNzXVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNl
Z21lbnQgZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8gV2ViIHByb2Nlc3NlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5
MjU3ZDVlYThiMjE0ODM3MjBiZjhiNzI5YjUzZDg5YTRhZGY5OTdiLi5iMjlkM2ZkNjE2NDhjMDU0
YzEyYmI5NTI5ZTFlNjQwNjQ4NzgwMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIw
LTEyLTAxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IEdQVSBQcm9jZXNzOiBJT1N1cmZhY2VzIHNob3VsZCBub3QgYmUgbWFwcGVkIGludG8gdGhlIFdl
YiBDb250ZW50IFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxOTM2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNpbmNlIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzIHNhbmRib3ggd2lsbCBldmVu
dHVhbGx5IG5vdCBoYXZlIGFjY2VzcyB0byBJT0tpdCwKKyAgICAgICAgaXQgd2lsbCBub3QgYmUg
YWJsZSB0byBtYXAvbG9jay91c2UgSU9TdXJmYWNlcy4gVGhhbmtmdWxseSwgYWxsIGl0IHJlYWxs
eSBuZWVkcworICAgICAgICB0byBiZSBhYmxlIHRvIGRvIGlzIGNhcnJ5IGEgcmVmZXJlbmNlIHRv
IHRoZSBzdXJmYWNlIGZyb20gdGhlIEdQVSBwcm9jZXNzIHRvIHRoZQorICAgICAgICBVSSBwcm9j
ZXNzICh3aGVyZSBpdCBpcyBtYXBwZWQgYW5kIGFwcGxpZWQgYXMgbGF5ZXIgY29udGVudHMpLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVy
Lmg6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2Fw
VG9WYWxpZEZyb250QnVmZmVyKToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5Lmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVlc3RhYmxpc2hHUFVQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3Jl
YXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZsdXNoKToKKworICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNv
bnRleHQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oklt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpkcmF3
KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZDo6dG9EYXRhVVJMIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VC
dWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OnRvQkdSQURhdGEg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6cHV0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5jcHAuCisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oLgorICAgICAgICBSZW5hbWUgSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kIHRvIEltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZC4KKyAgICAgICAgUmVhZGQgSW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kLCB0aGUgdW5tYXBwZWQgdmFyaWFudC4gVGhlIG1hcHBlZCB2YXJp
YW50IGlzIG9ubHkgdXNlZDoKKyAgICAgICAgLSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAg
LSBpbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyB3aGVuIERPTSByZW5kZXJpbmcgaW4gdGhlIEdQ
VSBwcm9jZXNzIGlzIGRpc2FibGVkCisKKyAgICAgICAgVGhlIHVubWFwcGVkIHZhcmlhbnQgY2Fu
bm90IHBlcmZvcm0gbW9zdCBJbWFnZUJ1ZmZlckJhY2tlbmQgZHV0aWVzLCBleGNlcHQgY3JlYXRp
bmcgYW4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLAorICAgICAgICB3aGljaCBpdCBkb2VzIGJ5
IGNsb25pbmcgdGhlIGV4aXN0aW5nIGhhbmRsZS4gSXQgZXhwbGljaXRseSBkb2VzICpub3QqIG1h
cCB0aGUgSU9TdXJmYWNlIGluIHRoZQorICAgICAgICBwcm9jZXNzLCBhbmQgaXMgbWVhbnQgZm9y
IHVzZSBpbiBXZWIgQ29udGVudCBwcm9jZXNzZXMgdGhhdCBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8g
SU9TdXJmYWNlLgorCiAyMDIwLTEyLTAxICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CiAKICAgICAgICAgW01lZGlhIEluIEdQVSBQcm9jZXNzXVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0
byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8g
V2ViIHByb2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IDgyNDI5OTAwMmVlNjYwZjBiYWUzZjE2M2Fk
MWM4OWIwM2Q0ZGRhNzkuLjdlNmQ5M2U3NjBhN2ZhMDgwYWFlYjRmMzZlM2MzYTk0NzNiMTA0MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJv
b2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJhY2tlbmRUeXBlOjpp
c0FjY2VsZXJhdGVkOyB9CisgICAgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBCYWNrZW5kVHlwZTo6Y2FuTWFwQmFja2luZ1N0b3JlOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBDb25jcmV0ZUltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlw
ZT4mJiBiYWNrZW5kID0gbnVsbHB0ciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCmluZGV4IDYyYTNmN2ZmYTM3NzhhOGMwMTM5MDE2MjU0Mzc1M2FhN2JkMmMyMWQuLmI2NjYw
M2Q0OWJjMzQwZThhODk4YTIyMzczMjIxYzUzZDAwZGFiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+SW1hZ2VCdWZmZXIoKSA9IGRlZmF1bHQ7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuTWFwQmFja2luZ1N0b3JlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIAogICAgIHZpcnR1YWwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAppbmRleCA1ODA2NzE1YTdiMmM4NzU3NjkwMmE3
NzM1ODRkZjE4MDU4MjUxMDBmLi42ODA4NDA1MmExNWExNDI3ZjU2ZjczMDE1MjEyYzhkNjRkMTli
ZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlckJhY2tlbmQuaApAQCAtMTI4LDYgKzEyOCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9IGZhbHNlOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0FjY2VsZXJhdGVkID0gZmFsc2U7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGNhbk1hcEJhY2tpbmdTdG9yZSA9IHRydWU7CiAKIHByb3RlY3Rl
ZDoKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQuaAppbmRleCBkZTk4MjExMWU1MmMxMmVkYjA4ZGM3ODhiNTBlY2VmYjM2NTA3NjUw
Li4xNmIzYTQ4NTkxZWRjYjIxMTI4YmQyOTc5YzBiZGMzYjNmZTc0Njg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9IHRydWU7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzQWNjZWxlcmF0ZWQgPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUgPSB0cnVlOwogCiBwcm90ZWN0ZWQ6
CiAgICAgc3RhdGljIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbnRleHRDb2xvclNwYWNl
KGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXgg
YmEyNzI4ZmU3MTQxZWQzM2YyMWEwYzRlYzRjZTQ0NDY0M2Q1YWJiYy4uMTA4ZWQ2Yzg1YTljNmI0
NmQ0YzNlZmRkNzAzZjVhYjA0YWU5ZWE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oCkBA
IC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgVW5hY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyID0gUmVtb3RlSW1hZ2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdl
QnVmZmVyU2hhcmVhYmxlQmFja2VuZD47Ci11c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVm
ZmVyID0gUmVtb3RlSW1hZ2VCdWZmZXI8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJh
Y2tlbmQ+OwordXNpbmcgQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlciA9IFJlbW90ZUltYWdl
QnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRCYWNrZW5kPjsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRl
eCBlYjU0NTkwODE0YmQwODNjYjliMmY0ZDc1MjY0MGRmYjc4NTIxYjcxLi5lODRjMzUwZTE2NmEz
ODI0ZDZmZDVhZDQ0NjBlZWQyZmM4YmI0N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgICAgICAgICBoYW5kbGUg
PSBzdGF0aWNfY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSAqPihtX2Zy
b250QnVmZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0Ry
YXdpbmcpCi0gICAgICAgICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8Q29uY3JldGVTaGFy
ZWFibGVJbWFnZUJ1ZmZlcjxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD4g
Kj4obV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSgpOworICAgICAgICAgICAgICAgIGhhbmRsZSA9IHN0YXRpY19jYXN0PENvbmNy
ZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZEJhY2tlbmQ+ICo+KG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICBoYW5kbGUgPSBzdGF0aWNfY2FzdDxDb25jcmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyPFVu
YWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+ICo+KG1fZnJvbnRCdWZmZXIu
aW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKICAg
ICAgICAgfQpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6
OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoKQogICAgIH0KIAogICAgIGlmIChtX2FjY2VsZXJhdGVz
RHJhd2luZykKLSAgICAgICAgbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlciA9IENvbmNyZXRlU2hh
cmVhYmxlSW1hZ2VCdWZmZXI8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+
OjpjcmVhdGUoYmFja2luZ1N0b3JlU2l6ZSgpLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlOjpBY2Nl
bGVyYXRlZCwgMSwgV2ViQ29yZTo6Q29sb3JTcGFjZTo6U1JHQiwgcGl4ZWxGb3JtYXQoKSk7Cisg
ICAgICAgIG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIgPSBDb25jcmV0ZVNoYXJlYWJsZUltYWdl
QnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRCYWNrZW5kPjo6Y3Jl
YXRlKGJhY2tpbmdTdG9yZVNpemUoKSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0
ZWQsIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCkpOwogICAgIGVs
c2UKICAgICAgICAgbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlciA9IENvbmNyZXRlU2hhcmVhYmxl
SW1hZ2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD46OmNy
ZWF0ZShiYWNraW5nU3RvcmVTaXplKCksIFdlYkNvcmU6OlJlbmRlcmluZ01vZGU6OlVuYWNjZWxl
cmF0ZWQsIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVsRm9ybWF0KCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZjZGYyZjY0YzlhMmM5OWMzMGY4NmQzMzBjYmM0NjJh
NzFkZDRhYTEuLjRlYThiNzgxZDIwYTgxYTA4ZTQ0YjQ0ZGJhMGI1OGYyMWJkNmY5NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3NCw2ICs1NzQsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2Uv
V2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKK1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAzNTM0ZjEwZGMxYjgzOGEyY2Y5ZmUyOGE3NGFkMzczY2U1YzE0YjljLi4w
Y2MwNjNmNjhkMDFiZDVkN2Q0OWM1NTliMTY5NjkxODUzZmViZGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5NzAsNiArMjk3MCw4
IEBACiAJCTJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dlYkV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLV2ViRXZlbnQuaDsgcGF0aCA9IGlvcy9XS1dlYkV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMUU4MjIyMjE2RkZGNTEwMEEx
NTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2ZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDI1RjMyNzI1NzU4NzI0MDAyMzFBOEIgLyogQ29uY3JldGVT
aGFyZWFibGVJbWFnZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25jcmV0ZVNoYXJlYWJsZUlt
YWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjVGMzI4MjU3NThF
OTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjVGMzI5MjU3NThFOTEwMDIzMUE4QiAvKiBJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0
cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlld0xheW91dFN0
cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhBNDk2MUFGOTY1QTEw
MEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUgLyogV2ViQ2hyb21lQ2xp
ZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViQ2hy
b21lQ2xpZW50SU9TLm1tOyBwYXRoID0gaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzMzksOCArNDM0MSw4IEBACiAJCTcyMjc4MDBCMjQw
OEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyNkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJj
ZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERTI1M0E2NDgxMDAwMkVGOTAgLyog
UmVtb3RlUmVzb3VyY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzI3QTdGMzUyNDA3ODU3
RjAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI3QTdGMzQyNDA3ODU3
RDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MjdBN0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyN0E3RjM4MjQwNzg4RjAwMDREMjkzMSAvKiBQbGF0Zm9ybUltYWdlQnVm
ZmVyU2hhcmVhYmxlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODc0OCw4ICs4NzUwLDEwIEBACiAJCTcyN0E3RjMzMjQwNzg1MjcwMDREMjkz
MSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJNzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5jcHAgKi8sCi0JCQkJNzI3QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8qIEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovLAorCQkJCTJEMjVGMzI5MjU3NThF
OTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICov
LAorCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuaCAqLywKKwkJCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLywKKwkJCQk3MjdB
N0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJh
Y2tlbmQuaAppbmRleCA4NDljNjBkMzgyMDUyOWI1YzgwNWJkYWNhMTQ1NzY3NzQ3ZWNhYjBkLi5j
ODhkOWQ3YjI5NjZmNWQwMDY3ZmEwOWE4NTUxNzI1ODc3YjdlZjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAKICNpZiBIQVZFKElPU1VSRkFDRSkKICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM5LDgg
KzQwLDEwIEBAIHVzaW5nIFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQg
PSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlCiAKICNpZiBIQVZFKElPU1VSRkFDRSkK
IHVzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kID0gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOwordXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZEJhY2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQ7CiAjZWxzZQogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJhY2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwordXNp
bmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQgPSBVbmFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5k
ZXggMDUxNzY3ODNkNTUzMWJmZTcwZjg1MGJmMmMxNDlmNzg4MjJkMGUzOS4uYTAwODIwNjJhNDBi
NTI3ZDEzYWUxMzlhYjA4NmJlMzAwOTlkNmU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB1c2luZyBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA9IFJlbW90ZUltYWdl
QnVmZmVyUHJveHk8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD47CiB1
c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgPSBSZW1vdGVJbWFnZUJ1ZmZl
clByb3h5PEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjsKK3VzaW5nIEFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJNYXBwZWRQcm94eSA9IFJlbW90ZUltYWdlQnVmZmVy
UHJveHk8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQ+OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApAQCAtNDMsNyArNDQsMTEgQEAgU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQogCiAjaWYgSEFWRShJT1NVUkZBQ0UpCiBTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFdlYktpdDo6QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5KQotICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZm
ZXIpIHsgcmV0dXJuIGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpICYm
IGltYWdlQnVmZmVyLmlzQWNjZWxlcmF0ZWQoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShj
b25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIHsgcmV0dXJuIGltYWdlQnVm
ZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpICYmIGltYWdlQnVmZmVyLmlzQWNjZWxl
cmF0ZWQoKSAmJiAhaW1hZ2VCdWZmZXIuY2FuTWFwQmFja2luZ1N0b3JlKCk7IH0KK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRU5EKCkKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJL
aXQ6OkFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJNYXBwZWRQcm94eSkKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSB7IHJl
dHVybiBpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSAmJiBpbWFnZUJ1
ZmZlci5pc0FjY2VsZXJhdGVkKCkgJiYgaW1hZ2VCdWZmZXIuY2FuTWFwQmFja2luZ1N0b3JlKCk7
IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggYzA3YjIzZmIyYjBlNThlMGUxZGZmNWEx
NGVlMGE4NWQ5YTViNjQ1ZC4uYzhhMzIzMGY5Nzk4MTlmOWU5ZGYwMzM2ZTk0NGIwYTI5NzdmOGQx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtODMsNyAr
ODMsOSBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVlc3RhYmxpc2hHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpCiAKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX3JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5pbWFnZUJ1ZmZlcnMoKSkgewogICAgICAgICBpZiAoYXV0byYgYmFzZUlt
YWdlQnVmZmVyID0gcGFpci52YWx1ZSkgewotICAgICAgICAgICAgaWYgKGlzPEFjY2VsZXJhdGVk
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmJhc2VJbWFnZUJ1ZmZlcikpCisgICAgICAgICAgICBp
ZiAoaXM8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlck1hcHBlZFByb3h5PigqYmFzZUltYWdl
QnVmZmVyKSkKKyAgICAgICAgICAgICAgICByZWNyZWF0ZUltYWdlQnVmZmVyKCp0aGlzLCBkb3du
Y2FzdDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyTWFwcGVkUHJveHk+KCpiYXNlSW1hZ2VC
dWZmZXIpLCBwYWlyLmtleSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgICAg
ICAgICBlbHNlIGlmIChpczxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCpiYXNl
SW1hZ2VCdWZmZXIpKQogICAgICAgICAgICAgICAgIHJlY3JlYXRlSW1hZ2VCdWZmZXIoKnRoaXMs
IGRvd25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmJhc2VJbWFnZUJ1
ZmZlciksIHBhaXIua2V5LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICByZWNyZWF0ZUltYWdlQnVmZmVyKCp0aGlzLCBkb3du
Y2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmJhc2VJbWFnZUJ1ZmZl
ciksIHBhaXIua2V5LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKQEAgLTEyOCw4ICsx
MzAsMTUgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2kKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZm
ZXI+IGltYWdlQnVmZmVyOwogCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMpOworICAgIGlmIChyZW5kZXJpbmdN
b2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKSB7CisgICAgICAgIC8vIFVubGVzcyBE
T00gcmVuZGVyaW5nIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4gYW55IEdQVSBwcm9jZXNzIHJlbmRl
cmluZyBpcyBlbmFibGVkLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBJbWFnZUJ1ZmZl
cnMgZm9yIGUuZy4gQ2FudmFzIHRoYXQgYXJlIGFjdHVhbGx5IG1hcHBlZCBpbnRvIHRoZQorICAg
ICAgICAvLyBXZWIgQ29udGVudCBwcm9jZXNzLCBzbyB0aGV5IGNhbiBiZSBwYWludGVkIGludG8g
dGhlIHRpbGVzLgorICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVz
ZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlOjpET00pKQorICAgICAgICAgICAg
aW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyTWFwcGVkUHJveHk6OmNy
ZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0LCAqdGhpcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGltYWdlQnVmZmVy
ID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUoc2l6ZSwgcmVuZGVy
aW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMp
OworICAgIH0KIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIGltYWdlQnVmZmVyID0g
VW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShzaXplLCByZW5kZXJp
bmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcyk7
CkBAIC0xODgsOCArMTk3LDEwIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpp
bWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYKICAgICBhdXRvIGlt
YWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIo
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQogICAg
ICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKGltYWdlQnVmZmVyLT5pc0FjY2VsZXJhdGVkKCkp
CisKKyAgICBpZiAoaXM8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlck1hcHBlZFByb3h5Pigq
aW1hZ2VCdWZmZXIpKQorICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVm
ZmVyTWFwcGVkUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwg
YmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdU
Rk1vdmUoaGFuZGxlKSk7CisgICAgZWxzZSBpZiAoaXM8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5PigqaW1hZ2VCdWZmZXIpKQogICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2VuZChsb2dpY2Fs
U2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3Jt
YXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgZWxzZQogICAgICAgICBkb3duY2FzdDxVbmFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5jcmVhdGVCYWNrZW5k
KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBw
aXhlbEZvcm1hdCwgV1RGTW92ZShoYW5kbGUpKTsKQEAgLTIwMSw3ICsyMTIsOSBAQCB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxheUxpc3Q6OkZsdXNoSWRl
bnRpZmllciBmbHVzaElkZQogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChpbWFnZUJ1ZmZlci0+aXNBY2NlbGVyYXRlZCgpKQorICAgIGlmIChpczxBY2Nl
bGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyTWFwcGVkUHJveHk+KCppbWFnZUJ1ZmZlcikpCisgICAg
ICAgIGRvd25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJNYXBwZWRQcm94eT4oKmlt
YWdlQnVmZmVyKS5kaWRGbHVzaChmbHVzaElkZW50aWZpZXIpOworICAgIGVsc2UgaWYgKGlzPEFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKSkKICAgICAgICAg
ZG93bmNhc3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PigqaW1hZ2VCdWZmZXIp
LmRpZEZsdXNoKGZsdXNoSWRlbnRpZmllcik7CiAgICAgZWxzZQogICAgICAgICBkb3duY2FzdDxV
bmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVyKS5kaWRGbHVz
aChmbHVzaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDUxNjI3YzVlZGQ4OTFiOTRm
MzYzOTFjMGFiNGMyODA4YzY4MGJlZmYuLmE5ZTlhZmJkMmM1NmZlMmE1NjgzZDVlY2JkMWY2MDcx
NmIwYTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
aCIKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgpAQCAtMzcsNDQgKzM3LDc4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RXaW5kb3cq
KQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4g
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgaW50ZXJuYWxTaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3Jt
YXQsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCiB7Ci0gICAgSW50U2l6ZSBiYWNr
ZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKHNpemUsIHJlc29sdXRpb25TY2FsZSk7Ci0g
ICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHkoKSkKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgeworICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICBhdXRv
IHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFja2VuZFNpemUsIGNh
Y2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhlbEZv
cm1hdChwaXhlbEZvcm1hdCkpOwotICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKGhhbmRsZSkpOworfQogCi0gICAgUmV0YWlu
UHRyPENHQ29udGV4dFJlZj4gY2dDb250ZXh0ID0gc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250
ZXh0KCk7Ci0gICAgaWYgKCFjZ0NvbnRleHQpCi0gICAgICAgIHJldHVybiBudWxscHRyOworSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
V1RGOjpnZXQ8TWFjaFNlbmRSaWdodD4obV9oYW5kbGUpLmNvcHlTZW5kUmlnaHQoKTsKK30KIAot
ICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9hdFBv
aW50Ojp6ZXJvKCksIGJhY2tlbmRTaXplKSk7CitHcmFwaGljc0NvbnRleHQmIEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gKihHcmFwaGljc0NvbnRleHQqKW51
bGxwdHI7Cit9CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+KHNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKK1JlZlB0cjxOYXRpdmVJbWFn
ZT4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Uo
QmFja2luZ1N0b3JlQ29weSkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiB7IH07CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUm
IGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFu
ZGxlKQorUmVmUHRyPEltYWdlPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6
OmNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0CiB7
Ci0gICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPE1hY2hTZW5kUmlnaHQ+KGhhbmRsZSkp
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7
IH07Cit9CiAKLSAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmln
aHQoV1RGTW92ZShXVEY6OmdldDxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSwgY2FjaGVkQ0dDb2xv
clNwYWNlKGNvbG9yU3BhY2UpKTsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmRyYXco
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBpbnRlcm5hbFNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoc3VyZmFjZSkpOwordm9pZCBJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYpCit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAotSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3QKK1N0cmlu
ZyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YVVSTChjb25zdCBT
dHJpbmcmLCBPcHRpb25hbDxkb3VibGU+LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Cit7Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitW
ZWN0b3I8dWludDhfdD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0Rh
dGEoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8ZG91YmxlPikgY29uc3QKK3sKKyAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3Rvcjx1aW50
OF90PiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OnRvQkdSQURhdGEoKSBj
b25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsg
fTsKK30KKworUmVmUHRyPEltYWdlRGF0YT4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kOjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiwgY29uc3QgSW50UmVj
dCYpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4geyB9OworfQorCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6
cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24sIGNvbnN0IEltYWdlRGF0YSYsIGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYsIEFscGhhUHJlbXVsdGlwbGljYXRpb24pCiB7
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNl
bmRSaWdodCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFW
RShJT1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBl
ZDUxNjI0ZWIwYWExMDUwZTEzYmZhMTdlYTM0ZjBmZTNjMWZmZjZkLi5kOGE2ZDAwN2FlYTdiNjA2
OTg0YjQ5MDJjNDc4Y2UxMzBmOWNhMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTI1LDI4ICsyNSw1MCBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBIQVZFKElP
U1VSRkFDRSkKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyQmFj
a2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKIAotY2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kIDogcHVibGljIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZCB7CitjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwg
V2ViQ29yZTo6UGl4ZWxGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKIAotICAgIHVzaW5nIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOworICAgIEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBwaHlzaWNhbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBw
aXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYgaGFuZGxlKQorICAgICAgICA6
IEltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6ZSwgcGh5c2ljYWxTaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KQorICAgICAgICAsIG1faGFuZGxlKFdURk1v
dmUoaGFuZGxlKSkKKyAgICB7CisgICAgfQogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OworCisgICAgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdl
YkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3Jl
Q29weSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1h
Z2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSwgV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9u
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CisgICAgU3RyaW5nIHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBP
cHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0IG92ZXJyaWRlOworICAgIFZl
Y3Rvcjx1aW50OF90PiB0b0JHUkFEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdl
YkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdm9pZCBwdXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEYXRhJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKKworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdpbkF0VXBwZXJMZWZ0Q29ybmVyID0gdHJ1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNBY2NlbGVyYXRlZCA9IHRydWU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGNhbk1hcEJhY2tpbmdTdG9yZSA9IGZhbHNlOworCitwcml2YXRl
OgorICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBtX2hhbmRsZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQorI2VuZGlmIC8v
IEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tl
bmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1
MGRlNDQ1NTgwYzk5YWNjZDZiMjhmMzgxM2M0Y2NmMzc2NGU5NTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgSEFWRShJT1NVUkZBQ0UpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENH
Lmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQpOworCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1h
dCwgY29uc3QgSG9zdFdpbmRvdyopCit7CisgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1
bGF0ZUJhY2tlbmRTaXplKHNpemUsIHJlc29sdXRpb25TY2FsZSk7CisgICAgaWYgKGJhY2tlbmRT
aXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHN1cmZh
Y2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5kU2l6ZSwgYmFja2VuZFNpemUsIGNhY2hlZENH
Q29sb3JTcGFjZShjb2xvclNwYWNlKSwgSU9TdXJmYWNlOjpmb3JtYXRGb3JQaXhlbEZvcm1hdChw
aXhlbEZvcm1hdCkpOworICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjZ0NvbnRleHQgPSBzdXJmYWNlLT5lbnN1
cmVQbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBpZiAoIWNnQ29udGV4dCkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9h
dFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOworCisgICAgcmV0dXJuIG1h
a2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPihzaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwg
V1RGTW92ZShzdXJmYWNlKSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlKQoreworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2Vu
ZFJpZ2h0PihoYW5kbGUpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6
OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShXVEY6OmdldDxNYWNoU2VuZFJpZ2h0PihoYW5k
bGUpKSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpKTsKKyAgICBpZiAoIXN1cmZhY2Up
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJu
YWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3Zl
KHN1cmZhY2UpKTsKK30KKworSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKG1fc3Vy
ZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTY2YmIzODRmYTFhMWFlYTFhZjMxYzFjN2UzM2Jj
YTlhMDU3ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tl
bmQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBI
QVZFKElPU1VSRkFDRSkKKworI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2hhcmVh
YmxlQml0bWFwOworCitjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZCk7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3Jt
YXQsIGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKKwor
ICAgIHVzaW5nIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOworCisgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0
ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoSU9TVVJGQUNF
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415188</attachid>
            <date>2020-12-01 19:44:14 -0800</date>
            <delta_ts>2020-12-01 20:23:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219368-20201201194413.patch</filename>
            <type>text/plain</type>
            <size>38447</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlNDA5OTUyNGZiMTAy
MzdiZmEwZWMyMTk5ODExOTlhZTFlODI1Ny4uZjNhZjNkOWNkMTVjMzY2ODRkMGExNjUyYTcwN2U1
NDFlNTRkNDBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTAxICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdQVSBQcm9jZXNz
OiBJT1N1cmZhY2VzIHNob3VsZCBub3QgYmUgbWFwcGVkIGludG8gdGhlIFdlYiBDb250ZW50IFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTM2OAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhaWQgQWJvdS1IYWxsYXdhLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gZGV0ZXJtaW5lIGlmIGFuIGltYWdlIGJ1ZmZlcidzIGJhY2tlbmQgaXMgY2FwYWJsZSBvZiBt
YXBwaW5nIHRoZSBiYWNraW5nIHN0b3JlIGluLXByb2Nlc3Mgb3Igbm90LgorCiAyMDIwLTEyLTAx
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhIEluIEdQ
VSBQcm9jZXNzXVtNU0VdIEFkZCB0aGUgc3VwcG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9u
IHNlZ21lbnQgZnJvbSB0aGUgR1BVIFByb2Nlc3MgdG8gV2ViIHByb2Nlc3NlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA5MjU3ZDVlYThiMjE0ODM3MjBiZjhiNzI5YjUzZDg5YTRhZGY5OTdiLi45YjM1NDRjZTA4MmJk
OGFjMmNmZmVjYjIyZDAxZjcxYTc0Mjk0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisy
MDIwLTEyLTAxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAg
ICAgIEdQVSBQcm9jZXNzOiBJT1N1cmZhY2VzIHNob3VsZCBub3QgYmUgbWFwcGVkIGludG8gdGhl
IFdlYiBDb250ZW50IFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTM2OAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhaWQgQWJvdS1IYWxs
YXdhLgorCisgICAgICAgIFNpbmNlIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzIHNhbmRib3ggd2ls
bCBldmVudHVhbGx5IG5vdCBoYXZlIGFjY2VzcyB0byBJT0tpdCwKKyAgICAgICAgaXQgd2lsbCBu
b3QgYmUgYWJsZSB0byBtYXAvbG9jay91c2UgSU9TdXJmYWNlcy4gVGhhbmtmdWxseSwgYWxsIGl0
IHJlYWxseSBuZWVkcworICAgICAgICB0byBiZSBhYmxlIHRvIGRvIGlzIGNhcnJ5IGEgcmVmZXJl
bmNlIHRvIHRoZSBzdXJmYWNlIGZyb20gdGhlIEdQVSBwcm9jZXNzIHRvIHRoZQorICAgICAgICBV
SSBwcm9jZXNzICh3aGVyZSBpdCBpcyBtYXBwZWQgYW5kIGFwcGxpZWQgYXMgbGF5ZXIgY29udGVu
dHMpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdl
QnVmZmVyLmg6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyKToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVlc3RhYmxpc2hHUFVQcm9jZXNz
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEZsdXNoKToKKworICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQ6OmNvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
OjpkcmF3KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZDo6dG9EYXRhVVJMIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OnRvQkdS
QURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6cHV0SW1hZ2VEYXRhKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAuCisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oLgorICAgICAgICBSZW5h
bWUgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kIHRvIEltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC4KKyAgICAgICAgUmVhZGQgSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLCB0aGUgdW5tYXBwZWQgdmFyaWFudC4gVGhlIG1hcHBl
ZCB2YXJpYW50IGlzIG9ubHkgdXNlZDoKKyAgICAgICAgLSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAg
ICAgICAgLSBpbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyB3aGVuIERPTSByZW5kZXJpbmcgaW4g
dGhlIEdQVSBwcm9jZXNzIGlzIGRpc2FibGVkCisKKyAgICAgICAgVGhlIHVubWFwcGVkIHZhcmlh
bnQgY2Fubm90IHBlcmZvcm0gbW9zdCBJbWFnZUJ1ZmZlckJhY2tlbmQgZHV0aWVzLCBleGNlcHQg
Y3JlYXRpbmcgYW4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLAorICAgICAgICB3aGljaCBpdCBk
b2VzIGJ5IGNsb25pbmcgdGhlIGV4aXN0aW5nIGhhbmRsZS4gSXQgZXhwbGljaXRseSBkb2VzICpu
b3QqIG1hcCB0aGUgSU9TdXJmYWNlIGluIHRoZQorICAgICAgICBwcm9jZXNzLCBhbmQgaXMgbWVh
bnQgZm9yIHVzZSBpbiBXZWIgQ29udGVudCBwcm9jZXNzZXMgdGhhdCBkbyBub3QgaGF2ZSBhY2Nl
c3MgdG8gSU9TdXJmYWNlLgorCiAyMDIwLTEyLTAxICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01lZGlhIEluIEdQVSBQcm9jZXNzXVtNU0VdIEFkZCB0aGUgc3Vw
cG9ydCB0byBmb3J3YXJkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgZnJvbSB0aGUgR1BVIFByb2Nl
c3MgdG8gV2ViIHByb2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IDgyNDI5OTAwMmVlNjYwZjBiYWUz
ZjE2M2FkMWM4OWIwM2Q0ZGRhNzkuLjdlNmQ5M2U3NjBhN2ZhMDgwYWFlYjRmMzZlM2MzYTk0NzNi
MTA0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNy
ZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJhY2tlbmRU
eXBlOjppc0FjY2VsZXJhdGVkOyB9CisgICAgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBCYWNrZW5kVHlwZTo6Y2FuTWFwQmFja2luZ1N0b3JlOyB9CiAK
IHByb3RlY3RlZDoKICAgICBDb25jcmV0ZUltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNr
ZW5kVHlwZT4mJiBiYWNrZW5kID0gbnVsbHB0ciwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA9IFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCmluZGV4IDYyYTNmN2ZmYTM3NzhhOGMwMTM5MDE2MjU0Mzc1M2FhN2JkMmMyMWQu
LmI2NjYwM2Q0OWJjMzQwZThhODk4YTIyMzczMjIxYzUzZDAwZGFiMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNjQsNiArNjQsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+SW1hZ2VCdWZmZXIoKSA9IGRl
ZmF1bHQ7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuTWFwQmFja2luZ1N0b3JlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIAogICAgIHZpcnR1YWwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAppbmRleCA1ODA2NzE1YTdiMmM4NzU3
NjkwMmE3NzM1ODRkZjE4MDU4MjUxMDBmLi42ODA4NDA1MmExNWExNDI3ZjU2ZjczMDE1MjEyYzhk
NjRkMTliZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlckJhY2tlbmQuaApAQCAtMTI4LDYgKzEyOCw3IEBAIHB1YmxpYzoKICAgICAK
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdFVwcGVyTGVmdENvcm5lciA9IGZh
bHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0FjY2VsZXJhdGVkID0gZmFsc2U7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1hcEJhY2tpbmdTdG9yZSA9IHRydWU7CiAKIHBy
b3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdl
QnVmZmVyLmgKaW5kZXggYmEyNzI4ZmU3MTQxZWQzM2YyMWEwYzRlYzRjZTQ0NDY0M2Q1YWJiYy4u
MTA4ZWQ2Yzg1YTljNmI0NmQ0YzNlZmRkNzAzZjVhYjA0YWU5ZWE1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJ
bWFnZUJ1ZmZlci5oCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNp
bmcgVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyID0gUmVtb3RlSW1hZ2VCdWZmZXI8VW5h
Y2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZD47Ci11c2luZyBBY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyID0gUmVtb3RlSW1hZ2VCdWZmZXI8QWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJhY2tlbmQ+OwordXNpbmcgQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZl
ciA9IFJlbW90ZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRCYWNrZW5kPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbQppbmRleCBlYjU0NTkwODE0YmQwODNjYjliMmY0ZDc1MjY0MGRmYjc4NTIxYjcx
Li5lODRjMzUwZTE2NmEzODI0ZDZmZDVhZDQ0NjBlZWQyZmM4YmI0N2MxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAg
ICAgICAgICBoYW5kbGUgPSBzdGF0aWNfY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eSAqPihtX2Zyb250QnVmZmVyLmltYWdlQnVmZmVyLmdldCgpKS0+Y3JlYXRlSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAo
bV9hY2NlbGVyYXRlc0RyYXdpbmcpCi0gICAgICAgICAgICAgICAgaGFuZGxlID0gc3RhdGljX2Nh
c3Q8Q29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlcjxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hh
cmVhYmxlQmFja2VuZD4gKj4obV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlci5nZXQoKSktPmNyZWF0
ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpOworICAgICAgICAgICAgICAgIGhhbmRsZSA9IHN0
YXRpY19jYXN0PENvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI8QWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQ+ICo+KG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIu
Z2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBoYW5kbGUgPSBzdGF0aWNfY2FzdDxDb25jcmV0ZVNoYXJlYWJs
ZUltYWdlQnVmZmVyPFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+ICo+
KG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIuZ2V0KCkpLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUoKTsKICAgICAgICAgfQpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoKQogICAgIH0KIAogICAgIGlm
IChtX2FjY2VsZXJhdGVzRHJhd2luZykKLSAgICAgICAgbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZl
ciA9IENvbmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJhY2tlbmQ+OjpjcmVhdGUoYmFja2luZ1N0b3JlU2l6ZSgpLCBXZWJDb3JlOjpSZW5k
ZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCwgMSwgV2ViQ29yZTo6Q29sb3JTcGFjZTo6U1JHQiwgcGl4
ZWxGb3JtYXQoKSk7CisgICAgICAgIG1fZnJvbnRCdWZmZXIuaW1hZ2VCdWZmZXIgPSBDb25jcmV0
ZVNoYXJlYWJsZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZVNpemUoKSwgV2ViQ29yZTo6UmVuZGVyaW5n
TW9kZTo6QWNjZWxlcmF0ZWQsIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVsRm9y
bWF0KCkpOwogICAgIGVsc2UKICAgICAgICAgbV9mcm9udEJ1ZmZlci5pbWFnZUJ1ZmZlciA9IENv
bmNyZXRlU2hhcmVhYmxlSW1hZ2VCdWZmZXI8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZD46OmNyZWF0ZShiYWNraW5nU3RvcmVTaXplKCksIFdlYkNvcmU6OlJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIFdlYkNvcmU6OkNvbG9yU3BhY2U6OlNSR0IsIHBpeGVs
Rm9ybWF0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZjZGYyZjY0YzlhMmM5OWMz
MGY4NmQzMzBjYmM0NjJhNzFkZDRhYTEuLjRlYThiNzgxZDIwYTgxYTA4ZTQ0YjQ0ZGJhMGI1OGYy
MWJkNmY5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3NCw2ICs1NzQsNyBAQCBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNTM0ZjEwZGMxYjgzOGEyY2Y5ZmUyOGE3NGFk
MzczY2U1YzE0YjljLi4wY2MwNjNmNjhkMDFiZDVkN2Q0OWM1NTliMTY5NjkxODUzZmViZGMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI5NzAsNiArMjk3MCw4IEBACiAJCTJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dlYkV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLV2ViRXZlbnQuaDsgcGF0
aCA9IGlvcy9XS1dlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMUU4
MjIyMjE2RkZGNTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2ZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1RjMyNzI1NzU4NzI0MDAyMzFB
OEIgLyogQ29uY3JldGVTaGFyZWFibGVJbWFnZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25j
cmV0ZVNoYXJlYWJsZUltYWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjVGMzI5MjU3NThFOTEw
MDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8q
IFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLVmlld0xheW91dFN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
MjhBNDk2MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUg
LyogV2ViQ2hyb21lQ2xpZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBwYXRoID0gaW9zL1dlYkNocm9tZUNsaWVu
dElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzMzksOCArNDM0MSw4IEBA
CiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVy
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAv
KiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291
cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERTI1M0E2
NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVSZXNvdXJjZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTcyN0E3RjM0
MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NzI3QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEg
LyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM4MjQwNzg4RjAwMDREMjkzMSAvKiBQ
bGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODc0OCw4ICs4NzUwLDEwIEBACiAJCTcyN0E3RjMz
MjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJNzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCi0JCQkJNzI3QTdGMzUyNDA3ODU3RjAw
NEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovLAorCQkJ
CTJEMjVGMzI5MjU3NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuY3BwICovLAorCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKKwkJCQk3MjdBN0YzNDI0MDc4NTdE
MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNw
cCAqLywKKwkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJhY2tlbmQuaAppbmRleCA4NDljNjBkMzgyMDUyOWI1YzgwNWJkYWNhMTQ1
NzY3NzQ3ZWNhYjBkLi5jODhkOWQ3YjI5NjZmNWQwMDY3ZmEwOWE4NTUxNzI1ODc3YjdlZjlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3Jt
SW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oCkBA
IC0zMSw2ICszMSw3IEBACiAKICNpZiBIQVZFKElPU1VSRkFDRSkKICNpbmNsdWRlICJJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTM5LDggKzQwLDEwIEBAIHVzaW5nIFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNo
YXJlYWJsZUJhY2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlCiAKICNpZiBI
QVZFKElPU1VSRkFDRSkKIHVzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNr
ZW5kID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOwordXNpbmcgQWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ7CiAjZWxzZQogdXNpbmcgQWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCYWNrZW5kOwordXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJh
Y2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwogI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKaW5kZXggMDUxNzY3ODNkNTUzMWJmZTcwZjg1MGJmMmMxNDlmNzg4MjJkMGUz
OS4uYTAwODIwNjJhNDBiNTI3ZDEzYWUxMzlhYjA4NmJlMzAwOTlkNmU3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdl
QnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB1c2luZyBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eSA9IFJlbW90ZUltYWdlQnVmZmVyUHJveHk8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZD47CiB1c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgPSBS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5PEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNr
ZW5kPjsKK3VzaW5nIEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJNYXBwZWRQcm94eSA9IFJl
bW90ZUltYWdlQnVmZmVyUHJveHk8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZEJhY2tlbmQ+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApAQCAtNDMsNyArNDQsMTEgQEAg
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCiAjaWYgSEFWRShJT1NVUkZBQ0UpCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYktpdDo6QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5KQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1
ZmZlciYgaW1hZ2VCdWZmZXIpIHsgcmV0dXJuIGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcigpICYmIGltYWdlQnVmZmVyLmlzQWNjZWxlcmF0ZWQoKTsgfQorICAgIHN0YXRp
YyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIHsg
cmV0dXJuIGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpICYmIGltYWdl
QnVmZmVyLmlzQWNjZWxlcmF0ZWQoKSAmJiAhaW1hZ2VCdWZmZXIuY2FuTWFwQmFja2luZ1N0b3Jl
KCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKworU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19CRUdJTihXZWJLaXQ6OkFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJNYXBwZWRQcm94
eSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGlt
YWdlQnVmZmVyKSB7IHJldHVybiBpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKSAmJiBpbWFnZUJ1ZmZlci5pc0FjY2VsZXJhdGVkKCkgJiYgaW1hZ2VCdWZmZXIuY2FuTWFw
QmFja2luZ1N0b3JlKCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggYzA3YjIzZmIy
YjBlNThlMGUxZGZmNWExNGVlMGE4NWQ5YTViNjQ1ZC4uYzhhMzIzMGY5Nzk4MTlmOWU5ZGYwMzM2
ZTk0NGIwYTI5NzdmOGQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtODMsNyArODMsOSBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
cmVlc3RhYmxpc2hHUFVQcm9jZXNzQ29ubmVjdGlvbigpCiAKICAgICBmb3IgKGF1dG8mIHBhaXIg
OiBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5pbWFnZUJ1ZmZlcnMoKSkgewogICAgICAgICBp
ZiAoYXV0byYgYmFzZUltYWdlQnVmZmVyID0gcGFpci52YWx1ZSkgewotICAgICAgICAgICAgaWYg
KGlzPEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmJhc2VJbWFnZUJ1ZmZlcikp
CisgICAgICAgICAgICBpZiAoaXM8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlck1hcHBlZFBy
b3h5PigqYmFzZUltYWdlQnVmZmVyKSkKKyAgICAgICAgICAgICAgICByZWNyZWF0ZUltYWdlQnVm
ZmVyKCp0aGlzLCBkb3duY2FzdDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyTWFwcGVkUHJv
eHk+KCpiYXNlSW1hZ2VCdWZmZXIpLCBwYWlyLmtleSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllcik7CisgICAgICAgICAgICBlbHNlIGlmIChpczxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVm
ZmVyUHJveHk+KCpiYXNlSW1hZ2VCdWZmZXIpKQogICAgICAgICAgICAgICAgIHJlY3JlYXRlSW1h
Z2VCdWZmZXIoKnRoaXMsIGRvd25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eT4oKmJhc2VJbWFnZUJ1ZmZlciksIHBhaXIua2V5LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZWNyZWF0ZUltYWdlQnVm
ZmVyKCp0aGlzLCBkb3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4o
KmJhc2VJbWFnZUJ1ZmZlciksIHBhaXIua2V5LCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KTsKQEAgLTEyOCw4ICsxMzAsMTUgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2kKIHsKICAgICBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyOwogCi0gICAgaWYgKHJlbmRlcmluZ01vZGUg
PT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgIGltYWdlQnVmZmVyID0gQWNj
ZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9k
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMpOworICAg
IGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKSB7CisgICAg
ICAgIC8vIFVubGVzcyBET00gcmVuZGVyaW5nIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4gYW55IEdQ
VSBwcm9jZXNzIHJlbmRlcmluZyBpcyBlbmFibGVkLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIGNy
ZWF0ZSBJbWFnZUJ1ZmZlcnMgZm9yIGUuZy4gQ2FudmFzIHRoYXQgYXJlIGFjdHVhbGx5IG1hcHBl
ZCBpbnRvIHRoZQorICAgICAgICAvLyBXZWIgQ29udGVudCBwcm9jZXNzLCBzbyB0aGV5IGNhbiBi
ZSBwYWludGVkIGludG8gdGhlIHRpbGVzLgorICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlOjpET00p
KQorICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVy
TWFwcGVkUHJveHk6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVh
dGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhl
bEZvcm1hdCwgKnRoaXMpOworICAgIH0KIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAg
IGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0
ZShzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0LCAqdGhpcyk7CkBAIC0xODgsOCArMTk3LDEwIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6
ZSYKICAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY2Fj
aGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICBpZiAoIWlt
YWdlQnVmZmVyKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKGltYWdlQnVmZmVyLT5p
c0FjY2VsZXJhdGVkKCkpCisKKyAgICBpZiAoaXM8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZl
ck1hcHBlZFByb3h5PigqaW1hZ2VCdWZmZXIpKQorICAgICAgICBkb3duY2FzdDxBY2NlbGVyYXRl
ZFJlbW90ZUltYWdlQnVmZmVyTWFwcGVkUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRlQmFja2Vu
ZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
cGl4ZWxGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CisgICAgZWxzZSBpZiAoaXM8QWNjZWxlcmF0
ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PigqaW1hZ2VCdWZmZXIpKQogICAgICAgICBkb3duY2Fz
dDxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KCppbWFnZUJ1ZmZlcikuY3JlYXRl
QmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIFdURk1vdmUoaGFuZGxlKSk7CiAgICAgZWxzZQogICAgICAgICBk
b3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVmZmVy
KS5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShoYW5kbGUpKTsKQEAgLTIwMSw3ICsy
MTIsOSBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkRmx1c2goRGlzcGxh
eUxpc3Q6OkZsdXNoSWRlbnRpZmllciBmbHVzaElkZQogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChpbWFnZUJ1ZmZlci0+aXNBY2NlbGVyYXRlZCgpKQor
ICAgIGlmIChpczxBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyTWFwcGVkUHJveHk+KCppbWFn
ZUJ1ZmZlcikpCisgICAgICAgIGRvd25jYXN0PEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJN
YXBwZWRQcm94eT4oKmltYWdlQnVmZmVyKS5kaWRGbHVzaChmbHVzaElkZW50aWZpZXIpOworICAg
IGVsc2UgaWYgKGlzPEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdlQnVm
ZmVyKSkKICAgICAgICAgZG93bmNhc3Q8QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
PigqaW1hZ2VCdWZmZXIpLmRpZEZsdXNoKGZsdXNoSWRlbnRpZmllcik7CiAgICAgZWxzZQogICAg
ICAgICBkb3duY2FzdDxVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eT4oKmltYWdl
QnVmZmVyKS5kaWRGbHVzaChmbHVzaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDUx
NjI3YzVlZGQ4OTFiOTRmMzYzOTFjMGFiNGMyODA4YzY4MGJlZmYuLmNlZGE3MTJkYjVhNDY4OTFh
MDMyM2VjZTk3Mzc1ODMzNWY0NDQ0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTI2LDcgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuaCIKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBIQVZFKElP
U1VSRkFDRSkKIAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtMzcsNDQgKzM3LDc4IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNv
bnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVh
dGUoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBQaXhlbEZv
cm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKIHsKLSAg
ICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNpemUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlKTsKLSAgICBpZiAoYmFja2VuZFNpemUuaXNFbXB0eSgpKQorICAgIGlmICghV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSB7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KIAotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGJhY2tlbmRTaXplLCBi
YWNrZW5kU2l6ZSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9yU3BhY2UpLCBJT1N1cmZhY2U6OmZv
cm1hdEZvclBpeGVsRm9ybWF0KHBpeGVsRm9ybWF0KSk7Ci0gICAgaWYgKCFzdXJmYWNlKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+KGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShoYW5kbGUpKTsKK30K
IAotICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGNnQ29udGV4dCA9IHN1cmZhY2UtPmVuc3Vy
ZVBsYXRmb3JtQ29udGV4dCgpOwotICAgIGlmICghY2dDb250ZXh0KQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKK0ltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFdURjo6Z2V0PE1hY2hTZW5kUmlnaHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJp
Z2h0KCk7Cit9CiAKLSAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9h
dFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNrZW5kU2l6ZSkpOworR3JhcGhpY3NDb250ZXh0
JiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNvbnRleHQoKSBjb25zdAor
eworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICooR3JhcGhp
Y3NDb250ZXh0KiludWxscHRyOworfQogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7CitSZWZQ
dHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29w
eU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlIGhhbmRsZSkKK1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSwgUHJlc2VydmVSZXNvbHV0
aW9uKSBjb25zdAogewotICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJp
Z2h0PihoYW5kbGUpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4geyB9OworfQogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVh
dGVGcm9tU2VuZFJpZ2h0KFdURk1vdmUoV1RGOjpnZXQ8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSks
IGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSk7Ci0gICAgaWYgKCFzdXJmYWNlKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3sKKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2Up
KTsKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXpl
JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKLUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgp
IGNvbnN0CitTdHJpbmcgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0Rh
dGFVUkwoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8ZG91YmxlPiwgUHJlc2VydmVSZXNvbHV0aW9u
KSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IHsgfTsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6dG9EYXRhKGNvbnN0IFN0cmluZyYsIE9wdGlvbmFsPGRvdWJsZT4pIGNvbnN0Cit7
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQor
CitWZWN0b3I8dWludDhfdD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0
b0JHUkFEYXRhKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiB7IH07Cit9CisKK1JlZlB0cjxJbWFnZURhdGE+IEltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZDo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb24s
IGNvbnN0IEludFJlY3QmKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQ6OnB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uLCBjb25zdCBJ
bWFnZURhdGEmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBBbHBoYVByZW11bHRp
cGxpY2F0aW9uKQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUobV9zdXJm
YWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEhBVkUoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kLmgKaW5kZXggZWQ1MTYyNGViMGFhMTA1MGUxM2JmYTE3ZWEzNGYwZmUzYzFmZmY2ZC4uN2Mx
ZWVkNjAyZTUxNzIzNzY5ZjRiNjk1NGIzMTc5NGEzMDNiZmY2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCkBAIC0y
NSwyOCArMjUsNTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9J
bWFnZUJ1ZmZlckJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CiAKLWNsYXNzIEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZUJ1ZmZl
cklPU3VyZmFjZUJhY2tlbmQgeworY2xhc3MgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZCB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQpOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6
OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0LCBjb25zdCBXZWJDb3JlOjpIb3N0V2lu
ZG93Kik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxT
aXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRlcm5hbFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhl
bEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKIAotICAgIHVzaW5nIFdlYkNvcmU6
OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OworICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZChjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwaHlzaWNh
bFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNw
YWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlJiYgaGFuZGxlKQorICAgICAgICA6IEltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6
ZSwgcGh5c2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0
KQorICAgICAgICAsIG1faGFuZGxlKFdURk1vdmUoaGFuZGxlKSkKKyAgICB7CisgICAgfQogCiAg
ICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSgpIGNvbnN0OworCisgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZl
SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSwg
V2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGRy
YXcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4o
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNv
cmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHRvRGF0YVVS
TChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNv
cmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxp
dHkpIGNvbnN0IG92ZXJyaWRlOworICAgIFZlY3Rvcjx1aW50OF90PiB0b0JHUkFEYXRhKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRh
KFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBwdXRJbWFnZURhdGEoV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBpbnB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6
SW1hZ2VEYXRhJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBk
ZXN0Rm9ybWF0KSBvdmVycmlkZTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdp
bkF0VXBwZXJMZWZ0Q29ybmVyID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNB
Y2NlbGVyYXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1hcEJhY2tp
bmdTdG9yZSA9IGZhbHNlOworCitwcml2YXRlOgorICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBtX2hhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MGRlNDQ1NTgwYzk5YWNjZDZiMjhmMzgxM2M0Y2Nm
Mzc2NGU5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShJT1NVUkZBQ0UpCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQpOworCitzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBG
bG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyopCit7CisgICAg
SW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKHNpemUsIHJlc29sdXRp
b25TY2FsZSk7CisgICAgaWYgKGJhY2tlbmRTaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShiYWNrZW5k
U2l6ZSwgYmFja2VuZFNpemUsIGNhY2hlZENHQ29sb3JTcGFjZShjb2xvclNwYWNlKSwgSU9TdXJm
YWNlOjpmb3JtYXRGb3JQaXhlbEZvcm1hdChwaXhlbEZvcm1hdCkpOworICAgIGlmICghc3VyZmFj
ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVm
PiBjZ0NvbnRleHQgPSBzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBpZiAo
IWNnQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDR0NvbnRleHRDbGVh
clJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBiYWNr
ZW5kU2l6ZSkpOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kPihzaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgV1RGTW92ZShzdXJmYWNlKSk7Cit9CisKK3N0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IElt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVs
Rm9ybWF0LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlKQoreworICAgIGlmICghV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShX
VEY6OmdldDxNYWNoU2VuZFJpZ2h0PihoYW5kbGUpKSwgY2FjaGVkQ0dDb2xvclNwYWNlKGNvbG9y
U3BhY2UpKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kPihsb2dpY2FsU2l6ZSwgaW50ZXJuYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIHBpeGVsRm9ybWF0LCBXVEZNb3ZlKHN1cmZhY2UpKTsKK30KKworSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTY2
YmIzODRmYTFhMWFlYTFhZjMxYzFjN2UzM2JjYTlhMDU3ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKElPU1VSRkFDRSkKKworI2luY2x1ZGUgIklt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgU2hhcmVhYmxlQml0bWFwOworCitjbGFzcyBJbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZCk7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVh
YmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbG9naWNhbFNpemUsIGNvbnN0IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cq
KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGludGVybmFsU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCwgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKKworICAgIHVzaW5nIFdlYkNvcmU6OkltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOworCisgICAgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNv
bnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEhBVkUoSU9TVVJGQUNFKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>