<?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>221745</bug_id>
          
          <creation_ts>2021-02-11 00:02:33 -0800</creation_ts>
          <short_desc>[Mac] Add Experimental Opus Codec support</short_desc>
          <delta_ts>2021-02-11 16:09:13 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=183852</see_also>
          <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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>ashley</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727980</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 00:02:33 -0800</bug_when>
    <thetext>[Mac] Add Experimental Opus Codec support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727982</commentid>
    <comment_count>1</comment_count>
      <attachid>419953</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 00:11:48 -0800</bug_when>
    <thetext>Created attachment 419953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727984</commentid>
    <comment_count>2</comment_count>
      <attachid>419955</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 00:20:12 -0800</bug_when>
    <thetext>Created attachment 419955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727985</commentid>
    <comment_count>3</comment_count>
      <attachid>419956</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 00:36:51 -0800</bug_when>
    <thetext>Created attachment 419956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728103</commentid>
    <comment_count>4</comment_count>
      <attachid>419992</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 08:32:33 -0800</bug_when>
    <thetext>Created attachment 419992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728115</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-11 09:01:14 -0800</bug_when>
    <thetext>Is this a dupe of https://bugs.webkit.org/show_bug.cgi?id=183852 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728120</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-11 09:08:15 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Is this a dupe of https://bugs.webkit.org/show_bug.cgi?id=183852 ?

No, this patch won&apos;t make Opus available to WebAudio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728132</commentid>
    <comment_count>7</comment_count>
      <attachid>419999</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 09:22:12 -0800</bug_when>
    <thetext>Created attachment 419999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728133</commentid>
    <comment_count>8</comment_count>
      <attachid>419999</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-11 09:23:57 -0800</bug_when>
    <thetext>Comment on attachment 419999
Patch

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

r=me once the bots are happy

&gt; Source/WebCore/platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:329
&gt;      static dispatch_once_t onceToken;
&gt;      dispatch_once(&amp;onceToken, ^{
&gt;          available = registerDecoderFactory(&quot;ACOpusDecoderFactory&quot;, &apos;opus&apos;);

It turns out we don&apos;t need to explicitly register the Opus codec component, so this can be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728140</commentid>
    <comment_count>9</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-02-11 09:31:19 -0800</bug_when>
    <thetext>We&apos;ve been desperate for WebM Opus support in Safari for years - all major browsers support it except Safari, making it an awkward compatibility problem to deal with when trying to get audio playback to work across browsers. It would be fantastic if support for this was added!

We also need support in Web Audio&apos;s decodeAudioData - is there a separate issue to track that? Is this just for the &lt;audio&gt; element so far?

Safari should support both at the same time, since the de-facto way to feature detect the types decodeAudioData can decode is via new Audio().canPlayType(). If that indicates support for WebM Opus when decodeAudioData does not support it, existing web content will be broken as it would incorrectly activate attempting to decode WebM Opus with decodeAudioData. Supporting both at the same time will avoid this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728219</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-11 12:06:22 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #8)
&gt; Comment on attachment 419999 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=419999&amp;action=review
&gt; 
&gt; r=me once the bots are happy
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:329
&gt; &gt;      static dispatch_once_t onceToken;
&gt; &gt;      dispatch_once(&amp;onceToken, ^{
&gt; &gt;          available = registerDecoderFactory(&quot;ACOpusDecoderFactory&quot;, &apos;opus&apos;);
&gt; 
&gt; It turns out we don&apos;t need to explicitly register the Opus codec component,
&gt; so this can be removed.

I&apos;ll remove this in a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728240</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-11 12:37:31 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 419999 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728340</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-11 16:08:42 -0800</bug_when>
    <thetext>Committed r272758: &lt;https://commits.webkit.org/r272758&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419999.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728341</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-11 16:09:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/74255423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419953</attachid>
            <date>2021-02-11 00:11:48 -0800</date>
            <delta_ts>2021-02-11 00:21:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221745-20210211001147.patch</filename>
            <type>text/plain</type>
            <size>24623</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE3NWJmMGM1NGNlMWU1NGZiNTRmMzBm
YWIyNjQ4ZmIzMTQ2OWQ1OTYuLjFjZDNhN2FhNDJjYjc4OGU0NGUzMjI0MDQ0MWEyZTEyMTlkYThi
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMTEgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVyaW1lbnRhbCBPcHVzIENvZGVj
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhIG5ldyBleHBlcmltZW50YWwgZmVhdHVyZSBzZXR0aW5nLCBkaXNhYmxlZCBieSBkZWZh
dWx0LCBjb250cm9sbGluZyB3aGV0aGVyIHRvCisgICAgICAgIGVuYWJsZSBwYXJzaW5nIG9mIE9w
dXMgdHJhY2tzIGZyb20gV2ViTSBmaWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBIQVZFKFBFUFBFUl9VSV9DT1JFKSBpbnN0ZWFk
IG9mIFBMQVRGT1JNKFdBVENIT1MpIHRvIGd1YXJkIGNvZGUgdGhhdCB1c2VzIFBlcHBlclVJQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDQ5YWZkM2Q3MmM4ZTJiMDg0OWJkZDAyZGNiYjc3ZGJjODQzOGEyYjAu
LmU0MmJhZTU3NzUyYzY3YzAzNGNhZTEzNDUyNmM4ZjhiN2Q5NTE1NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNSBAQAorMjAyMS0wMi0xMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFsIE9wdXMgQ29kZWMgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHRoZSBPcHVzIENvZGVjIGluIGEgV2ViTSBjb250YWluZXIgYnkgcGFyc2luZyB0aGUg
T3B1cyBwcml2YXRlCisgICAgICAgIGNvZGVjIGRhdGEgaW50byBhIENvcmVBdWRpby1zcGVjaWZp
YyBtYWdpYyBjb29raWUsIGFuZCB1c2luZyB0aGF0IGNvb2tpZSB0bworICAgICAgICBpbml0aWFs
aXplIGFuIEF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gbmVjZXNzYXJ5IHRvIGluc3RhbnRpYXRlIHRo
ZSBDb3JlQXVkaW8KKyAgICAgICAgT3B1cyBkZWNvZGVyLgorCisgICAgICAgIFRoaXMgbWFnaWMg
Y29va2llIHJlcXVpcmVzIGluZm9ybWF0aW9uIGJvdGggZnJvbSB0aGUgcHJpdmF0ZSBjb2RlYyBk
YXRhLCBidXQKKyAgICAgICAgYWxzbyByZXF1aXJlcyBpbmZvcm1hdGlvbiBwYXJzZWQgZGlyZWN0
bHkgZnJvbSB0aGUgc3RyZWFtIGl0c2VsZjsgdXBkYXRlIHRoZQorICAgICAgICBjcmVhdGVPcHVz
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbigpIHRvIHRha2UgZnJhbWUgZGF0YSBhcyB3ZWxsIGFzIGNv
b2tpZSBkYXRhLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6b3B1c0RlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2V0T3B1c0RlY29kZXJFbmFibGVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1B
dWRpb1V0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkZvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpvcHVzQ29uZmlnVG9G
cmFtZUR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Om9wdXNDb25maWdUb0JhbmR3aWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpjb29raWVGcm9tT3B1c0NvZGVjUHJpdmF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjppc09wdXNEZWNvZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZvcmJpc0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorCiAyMDIxLTAyLTEwICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bR1BVUF0gTW92ZSBSZW1v
dGVDb21tYW5kTGlzdGVuZXIgaW50byB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzkxZDQ0
Mjk2NTdmN2NlOWZmOTM3NjBiNDQyNmMwZDJmZGFiNjAzYS4uMDFkMDU1YThjMDVlY2FlZjUxMWFm
ZWYyMDU3NjBjMzM5MGQ5YTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMi0x
MSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBBZGQg
RXhwZXJpbWVudGFsIE9wdXMgQ29kZWMgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisKIDIwMjEtMDItMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXVtHUFVQXSBNb3ZlIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciBpbnRv
IHRoZSBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBlYjYxMmVj
MjY4MDIxNGMyNzdjNmY2OWMzMzM2NDZlMDlhZTI1MWEyLi5kMzQyOGFmMDQ3MzdlYzc3MWEzMmZk
ODA0MTcxODA1NmFhYTQ5NDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtOTM1
LDYgKzkzNSwxOCBAQCBWb3JiaXNEZWNvZGVyRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBk
ZWZhdWx0OiB0cnVlCiAKK09wdXNEZWNvZGVyRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1h
blJlYWRhYmxlTmFtZTogIk9wdXMgYXVkaW8gZGVjb2RlciIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIE9wdXMgYXVkaW8gZGVjb2RlciIKKyAgY29uZGl0aW9uOiBFTkFCTEUo
T1BVUykKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKKyAgZGVmYXVs
dFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2Vi
S2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBlbmFibGVkIHdo
ZW4gRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFUykgaXMgdHJ1ZSBpbiBXZWJLaXQyLiBQZXJo
YXBzIHdlIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGF0IGZvciBXZWJLaXRMZWdhY3kgYXMgd2Vs
bC4KIFdlYkFuaW1hdGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxlZDoKICAgdHlwZTogYm9v
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IGFjZGIzNjZiNjk0ZGVjOWU3
MmI1NjUxYWQ2MWYyYzNmYjczNTFkMTUuLjc4ZDU4NzNhMzA4OTEwMjBlNWE3NzJiYzk1MGEyZWI2
NDEzZmI1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTYzNywzICs2
MzcsNyBAQAogI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJNX0ZPUk1BVF9SRUFERVIpICYmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDExMDMwMAogI2Rl
ZmluZSBFTkFCTEVfV0VCTV9GT1JNQVRfUkVBREVSIDEKICNlbmRpZgorCisjaWYgIWRlZmluZWQo
RU5BQkxFX09QVVMpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxFX09QVVMgMQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcAppbmRleCAzZmZjNjI4ZWMyMDVkZDg0NThkODA0NDViYjQ5ZTU4MGM4
YWJiNjBjLi5mZDIzZDVlZGU3NTE0MDkzNGEzNDg5Y2QyMzU4ODM5NzI1N2VhYmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTQzLDYgKzQzLDEwIEBAIGJvb2wgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjptX3dlYk1Gb3JtYXRSZWFkZXJFbmFibGVkOwogYm9vbCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1fdm9yYmlzRGVjb2RlckVuYWJsZWQ7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCitib29sIFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6bV9vcHVzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKKwogc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+JiBzaGFyZWRQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVu
aXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPj4gcGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOwpAQCAtNjU1LDYgKzY1OSwyNCBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2V0Vm9yYmlzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9
CiAKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpvcHVzRGVjb2RlckVuYWJsZWQo
KQoreworI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgcmV0dXJuIG1fb3B1
c0RlY29kZXJFbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwor
dm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldE9wdXNEZWNvZGVyRW5hYmxlZChi
b29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE9QVVMpICYmIFBMQVRGT1JNKE1BQykKKyAgICBt
X29wdXNEZWNvZGVyRW5hYmxlZCA9IGVuYWJsZWQ7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmFibGVkKTsKKyNlbmRpZgorfQorCiAjZWxzZSAvLyBFTkFCTEUoVklERU8pIHx8IEVOQUJMRShX
RUJfQVVESU8pCiAKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVOb3dQ
bGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMmJjM2My
ZjI0NzQ4ZTExOWNhM2ZkZjM3MTk4MTkyMzljNzM4OWZjNS4uYWU2ZGZlODg0YzQwNmVjOWVhNGIy
MDVlZDgxMDQ1NWZiNDg5MDEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTYxLDYgKzYx
LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Vm9yYmlz
RGVjb2RlckVuYWJsZWQoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgdm9y
YmlzRGVjb2RlckVuYWJsZWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRP
cHVzRGVjb2RlckVuYWJsZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wg
b3B1c0RlY29kZXJFbmFibGVkKCk7CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKQEAgLTIxNSw2ICsyMTcsOSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShWT1JCSVMpICYmIFBMQVRGT1JNKE1BQykKICAgICBzdGF0aWMgYm9vbCBtX3ZvcmJp
c0RlY29kZXJFbmFibGVkOwogI2VuZGlmCisjaWYgRU5BQkxFKE9QVVMpICYmIFBMQVRGT1JNKE1B
QykKKyAgICBzdGF0aWMgYm9vbCBtX3ZvcmJpc0RlY29kZXJFbmFibGVkOworI2VuZGlmCiAKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWY8QWdncmVnYXRlTG9nZ2VyPiBtX2xvZ2dl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Nv
dXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggNjk4MzFiMDA2YTg0OTVi
YjZjYWNjNmY1OTZmY2IyZTAwMTlhYmQ4Ni4uOGNiYzQ2YmQ3MWZlMGVjMTc2YzE2NGE0Y2YyODdi
ZjBjMmU2YjJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTEyMjEs
NiArMTIyMSwyNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9U
cmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogewogICAgIEFTU0VSVChzYW1w
bGVDb3VudCk7CiAKKyAgICBpZiAobV9wYWNrZXREZXNjcmlwdGlvbnMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIG1fcGFja2V0Qnl0ZXNSZWFkID0gMDsKKyAgICAgICAgbV9ieXRlT2Zmc2V0ID0gbWV0
YWRhdGEucG9zaXRpb247CisgICAgICAgIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSA9IHByZXNl
bnRhdGlvblRpbWU7CisgICAgfQorCisgICAgbV9wYWNrZXREYXRhLnJlc2l6ZShtX3BhY2tldEJ5
dGVzUmVhZCArIG1ldGFkYXRhLnNpemUpOworICAgIHNpemVfdCBwYWNrZXREYXRhT2Zmc2V0ID0g
bV9wYWNrZXRCeXRlc1JlYWQ7CisgICAgc2l6ZV90IGJ5dGVzVG9SZWFkID0gbWV0YWRhdGEuc2l6
ZTsKKyAgICB3aGlsZSAoYnl0ZXNUb1JlYWQpIHsKKyAgICAgICAgdWludDY0X3QgYnl0ZXNSZWFk
OworICAgICAgICBhdXRvIHN0YXR1cyA9IHJlYWRlci5SZWFkKGJ5dGVzVG9SZWFkLCBtX3BhY2tl
dERhdGEuZGF0YSgpICsgbV9wYWNrZXRCeXRlc1JlYWQsICZieXRlc1JlYWQpOworICAgICAgICBi
eXRlc1RvUmVhZCAtPSBieXRlc1JlYWQ7CisgICAgICAgICpieXRlc1JlbWFpbmluZyAtPSBieXRl
c1JlYWQ7CisgICAgICAgIG1fcGFja2V0Qnl0ZXNSZWFkICs9IGJ5dGVzUmVhZDsKKworICAgICAg
ICAvLyBGSVhNRTogV2UgY2FuJ3QgeWV0IGhhbmRsZSBwYXJzaW5nIGEgRnJhbWUgdGhhdCBkb2Vz
bid0IGhhdmUgYWxsIGl0cyBtZW1vcnkgYXZhaWxhYmxlLgorICAgICAgICBpZiAoc3RhdHVzLmNv
ZGUgPT0gd2VibTo6U3RhdHVzOjprT2tQYXJ0aWFsIHx8IHN0YXR1cy5jb2RlID09IHdlYm06OlN0
YXR1czo6a1dvdWxkQmxvY2spCisgICAgICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKwog
ICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24oKSkgewogICAgICAgICBpZiAoIXRyYWNrKCkuY29k
ZWNfcHJpdmF0ZS5pc19wcmVzZW50KCkpIHsKICAgICAgICAgICAgIFBBUlNFUl9MT0dfRVJST1Jf
SUZfUE9TU0lCTEUoIkF1ZGlvIHRyYWNrIG1pc3NpbmcgbWFnaWMgY29va2llIik7CkBAIC0xMjMy
LDcgKzEyNTMsNyBAQCB3ZWJtOjpTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9U
cmFja0RhdGE6OmNvbnN1bWVGcmFtZURhdGEod2VibTo6UmVhZAogICAgICAgICBpZiAoY29kZWMo
KSA9PSBDb2RlY1R5cGU6OlZvcmJpcykKICAgICAgICAgICAgIGZvcm1hdERlc2NyaXB0aW9uID0g
Y3JlYXRlVm9yYmlzQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihwcml2YXRlRGF0YS5zaXplKCksIHBy
aXZhdGVEYXRhLmRhdGEoKSk7CiAgICAgICAgIGVsc2UgaWYgKGNvZGVjKCkgPT0gQ29kZWNUeXBl
OjpPcHVzKQotICAgICAgICAgICAgZm9ybWF0RGVzY3JpcHRpb24gPSBjcmVhdGVPcHVzQXVkaW9G
b3JtYXREZXNjcmlwdGlvbihwcml2YXRlRGF0YS5zaXplKCksIHByaXZhdGVEYXRhLmRhdGEoKSk7
CisgICAgICAgICAgICBmb3JtYXREZXNjcmlwdGlvbiA9IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKHByaXZhdGVEYXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpLCBtX3BhY2tl
dERhdGEuc2l6ZSgpLCBtX3BhY2tldERhdGEuZGF0YSgpKTsKIAogICAgICAgICBpZiAoIWZvcm1h
dERlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICBQQVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxF
KCJGYWlsZWQgdG8gY3JlYXRlIGZvcm1hdCBkZXNjcmlwdGlvbiBmcm9tIGF1ZGlvIHRyYWNrIGhl
YWRlciIpOwpAQCAtMTI0OSwyNyArMTI3MCw2IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSh3ZWJtOjpSZWFkCiAg
ICAgICAgIHNldEZvcm1hdERlc2NyaXB0aW9uKFdURk1vdmUoZm9ybWF0RGVzY3JpcHRpb24pKTsK
ICAgICB9CiAKLSAgICBpZiAobV9wYWNrZXREZXNjcmlwdGlvbnMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIG1fcGFja2V0Qnl0ZXNSZWFkID0gMDsKLSAgICAgICAgbV9ieXRlT2Zmc2V0ID0gbWV0YWRh
dGEucG9zaXRpb247Ci0gICAgICAgIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSA9IHByZXNlbnRh
dGlvblRpbWU7Ci0gICAgfQotCi0gICAgbV9wYWNrZXREYXRhLnJlc2l6ZShtX3BhY2tldEJ5dGVz
UmVhZCArIG1ldGFkYXRhLnNpemUpOwotICAgIHNpemVfdCBwYWNrZXREYXRhT2Zmc2V0ID0gbV9w
YWNrZXRCeXRlc1JlYWQ7Ci0gICAgc2l6ZV90IGJ5dGVzVG9SZWFkID0gbWV0YWRhdGEuc2l6ZTsK
LSAgICB3aGlsZSAoYnl0ZXNUb1JlYWQpIHsKLSAgICAgICAgdWludDY0X3QgYnl0ZXNSZWFkOwot
ICAgICAgICBhdXRvIHN0YXR1cyA9IHJlYWRlci5SZWFkKGJ5dGVzVG9SZWFkLCBtX3BhY2tldERh
dGEuZGF0YSgpICsgbV9wYWNrZXRCeXRlc1JlYWQsICZieXRlc1JlYWQpOwotICAgICAgICBieXRl
c1RvUmVhZCAtPSBieXRlc1JlYWQ7Ci0gICAgICAgICpieXRlc1JlbWFpbmluZyAtPSBieXRlc1Jl
YWQ7Ci0gICAgICAgIG1fcGFja2V0Qnl0ZXNSZWFkICs9IGJ5dGVzUmVhZDsKLQotICAgICAgICAv
LyBGSVhNRTogV2UgY2FuJ3QgeWV0IGhhbmRsZSBwYXJzaW5nIGEgRnJhbWUgdGhhdCBkb2Vzbid0
IGhhdmUgYWxsIGl0cyBtZW1vcnkgYXZhaWxhYmxlLgotICAgICAgICBpZiAoc3RhdHVzLmNvZGUg
PT0gd2VibTo6U3RhdHVzOjprT2tQYXJ0aWFsIHx8IHN0YXR1cy5jb2RlID09IHdlYm06OlN0YXR1
czo6a1dvdWxkQmxvY2spCi0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQogICAg
IG1fcGFja2V0RGVzY3JpcHRpb25zLmFwcGVuZCh7IHN0YXRpY19jYXN0PGludDY0X3Q+KHBhY2tl
dERhdGFPZmZzZXQpLCAwLCBzdGF0aWNfY2FzdDxVSW50MzI+KG1ldGFkYXRhLnNpemUpIH0pOwog
ICAgIGF1dG8gc2FtcGxlRHVyYXRpb24gPSBDTVRpbWVHZXRTZWNvbmRzKENNVGltZVN1YnRyYWN0
KHByZXNlbnRhdGlvblRpbWUsIG1fc2FtcGxlUHJlc2VudGF0aW9uVGltZSkpICsgQ01UaW1lR2V0
U2Vjb25kcyhtX3BhY2tldER1cmF0aW9uKSAqIHNhbXBsZUNvdW50OwogICAgIGlmIChzYW1wbGVE
dXJhdGlvbiA+PSBtX21pbmltdW1TYW1wbGVEdXJhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRp
ZXNDb2NvYS5oCmluZGV4IGIxZjYzN2MwMjRmOGM1ODdlYWNiM2I3ZWEwMTc3MjYzY2E4NzgzNDku
LmVmNjE0MGRiNTI3YjI2YzhmYmYxODEyYzMyMTY4ZjhmYzZiZGQxMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0Nv
Y29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1
ZGlvVXRpbGl0aWVzQ29jb2EuaApAQCAtMzgsNyArMzgsNyBAQCBib29sIGlzVm9yYmlzRGVjb2Rl
ckF2YWlsYWJsZSgpOwogUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZVZv
cmJpc0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90LCBjb25zdCB2b2lkKik7CiAKIGJvb2wg
aXNPcHVzRGVjb2RlckF2YWlsYWJsZSgpOwotUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKHNpemVfdCwgY29uc3Qgdm9pZCop
OworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZU9wdXNBdWRpb0Zvcm1h
dERlc2NyaXB0aW9uKHNpemVfdCwgY29uc3Qgdm9pZCosIHNpemVfdCwgY29uc3Qgdm9pZCopOwog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0KaW5kZXggZGVmMTQxZjM2MTcy
NTFkNzU2NDEzZmJhNTZlMjNiNjIwNTM3NmY2MC4uNzNjMTlhODY1OTU4NmQ3ZGVkODBjNDRlY2Qy
YjA0ZGMzZDZmZWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0KQEAgLTM2
LDYgKzM2LDkgQEAKICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgogI2ltcG9y
dCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVzY3JpcHRpb24uaD4KICNpbXBvcnQgPGRsZmNuLmg+Cisj
aW1wb3J0IDxsaWJ3ZWJydGMvb3B1c19kZWZpbmVzLmg+CisjaW1wb3J0IDx3dGYvRmxpcEJ5dGVz
Lmg+CisjaW1wb3J0IDx3dGYvU2Vjb25kcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTYwLDcgKzYzLDcgQEAgc3RhdGljIGJvb2wgcmVnaXN0ZXJEZWNvZGVyRmFjdG9yeShjb25zdCBj
aGFyKiBkZWNvZGVyTmFtZSwgT1NUeXBlIGRlY29kZXJUeXBlKQogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQoT1NUeXBlIGZvcm1hdElELCBWZWN0b3I8dWludDhf
dD4gbWFnaWNDb29raWUpCitzdGF0aWMgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+
IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQoT1NUeXBlIGZvcm1hdElELCBW
ZWN0b3I8dWludDhfdD4mJiBtYWdpY0Nvb2tpZSkKIHsKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24gYXNiZCB7IH07CiAgICAgYXNiZC5tRm9ybWF0SUQgPSBmb3JtYXRJRDsKQEAgLTc1
LDEwICs3OCwyMzkgQEAgc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBj
cmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE8KIH0KICNlbmRpZiAvLyBFTkFC
TEUoVk9SQklTKSB8fCBFTkFCTEUoT1BVUykKIAorY29uc3RleHByIFNlY29uZHMgb3B1c0NvbmZp
Z1RvRnJhbWVEdXJhdGlvbih1aW50OF90IGNvbmZpZykKK3sKKyAgICAvLyBSZWZlciB0byBodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjcxNiNzZWN0aW9uLTM6CisgICAgLy8gU2VjdGlv
biAzLjEuIFRoZSBUT0MgQnl0ZQorICAgIC8vIFRhYmxlIDI6IFRPQyBCeXRlIENvbmZpZ3VyYXRp
b24gUGFyYW1ldGVycworICAgIC8vIENvbHVtbiA0OiBGcmFtZSBTaXplcworICAgIGNvbnN0ZXhw
ciBTZWNvbmRzIGZyYW1lU2l6ZUFycmF5W10gPSB7CisgICAgICAgIDEwX21zLAorICAgICAgICAy
MF9tcywKKyAgICAgICAgNDBfbXMsCisgICAgICAgIDYwX21zLAorICAgICAgICAxMF9tcywKKyAg
ICAgICAgMjBfbXMsCisgICAgICAgIDQwX21zLAorICAgICAgICA2MF9tcywKKyAgICAgICAgMTBf
bXMsCisgICAgICAgIDIwX21zLAorICAgICAgICA0MF9tcywKKyAgICAgICAgNjBfbXMsCisgICAg
ICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21z
LAorICAgICAgICAyLjVfbXMsCisgICAgICAgIDVfbXMsCisgICAgICAgIDEwX21zLAorICAgICAg
ICAyMF9tcywKKyAgICAgICAgMi41X21zLAorICAgICAgICA1X21zLAorICAgICAgICAxMF9tcywK
KyAgICAgICAgMjBfbXMsCisgICAgICAgIDIuNV9tcywKKyAgICAgICAgNV9tcywKKyAgICAgICAg
MTBfbXMsCisgICAgICAgIDIwX21zLAorICAgICAgICAyLjVfbXMsCisgICAgICAgIDVfbXMsCisg
ICAgICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICB9OworICAgIGlmIChjb25maWcgPCBz
dGQ6OnNpemUoZnJhbWVTaXplQXJyYXkpKQorICAgICAgICByZXR1cm4gZnJhbWVTaXplQXJyYXlb
Y29uZmlnXTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAxX21zOwor
fQorCitjb25zdGV4cHIgaW50MzJfdCBvcHVzQ29uZmlnVG9CYW5kd2lkdGgodWludDhfdCBjb25m
aWcpCit7CisgICAgLy8gUmVmZXIgdG8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3
MTYjc2VjdGlvbi0zOgorICAgIC8vIFNlY3Rpb24gMy4xLiBUaGUgVE9DIEJ5dGUKKyAgICAvLyBU
YWJsZSAyOiBUT0MgQnl0ZSBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMKKyAgICAvLyBDb2x1bW4g
MzogQmFuZHdpZHRoCisgICAgaWYgKGNvbmZpZyA8PSAzKQorICAgICAgICByZXR1cm4gT1BVU19C
QU5EV0lEVEhfTkFSUk9XQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDcpCisgICAgICAgIHJldHVy
biBPUFVTX0JBTkRXSURUSF9NRURJVU1CQU5EOworICAgIGlmIChjb25maWcgPD0gMTEpCisgICAg
ICAgIHJldHVybiBPUFVTX0JBTkRXSURUSF9XSURFQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDEz
KQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfU1VQRVJXSURFQkFORDsKKyAgICBpZiAo
Y29uZmlnIDw9IDE1KQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfRlVMTEJBTkQ7Cisg
ICAgaWYgKGNvbmZpZyA8PSAxOSkKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX05BUlJP
V0JBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSAyMykKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJ
RFRIX1dJREVCQU5EOworICAgIGlmIChjb25maWcgPD0gMjcpCisgICAgICAgIHJldHVybiBPUFVT
X0JBTkRXSURUSF9TVVBFUldJREVCQU5EOworICAgIGlmIChjb25maWcgPD0gMzEpCisgICAgICAg
IHJldHVybiBPUFVTX0JBTkRXSURUSF9GVUxMQkFORDsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiAwOworfQorCisKICNpZiBFTkFCTEUoT1BVUykKLXN0YXRpYyBWZWN0
b3I8dWludDhfdD4gY29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUoc2l6ZV90LCBjb25zdCB2b2lk
KikKK3N0YXRpYyBWZWN0b3I8dWludDhfdD4gY29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUoc2l6
ZV90IGNvZGVjUHJpdmF0ZVNpemUsIGNvbnN0IHZvaWQqIGNvZGVjUHJpdmF0ZURhdGEsIHNpemVf
dCBmcmFtZVNpemUsIGNvbnN0IHZvaWQqIGZyYW1lRGF0YSkKIHsKLSAgICByZXR1cm4geyB9Owor
ICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3ODQ1CisgICAgLy8gNS4gSGVh
ZGVyIFBhY2tldHMKKyAgICAvLworICAgIC8vICAgIEFuIE9nZyBPcHVzIGxvZ2ljYWwgc3RyZWFt
IGNvbnRhaW5zIGV4YWN0bHkgdHdvIG1hbmRhdG9yeSBoZWFkZXIKKyAgICAvLyAgICBwYWNrZXRz
OiBhbiBpZGVudGlmaWNhdGlvbiBoZWFkZXIgYW5kIGEgY29tbWVudCBoZWFkZXIuCisgICAgLy8K
KyAgICAvLyA1LjEuIElkZW50aWZpY2F0aW9uIEhlYWRlcgorICAgIC8vCisgICAgLy8gICAgICAg
MCAgICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAg
ICAgMworICAgIC8vICAgICAgIDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDgg
OSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMQorICAgIC8vICAgICAgKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgICAvLyAg
ICAgIHwgICAgICAnTycgICAgICB8ICAgICAgJ3AnICAgICAgfCAgICAgICd1JyAgICAgIHwgICAg
ICAncycgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgfCAgICAgICdI
JyAgICAgIHwgICAgICAnZScgICAgICB8ICAgICAgJ2EnICAgICAgfCAgICAgICdkJyAgICAgIHwK
KyAgICAvLyAgICAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rCisgICAgLy8gICAgICB8ICBWZXJzaW9uID0gMSAgfCBDaGFu
bmVsIENvdW50IHwgICAgICAgICAgIFByZS1za2lwICAgICAgICAgICAgfAorICAgIC8vICAgICAg
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSsKKyAgICAvLyAgICAgIHwgICAgICAgICAgICAgICAgICAgICBJbnB1dCBTYW1wbGUg
UmF0ZSAoSHopICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICAg
IC8vICAgICAgfCAgIE91dHB1dCBHYWluIChRNy44IGluIGRCKSAgICB8IE1hcHBpbmcgRmFtaWx5
fCAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSsgICAgICAgICAgICAgICA6CisgICAgLy8gICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAorICAgIC8vICAgICAgfCAgICAgICAgICAgICAgIE9wdGlvbmFsIENoYW5uZWwgTWFwcGlu
ZyBUYWJsZSAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8g
ICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKworCisgICAgYXV0byogcHJpdmF0ZURhdGFQdHIgPSBzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4oY29kZWNQcml2YXRlRGF0YSk7CisKKyAgICBpZiAoY29kZWNQcml2YXRl
U2l6ZSA8IDE5KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgLy8gMS4gTWFnaWMgU2lnbmF0
dXJlOgorICAgIC8vCisgICAgLy8gICAgIFRoaXMgaXMgYW4gOC1vY3RldCAoNjQtYml0KSBmaWVs
ZCB0aGF0IGFsbG93cyBjb2RlYworICAgIC8vICAgICBpZGVudGlmaWNhdGlvbiBhbmQgaXMgaHVt
YW4gcmVhZGFibGUuCisgICAgaWYgKHN0cm5jbXAoIk9wdXNIZWFkIiwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4ocHJpdmF0ZURhdGFQdHIpLCA4KSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIC8vIDIuIFZlcnNpb24gKDggYml0cywgdW5zaWduZWQpOgorICAgIHVpbnQ4X3QgdmVy
c2lvbiA9ICoocHJpdmF0ZURhdGFQdHIgKyA4KTsKKworICAgIC8vIDMuIE91dHB1dCBDaGFubmVs
IENvdW50ICdDJyAoOCBiaXRzLCB1bnNpZ25lZCk6CisgICAgdWludDhfdCBjaGFubmVsQ291bnQg
PSAqKHByaXZhdGVEYXRhUHRyICsgOSk7CisKKyAgICAvLyA0LiBQcmUtc2tpcCAoMTYgYml0cywg
dW5zaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAgIHVpbnQxNl90IHByZVNraXAgPSBmbGlwQnl0
ZXNJZkxpdHRsZUVuZGlhbigqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCo+KHByaXZh
dGVEYXRhUHRyICsgMTApLCB0cnVlKTsKKworICAgIC8vIDUuIElucHV0IFNhbXBsZSBSYXRlICgz
MiBiaXRzLCB1bnNpZ25lZCwgbGl0dGxlIGVuZGlhbik6CisgICAgdWludDMyX3Qgc2FtcGxlUmF0
ZSA9IGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKCpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQz
Ml90Kj4ocHJpdmF0ZURhdGFQdHIgKyAxMiksIHRydWUpOworCisgICAgLy8gNi4gT3V0cHV0IEdh
aW4gKDE2IGJpdHMsIHNpZ25lZCwgbGl0dGxlIGVuZGlhbik6CisgICAgaW50MTZfdCBvdXRwdXRH
YWluID0gZmxpcEJ5dGVzSWZMaXR0bGVFbmRpYW4oKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaW50
MTZfdCo+KHByaXZhdGVEYXRhUHRyICsgMTYpLCB0cnVlKTsKKworICAgIC8vIDcuIENoYW5uZWwg
TWFwcGluZyBGYW1pbHkgKDggYml0cywgdW5zaWduZWQpOgorICAgIHVpbnQ4X3QgbWFwcGluZ0Zh
bWlseSA9ICoocHJpdmF0ZURhdGFQdHIgKyAxOCk7CisKKyAgICBhdXRvIGZyYW1lUHRyID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGZyYW1lRGF0YSk7CisKKyAgICBpZiAoZnJhbWVTaXpl
IDwgMSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvaHRtbC9yZmM2NzE2CisgICAgLy8gMy4xLiBUaGUgVE9DIEJ5dGUKKyAgICAvLworICAgIC8v
ICAgIEEgd2VsbC1mb3JtZWQgT3B1cyBwYWNrZXQgTVVTVCBjb250YWluIGF0IGxlYXN0IG9uZSBi
eXRlIFtSMV0uIFRoaXMKKyAgICAvLyAgICBieXRlIGZvcm1zIGEgdGFibGUtb2YtY29udGVudHMg
KFRPQykgaGVhZGVyIHRoYXQgc2lnbmFscyB3aGljaCBvZiB0aGUKKyAgICAvLyAgICB2YXJpb3Vz
IG1vZGVzIGFuZCBjb25maWd1cmF0aW9ucyBhIGdpdmVuIHBhY2tldCB1c2VzLiBJdCBpcyBjb21w
b3NlZAorICAgIC8vICAgIG9mIGEgY29uZmlndXJhdGlvbiBudW1iZXIsICJjb25maWciLCBhIHN0
ZXJlbyBmbGFnLCAicyIsIGFuZCBhIGZyYW1lCisgICAgLy8gICAgY291bnQgY29kZSwgImMiLCBh
cnJhbmdlZCBhcyBpbGx1c3RyYXRlZCBpbiBGaWd1cmUgMS4gQSBkZXNjcmlwdGlvbgorICAgIC8v
ICAgIG9mIGVhY2ggb2YgdGhlc2UgZmllbGRzIGZvbGxvd3MuCisgICAgLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgIDAKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgMCAxIDIgMyA0
IDUgNiA3CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgKy0rLSstKy0rLSstKy0rLSsK
KyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8IGNvbmZpZyAgfHN8IGMgfAorICAgIC8v
ICAgICAgICAgICAgICAgICAgICAgICAgICstKy0rLSstKy0rLSstKy0rCisgICAgLy8gICAgICAg
ICAgICAgICAgICAgICAgIEZpZ3VyZSAxOiBUaGUgVE9DIEJ5dGUKKworICAgIHVpbnQ4X3QgdG9j
Qnl0ZSA9ICpmcmFtZVB0cjsKKyAgICB1aW50OF90IGNvbmZpZyA9ICh0b2NCeXRlICYgMGIxMTEx
MTAwMCkgPj4gMzsKKyAgICBTZWNvbmRzIGZyYW1lRHVyYXRpb24gPSBvcHVzQ29uZmlnVG9GcmFt
ZUR1cmF0aW9uKGNvbmZpZyk7CisgICAgaW50MzJfdCBiYW5kd2lkdGggPSBvcHVzQ29uZmlnVG9C
YW5kd2lkdGgoY29uZmlnKTsKKworICAgIHVpbnQ4X3QgZnJhbWVDb3VudFZhbHVlID0gKHRvY0J5
dGUgJiAwYjAwMDAwMDExKTsKKworICAgIHVpbnQ4X3QgZnJhbWVzUGVyUGFja2V0ID0gMDsKKyAg
ICBpZiAoIWZyYW1lQ291bnRWYWx1ZSkKKyAgICAgICAgZnJhbWVzUGVyUGFja2V0ID0gMTsKKyAg
ICBlbHNlIGlmIChmcmFtZUNvdW50VmFsdWUgPT0gMSB8fCBmcmFtZUNvdW50VmFsdWUgPT0gMikK
KyAgICAgICAgZnJhbWVzUGVyUGFja2V0ID0gMjsKKyAgICBlbHNlIGlmIChmcmFtZUNvdW50VmFs
dWUgPT0gMykgeworICAgICAgICAvLyAzLjIuNS4gQ29kZSAzOiBBIFNpZ25hbGVkIE51bWJlciBv
ZiBGcmFtZXMgaW4gdGhlIFBhY2tldAorICAgICAgICAvLworICAgICAgICAvLyAgICBDb2RlIDMg
cGFja2V0cyBzaWduYWwgdGhlIG51bWJlciBvZiBmcmFtZXMsIGFzIHdlbGwgYXMgYWRkaXRpb25h
bAorICAgICAgICAvLyAgICBwYWRkaW5nLCBjYWxsZWQgIk9wdXMgcGFkZGluZyIgdG8gaW5kaWNh
dGUgdGhhdCB0aGlzIHBhZGRpbmcgaXMgYWRkZWQKKyAgICAgICAgLy8gICAgYXQgdGhlIE9wdXMg
bGF5ZXIgcmF0aGVyIHRoYW4gYXQgdGhlIHRyYW5zcG9ydCBsYXllci4gQ29kZSAzIHBhY2tldHMK
KyAgICAgICAgLy8gICAgTVVTVCBoYXZlIGF0IGxlYXN0IDIgYnl0ZXMgW1I2LFI3XS4gVGhlIFRP
QyBieXRlIGlzIGZvbGxvd2VkIGJ5IGEKKyAgICAgICAgLy8gICAgYnl0ZSBlbmNvZGluZyB0aGUg
bnVtYmVyIG9mIGZyYW1lcyBpbiB0aGUgcGFja2V0IGluIGJpdHMgMiB0byA3CisgICAgICAgIC8v
ICAgIChtYXJrZWQgIk0iIGluIEZpZ3VyZSA1KSwgd2l0aCBiaXQgMSBpbmRpY2F0aW5nIHdoZXRo
ZXIgb3Igbm90IE9wdXMKKyAgICAgICAgLy8gICAgcGFkZGluZyBpcyBpbnNlcnRlZCAobWFya2Vk
ICJwIiBpbiBGaWd1cmUgNSksIGFuZCBiaXQgMCBpbmRpY2F0aW5nCisgICAgICAgIC8vICAgIFZC
UiAobWFya2VkICJ2IiBpbiBGaWd1cmUgNSkuIE0gTVVTVCBOT1QgYmUgemVybywgYW5kIHRoZSBh
dWRpbworICAgICAgICAvLyAgICBkdXJhdGlvbiBjb250YWluZWQgd2l0aGluIGEgcGFja2V0IE1V
U1QgTk9UIGV4Y2VlZCAxMjAgbXMgW1I1XS4gVGhpcworICAgICAgICAvLyAgICBsaW1pdHMgdGhl
IG1heGltdW0gZnJhbWUgY291bnQgZm9yIGFueSBmcmFtZSBzaXplIHRvIDQ4IChmb3IgMi41IG1z
CisgICAgICAgIC8vICAgIGZyYW1lcyksIHdpdGggbG93ZXIgbGltaXRzIGZvciBsb25nZXIgZnJh
bWUgc2l6ZXMuIEZpZ3VyZSA1CisgICAgICAgIC8vICAgIGlsbHVzdHJhdGVzIHRoZSBsYXlvdXQg
b2YgdGhlIGZyYW1lIGNvdW50IGJ5dGUuCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCAxIDIgMyA0IDUgNiA3CisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKy0rLSstKy0rLSstKy0rLSsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8dnxwfCAgICAgTSAgICAgfAorICAgICAgICAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICstKy0rLSstKy0rLSstKy0rCisgICAgICAgIC8vCisgICAgICAgIC8vICAg
ICAgICAgICAgICAgICAgICAgICBGaWd1cmUgNTogVGhlIGZyYW1lIGNvdW50IGJ5dGUKKyAgICAg
ICAgaWYgKGZyYW1lU2l6ZSA8IDIpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAg
IHVpbnQ4X3QgZnJhbWVDb3VudEJ5dGUgPSAqKGZyYW1lUHRyICsgMSk7CisgICAgICAgIGJvb2wg
aXNWQlIgPSAoKGZyYW1lQ291bnRCeXRlICYgMGIxMDAwMDAwMCkgPj4gNykgPT0gMTsKKyAgICAg
ICAgYm9vbCBoYXNQYWRkaW5nID0gKChmcmFtZUNvdW50Qnl0ZSAmIDBiMDEwMDAwMDApID4+IDYp
ID09IDE7CisgICAgICAgIGZyYW1lc1BlclBhY2tldCA9IChmcmFtZUNvdW50Qnl0ZSAmIDBiMDAx
MTExMTEpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShpc1ZCUik7CisgICAgICAgIFVOVVNFRF9Q
QVJBTShoYXNQYWRkaW5nKTsKKyAgICB9CisKKyAgICBVTlVTRURfUEFSQU0odmVyc2lvbik7Cisg
ICAgVU5VU0VEX1BBUkFNKHByZVNraXApOworICAgIFVOVVNFRF9QQVJBTShvdXRwdXRHYWluKTsK
KyAgICBVTlVTRURfUEFSQU0obWFwcGluZ0ZhbWlseSk7CisKKyAgICBhdXRvIHNhbXBsZXNQZXJQ
YWNrZXQgPSBmcmFtZXNQZXJQYWNrZXQgKiAoZnJhbWVEdXJhdGlvbi5zZWNvbmRzKCkgKiBzYW1w
bGVSYXRlKTsKKworICAgIHN0cnVjdCBDb3JlQXVkaW9PcHVzSGVhZGVyIHsKKyAgICAgICAgdW5z
aWduZWQgYXBwbGljYXRpb25JRDsKKyAgICAgICAgdW5zaWduZWQgc2FtcGxlUmF0ZTsKKyAgICAg
ICAgdW5zaWduZWQgcGFja2V0RnJhbWVTaXplOworICAgICAgICBpbnQgcGFja2V0QmFuZHdpZHRo
OworICAgICAgICB1bnNpZ25lZCBwYWNrZXRTdHJlYW1DaGFubmVsczsKKyAgICAgICAgdW5zaWdu
ZWQgdXNlSW5iYW5kRkVDIHsgMSB9OworICAgICAgICB1bnNpZ25lZCBlbmNGaW5hbFJhbmdlIHsg
MCB9OworICAgIH07CisKKyAgICBDb3JlQXVkaW9PcHVzSGVhZGVyIGhlYWRlciA9IHsKKyAgICAg
ICAgQ0ZTd2FwSW50MzJIb3N0VG9CaWcoT1BVU19BUFBMSUNBVElPTl9BVURJTyksCisgICAgICAg
IENGU3dhcEludDMySG9zdFRvQmlnKHNhbXBsZVJhdGUpLAorICAgICAgICBDRlN3YXBJbnQzMkhv
c3RUb0JpZyhzYW1wbGVzUGVyUGFja2V0KSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihDRlN3
YXBJbnQzMkhvc3RUb0JpZyhiYW5kd2lkdGgpKSwKKyAgICAgICAgQ0ZTd2FwSW50MzJIb3N0VG9C
aWcoY2hhbm5lbENvdW50KSwKKyAgICB9OworCisgICAgYXV0byBtYWdpY0Nvb2tpZSA9IFZlY3Rv
cjx1aW50OF90PihzaXplb2YoQ29yZUF1ZGlvT3B1c0hlYWRlcikpOworICAgICpyZWludGVycHJl
dF9jYXN0PENvcmVBdWRpb09wdXNIZWFkZXIqPihtYWdpY0Nvb2tpZS5kYXRhKCkpID0gaGVhZGVy
OworCisgICAgcmV0dXJuIG1hZ2ljQ29va2llOwogfQogI2VuZGlmCiAKQEAgLTg3LDYgKzMxOSw5
IEBAIGJvb2wgaXNPcHVzRGVjb2RlckF2YWlsYWJsZSgpCiAgICAgc3RhdGljIGJvb2wgYXZhaWxh
YmxlOwogCiAjaWYgRU5BQkxFKE9QVVMpICYmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIVBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6b3B1c0RlY29kZXJFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwogICAg
IGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKICAgICAgICAgYXZhaWxhYmxlID0gcmVnaXN0
ZXJEZWNvZGVyRmFjdG9yeSgiQUNPcHVzRGVjb2RlckZhY3RvcnkiLCAnb3B1cycpOwpAQCAtOTYs
MjAgKzMzMSwyMiBAQCBib29sIGlzT3B1c0RlY29kZXJBdmFpbGFibGUoKQogICAgIHJldHVybiBh
dmFpbGFibGU7CiB9CiAKLVJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVP
cHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihzaXplX3QgcHJpdmF0ZURhdGFTaXplLCBjb25zdCB2
b2lkKiBwcml2YXRlRGF0YSkKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVh
dGVPcHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihzaXplX3QgcHJpdmF0ZURhdGFTaXplLCBjb25z
dCB2b2lkKiBwcml2YXRlRGF0YSwgc2l6ZV90IGZyYW1lRGF0YVNpemUsIGNvbnN0IHZvaWQqIGZy
YW1lRGF0YSkKIHsKICNpZiBFTkFCTEUoT1BVUykKICAgICBpZiAoIWlzT3B1c0RlY29kZXJBdmFp
bGFibGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGNvb2tpZURhdGEg
PSBjb29raWVGcm9tT3B1c0NvZGVjUHJpdmF0ZShwcml2YXRlRGF0YVNpemUsIHByaXZhdGVEYXRh
KTsKKyAgICBhdXRvIGNvb2tpZURhdGEgPSBjb29raWVGcm9tT3B1c0NvZGVjUHJpdmF0ZShwcml2
YXRlRGF0YVNpemUsIHByaXZhdGVEYXRhLCBmcmFtZURhdGFTaXplLCBmcmFtZURhdGEpOwogICAg
IGlmICghY29va2llRGF0YS5zaXplKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
cmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQoJ29wdXMnLCBjb29r
aWVEYXRhKTsKKyAgICByZXR1cm4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkZvckZvcm1h
dCgnb3B1cycsIFdURk1vdmUoY29va2llRGF0YSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
cHJpdmF0ZURhdGFTaXplKTsKICAgICBVTlVTRURfUEFSQU0ocHJpdmF0ZURhdGEpOworICAgIFVO
VVNFRF9QQVJBTShmcmFtZURhdGFTaXplKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVEYXRhKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQpAQCAtMTk5LDcgKzQzNiw3IEBAIFJldGFp
blB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uKHNpemVfdCBwcml2CiAgICAgaWYgKCFjb29raWVEYXRhLnNpemUoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkZvckZvcm1hdCgndm9yYicsIGNvb2tpZURhdGEpOworICAgIHJldHVybiBjcmVhdGVBdWRpb0Zv
cm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KCd2b3JiJywgV1RGTW92ZShjb29raWVEYXRhKSk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShwcml2YXRlRGF0YVNpemUpOwogICAgIFVOVVNFRF9QQVJB
TShwcml2YXRlRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQppbmRleCBjOTVkNTM2OGVlYmU2MGQxYjY1NzEzZmFmM2JjYzExY2I4
NmNiMGIxLi41M2VmOTU5OWUzMTExYzNkZDVhYzdiOTAyNjI4MDkwMzBjMWZiNDY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAg
LTM1OCw2ICszNTgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29kZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudm9yYmlzRGVjb2RlckVuYWJsZWQoKSk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzZXRPcHVzRGVjb2RlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5vcHVzRGVjb2RlckVuYWJsZWQoKSk7CisjZW5kaWYKKwog
ICAgIGlmICghcGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNl
dE1lZGlhTUlNRVR5cGVzKHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMpOwogICAgIGVsc2Ugewo=
</data>
<flag name="commit-queue"
          id="438326"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419955</attachid>
            <date>2021-02-11 00:20:12 -0800</date>
            <delta_ts>2021-02-11 00:40:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221745-20210211002011.patch</filename>
            <type>text/plain</type>
            <size>24525</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE3NWJmMGM1NGNlMWU1NGZiNTRmMzBm
YWIyNjQ4ZmIzMTQ2OWQ1OTYuLjFjZDNhN2FhNDJjYjc4OGU0NGUzMjI0MDQ0MWEyZTEyMTlkYThi
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMTEgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVyaW1lbnRhbCBPcHVzIENvZGVj
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhIG5ldyBleHBlcmltZW50YWwgZmVhdHVyZSBzZXR0aW5nLCBkaXNhYmxlZCBieSBkZWZh
dWx0LCBjb250cm9sbGluZyB3aGV0aGVyIHRvCisgICAgICAgIGVuYWJsZSBwYXJzaW5nIG9mIE9w
dXMgdHJhY2tzIGZyb20gV2ViTSBmaWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBIQVZFKFBFUFBFUl9VSV9DT1JFKSBpbnN0ZWFk
IG9mIFBMQVRGT1JNKFdBVENIT1MpIHRvIGd1YXJkIGNvZGUgdGhhdCB1c2VzIFBlcHBlclVJQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDQ5YWZkM2Q3MmM4ZTJiMDg0OWJkZDAyZGNiYjc3ZGJjODQzOGEyYjAu
LmU0MmJhZTU3NzUyYzY3YzAzNGNhZTEzNDUyNmM4ZjhiN2Q5NTE1NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNSBAQAorMjAyMS0wMi0xMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFsIE9wdXMgQ29kZWMgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHRoZSBPcHVzIENvZGVjIGluIGEgV2ViTSBjb250YWluZXIgYnkgcGFyc2luZyB0aGUg
T3B1cyBwcml2YXRlCisgICAgICAgIGNvZGVjIGRhdGEgaW50byBhIENvcmVBdWRpby1zcGVjaWZp
YyBtYWdpYyBjb29raWUsIGFuZCB1c2luZyB0aGF0IGNvb2tpZSB0bworICAgICAgICBpbml0aWFs
aXplIGFuIEF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gbmVjZXNzYXJ5IHRvIGluc3RhbnRpYXRlIHRo
ZSBDb3JlQXVkaW8KKyAgICAgICAgT3B1cyBkZWNvZGVyLgorCisgICAgICAgIFRoaXMgbWFnaWMg
Y29va2llIHJlcXVpcmVzIGluZm9ybWF0aW9uIGJvdGggZnJvbSB0aGUgcHJpdmF0ZSBjb2RlYyBk
YXRhLCBidXQKKyAgICAgICAgYWxzbyByZXF1aXJlcyBpbmZvcm1hdGlvbiBwYXJzZWQgZGlyZWN0
bHkgZnJvbSB0aGUgc3RyZWFtIGl0c2VsZjsgdXBkYXRlIHRoZQorICAgICAgICBjcmVhdGVPcHVz
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbigpIHRvIHRha2UgZnJhbWUgZGF0YSBhcyB3ZWxsIGFzIGNv
b2tpZSBkYXRhLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6b3B1c0RlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2V0T3B1c0RlY29kZXJFbmFibGVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1l
RnJhbWVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1B
dWRpb1V0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkZvckZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpvcHVzQ29uZmlnVG9G
cmFtZUR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Om9wdXNDb25maWdUb0JhbmR3aWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpjb29raWVGcm9tT3B1c0NvZGVjUHJpdmF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjppc09wdXNEZWNvZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZvcmJpc0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorCiAyMDIxLTAyLTEwICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bR1BVUF0gTW92ZSBSZW1v
dGVDb21tYW5kTGlzdGVuZXIgaW50byB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzkxZDQ0
Mjk2NTdmN2NlOWZmOTM3NjBiNDQyNmMwZDJmZGFiNjAzYS4uMDFkMDU1YThjMDVlY2FlZjUxMWFm
ZWYyMDU3NjBjMzM5MGQ5YTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMi0x
MSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBBZGQg
RXhwZXJpbWVudGFsIE9wdXMgQ29kZWMgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisKIDIwMjEtMDItMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXVtHUFVQXSBNb3ZlIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciBpbnRv
IHRoZSBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBlYjYxMmVj
MjY4MDIxNGMyNzdjNmY2OWMzMzM2NDZlMDlhZTI1MWEyLi5hZmFhMWVmMDU3Y2EwNThmNGIwYzQy
ZWJjNTc2OGZmYThiNWE5MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNjAy
LDYgKzYwMiwxOCBAQCBNb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFibGVkOgogICAgIFdlYkNv
cmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitPcHVzRGVjb2RlckVuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPcHVzIGF1ZGlvIGRlY29kZXIiCisgIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBPcHVzIGF1ZGlvIGRlY29kZXIiCisgIGNvbmRp
dGlvbjogRU5BQkxFKE9QVVMpCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3Zl
cnNjcm9sbCBCZWhhdmlvciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBh
Y2RiMzY2YjY5NGRlYzllNzJiNTY1MWFkNjFmMmMzZmI3MzUxZDE1Li43OGQ1ODczYTMwODkxMDIw
ZTVhNzcyYmM5NTBhMmViNjQxM2ZiNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCkBAIC02MzcsMyArNjM3LDcgQEAKICNpZiAhZGVmaW5lZChFTkFCTEVfV0VCTV9GT1JNQVRf
UkVBREVSKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA+PSAxMTAzMDAKICNkZWZpbmUgRU5BQkxFX1dFQk1fRk9STUFUX1JFQURFUiAxCiAjZW5kaWYK
KworI2lmICFkZWZpbmVkKEVOQUJMRV9PUFVTKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9PUFVTIDEK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggM2ZmYzYyOGVjMjA1ZGQ4NDU4
ZDgwNDQ1YmI0OWU1ODBjOGFiYjYwYy4uZmQyM2Q1ZWRlNzUxNDA5MzRhMzQ4OWNkMjM1ODgzOTcy
NTdlYWJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC00Myw2ICs0MywxMCBAQCBi
b29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxl
ZDsKIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjptX3ZvcmJpc0RlY29kZXJFbmFi
bGVkOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExBVEZPUk0oTUFDKQorYm9vbCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1fb3B1c0RlY29kZXJFbmFibGVkOworI2VuZGlm
CisKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiYg
c2hhcmVkUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4+IHBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKQEAgLTY1NSw2ICs2NTksMjQgQEAgdm9pZCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wgZW5h
YmxlZCkKICNlbmRpZgogfQogCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6b3B1
c0RlY29kZXJFbmFibGVkKCkKK3sKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExBVEZPUk0oTUFDKQor
ICAgIHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRPcHVz
RGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFU
Rk9STShNQUMpCisgICAgbV9vcHVzRGVjb2RlckVuYWJsZWQgPSBlbmFibGVkOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKwogI2Vsc2UgLy8gRU5BQkxFKFZJ
REVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQogCiB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oCmluZGV4IDJiYzNjMmYyNDc0OGUxMTljYTNmZGYzNzE5ODE5MjM5YzczODlmYzUuLmFlNmRm
ZTg4NGM0MDZlYzllYTRiMjA1ZWQ4MTA0NTVmYjQ4OTAxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCB3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIHNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIHZvcmJpc0RlY29kZXJFbmFibGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgc2V0T3B1c0RlY29kZXJFbmFibGVkKGJvb2wpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBib29sIG9wdXNEZWNvZGVyRW5hYmxlZCgpOwogCiAgICAgdmlydHVhbCB+UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkgPSBkZWZhdWx0OwogCkBAIC0yMTUsNiArMjE3LDkg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFURk9STShNQUMpCiAgICAgc3Rh
dGljIGJvb2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKICNlbmRpZgorI2lmIEVOQUJMRShPUFVT
KSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgbV92b3JiaXNEZWNvZGVyRW5hYmxl
ZDsKKyNlbmRpZgogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUmVmPEFnZ3JlZ2F0
ZUxvZ2dlcj4gbV9sb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCmluZGV4
IDY5ODMxYjAwNmE4NDk1YmI2Y2FjYzZmNTk2ZmNiMmUwMDE5YWJkODYuLjhjYmM0NmJkNzFmZTBl
YzE3NmMxNjRhNGNmMjg3YmYwYzJlNmIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwCkBAIC0xMjIxLDYgKzEyMjEsMjcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBh
cnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKIHsK
ICAgICBBU1NFUlQoc2FtcGxlQ291bnQpOwogCisgICAgaWYgKG1fcGFja2V0RGVzY3JpcHRpb25z
LmlzRW1wdHkoKSkgeworICAgICAgICBtX3BhY2tldEJ5dGVzUmVhZCA9IDA7CisgICAgICAgIG1f
Ynl0ZU9mZnNldCA9IG1ldGFkYXRhLnBvc2l0aW9uOworICAgICAgICBtX3NhbXBsZVByZXNlbnRh
dGlvblRpbWUgPSBwcmVzZW50YXRpb25UaW1lOworICAgIH0KKworICAgIG1fcGFja2V0RGF0YS5y
ZXNpemUobV9wYWNrZXRCeXRlc1JlYWQgKyBtZXRhZGF0YS5zaXplKTsKKyAgICBzaXplX3QgcGFj
a2V0RGF0YU9mZnNldCA9IG1fcGFja2V0Qnl0ZXNSZWFkOworICAgIHNpemVfdCBieXRlc1RvUmVh
ZCA9IG1ldGFkYXRhLnNpemU7CisgICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7CisgICAgICAgIHVp
bnQ2NF90IGJ5dGVzUmVhZDsKKyAgICAgICAgYXV0byBzdGF0dXMgPSByZWFkZXIuUmVhZChieXRl
c1RvUmVhZCwgbV9wYWNrZXREYXRhLmRhdGEoKSArIG1fcGFja2V0Qnl0ZXNSZWFkLCAmYnl0ZXNS
ZWFkKTsKKyAgICAgICAgYnl0ZXNUb1JlYWQgLT0gYnl0ZXNSZWFkOworICAgICAgICAqYnl0ZXNS
ZW1haW5pbmcgLT0gYnl0ZXNSZWFkOworICAgICAgICBtX3BhY2tldEJ5dGVzUmVhZCArPSBieXRl
c1JlYWQ7CisKKyAgICAgICAgLy8gRklYTUU6IFdlIGNhbid0IHlldCBoYW5kbGUgcGFyc2luZyBh
IEZyYW1lIHRoYXQgZG9lc24ndCBoYXZlIGFsbCBpdHMgbWVtb3J5IGF2YWlsYWJsZS4KKyAgICAg
ICAgaWYgKHN0YXR1cy5jb2RlID09IHdlYm06OlN0YXR1czo6a09rUGFydGlhbCB8fCBzdGF0dXMu
Y29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtXb3VsZEJsb2NrKQorICAgICAgICAgICAgcmV0dXJuIHN0
YXR1czsKKyAgICB9CisKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKCkpIHsKICAgICAgICAg
aWYgKCF0cmFjaygpLmNvZGVjX3ByaXZhdGUuaXNfcHJlc2VudCgpKSB7CiAgICAgICAgICAgICBQ
QVJTRVJfTE9HX0VSUk9SX0lGX1BPU1NJQkxFKCJBdWRpbyB0cmFjayBtaXNzaW5nIG1hZ2ljIGNv
b2tpZSIpOwpAQCAtMTIzMiw3ICsxMjUzLDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBh
cnNlcldlYk06OkF1ZGlvVHJhY2tEYXRhOjpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAg
ICAgICAgaWYgKGNvZGVjKCkgPT0gQ29kZWNUeXBlOjpWb3JiaXMpCiAgICAgICAgICAgICBmb3Jt
YXREZXNjcmlwdGlvbiA9IGNyZWF0ZVZvcmJpc0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24ocHJpdmF0
ZURhdGEuc2l6ZSgpLCBwcml2YXRlRGF0YS5kYXRhKCkpOwogICAgICAgICBlbHNlIGlmIChjb2Rl
YygpID09IENvZGVjVHlwZTo6T3B1cykKLSAgICAgICAgICAgIGZvcm1hdERlc2NyaXB0aW9uID0g
Y3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24ocHJpdmF0ZURhdGEuc2l6ZSgpLCBwcml2
YXRlRGF0YS5kYXRhKCkpOworICAgICAgICAgICAgZm9ybWF0RGVzY3JpcHRpb24gPSBjcmVhdGVP
cHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihwcml2YXRlRGF0YS5zaXplKCksIHByaXZhdGVEYXRh
LmRhdGEoKSwgbV9wYWNrZXREYXRhLnNpemUoKSwgbV9wYWNrZXREYXRhLmRhdGEoKSk7CiAKICAg
ICAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikgewogICAgICAgICAgICAgUEFSU0VSX0xPR19F
UlJPUl9JRl9QT1NTSUJMRSgiRmFpbGVkIHRvIGNyZWF0ZSBmb3JtYXQgZGVzY3JpcHRpb24gZnJv
bSBhdWRpbyB0cmFjayBoZWFkZXIiKTsKQEAgLTEyNDksMjcgKzEyNzAsNiBAQCB3ZWJtOjpTdGF0
dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6QXVkaW9UcmFja0RhdGE6OmNvbnN1bWVGcmFtZURh
dGEod2VibTo6UmVhZAogICAgICAgICBzZXRGb3JtYXREZXNjcmlwdGlvbihXVEZNb3ZlKGZvcm1h
dERlc2NyaXB0aW9uKSk7CiAgICAgfQogCi0gICAgaWYgKG1fcGFja2V0RGVzY3JpcHRpb25zLmlz
RW1wdHkoKSkgewotICAgICAgICBtX3BhY2tldEJ5dGVzUmVhZCA9IDA7Ci0gICAgICAgIG1fYnl0
ZU9mZnNldCA9IG1ldGFkYXRhLnBvc2l0aW9uOwotICAgICAgICBtX3NhbXBsZVByZXNlbnRhdGlv
blRpbWUgPSBwcmVzZW50YXRpb25UaW1lOwotICAgIH0KLQotICAgIG1fcGFja2V0RGF0YS5yZXNp
emUobV9wYWNrZXRCeXRlc1JlYWQgKyBtZXRhZGF0YS5zaXplKTsKLSAgICBzaXplX3QgcGFja2V0
RGF0YU9mZnNldCA9IG1fcGFja2V0Qnl0ZXNSZWFkOwotICAgIHNpemVfdCBieXRlc1RvUmVhZCA9
IG1ldGFkYXRhLnNpemU7Ci0gICAgd2hpbGUgKGJ5dGVzVG9SZWFkKSB7Ci0gICAgICAgIHVpbnQ2
NF90IGJ5dGVzUmVhZDsKLSAgICAgICAgYXV0byBzdGF0dXMgPSByZWFkZXIuUmVhZChieXRlc1Rv
UmVhZCwgbV9wYWNrZXREYXRhLmRhdGEoKSArIG1fcGFja2V0Qnl0ZXNSZWFkLCAmYnl0ZXNSZWFk
KTsKLSAgICAgICAgYnl0ZXNUb1JlYWQgLT0gYnl0ZXNSZWFkOwotICAgICAgICAqYnl0ZXNSZW1h
aW5pbmcgLT0gYnl0ZXNSZWFkOwotICAgICAgICBtX3BhY2tldEJ5dGVzUmVhZCArPSBieXRlc1Jl
YWQ7Ci0KLSAgICAgICAgLy8gRklYTUU6IFdlIGNhbid0IHlldCBoYW5kbGUgcGFyc2luZyBhIEZy
YW1lIHRoYXQgZG9lc24ndCBoYXZlIGFsbCBpdHMgbWVtb3J5IGF2YWlsYWJsZS4KLSAgICAgICAg
aWYgKHN0YXR1cy5jb2RlID09IHdlYm06OlN0YXR1czo6a09rUGFydGlhbCB8fCBzdGF0dXMuY29k
ZSA9PSB3ZWJtOjpTdGF0dXM6OmtXb3VsZEJsb2NrKQotICAgICAgICAgICAgcmV0dXJuIHN0YXR1
czsKLSAgICB9Ci0KICAgICBtX3BhY2tldERlc2NyaXB0aW9ucy5hcHBlbmQoeyBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihwYWNrZXREYXRhT2Zmc2V0KSwgMCwgc3RhdGljX2Nhc3Q8VUludDMyPihtZXRh
ZGF0YS5zaXplKSB9KTsKICAgICBhdXRvIHNhbXBsZUR1cmF0aW9uID0gQ01UaW1lR2V0U2Vjb25k
cyhDTVRpbWVTdWJ0cmFjdChwcmVzZW50YXRpb25UaW1lLCBtX3NhbXBsZVByZXNlbnRhdGlvblRp
bWUpKSArIENNVGltZUdldFNlY29uZHMobV9wYWNrZXREdXJhdGlvbikgKiBzYW1wbGVDb3VudDsK
ICAgICBpZiAoc2FtcGxlRHVyYXRpb24gPj0gbV9taW5pbXVtU2FtcGxlRHVyYXRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaAppbmRleCBiMWY2MzdjMDI0ZjhjNTg3ZWFjYjNiN2Vh
MDE3NzI2M2NhODc4MzQ5Li5lZjYxNDBkYjUyN2IyNmM4ZmJmMTgxMmMzMjE2OGY4ZmM2YmRkMTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJN
QXVkaW9VdGlsaXRpZXNDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLmgKQEAgLTM4LDcgKzM4LDcgQEAgYm9v
bCBpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKTsKIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0
aW9uUmVmPiBjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKHNpemVfdCwgY29uc3Qg
dm9pZCopOwogCiBib29sIGlzT3B1c0RlY29kZXJBdmFpbGFibGUoKTsKLVJldGFpblB0cjxDTUZv
cm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVPcHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihzaXpl
X3QsIGNvbnN0IHZvaWQqKTsKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVh
dGVPcHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihzaXplX3QsIGNvbnN0IHZvaWQqLCBzaXplX3Qs
IGNvbnN0IHZvaWQqKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tCmlu
ZGV4IGRlZjE0MWYzNjE3MjUxZDc1NjQxM2ZiYTU2ZTIzYjYyMDUzNzZmNjAuLjczYzE5YTg2NTk1
ODZkN2RlZDgwYzQ0ZWNkMmIwNGRjM2Q2ZmVmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGll
c0NvY29hLm1tCkBAIC0zNiw2ICszNiw5IEBACiAjaW1wb3J0IDxBdWRpb1Rvb2xib3gvQXVkaW9G
b3JtYXQuaD4KICNpbXBvcnQgPENvcmVNZWRpYS9DTUZvcm1hdERlc2NyaXB0aW9uLmg+CiAjaW1w
b3J0IDxkbGZjbi5oPgorI2ltcG9ydCA8bGlid2VicnRjL29wdXNfZGVmaW5lcy5oPgorI2ltcG9y
dCA8d3RmL0ZsaXBCeXRlcy5oPgorI2ltcG9ydCA8d3RmL1NlY29uZHMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC02MCw3ICs2Myw3IEBAIHN0YXRpYyBib29sIHJlZ2lzdGVyRGVjb2Rl
ckZhY3RvcnkoY29uc3QgY2hhciogZGVjb2Rlck5hbWUsIE9TVHlwZSBkZWNvZGVyVHlwZSkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE9TVHlwZSBmb3JtYXRJ
RCwgVmVjdG9yPHVpbnQ4X3Q+IG1hZ2ljQ29va2llKQorc3RhdGljIFJldGFpblB0cjxDTUZvcm1h
dERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE9T
VHlwZSBmb3JtYXRJRCwgVmVjdG9yPHVpbnQ4X3Q+JiYgbWFnaWNDb29raWUpCiB7CiAgICAgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIGFzYmQgeyB9OwogICAgIGFzYmQubUZvcm1hdElEID0g
Zm9ybWF0SUQ7CkBAIC03NSwxMCArNzgsMjM5IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXRE
ZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkZvckZvcm1hdChPCiB9
CiAjZW5kaWYgLy8gRU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCiAKK2NvbnN0ZXhwciBT
ZWNvbmRzIG9wdXNDb25maWdUb0ZyYW1lRHVyYXRpb24odWludDhfdCBjb25maWcpCit7CisgICAg
Ly8gUmVmZXIgdG8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3MTYjc2VjdGlvbi0z
OgorICAgIC8vIFNlY3Rpb24gMy4xLiBUaGUgVE9DIEJ5dGUKKyAgICAvLyBUYWJsZSAyOiBUT0Mg
Qnl0ZSBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMKKyAgICAvLyBDb2x1bW4gNDogRnJhbWUgU2l6
ZXMKKyAgICBjb25zdGV4cHIgU2Vjb25kcyBmcmFtZVNpemVBcnJheVtdID0geworICAgICAgICAx
MF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgICAgIDQwX21zLAorICAgICAgICA2MF9tcywKKyAg
ICAgICAgMTBfbXMsCisgICAgICAgIDIwX21zLAorICAgICAgICA0MF9tcywKKyAgICAgICAgNjBf
bXMsCisgICAgICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAgNDBfbXMsCisgICAg
ICAgIDYwX21zLAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgICAgIDEwX21z
LAorICAgICAgICAyMF9tcywKKyAgICAgICAgMi41X21zLAorICAgICAgICA1X21zLAorICAgICAg
ICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgICAgIDIuNV9tcywKKyAgICAgICAgNV9tcywK
KyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21zLAorICAgICAgICAyLjVfbXMsCisgICAgICAg
IDVfbXMsCisgICAgICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAgMi41X21zLAor
ICAgICAgICA1X21zLAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgfTsKKyAg
ICBpZiAoY29uZmlnIDwgc3RkOjpzaXplKGZyYW1lU2l6ZUFycmF5KSkKKyAgICAgICAgcmV0dXJu
IGZyYW1lU2l6ZUFycmF5W2NvbmZpZ107CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gMV9tczsKK30KKworY29uc3RleHByIGludDMyX3Qgb3B1c0NvbmZpZ1RvQmFuZHdp
ZHRoKHVpbnQ4X3QgY29uZmlnKQoreworICAgIC8vIFJlZmVyIHRvIGh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9yZmM2NzE2I3NlY3Rpb24tMzoKKyAgICAvLyBTZWN0aW9uIDMuMS4gVGhlIFRP
QyBCeXRlCisgICAgLy8gVGFibGUgMjogVE9DIEJ5dGUgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJz
CisgICAgLy8gQ29sdW1uIDM6IEJhbmR3aWR0aAorICAgIGlmIChjb25maWcgPD0gMykKKyAgICAg
ICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX05BUlJPV0JBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSA3
KQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfTUVESVVNQkFORDsKKyAgICBpZiAoY29u
ZmlnIDw9IDExKQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfV0lERUJBTkQ7CisgICAg
aWYgKGNvbmZpZyA8PSAxMykKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX1NVUEVSV0lE
RUJBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSAxNSkKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJ
RFRIX0ZVTExCQU5EOworICAgIGlmIChjb25maWcgPD0gMTkpCisgICAgICAgIHJldHVybiBPUFVT
X0JBTkRXSURUSF9OQVJST1dCQU5EOworICAgIGlmIChjb25maWcgPD0gMjMpCisgICAgICAgIHJl
dHVybiBPUFVTX0JBTkRXSURUSF9XSURFQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDI3KQorICAg
ICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfU1VQRVJXSURFQkFORDsKKyAgICBpZiAoY29uZmln
IDw9IDMxKQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfRlVMTEJBTkQ7CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworCiAjaWYgRU5BQkxFKE9Q
VVMpCi1zdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNvb2tpZUZyb21PcHVzQ29kZWNQcml2YXRlKHNp
emVfdCwgY29uc3Qgdm9pZCopCitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNvb2tpZUZyb21PcHVz
Q29kZWNQcml2YXRlKHNpemVfdCBjb2RlY1ByaXZhdGVTaXplLCBjb25zdCB2b2lkKiBjb2RlY1By
aXZhdGVEYXRhLCBzaXplX3QgZnJhbWVTaXplLCBjb25zdCB2b2lkKiBmcmFtZURhdGEpCiB7Ci0g
ICAgcmV0dXJuIHsgfTsKKyAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzg0
NQorICAgIC8vIDUuIEhlYWRlciBQYWNrZXRzCisgICAgLy8KKyAgICAvLyAgICBBbiBPZ2cgT3B1
cyBsb2dpY2FsIHN0cmVhbSBjb250YWlucyBleGFjdGx5IHR3byBtYW5kYXRvcnkgaGVhZGVyCisg
ICAgLy8gICAgcGFja2V0czogYW4gaWRlbnRpZmljYXRpb24gaGVhZGVyIGFuZCBhIGNvbW1lbnQg
aGVhZGVyLgorICAgIC8vCisgICAgLy8gNS4xLiBJZGVudGlmaWNhdGlvbiBIZWFkZXIKKyAgICAv
LworICAgIC8vICAgICAgIDAgICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAy
ICAgICAgICAgICAgICAgICAgIDMKKyAgICAvLyAgICAgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAg
MSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgICAvLyAgICAgICst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rCisgICAgLy8gICAgICB8ICAgICAgJ08nICAgICAgfCAgICAgICdwJyAgICAgIHwgICAg
ICAndScgICAgICB8ICAgICAgJ3MnICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgICAv
LyAgICAgIHwgICAgICAnSCcgICAgICB8ICAgICAgJ2UnICAgICAgfCAgICAgICdhJyAgICAgIHwg
ICAgICAnZCcgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgfCAgVmVy
c2lvbiA9IDEgIHwgQ2hhbm5lbCBDb3VudCB8ICAgICAgICAgICBQcmUtc2tpcCAgICAgICAgICAg
IHwKKyAgICAvLyAgICAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgICAgLy8gICAgICB8ICAgICAgICAgICAgICAgICAg
ICAgSW5wdXQgU2FtcGxlIFJhdGUgKEh6KSAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAg
ICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSsKKyAgICAvLyAgICAgIHwgICBPdXRwdXQgR2FpbiAoUTcuOCBpbiBkQikgICAg
fCBNYXBwaW5nIEZhbWlseXwgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rICAgICAgICAgICAgICAgOgor
ICAgIC8vICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgIHwgICAgICAgICAgICAgICBPcHRpb25h
bCBDaGFubmVsIE1hcHBpbmcgVGFibGUgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICB8
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKworICAgIGF1dG8qIHByaXZhdGVEYXRhUHRy
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGNvZGVjUHJpdmF0ZURhdGEpOworCisgICAg
aWYgKGNvZGVjUHJpdmF0ZVNpemUgPCAxOSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIC8v
IDEuIE1hZ2ljIFNpZ25hdHVyZToKKyAgICAvLworICAgIC8vICAgICBUaGlzIGlzIGFuIDgtb2N0
ZXQgKDY0LWJpdCkgZmllbGQgdGhhdCBhbGxvd3MgY29kZWMKKyAgICAvLyAgICAgaWRlbnRpZmlj
YXRpb24gYW5kIGlzIGh1bWFuIHJlYWRhYmxlLgorICAgIGlmIChzdHJuY21wKCJPcHVzSGVhZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHByaXZhdGVEYXRhUHRyKSwgOCkpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICAvLyAyLiBWZXJzaW9uICg4IGJpdHMsIHVuc2lnbmVkKToK
KyAgICB1aW50OF90IHZlcnNpb24gPSAqKHByaXZhdGVEYXRhUHRyICsgOCk7CisKKyAgICAvLyAz
LiBPdXRwdXQgQ2hhbm5lbCBDb3VudCAnQycgKDggYml0cywgdW5zaWduZWQpOgorICAgIHVpbnQ4
X3QgY2hhbm5lbENvdW50ID0gKihwcml2YXRlRGF0YVB0ciArIDkpOworCisgICAgLy8gNC4gUHJl
LXNraXAgKDE2IGJpdHMsIHVuc2lnbmVkLCBsaXR0bGUgZW5kaWFuKToKKyAgICB1aW50MTZfdCBw
cmVTa2lwID0gZmxpcEJ5dGVzSWZMaXR0bGVFbmRpYW4oKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDE2X3QqPihwcml2YXRlRGF0YVB0ciArIDEwKSwgdHJ1ZSk7CisKKyAgICAvLyA1LiBJbnB1
dCBTYW1wbGUgUmF0ZSAoMzIgYml0cywgdW5zaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAgIHVp
bnQzMl90IHNhbXBsZVJhdGUgPSBmbGlwQnl0ZXNJZkxpdHRsZUVuZGlhbigqcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1aW50MzJfdCo+KHByaXZhdGVEYXRhUHRyICsgMTIpLCB0cnVlKTsKKworICAg
IC8vIDYuIE91dHB1dCBHYWluICgxNiBiaXRzLCBzaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAg
IGludDE2X3Qgb3V0cHV0R2FpbiA9IGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKCpyZWludGVycHJl
dF9jYXN0PGNvbnN0IGludDE2X3QqPihwcml2YXRlRGF0YVB0ciArIDE2KSwgdHJ1ZSk7CisKKyAg
ICAvLyA3LiBDaGFubmVsIE1hcHBpbmcgRmFtaWx5ICg4IGJpdHMsIHVuc2lnbmVkKToKKyAgICB1
aW50OF90IG1hcHBpbmdGYW1pbHkgPSAqKHByaXZhdGVEYXRhUHRyICsgMTgpOworCisgICAgYXV0
byBmcmFtZVB0ciA9IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihmcmFtZURhdGEpOworCisg
ICAgaWYgKGZyYW1lU2l6ZSA8IDEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICAvLyBodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjcxNgorICAgIC8vIDMuMS4gVGhlIFRPQyBCeXRl
CisgICAgLy8KKyAgICAvLyAgICBBIHdlbGwtZm9ybWVkIE9wdXMgcGFja2V0IE1VU1QgY29udGFp
biBhdCBsZWFzdCBvbmUgYnl0ZSBbUjFdLiBUaGlzCisgICAgLy8gICAgYnl0ZSBmb3JtcyBhIHRh
YmxlLW9mLWNvbnRlbnRzIChUT0MpIGhlYWRlciB0aGF0IHNpZ25hbHMgd2hpY2ggb2YgdGhlCisg
ICAgLy8gICAgdmFyaW91cyBtb2RlcyBhbmQgY29uZmlndXJhdGlvbnMgYSBnaXZlbiBwYWNrZXQg
dXNlcy4gSXQgaXMgY29tcG9zZWQKKyAgICAvLyAgICBvZiBhIGNvbmZpZ3VyYXRpb24gbnVtYmVy
LCAiY29uZmlnIiwgYSBzdGVyZW8gZmxhZywgInMiLCBhbmQgYSBmcmFtZQorICAgIC8vICAgIGNv
dW50IGNvZGUsICJjIiwgYXJyYW5nZWQgYXMgaWxsdXN0cmF0ZWQgaW4gRmlndXJlIDEuIEEgZGVz
Y3JpcHRpb24KKyAgICAvLyAgICBvZiBlYWNoIG9mIHRoZXNlIGZpZWxkcyBmb2xsb3dzLgorICAg
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAwCisgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgIDAgMSAyIDMgNCA1IDYgNworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICst
Ky0rLSstKy0rLSstKy0rCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCBjb25maWcg
IHxzfCBjIHwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSst
KworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBGaWd1cmUgMTogVGhlIFRPQyBCeXRlCisK
KyAgICB1aW50OF90IHRvY0J5dGUgPSAqZnJhbWVQdHI7CisgICAgdWludDhfdCBjb25maWcgPSAo
dG9jQnl0ZSAmIDBiMTExMTEwMDApID4+IDM7CisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uID0g
b3B1c0NvbmZpZ1RvRnJhbWVEdXJhdGlvbihjb25maWcpOworICAgIGludDMyX3QgYmFuZHdpZHRo
ID0gb3B1c0NvbmZpZ1RvQmFuZHdpZHRoKGNvbmZpZyk7CisKKyAgICB1aW50OF90IGZyYW1lQ291
bnRWYWx1ZSA9ICh0b2NCeXRlICYgMGIwMDAwMDAxMSk7CisKKyAgICB1aW50OF90IGZyYW1lc1Bl
clBhY2tldCA9IDA7CisgICAgaWYgKCFmcmFtZUNvdW50VmFsdWUpCisgICAgICAgIGZyYW1lc1Bl
clBhY2tldCA9IDE7CisgICAgZWxzZSBpZiAoZnJhbWVDb3VudFZhbHVlID09IDEgfHwgZnJhbWVD
b3VudFZhbHVlID09IDIpCisgICAgICAgIGZyYW1lc1BlclBhY2tldCA9IDI7CisgICAgZWxzZSBp
ZiAoZnJhbWVDb3VudFZhbHVlID09IDMpIHsKKyAgICAgICAgLy8gMy4yLjUuIENvZGUgMzogQSBT
aWduYWxlZCBOdW1iZXIgb2YgRnJhbWVzIGluIHRoZSBQYWNrZXQKKyAgICAgICAgLy8KKyAgICAg
ICAgLy8gICAgQ29kZSAzIHBhY2tldHMgc2lnbmFsIHRoZSBudW1iZXIgb2YgZnJhbWVzLCBhcyB3
ZWxsIGFzIGFkZGl0aW9uYWwKKyAgICAgICAgLy8gICAgcGFkZGluZywgY2FsbGVkICJPcHVzIHBh
ZGRpbmciIHRvIGluZGljYXRlIHRoYXQgdGhpcyBwYWRkaW5nIGlzIGFkZGVkCisgICAgICAgIC8v
ICAgIGF0IHRoZSBPcHVzIGxheWVyIHJhdGhlciB0aGFuIGF0IHRoZSB0cmFuc3BvcnQgbGF5ZXIu
IENvZGUgMyBwYWNrZXRzCisgICAgICAgIC8vICAgIE1VU1QgaGF2ZSBhdCBsZWFzdCAyIGJ5dGVz
IFtSNixSN10uIFRoZSBUT0MgYnl0ZSBpcyBmb2xsb3dlZCBieSBhCisgICAgICAgIC8vICAgIGJ5
dGUgZW5jb2RpbmcgdGhlIG51bWJlciBvZiBmcmFtZXMgaW4gdGhlIHBhY2tldCBpbiBiaXRzIDIg
dG8gNworICAgICAgICAvLyAgICAobWFya2VkICJNIiBpbiBGaWd1cmUgNSksIHdpdGggYml0IDEg
aW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBPcHVzCisgICAgICAgIC8vICAgIHBhZGRpbmcgaXMg
aW5zZXJ0ZWQgKG1hcmtlZCAicCIgaW4gRmlndXJlIDUpLCBhbmQgYml0IDAgaW5kaWNhdGluZwor
ICAgICAgICAvLyAgICBWQlIgKG1hcmtlZCAidiIgaW4gRmlndXJlIDUpLiBNIE1VU1QgTk9UIGJl
IHplcm8sIGFuZCB0aGUgYXVkaW8KKyAgICAgICAgLy8gICAgZHVyYXRpb24gY29udGFpbmVkIHdp
dGhpbiBhIHBhY2tldCBNVVNUIE5PVCBleGNlZWQgMTIwIG1zIFtSNV0uIFRoaXMKKyAgICAgICAg
Ly8gICAgbGltaXRzIHRoZSBtYXhpbXVtIGZyYW1lIGNvdW50IGZvciBhbnkgZnJhbWUgc2l6ZSB0
byA0OCAoZm9yIDIuNSBtcworICAgICAgICAvLyAgICBmcmFtZXMpLCB3aXRoIGxvd2VyIGxpbWl0
cyBmb3IgbG9uZ2VyIGZyYW1lIHNpemVzLiBGaWd1cmUgNQorICAgICAgICAvLyAgICBpbGx1c3Ry
YXRlcyB0aGUgbGF5b3V0IG9mIHRoZSBmcmFtZSBjb3VudCBieXRlLgorICAgICAgICAvLworICAg
ICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCisgICAgICAgIC8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAgMSAyIDMgNCA1IDYgNworICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICstKy0rLSstKy0rLSstKy0rCisgICAgICAgIC8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfHZ8cHwgICAgIE0gICAgIHwKKyAgICAgICAgLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKworICAgICAgICAv
LworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgRmlndXJlIDU6IFRoZSBmcmFtZSBj
b3VudCBieXRlCisgICAgICAgIGlmIChmcmFtZVNpemUgPCAyKQorICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgICAgICB1aW50OF90IGZyYW1lQ291bnRCeXRlID0gKihmcmFtZVB0ciArIDEp
OworICAgICAgICBib29sIGlzVkJSID0gKChmcmFtZUNvdW50Qnl0ZSAmIDBiMTAwMDAwMDApID4+
IDcpID09IDE7CisgICAgICAgIGJvb2wgaGFzUGFkZGluZyA9ICgoZnJhbWVDb3VudEJ5dGUgJiAw
YjAxMDAwMDAwKSA+PiA2KSA9PSAxOworICAgICAgICBmcmFtZXNQZXJQYWNrZXQgPSAoZnJhbWVD
b3VudEJ5dGUgJiAwYjAwMTExMTExKTsKKworICAgICAgICBVTlVTRURfUEFSQU0oaXNWQlIpOwor
ICAgICAgICBVTlVTRURfUEFSQU0oaGFzUGFkZGluZyk7CisgICAgfQorCisgICAgVU5VU0VEX1BB
UkFNKHZlcnNpb24pOworICAgIFVOVVNFRF9QQVJBTShwcmVTa2lwKTsKKyAgICBVTlVTRURfUEFS
QU0ob3V0cHV0R2Fpbik7CisgICAgVU5VU0VEX1BBUkFNKG1hcHBpbmdGYW1pbHkpOworCisgICAg
YXV0byBzYW1wbGVzUGVyUGFja2V0ID0gZnJhbWVzUGVyUGFja2V0ICogKGZyYW1lRHVyYXRpb24u
c2Vjb25kcygpICogc2FtcGxlUmF0ZSk7CisKKyAgICBzdHJ1Y3QgQ29yZUF1ZGlvT3B1c0hlYWRl
ciB7CisgICAgICAgIHVuc2lnbmVkIGFwcGxpY2F0aW9uSUQ7CisgICAgICAgIHVuc2lnbmVkIHNh
bXBsZVJhdGU7CisgICAgICAgIHVuc2lnbmVkIHBhY2tldEZyYW1lU2l6ZTsKKyAgICAgICAgaW50
IHBhY2tldEJhbmR3aWR0aDsKKyAgICAgICAgdW5zaWduZWQgcGFja2V0U3RyZWFtQ2hhbm5lbHM7
CisgICAgICAgIHVuc2lnbmVkIHVzZUluYmFuZEZFQyB7IDEgfTsKKyAgICAgICAgdW5zaWduZWQg
ZW5jRmluYWxSYW5nZSB7IDAgfTsKKyAgICB9OworCisgICAgQ29yZUF1ZGlvT3B1c0hlYWRlciBo
ZWFkZXIgPSB7CisgICAgICAgIENGU3dhcEludDMySG9zdFRvQmlnKE9QVVNfQVBQTElDQVRJT05f
QVVESU8pLAorICAgICAgICBDRlN3YXBJbnQzMkhvc3RUb0JpZyhzYW1wbGVSYXRlKSwKKyAgICAg
ICAgQ0ZTd2FwSW50MzJIb3N0VG9CaWcoc2FtcGxlc1BlclBhY2tldCksCisgICAgICAgIHN0YXRp
Y19jYXN0PGludD4oQ0ZTd2FwSW50MzJIb3N0VG9CaWcoYmFuZHdpZHRoKSksCisgICAgICAgIENG
U3dhcEludDMySG9zdFRvQmlnKGNoYW5uZWxDb3VudCksCisgICAgfTsKKworICAgIGF1dG8gbWFn
aWNDb29raWUgPSBWZWN0b3I8dWludDhfdD4oc2l6ZW9mKENvcmVBdWRpb09wdXNIZWFkZXIpKTsK
KyAgICAqcmVpbnRlcnByZXRfY2FzdDxDb3JlQXVkaW9PcHVzSGVhZGVyKj4obWFnaWNDb29raWUu
ZGF0YSgpKSA9IGhlYWRlcjsKKworICAgIHJldHVybiBtYWdpY0Nvb2tpZTsKIH0KICNlbmRpZgog
CkBAIC04Nyw2ICszMTksOSBAQCBib29sIGlzT3B1c0RlY29kZXJBdmFpbGFibGUoKQogICAgIHN0
YXRpYyBib29sIGF2YWlsYWJsZTsKIAogI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMp
CisgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om9wdXNEZWNvZGVyRW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90
IG9uY2VUb2tlbjsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAgICAgICAgIGF2
YWlsYWJsZSA9IHJlZ2lzdGVyRGVjb2RlckZhY3RvcnkoIkFDT3B1c0RlY29kZXJGYWN0b3J5Iiwg
J29wdXMnKTsKQEAgLTk2LDIwICszMzEsMjIgQEAgYm9vbCBpc09wdXNEZWNvZGVyQXZhaWxhYmxl
KCkKICAgICByZXR1cm4gYXZhaWxhYmxlOwogfQogCi1SZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlw
dGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXZhdGVE
YXRhU2l6ZSwgY29uc3Qgdm9pZCogcHJpdmF0ZURhdGEpCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXZh
dGVEYXRhU2l6ZSwgY29uc3Qgdm9pZCogcHJpdmF0ZURhdGEsIHNpemVfdCBmcmFtZURhdGFTaXpl
LCBjb25zdCB2b2lkKiBmcmFtZURhdGEpCiB7CiAjaWYgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFp
c09wdXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
YXV0byBjb29raWVEYXRhID0gY29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUocHJpdmF0ZURhdGFT
aXplLCBwcml2YXRlRGF0YSk7CisgICAgYXV0byBjb29raWVEYXRhID0gY29va2llRnJvbU9wdXND
b2RlY1ByaXZhdGUocHJpdmF0ZURhdGFTaXplLCBwcml2YXRlRGF0YSwgZnJhbWVEYXRhU2l6ZSwg
ZnJhbWVEYXRhKTsKICAgICBpZiAoIWNvb2tpZURhdGEuc2l6ZSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIHJldHVybiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9y
bWF0KCdvcHVzJywgY29va2llRGF0YSk7CisgICAgcmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb25Gb3JGb3JtYXQoJ29wdXMnLCBXVEZNb3ZlKGNvb2tpZURhdGEpKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHByaXZhdGVEYXRhU2l6ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHByaXZh
dGVEYXRhKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVEYXRhU2l6ZSk7CisgICAgVU5VU0VEX1BB
UkFNKGZyYW1lRGF0YSk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KQEAgLTE5OSw3
ICs0MzYsNyBAQCBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlVm9yYmlz
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbihzaXplX3QgcHJpdgogICAgIGlmICghY29va2llRGF0YS5z
aXplKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGNyZWF0ZUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQoJ3ZvcmInLCBjb29raWVEYXRhKTsKKyAgICByZXR1
cm4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkZvckZvcm1hdCgndm9yYicsIFdURk1vdmUo
Y29va2llRGF0YSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocHJpdmF0ZURhdGFTaXplKTsK
ICAgICBVTlVTRURfUEFSQU0ocHJpdmF0ZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggYzk1ZDUzNjhlZWJlNjBkMWI2
NTcxM2ZhZjNiY2MxMWNiODZjYjBiMS4uNTNlZjk1OTllMzExMWMzZGQ1YWM3YjkwMjYyODA5MDMw
YzFmYjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCkBAIC0zNTgsNiArMzU4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxl
ZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnZvcmJpc0RlY29kZXJF
bmFibGVkKCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExBVEZPUk0oTUFDKQor
ICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0T3B1c0RlY29kZXJFbmFibGVkKFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkub3B1c0RlY29kZXJFbmFibGVk
KCkpOworI2VuZGlmCisKICAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0
eSgpKQogICAgICAgICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVz
KTsKICAgICBlbHNlIHsK
</data>
<flag name="commit-queue"
          id="438330"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419956</attachid>
            <date>2021-02-11 00:36:51 -0800</date>
            <delta_ts>2021-02-11 08:32:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221745-20210211003650.patch</filename>
            <type>text/plain</type>
            <size>31438</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA3MDkxMTEyOGIwZmZmMzY0ZTk2NjNlODNmNDU5NzUzNzdkMGI3M2YyLi45ZTk5
MmE0MzMxOGVkYzdhZDQ4NmRhOGMxNDZlNWUwYjlhZTgyYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFs
IE9wdXMgQ29kZWMgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29weSBsaWJvcHVzIGhlYWRlcnMgaW50byB0aGUgbGlid2VicnRjIGhlYWRl
ciBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0wMi0wNSAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gSGlkZSBsaWJ3ZWJydGMgc3ltYm9scwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCAxNzViZjBjNTRjZTFlNTRmYjU0ZjMwZmFiMjY0OGZiMzE0NjlkNTk2Li4xY2QzYTdhYTQy
Y2I3ODhlNDRlMzIyNDA0NDFhMmUxMjE5ZGE4YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIx
LTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNd
IEFkZCBFeHBlcmltZW50YWwgT3B1cyBDb2RlYyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZXhwZXJpbWVudGFsIGZlYXR1
cmUgc2V0dGluZywgZGlzYWJsZWQgYnkgZGVmYXVsdCwgY29udHJvbGxpbmcgd2hldGhlciB0bwor
ICAgICAgICBlbmFibGUgcGFyc2luZyBvZiBPcHVzIHRyYWNrcyBmcm9tIFdlYk0gZmlsZXMuCisK
KyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWw6CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wMi0x
MCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
SEFWRShQRVBQRVJfVUlfQ09SRSkgaW5zdGVhZCBvZiBQTEFURk9STShXQVRDSE9TKSB0byBndWFy
ZCBjb2RlIHRoYXQgdXNlcyBQZXBwZXJVSUNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OWFmZDNkNzJjOGUy
YjA4NDliZGQwMmRjYmI3N2RiYzg0MzhhMmIwLi5lNDJiYWU1Nzc1MmM2N2MwMzRjYWUxMzQ1MjZj
OGY4YjdkOTUxNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDItMTEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVy
aW1lbnRhbCBPcHVzIENvZGVjIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgT3B1cyBDb2RlYyBpbiBhIFdl
Yk0gY29udGFpbmVyIGJ5IHBhcnNpbmcgdGhlIE9wdXMgcHJpdmF0ZQorICAgICAgICBjb2RlYyBk
YXRhIGludG8gYSBDb3JlQXVkaW8tc3BlY2lmaWMgbWFnaWMgY29va2llLCBhbmQgdXNpbmcgdGhh
dCBjb29raWUgdG8KKyAgICAgICAgaW5pdGlhbGl6ZSBhbiBBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
IG5lY2Vzc2FyeSB0byBpbnN0YW50aWF0ZSB0aGUgQ29yZUF1ZGlvCisgICAgICAgIE9wdXMgZGVj
b2Rlci4KKworICAgICAgICBUaGlzIG1hZ2ljIGNvb2tpZSByZXF1aXJlcyBpbmZvcm1hdGlvbiBi
b3RoIGZyb20gdGhlIHByaXZhdGUgY29kZWMgZGF0YSwgYnV0CisgICAgICAgIGFsc28gcmVxdWly
ZXMgaW5mb3JtYXRpb24gcGFyc2VkIGRpcmVjdGx5IGZyb20gdGhlIHN0cmVhbSBpdHNlbGY7IHVw
ZGF0ZSB0aGUKKyAgICAgICAgY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oKSB0byB0
YWtlIGZyYW1lIGRhdGEgYXMgd2VsbCBhcyBjb29raWUgZGF0YS4KKworICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om9wdXNEZWNvZGVyRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldE9wdXNEZWNv
ZGVyRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3B1c0NvbmZpZ1RvRnJhbWVEdXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpvcHVzQ29uZmlnVG9CYW5kd2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llRnJv
bU9wdXNDb2RlY1ByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNPcHVzRGVjb2RlckF2YWls
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
KToKKwogMjAyMS0wMi0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdW0dQVVBdIE1vdmUgUmVtb3RlQ29tbWFuZExpc3RlbmVyIGludG8gdGhlIEdQ
VSBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MWQ0NDI5NjU3ZjdjZTlmZjkzNzYwYjQ0MjZjMGQyZmRh
YjYwM2EuLjAxZDA1NWE4YzA1ZWNhZWY1MTFhZmVmMjA1NzYwYzMzOTBkOWEzOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMTEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVyaW1lbnRhbCBPcHVzIENvZGVjIHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTAyLTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bR1BVUF0gTW92
ZSBSZW1vdGVDb21tYW5kTGlzdGVuZXIgaW50byB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3NmE4YWJmYmEzMjQwYzM4MDJhOGMyMDQ3NTRkMjZmYjQw
NjljMzlkLi5iNThiNTgwNzg4ZGFlYmI0YmY0NTdlMWEwZDYxZjQxZTA2ZDI3MjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzY1LDYgKzM3NjUsOCBAQAogCQlDRDM4MUYy
OTI1ODE1OTFGMDA3N0RFQzggLyogV2ViS2l0VlA4RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM4MUYyODI1ODE1OTFGMDA3N0RFQzgg
LyogV2ViS2l0VlA4RGVjb2Rlci5jcHAgKi87IH07CiAJCUNEMzgxRjJCMjU4MUZFQkEwMDc3REVD
OCAvKiBXZWJLaXREZWNvZGVyUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzODFGMkEyNTgxRkVCQTAwNzdERUM4IC8qIFdlYktpdERl
Y29kZXJSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEMzgxRjJEMjU4MUZGMEIwMDc3REVDOCAvKiBX
ZWJLaXREZWNvZGVyUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMzgxRjJDMjU4MUZGMEIwMDc3REVDOCAvKiBXZWJLaXREZWNvZGVyUmVj
ZWl2ZXIuaCAqLzsgfTsKKwkJQ0RDMUY0NzYyNUNGNjlFQTAwODRDQTE2IC8qIG9wdXNfZGVmaW5l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDMUY0
NzQyNUNGNjlFNDAwODRDQTE2IC8qIG9wdXNfZGVmaW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQ0RDMUY0NzcyNUNGNkE2NDAwODRDQTE2IC8q
IG9wdXNfdHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEQzFGNDczMjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX3R5cGVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlDREVCQjRCNjI0QzAxOUM0MDBB
REJENDQgLyogdW5rbm93bl9wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREVCQjQ2NDI0QzAxOTFBMDBBREJENDQgLyogdW5rbm93bl9wYXJz
ZXIuY2MgKi87IH07CiAJCUNERUJCNEI3MjRDMDE5QzQwMEFEQkQ0NCAvKiBtYXN0ZXJfcGFyc2Vy
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQkI0
NkYyNEMwMTkxQTAwQURCRDQ0IC8qIG1hc3Rlcl9wYXJzZXIuY2MgKi87IH07CiAJCUNERUJCNEI4
MjRDMDE5QzQwMEFEQkQ0NCAvKiBibG9ja19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVCQjQ3NjI0QzAxOTFBMDBBREJENDQgLyogYmxv
Y2tfcGFyc2VyLmNjICovOyB9OwpAQCAtODE0NCw2ICs4MTQ2LDEyIEBACiAJCUNEMzgxRjI4MjU4
MTU5MUYwMDc3REVDOCAvKiBXZWJLaXRWUDhEZWNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdFZQOERlY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDM4MUYyQTI1ODFGRUJBMDA3N0RFQzggLyogV2ViS2l0RGVjb2RlclJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdERl
Y29kZXJSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzgxRjJD
MjU4MUZGMEIwMDc3REVDOCAvKiBXZWJLaXREZWNvZGVyUmVjZWl2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViS2l0RGVjb2RlclJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQzFGNDcwMjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG9wdXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMUY0NzEyNUNGNjlFNDAwODRDQTE2
IC8qIG9wdXNfbXVsdGlzdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c19tdWx0aXN0cmVhbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMxRjQ3MjI1Q0Y2OUU0MDA4NENBMTYg
Lyogb3B1c19jdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c19jdXN0b20uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMUY0NzMyNUNGNjlFNDAwODRDQTE2IC8qIG9wdXNfdHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c190eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREMxRjQ3NDI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19kZWZpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IG9wdXNfZGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REMxRjQ3NTI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19wcm9qZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IG9wdXNfcHJvamVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVC
QjExOTI0QzAxODc0MDBBREJENDQgLyogbGlid2VibS5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJ3ZWJtLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CUNERUJCMTFFMjRDMDE4OTYwMEFEQkQ0NCAvKiBsaWJ3ZWJtLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IGxpYndlYm0ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUJC
NDA1MjRDMDE5MUEwMEFEQkQ0NCAvKiByZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmVhZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM3OSw2ICsxMjM4Nyw3IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVDREQ4Q0FDMUU0M0M3MjMwMDYy
MUU5MiAvKiBjZWx0ICovLAorCQkJCUNEQzFGNDZGMjVDRjY5RTQwMDg0Q0ExNiAvKiBpbmNsdWRl
ICovLAogCQkJCTVDREQ4RDVEMUU0M0M3QzcwMDYyMUU5MiAvKiBzaWxrICovLAogCQkJCTVDNEI0
QTkyMUU0MkM1MjIwMDI2NTFDOCAvKiBzcmMgKi8sCiAJCQkpOwpAQCAtMTUwODksNiArMTUwOTgs
MTkgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCUNEQzFGNDZGMjVDRjY5RTQwMDg0Q0ExNiAvKiBpbmNsdWRlICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDREMxRjQ3MDI1Q0Y2OUU0
MDA4NENBMTYgLyogb3B1cy5oICovLAorCQkJCUNEQzFGNDcyMjVDRjY5RTQwMDg0Q0ExNiAvKiBv
cHVzX2N1c3RvbS5oICovLAorCQkJCUNEQzFGNDc0MjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX2Rl
ZmluZXMuaCAqLywKKwkJCQlDREMxRjQ3MTI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19tdWx0aXN0
cmVhbS5oICovLAorCQkJCUNEQzFGNDc1MjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX3Byb2plY3Rp
b24uaCAqLywKKwkJCQlDREMxRjQ3MzI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c190eXBlcy5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBpbmNsdWRlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJQ0RFQkIxMUYyNEMwMTkxODAwQURCRDQ0IC8qIGxpYndlYm0gKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTU1MjQsNyArMTU1NDYsOSBAQAog
CQkJCTVDNEI0QUI5MUU0MkM1NzQwMDI2NTFDOCAvKiBtbHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4RDUwMUU0M0M3OUMwMDYyMUU5MiAvKiBtb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhFNzAxRTQzQzgwQzAwNjIxRTkyIC8qIE5TUS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RD
MUY0NzYyNUNGNjlFQTAwODRDQTE2IC8qIG9wdXNfZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUM0QjRBQzExRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfcHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0RDMUY0NzcyNUNGNkE2NDAwODRDQTE2IC8qIG9wdXNfdHlwZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4RDUxMUU0M0M3OUMwMDYyMUU5MiAvKiBvc19zdXBwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REOEQ1MzFFNDNDNzlDMDA2MjFFOTIgLyogcGl0Y2guaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4RTcxMUU0M0M4MEMwMDYyMUU5MiAvKiBwaXRjaF9lc3RfZGVm
aW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODc3Miw2ICsxODc5Niw3IEBACiAJCQkJNDEzMUMx
QkYyMzRCOEE0QTAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzA0NzIzNEI4OThEMDAyOEE2MTUgLyogaWZhZGRyc19hbmRyb2lkLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNUMyMzRCODk4RDAwMjhBNjE1IC8qIGlmYWRkcnNf
Y29udmVydGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDFBNkY2QUQyNTg5NTJGMDAwNUI4QUE2
IC8qIGlsYmNfc3BlY2lmaWNfZnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEMx
QzFFNDMxRjc1MDAyNjUxQzggLyogaW5jb21pbmdfdmlkZW9fc3RyZWFtLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE0MzNDRjgxRjc5QjMzNDAwMzg3QjREIC8qIGluaXRpYWxpemUuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4QTlBMUU0M0MwMEYwMDYyMUU5MiAvKiBpbnB1dF9hdWRpb19maWxl
LmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xOTA1Miw3ICsxOTA3Nyw2IEBACiAJCQkJNDEzMUMxNUEy
MzRCODlFMjAwMjhBNjE1IC8qIHJ0Y19jZXJ0aWZpY2F0ZV9nZW5lcmF0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzJFRjIzNEI4REMyMDAyOEE2MTUgLyogcnRjX2Vycm9yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUM0NzAyMzRDODFCNjAwMjhBNjE1IC8qIHJ0Y19ldmVudC5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxQTZGNkFEMjU4OTUyRjAwMDVCOEFBNiAvKiBpbGJjX3NwZWNp
ZmljX2Z1bmN0aW9ucy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM1NUIyMzRDOEIxOTAwMjhB
NjE1IC8qIHJ0Y19ldmVudF9hbHJfc3RhdGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzU0
NzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2F1ZGlvX25ldHdvcmtfYWRhcHRhdGlvbi5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTRBMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfYXVkaW9fcGxheW91dC5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbAppbmRleCBlYjYxMmVjMjY4MDIxNGMyNzdjNmY2OWMzMzM2NDZlMDlhZTI1MWEyLi5hZmFh
MWVmMDU3Y2EwNThmNGIwYzQyZWJjNTc2OGZmYThiNWE5MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbApAQCAtNjAyLDYgKzYwMiwxOCBAQCBNb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9F
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitPcHVzRGVjb2Rl
ckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPcHVzIGF1ZGlv
IGRlY29kZXIiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBPcHVzIGF1ZGlv
IGRlY29kZXIiCisgIGNvbmRpdGlvbjogRU5BQkxFKE9QVVMpCisgIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6
CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisKIE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAppbmRleCBhY2RiMzY2YjY5NGRlYzllNzJiNTY1MWFkNjFmMmMzZmI3MzUxZDE1
Li43OGQ1ODczYTMwODkxMDIwZTVhNzcyYmM5NTBhMmViNjQxM2ZiNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC02MzcsMyArNjM3LDcgQEAKICNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCTV9GT1JNQVRfUkVBREVSKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMTAzMDAKICNkZWZpbmUgRU5BQkxFX1dFQk1fRk9STUFU
X1JFQURFUiAxCiAjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUFVTKSAmJiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisjZGVm
aW5lIEVOQUJMRV9PUFVTIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXgg
M2ZmYzYyOGVjMjA1ZGQ4NDU4ZDgwNDQ1YmI0OWU1ODBjOGFiYjYwYy4uZmQyM2Q1ZWRlNzUxNDA5
MzRhMzQ4OWNkMjM1ODgzOTcyNTdlYWJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBA
IC00Myw2ICs0MywxMCBAQCBib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6bV93ZWJN
Rm9ybWF0UmVhZGVyRW5hYmxlZDsKIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpt
X3ZvcmJpc0RlY29kZXJFbmFibGVkOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExB
VEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1fb3B1c0RlY29k
ZXJFbmFibGVkOworI2VuZGlmCisKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyPiYgc2hhcmVkUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkKIHsK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcj4+IHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKQEAgLTY1NSw2ICs2
NTksMjQgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29k
ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCitib29sIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6b3B1c0RlY29kZXJFbmFibGVkKCkKK3sKKyNpZiBFTkFCTEUoT1BVUykg
JiYgUExBVEZPUk0oTUFDKQorICAgIHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzZXRPcHVzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVO
QUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgbV9vcHVzRGVjb2RlckVuYWJsZWQgPSBl
bmFibGVkOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKwog
I2Vsc2UgLy8gRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQogCiB2b2lkIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDJiYzNjMmYyNDc0OGUxMTljYTNmZGYzNzE5ODE5
MjM5YzczODlmYzUuLjhlNzc0Y2IzZWZkNzg1NTBiZThhZmIyM2JhMjMzOTg5ZDRkM2ZiZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCB3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHZvcmJpc0RlY29kZXJFbmFibGVkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0T3B1c0RlY29kZXJFbmFibGVkKGJvb2wp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIG9wdXNEZWNvZGVyRW5hYmxlZCgpOwog
CiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkgPSBkZWZhdWx0Owog
CkBAIC0yMTUsNiArMjE3LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFU
Rk9STShNQUMpCiAgICAgc3RhdGljIGJvb2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKICNlbmRp
ZgorI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgbV9v
cHVzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIFJlZjxBZ2dyZWdhdGVMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcAppbmRleCA2OTgzMWIwMDZhODQ5NWJiNmNhY2M2ZjU5NmZjYjJlMDAxOWFiZDg2
Li44Y2JjNDZiZDcxZmUwZWMxNzZjMTY0YTRjZjI4N2JmMGMyZTZiMmQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAtMTIyMSw2ICsxMjIxLDI3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiB7CiAgICAgQVNTRVJUKHNhbXBsZUNvdW50KTsKIAorICAgIGlmIChtX3Bh
Y2tldERlc2NyaXB0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9wYWNrZXRCeXRlc1JlYWQg
PSAwOworICAgICAgICBtX2J5dGVPZmZzZXQgPSBtZXRhZGF0YS5wb3NpdGlvbjsKKyAgICAgICAg
bV9zYW1wbGVQcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKKyAgICB9CisKKyAg
ICBtX3BhY2tldERhdGEucmVzaXplKG1fcGFja2V0Qnl0ZXNSZWFkICsgbWV0YWRhdGEuc2l6ZSk7
CisgICAgc2l6ZV90IHBhY2tldERhdGFPZmZzZXQgPSBtX3BhY2tldEJ5dGVzUmVhZDsKKyAgICBz
aXplX3QgYnl0ZXNUb1JlYWQgPSBtZXRhZGF0YS5zaXplOworICAgIHdoaWxlIChieXRlc1RvUmVh
ZCkgeworICAgICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CisgICAgICAgIGF1dG8gc3RhdHVzID0g
cmVhZGVyLlJlYWQoYnl0ZXNUb1JlYWQsIG1fcGFja2V0RGF0YS5kYXRhKCkgKyBtX3BhY2tldEJ5
dGVzUmVhZCwgJmJ5dGVzUmVhZCk7CisgICAgICAgIGJ5dGVzVG9SZWFkIC09IGJ5dGVzUmVhZDsK
KyAgICAgICAgKmJ5dGVzUmVtYWluaW5nIC09IGJ5dGVzUmVhZDsKKyAgICAgICAgbV9wYWNrZXRC
eXRlc1JlYWQgKz0gYnl0ZXNSZWFkOworCisgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4ndCB5ZXQg
aGFuZGxlIHBhcnNpbmcgYSBGcmFtZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbGwgaXRzIG1lbW9yeSBh
dmFpbGFibGUuCisgICAgICAgIGlmIChzdGF0dXMuY29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtPa1Bh
cnRpYWwgfHwgc3RhdHVzLmNvZGUgPT0gd2VibTo6U3RhdHVzOjprV291bGRCbG9jaykKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlv
bigpKSB7CiAgICAgICAgIGlmICghdHJhY2soKS5jb2RlY19wcml2YXRlLmlzX3ByZXNlbnQoKSkg
ewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQXVkaW8gdHJhY2sg
bWlzc2luZyBtYWdpYyBjb29raWUiKTsKQEAgLTEyMzIsNyArMTI1Myw3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiAgICAgICAgIGlmIChjb2RlYygpID09IENvZGVjVHlwZTo6Vm9yYmlzKQog
ICAgICAgICAgICAgZm9ybWF0RGVzY3JpcHRpb24gPSBjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKHByaXZhdGVEYXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpKTsKICAgICAg
ICAgZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpCi0gICAgICAgICAgICBmb3Jt
YXREZXNjcmlwdGlvbiA9IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKHByaXZhdGVE
YXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpKTsKKyAgICAgICAgICAgIGZvcm1hdERlc2Ny
aXB0aW9uID0gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24ocHJpdmF0ZURhdGEuc2l6
ZSgpLCBwcml2YXRlRGF0YS5kYXRhKCksIG1fcGFja2V0RGF0YS5zaXplKCksIG1fcGFja2V0RGF0
YS5kYXRhKCkpOwogCiAgICAgICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkZhaWxlZCB0byBjcmVhdGUgZm9ybWF0
IGRlc2NyaXB0aW9uIGZyb20gYXVkaW8gdHJhY2sgaGVhZGVyIik7CkBAIC0xMjQ5LDI3ICsxMjcw
LDYgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRh
Ojpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgc2V0Rm9ybWF0RGVzY3JpcHRp
b24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAgIH0KIAotICAgIGlmIChtX3BhY2tl
dERlc2NyaXB0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wYWNrZXRCeXRlc1JlYWQgPSAw
OwotICAgICAgICBtX2J5dGVPZmZzZXQgPSBtZXRhZGF0YS5wb3NpdGlvbjsKLSAgICAgICAgbV9z
YW1wbGVQcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKLSAgICB9Ci0KLSAgICBt
X3BhY2tldERhdGEucmVzaXplKG1fcGFja2V0Qnl0ZXNSZWFkICsgbWV0YWRhdGEuc2l6ZSk7Ci0g
ICAgc2l6ZV90IHBhY2tldERhdGFPZmZzZXQgPSBtX3BhY2tldEJ5dGVzUmVhZDsKLSAgICBzaXpl
X3QgYnl0ZXNUb1JlYWQgPSBtZXRhZGF0YS5zaXplOwotICAgIHdoaWxlIChieXRlc1RvUmVhZCkg
ewotICAgICAgICB1aW50NjRfdCBieXRlc1JlYWQ7Ci0gICAgICAgIGF1dG8gc3RhdHVzID0gcmVh
ZGVyLlJlYWQoYnl0ZXNUb1JlYWQsIG1fcGFja2V0RGF0YS5kYXRhKCkgKyBtX3BhY2tldEJ5dGVz
UmVhZCwgJmJ5dGVzUmVhZCk7Ci0gICAgICAgIGJ5dGVzVG9SZWFkIC09IGJ5dGVzUmVhZDsKLSAg
ICAgICAgKmJ5dGVzUmVtYWluaW5nIC09IGJ5dGVzUmVhZDsKLSAgICAgICAgbV9wYWNrZXRCeXRl
c1JlYWQgKz0gYnl0ZXNSZWFkOwotCi0gICAgICAgIC8vIEZJWE1FOiBXZSBjYW4ndCB5ZXQgaGFu
ZGxlIHBhcnNpbmcgYSBGcmFtZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbGwgaXRzIG1lbW9yeSBhdmFp
bGFibGUuCi0gICAgICAgIGlmIChzdGF0dXMuY29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtPa1BhcnRp
YWwgfHwgc3RhdHVzLmNvZGUgPT0gd2VibTo6U3RhdHVzOjprV291bGRCbG9jaykKLSAgICAgICAg
ICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCiAgICAgbV9wYWNrZXREZXNjcmlwdGlvbnMuYXBw
ZW5kKHsgc3RhdGljX2Nhc3Q8aW50NjRfdD4ocGFja2V0RGF0YU9mZnNldCksIDAsIHN0YXRpY19j
YXN0PFVJbnQzMj4obWV0YWRhdGEuc2l6ZSkgfSk7CiAgICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9
IENNVGltZUdldFNlY29uZHMoQ01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1w
bGVQcmVzZW50YXRpb25UaW1lKSkgKyBDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24p
ICogc2FtcGxlQ291bnQ7CiAgICAgaWYgKHNhbXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBs
ZUR1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLmgKaW5kZXggYjFmNjM3YzAy
NGY4YzU4N2VhY2IzYjdlYTAxNzcyNjNjYTg3ODM0OS4uZWY2MTQwZGI1MjdiMjZjOGZiZjE4MTJj
MzIxNjhmOGZjNmJkZDExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5oCkBAIC0z
OCw3ICszOCw3IEBAIGJvb2wgaXNWb3JiaXNEZWNvZGVyQXZhaWxhYmxlKCk7CiBSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlVm9yYmlzQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bihzaXplX3QsIGNvbnN0IHZvaWQqKTsKIAogYm9vbCBpc09wdXNEZWNvZGVyQXZhaWxhYmxlKCk7
Ci1SZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0
RGVzY3JpcHRpb24oc2l6ZV90LCBjb25zdCB2b2lkKik7CitSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90LCBjb25z
dCB2b2lkKiwgc2l6ZV90LCBjb25zdCB2b2lkKik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGls
aXRpZXNDb2NvYS5tbQppbmRleCBkZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2
ZjYwLi43M2MxOWE4NjU5NTg2ZDdkZWQ4MGM0NGVjZDJiMDRkYzNkNmZlZjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRp
ZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzYsNiArMzYsOSBAQAogI2ltcG9ydCA8QXVk
aW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+CiAjaW1wb3J0IDxDb3JlTWVkaWEvQ01Gb3JtYXREZXNj
cmlwdGlvbi5oPgogI2ltcG9ydCA8ZGxmY24uaD4KKyNpbXBvcnQgPGxpYndlYnJ0Yy9vcHVzX2Rl
ZmluZXMuaD4KKyNpbXBvcnQgPHd0Zi9GbGlwQnl0ZXMuaD4KKyNpbXBvcnQgPHd0Zi9TZWNvbmRz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjAsNyArNjMsNyBAQCBzdGF0aWMgYm9v
bCByZWdpc3RlckRlY29kZXJGYWN0b3J5KGNvbnN0IGNoYXIqIGRlY29kZXJOYW1lLCBPU1R5cGUg
ZGVjb2RlclR5cGUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8Q01G
b3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkZvckZvcm1h
dChPU1R5cGUgZm9ybWF0SUQsIFZlY3Rvcjx1aW50OF90PiBtYWdpY0Nvb2tpZSkKK3N0YXRpYyBS
ZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkZvckZvcm1hdChPU1R5cGUgZm9ybWF0SUQsIFZlY3Rvcjx1aW50OF90PiYmIG1hZ2ljQ29v
a2llKQogewogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBhc2JkIHsgfTsKICAgICBh
c2JkLm1Gb3JtYXRJRCA9IGZvcm1hdElEOwpAQCAtNzUsMTAgKzc4LDIzOSBAQCBzdGF0aWMgUmV0
YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b25Gb3JGb3JtYXQoTwogfQogI2VuZGlmIC8vIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVT
KQogCitjb25zdGV4cHIgU2Vjb25kcyBvcHVzQ29uZmlnVG9GcmFtZUR1cmF0aW9uKHVpbnQ4X3Qg
Y29uZmlnKQoreworICAgIC8vIFJlZmVyIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmM2NzE2I3NlY3Rpb24tMzoKKyAgICAvLyBTZWN0aW9uIDMuMS4gVGhlIFRPQyBCeXRlCisgICAg
Ly8gVGFibGUgMjogVE9DIEJ5dGUgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzCisgICAgLy8gQ29s
dW1uIDQ6IEZyYW1lIFNpemVzCisgICAgY29uc3RleHByIFNlY29uZHMgZnJhbWVTaXplQXJyYXlb
XSA9IHsKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21zLAorICAgICAgICA0MF9tcywKKyAg
ICAgICAgNjBfbXMsCisgICAgICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAgNDBf
bXMsCisgICAgICAgIDYwX21zLAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAg
ICAgIDQwX21zLAorICAgICAgICA2MF9tcywKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21z
LAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgICAgIDIuNV9tcywKKyAgICAg
ICAgNV9tcywKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21zLAorICAgICAgICAyLjVfbXMs
CisgICAgICAgIDVfbXMsCisgICAgICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAg
Mi41X21zLAorICAgICAgICA1X21zLAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisg
ICAgICAgIDIuNV9tcywKKyAgICAgICAgNV9tcywKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIw
X21zLAorICAgIH07CisgICAgaWYgKGNvbmZpZyA8IHN0ZDo6c2l6ZShmcmFtZVNpemVBcnJheSkp
CisgICAgICAgIHJldHVybiBmcmFtZVNpemVBcnJheVtjb25maWddOworCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDFfbXM7Cit9CisKK2NvbnN0ZXhwciBpbnQzMl90IG9w
dXNDb25maWdUb0JhbmR3aWR0aCh1aW50OF90IGNvbmZpZykKK3sKKyAgICAvLyBSZWZlciB0byBo
dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjcxNiNzZWN0aW9uLTM6CisgICAgLy8gU2Vj
dGlvbiAzLjEuIFRoZSBUT0MgQnl0ZQorICAgIC8vIFRhYmxlIDI6IFRPQyBCeXRlIENvbmZpZ3Vy
YXRpb24gUGFyYW1ldGVycworICAgIC8vIENvbHVtbiAzOiBCYW5kd2lkdGgKKyAgICBpZiAoY29u
ZmlnIDw9IDMpCisgICAgICAgIHJldHVybiBPUFVTX0JBTkRXSURUSF9OQVJST1dCQU5EOworICAg
IGlmIChjb25maWcgPD0gNykKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX01FRElVTUJB
TkQ7CisgICAgaWYgKGNvbmZpZyA8PSAxMSkKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRI
X1dJREVCQU5EOworICAgIGlmIChjb25maWcgPD0gMTMpCisgICAgICAgIHJldHVybiBPUFVTX0JB
TkRXSURUSF9TVVBFUldJREVCQU5EOworICAgIGlmIChjb25maWcgPD0gMTUpCisgICAgICAgIHJl
dHVybiBPUFVTX0JBTkRXSURUSF9GVUxMQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDE5KQorICAg
ICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfTkFSUk9XQkFORDsKKyAgICBpZiAoY29uZmlnIDw9
IDIzKQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfV0lERUJBTkQ7CisgICAgaWYgKGNv
bmZpZyA8PSAyNykKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX1NVUEVSV0lERUJBTkQ7
CisgICAgaWYgKGNvbmZpZyA8PSAzMSkKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX0ZV
TExCQU5EOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
KwogI2lmIEVOQUJMRShPUFVTKQotc3RhdGljIFZlY3Rvcjx1aW50OF90PiBjb29raWVGcm9tT3B1
c0NvZGVjUHJpdmF0ZShzaXplX3QsIGNvbnN0IHZvaWQqKQorc3RhdGljIFZlY3Rvcjx1aW50OF90
PiBjb29raWVGcm9tT3B1c0NvZGVjUHJpdmF0ZShzaXplX3QgY29kZWNQcml2YXRlU2l6ZSwgY29u
c3Qgdm9pZCogY29kZWNQcml2YXRlRGF0YSwgc2l6ZV90IGZyYW1lU2l6ZSwgY29uc3Qgdm9pZCog
ZnJhbWVEYXRhKQogewotICAgIHJldHVybiB7IH07CisgICAgLy8gaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9odG1sL3JmYzc4NDUKKyAgICAvLyA1LiBIZWFkZXIgUGFja2V0cworICAgIC8vCisgICAg
Ly8gICAgQW4gT2dnIE9wdXMgbG9naWNhbCBzdHJlYW0gY29udGFpbnMgZXhhY3RseSB0d28gbWFu
ZGF0b3J5IGhlYWRlcgorICAgIC8vICAgIHBhY2tldHM6IGFuIGlkZW50aWZpY2F0aW9uIGhlYWRl
ciBhbmQgYSBjb21tZW50IGhlYWRlci4KKyAgICAvLworICAgIC8vIDUuMS4gSWRlbnRpZmljYXRp
b24gSGVhZGVyCisgICAgLy8KKyAgICAvLyAgICAgICAwICAgICAgICAgICAgICAgICAgIDEgICAg
ICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAgICAzCisgICAgLy8gICAgICAgMCAxIDIg
MyA0IDUgNiA3IDggOSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAx
CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgfCAgICAgICdPJyAgICAgIHwgICAg
ICAncCcgICAgICB8ICAgICAgJ3UnICAgICAgfCAgICAgICdzJyAgICAgIHwKKyAgICAvLyAgICAg
ICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rCisgICAgLy8gICAgICB8ICAgICAgJ0gnICAgICAgfCAgICAgICdlJyAgICAgIHwg
ICAgICAnYScgICAgICB8ICAgICAgJ2QnICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAg
ICAvLyAgICAgIHwgIFZlcnNpb24gPSAxICB8IENoYW5uZWwgQ291bnQgfCAgICAgICAgICAgUHJl
LXNraXAgICAgICAgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgfCAg
ICAgICAgICAgICAgICAgICAgIElucHV0IFNhbXBsZSBSYXRlIChIeikgICAgICAgICAgICAgICAg
ICAgIHwKKyAgICAvLyAgICAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgICAgLy8gICAgICB8ICAgT3V0cHV0IEdhaW4g
KFE3LjggaW4gZEIpICAgIHwgTWFwcGluZyBGYW1pbHl8ICAgICAgICAgICAgICAgfAorICAgIC8v
ICAgICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKyAg
ICAgICAgICAgICAgIDoKKyAgICAvLyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICB8ICAgICAg
ICAgICAgICAgT3B0aW9uYWwgQ2hhbm5lbCBNYXBwaW5nIFRhYmxlICAgICAgICAgICAgICAgICAg
fAorICAgIC8vICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisKKyAgICBhdXRv
KiBwcml2YXRlRGF0YVB0ciA9IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihjb2RlY1ByaXZh
dGVEYXRhKTsKKworICAgIGlmIChjb2RlY1ByaXZhdGVTaXplIDwgMTkpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICAvLyAxLiBNYWdpYyBTaWduYXR1cmU6CisgICAgLy8KKyAgICAvLyAgICAg
VGhpcyBpcyBhbiA4LW9jdGV0ICg2NC1iaXQpIGZpZWxkIHRoYXQgYWxsb3dzIGNvZGVjCisgICAg
Ly8gICAgIGlkZW50aWZpY2F0aW9uIGFuZCBpcyBodW1hbiByZWFkYWJsZS4KKyAgICBpZiAoc3Ry
bmNtcCgiT3B1c0hlYWQiLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihwcml2YXRlRGF0
YVB0ciksIDgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgLy8gMi4gVmVyc2lvbiAoOCBi
aXRzLCB1bnNpZ25lZCk6CisgICAgdWludDhfdCB2ZXJzaW9uID0gKihwcml2YXRlRGF0YVB0ciAr
IDgpOworCisgICAgLy8gMy4gT3V0cHV0IENoYW5uZWwgQ291bnQgJ0MnICg4IGJpdHMsIHVuc2ln
bmVkKToKKyAgICB1aW50OF90IGNoYW5uZWxDb3VudCA9ICoocHJpdmF0ZURhdGFQdHIgKyA5KTsK
KworICAgIC8vIDQuIFByZS1za2lwICgxNiBiaXRzLCB1bnNpZ25lZCwgbGl0dGxlIGVuZGlhbik6
CisgICAgdWludDE2X3QgcHJlU2tpcCA9IGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKCpyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQxNl90Kj4ocHJpdmF0ZURhdGFQdHIgKyAxMCksIHRydWUpOwor
CisgICAgLy8gNS4gSW5wdXQgU2FtcGxlIFJhdGUgKDMyIGJpdHMsIHVuc2lnbmVkLCBsaXR0bGUg
ZW5kaWFuKToKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlID0gZmxpcEJ5dGVzSWZMaXR0bGVFbmRp
YW4oKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihwcml2YXRlRGF0YVB0ciArIDEy
KSwgdHJ1ZSk7CisKKyAgICAvLyA2LiBPdXRwdXQgR2FpbiAoMTYgYml0cywgc2lnbmVkLCBsaXR0
bGUgZW5kaWFuKToKKyAgICBpbnQxNl90IG91dHB1dEdhaW4gPSBmbGlwQnl0ZXNJZkxpdHRsZUVu
ZGlhbigqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBpbnQxNl90Kj4ocHJpdmF0ZURhdGFQdHIgKyAx
NiksIHRydWUpOworCisgICAgLy8gNy4gQ2hhbm5lbCBNYXBwaW5nIEZhbWlseSAoOCBiaXRzLCB1
bnNpZ25lZCk6CisgICAgdWludDhfdCBtYXBwaW5nRmFtaWx5ID0gKihwcml2YXRlRGF0YVB0ciAr
IDE4KTsKKworICAgIGF1dG8gZnJhbWVQdHIgPSBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZnJhbWVEYXRhKTsKKworICAgIGlmIChmcmFtZVNpemUgPCAxKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3MTYKKyAgICAvLyAz
LjEuIFRoZSBUT0MgQnl0ZQorICAgIC8vCisgICAgLy8gICAgQSB3ZWxsLWZvcm1lZCBPcHVzIHBh
Y2tldCBNVVNUIGNvbnRhaW4gYXQgbGVhc3Qgb25lIGJ5dGUgW1IxXS4gVGhpcworICAgIC8vICAg
IGJ5dGUgZm9ybXMgYSB0YWJsZS1vZi1jb250ZW50cyAoVE9DKSBoZWFkZXIgdGhhdCBzaWduYWxz
IHdoaWNoIG9mIHRoZQorICAgIC8vICAgIHZhcmlvdXMgbW9kZXMgYW5kIGNvbmZpZ3VyYXRpb25z
IGEgZ2l2ZW4gcGFja2V0IHVzZXMuIEl0IGlzIGNvbXBvc2VkCisgICAgLy8gICAgb2YgYSBjb25m
aWd1cmF0aW9uIG51bWJlciwgImNvbmZpZyIsIGEgc3RlcmVvIGZsYWcsICJzIiwgYW5kIGEgZnJh
bWUKKyAgICAvLyAgICBjb3VudCBjb2RlLCAiYyIsIGFycmFuZ2VkIGFzIGlsbHVzdHJhdGVkIGlu
IEZpZ3VyZSAxLiBBIGRlc2NyaXB0aW9uCisgICAgLy8gICAgb2YgZWFjaCBvZiB0aGVzZSBmaWVs
ZHMgZm9sbG93cy4KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgMAorICAgIC8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAwIDEgMiAzIDQgNSA2IDcKKyAgICAvLyAgICAgICAgICAg
ICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgY29uZmlnICB8c3wgYyB8CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg
Ky0rLSstKy0rLSstKy0rLSsKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgRmlndXJlIDE6
IFRoZSBUT0MgQnl0ZQorCisgICAgdWludDhfdCB0b2NCeXRlID0gKmZyYW1lUHRyOworICAgIHVp
bnQ4X3QgY29uZmlnID0gKHRvY0J5dGUgJiAwYjExMTExMDAwKSA+PiAzOworICAgIFNlY29uZHMg
ZnJhbWVEdXJhdGlvbiA9IG9wdXNDb25maWdUb0ZyYW1lRHVyYXRpb24oY29uZmlnKTsKKyAgICBp
bnQzMl90IGJhbmR3aWR0aCA9IG9wdXNDb25maWdUb0JhbmR3aWR0aChjb25maWcpOworCisgICAg
dWludDhfdCBmcmFtZUNvdW50VmFsdWUgPSAodG9jQnl0ZSAmIDBiMDAwMDAwMTEpOworCisgICAg
dWludDhfdCBmcmFtZXNQZXJQYWNrZXQgPSAwOworICAgIGlmICghZnJhbWVDb3VudFZhbHVlKQor
ICAgICAgICBmcmFtZXNQZXJQYWNrZXQgPSAxOworICAgIGVsc2UgaWYgKGZyYW1lQ291bnRWYWx1
ZSA9PSAxIHx8IGZyYW1lQ291bnRWYWx1ZSA9PSAyKQorICAgICAgICBmcmFtZXNQZXJQYWNrZXQg
PSAyOworICAgIGVsc2UgaWYgKGZyYW1lQ291bnRWYWx1ZSA9PSAzKSB7CisgICAgICAgIC8vIDMu
Mi41LiBDb2RlIDM6IEEgU2lnbmFsZWQgTnVtYmVyIG9mIEZyYW1lcyBpbiB0aGUgUGFja2V0Cisg
ICAgICAgIC8vCisgICAgICAgIC8vICAgIENvZGUgMyBwYWNrZXRzIHNpZ25hbCB0aGUgbnVtYmVy
IG9mIGZyYW1lcywgYXMgd2VsbCBhcyBhZGRpdGlvbmFsCisgICAgICAgIC8vICAgIHBhZGRpbmcs
IGNhbGxlZCAiT3B1cyBwYWRkaW5nIiB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgcGFkZGluZyBpcyBh
ZGRlZAorICAgICAgICAvLyAgICBhdCB0aGUgT3B1cyBsYXllciByYXRoZXIgdGhhbiBhdCB0aGUg
dHJhbnNwb3J0IGxheWVyLiBDb2RlIDMgcGFja2V0cworICAgICAgICAvLyAgICBNVVNUIGhhdmUg
YXQgbGVhc3QgMiBieXRlcyBbUjYsUjddLiBUaGUgVE9DIGJ5dGUgaXMgZm9sbG93ZWQgYnkgYQor
ICAgICAgICAvLyAgICBieXRlIGVuY29kaW5nIHRoZSBudW1iZXIgb2YgZnJhbWVzIGluIHRoZSBw
YWNrZXQgaW4gYml0cyAyIHRvIDcKKyAgICAgICAgLy8gICAgKG1hcmtlZCAiTSIgaW4gRmlndXJl
IDUpLCB3aXRoIGJpdCAxIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgT3B1cworICAgICAgICAv
LyAgICBwYWRkaW5nIGlzIGluc2VydGVkIChtYXJrZWQgInAiIGluIEZpZ3VyZSA1KSwgYW5kIGJp
dCAwIGluZGljYXRpbmcKKyAgICAgICAgLy8gICAgVkJSIChtYXJrZWQgInYiIGluIEZpZ3VyZSA1
KS4gTSBNVVNUIE5PVCBiZSB6ZXJvLCBhbmQgdGhlIGF1ZGlvCisgICAgICAgIC8vICAgIGR1cmF0
aW9uIGNvbnRhaW5lZCB3aXRoaW4gYSBwYWNrZXQgTVVTVCBOT1QgZXhjZWVkIDEyMCBtcyBbUjVd
LiBUaGlzCisgICAgICAgIC8vICAgIGxpbWl0cyB0aGUgbWF4aW11bSBmcmFtZSBjb3VudCBmb3Ig
YW55IGZyYW1lIHNpemUgdG8gNDggKGZvciAyLjUgbXMKKyAgICAgICAgLy8gICAgZnJhbWVzKSwg
d2l0aCBsb3dlciBsaW1pdHMgZm9yIGxvbmdlciBmcmFtZSBzaXplcy4gRmlndXJlIDUKKyAgICAg
ICAgLy8gICAgaWxsdXN0cmF0ZXMgdGhlIGxheW91dCBvZiB0aGUgZnJhbWUgY291bnQgYnl0ZS4K
KyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAor
ICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIDEgMiAzIDQgNSA2IDcK
KyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSst
KworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx2fHB8ICAgICBNICAg
ICB8CisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0rLSstKy0rLSst
Ky0rLSsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIEZpZ3Vy
ZSA1OiBUaGUgZnJhbWUgY291bnQgYnl0ZQorICAgICAgICBpZiAoZnJhbWVTaXplIDwgMikKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgdWludDhfdCBmcmFtZUNvdW50Qnl0ZSA9
ICooZnJhbWVQdHIgKyAxKTsKKyAgICAgICAgYm9vbCBpc1ZCUiA9ICgoZnJhbWVDb3VudEJ5dGUg
JiAwYjEwMDAwMDAwKSA+PiA3KSA9PSAxOworICAgICAgICBib29sIGhhc1BhZGRpbmcgPSAoKGZy
YW1lQ291bnRCeXRlICYgMGIwMTAwMDAwMCkgPj4gNikgPT0gMTsKKyAgICAgICAgZnJhbWVzUGVy
UGFja2V0ID0gKGZyYW1lQ291bnRCeXRlICYgMGIwMDExMTExMSk7CisKKyAgICAgICAgVU5VU0VE
X1BBUkFNKGlzVkJSKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGhhc1BhZGRpbmcpOworICAgIH0K
KworICAgIFVOVVNFRF9QQVJBTSh2ZXJzaW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHJlU2tpcCk7
CisgICAgVU5VU0VEX1BBUkFNKG91dHB1dEdhaW4pOworICAgIFVOVVNFRF9QQVJBTShtYXBwaW5n
RmFtaWx5KTsKKworICAgIGF1dG8gc2FtcGxlc1BlclBhY2tldCA9IGZyYW1lc1BlclBhY2tldCAq
IChmcmFtZUR1cmF0aW9uLnNlY29uZHMoKSAqIHNhbXBsZVJhdGUpOworCisgICAgc3RydWN0IENv
cmVBdWRpb09wdXNIZWFkZXIgeworICAgICAgICB1bnNpZ25lZCBhcHBsaWNhdGlvbklEOworICAg
ICAgICB1bnNpZ25lZCBzYW1wbGVSYXRlOworICAgICAgICB1bnNpZ25lZCBwYWNrZXRGcmFtZVNp
emU7CisgICAgICAgIGludCBwYWNrZXRCYW5kd2lkdGg7CisgICAgICAgIHVuc2lnbmVkIHBhY2tl
dFN0cmVhbUNoYW5uZWxzOworICAgICAgICB1bnNpZ25lZCB1c2VJbmJhbmRGRUMgeyAxIH07Cisg
ICAgICAgIHVuc2lnbmVkIGVuY0ZpbmFsUmFuZ2UgeyAwIH07CisgICAgfTsKKworICAgIENvcmVB
dWRpb09wdXNIZWFkZXIgaGVhZGVyID0geworICAgICAgICBDRlN3YXBJbnQzMkhvc3RUb0JpZyhP
UFVTX0FQUExJQ0FUSU9OX0FVRElPKSwKKyAgICAgICAgQ0ZTd2FwSW50MzJIb3N0VG9CaWcoc2Ft
cGxlUmF0ZSksCisgICAgICAgIENGU3dhcEludDMySG9zdFRvQmlnKHNhbXBsZXNQZXJQYWNrZXQp
LAorICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KENGU3dhcEludDMySG9zdFRvQmlnKGJhbmR3aWR0
aCkpLAorICAgICAgICBDRlN3YXBJbnQzMkhvc3RUb0JpZyhjaGFubmVsQ291bnQpLAorICAgIH07
CisKKyAgICBhdXRvIG1hZ2ljQ29va2llID0gVmVjdG9yPHVpbnQ4X3Q+KHNpemVvZihDb3JlQXVk
aW9PcHVzSGVhZGVyKSk7CisgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q29yZUF1ZGlvT3B1c0hlYWRl
cio+KG1hZ2ljQ29va2llLmRhdGEoKSkgPSBoZWFkZXI7CisKKyAgICByZXR1cm4gbWFnaWNDb29r
aWU7CiB9CiAjZW5kaWYKIApAQCAtODcsNiArMzE5LDkgQEAgYm9vbCBpc09wdXNEZWNvZGVyQXZh
aWxhYmxlKCkKICAgICBzdGF0aWMgYm9vbCBhdmFpbGFibGU7CiAKICNpZiBFTkFCTEUoT1BVUykg
JiYgUExBVEZPUk0oTUFDKQorICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpv
cHVzRGVjb2RlckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgc3RhdGlj
IGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CiAgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2Vu
LCBeewogICAgICAgICBhdmFpbGFibGUgPSByZWdpc3RlckRlY29kZXJGYWN0b3J5KCJBQ09wdXNE
ZWNvZGVyRmFjdG9yeSIsICdvcHVzJyk7CkBAIC05NiwyMCArMzMxLDIyIEBAIGJvb2wgaXNPcHVz
RGVjb2RlckF2YWlsYWJsZSgpCiAgICAgcmV0dXJuIGF2YWlsYWJsZTsKIH0KIAotUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
KHNpemVfdCBwcml2YXRlRGF0YVNpemUsIGNvbnN0IHZvaWQqIHByaXZhdGVEYXRhKQorUmV0YWlu
UHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0
aW9uKHNpemVfdCBwcml2YXRlRGF0YVNpemUsIGNvbnN0IHZvaWQqIHByaXZhdGVEYXRhLCBzaXpl
X3QgZnJhbWVEYXRhU2l6ZSwgY29uc3Qgdm9pZCogZnJhbWVEYXRhKQogewogI2lmIEVOQUJMRShP
UFVTKQogICAgIGlmICghaXNPcHVzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGF1dG8gY29va2llRGF0YSA9IGNvb2tpZUZyb21PcHVzQ29kZWNQcml2
YXRlKHByaXZhdGVEYXRhU2l6ZSwgcHJpdmF0ZURhdGEpOworICAgIGF1dG8gY29va2llRGF0YSA9
IGNvb2tpZUZyb21PcHVzQ29kZWNQcml2YXRlKHByaXZhdGVEYXRhU2l6ZSwgcHJpdmF0ZURhdGEs
IGZyYW1lRGF0YVNpemUsIGZyYW1lRGF0YSk7CiAgICAgaWYgKCFjb29raWVEYXRhLnNpemUoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gY3JlYXRlQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkZvckZvcm1hdCgnb3B1cycsIGNvb2tpZURhdGEpOworICAgIHJldHVybiBjcmVh
dGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KCdvcHVzJywgV1RGTW92ZShjb29raWVE
YXRhKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwcml2YXRlRGF0YVNpemUpOwogICAgIFVO
VVNFRF9QQVJBTShwcml2YXRlRGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lRGF0YVNpemUp
OworICAgIFVOVVNFRF9QQVJBTShmcmFtZURhdGEpOwogICAgIHJldHVybiBudWxscHRyOwogI2Vu
ZGlmCiB9CkBAIC0xOTksNyArNDM2LDcgQEAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGNyZWF0ZVZvcmJpc0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXYKICAgICBp
ZiAoIWNvb2tpZURhdGEuc2l6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJl
dHVybiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KCd2b3JiJywgY29va2ll
RGF0YSk7CisgICAgcmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQo
J3ZvcmInLCBXVEZNb3ZlKGNvb2tpZURhdGEpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBy
aXZhdGVEYXRhU2l6ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHByaXZhdGVEYXRhKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGM5
NWQ1MzY4ZWViZTYwZDFiNjU3MTNmYWYzYmNjMTFjYjg2Y2IwYjEuLjUzZWY5NTk5ZTMxMTFjM2Rk
NWFjN2I5MDI2MjgwOTAzMGMxZmI0NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMzU4LDYgKzM1OCwxMCBAQCB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYQogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0Vm9y
YmlzRGVjb2RlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS52b3JiaXNEZWNvZGVyRW5hYmxlZCgpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9QVVMpICYm
IFBMQVRGT1JNKE1BQykKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldE9wdXNE
ZWNvZGVyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLm9w
dXNEZWNvZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlh
TUlNRVR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0TWVkaWFNSU1FVHlwZXMocGFyYW1ldGVy
cy5tZWRpYU1JTUVUeXBlcyk7CiAgICAgZWxzZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419992</attachid>
            <date>2021-02-11 08:32:33 -0800</date>
            <delta_ts>2021-02-11 09:25:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221745-20210211083232.patch</filename>
            <type>text/plain</type>
            <size>31467</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA3MDkxMTEyOGIwZmZmMzY0ZTk2NjNlODNmNDU5NzUzNzdkMGI3M2YyLi45ZTk5
MmE0MzMxOGVkYzdhZDQ4NmRhOGMxNDZlNWUwYjlhZTgyYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFs
IE9wdXMgQ29kZWMgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29weSBsaWJvcHVzIGhlYWRlcnMgaW50byB0aGUgbGlid2VicnRjIGhlYWRl
ciBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0wMi0wNSAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gSGlkZSBsaWJ3ZWJydGMgc3ltYm9scwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCAxNzViZjBjNTRjZTFlNTRmYjU0ZjMwZmFiMjY0OGZiMzE0NjlkNTk2Li4xY2QzYTdhYTQy
Y2I3ODhlNDRlMzIyNDA0NDFhMmUxMjE5ZGE4YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIx
LTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNd
IEFkZCBFeHBlcmltZW50YWwgT3B1cyBDb2RlYyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZXhwZXJpbWVudGFsIGZlYXR1
cmUgc2V0dGluZywgZGlzYWJsZWQgYnkgZGVmYXVsdCwgY29udHJvbGxpbmcgd2hldGhlciB0bwor
ICAgICAgICBlbmFibGUgcGFyc2luZyBvZiBPcHVzIHRyYWNrcyBmcm9tIFdlYk0gZmlsZXMuCisK
KyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWw6CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wMi0x
MCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
SEFWRShQRVBQRVJfVUlfQ09SRSkgaW5zdGVhZCBvZiBQTEFURk9STShXQVRDSE9TKSB0byBndWFy
ZCBjb2RlIHRoYXQgdXNlcyBQZXBwZXJVSUNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OWFmZDNkNzJjOGUy
YjA4NDliZGQwMmRjYmI3N2RiYzg0MzhhMmIwLi5lNDJiYWU1Nzc1MmM2N2MwMzRjYWUxMzQ1MjZj
OGY4YjdkOTUxNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDItMTEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVy
aW1lbnRhbCBPcHVzIENvZGVjIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgT3B1cyBDb2RlYyBpbiBhIFdl
Yk0gY29udGFpbmVyIGJ5IHBhcnNpbmcgdGhlIE9wdXMgcHJpdmF0ZQorICAgICAgICBjb2RlYyBk
YXRhIGludG8gYSBDb3JlQXVkaW8tc3BlY2lmaWMgbWFnaWMgY29va2llLCBhbmQgdXNpbmcgdGhh
dCBjb29raWUgdG8KKyAgICAgICAgaW5pdGlhbGl6ZSBhbiBBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
IG5lY2Vzc2FyeSB0byBpbnN0YW50aWF0ZSB0aGUgQ29yZUF1ZGlvCisgICAgICAgIE9wdXMgZGVj
b2Rlci4KKworICAgICAgICBUaGlzIG1hZ2ljIGNvb2tpZSByZXF1aXJlcyBpbmZvcm1hdGlvbiBi
b3RoIGZyb20gdGhlIHByaXZhdGUgY29kZWMgZGF0YSwgYnV0CisgICAgICAgIGFsc28gcmVxdWly
ZXMgaW5mb3JtYXRpb24gcGFyc2VkIGRpcmVjdGx5IGZyb20gdGhlIHN0cmVhbSBpdHNlbGY7IHVw
ZGF0ZSB0aGUKKyAgICAgICAgY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oKSB0byB0
YWtlIGZyYW1lIGRhdGEgYXMgd2VsbCBhcyBjb29raWUgZGF0YS4KKworICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om9wdXNEZWNvZGVyRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldE9wdXNEZWNv
ZGVyRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3B1c0NvbmZpZ1RvRnJhbWVEdXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpvcHVzQ29uZmlnVG9CYW5kd2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llRnJv
bU9wdXNDb2RlY1ByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNPcHVzRGVjb2RlckF2YWls
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
KToKKwogMjAyMS0wMi0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdW0dQVVBdIE1vdmUgUmVtb3RlQ29tbWFuZExpc3RlbmVyIGludG8gdGhlIEdQ
VSBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MWQ0NDI5NjU3ZjdjZTlmZjkzNzYwYjQ0MjZjMGQyZmRh
YjYwM2EuLjAxZDA1NWE4YzA1ZWNhZWY1MTFhZmVmMjA1NzYwYzMzOTBkOWEzOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMTEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVyaW1lbnRhbCBPcHVzIENvZGVjIHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTAyLTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bR1BVUF0gTW92
ZSBSZW1vdGVDb21tYW5kTGlzdGVuZXIgaW50byB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3NmE4YWJmYmEzMjQwYzM4MDJhOGMyMDQ3NTRkMjZmYjQw
NjljMzlkLi5iNThiNTgwNzg4ZGFlYmI0YmY0NTdlMWEwZDYxZjQxZTA2ZDI3MjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzY1LDYgKzM3NjUsOCBAQAogCQlDRDM4MUYy
OTI1ODE1OTFGMDA3N0RFQzggLyogV2ViS2l0VlA4RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM4MUYyODI1ODE1OTFGMDA3N0RFQzgg
LyogV2ViS2l0VlA4RGVjb2Rlci5jcHAgKi87IH07CiAJCUNEMzgxRjJCMjU4MUZFQkEwMDc3REVD
OCAvKiBXZWJLaXREZWNvZGVyUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzODFGMkEyNTgxRkVCQTAwNzdERUM4IC8qIFdlYktpdERl
Y29kZXJSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEMzgxRjJEMjU4MUZGMEIwMDc3REVDOCAvKiBX
ZWJLaXREZWNvZGVyUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMzgxRjJDMjU4MUZGMEIwMDc3REVDOCAvKiBXZWJLaXREZWNvZGVyUmVj
ZWl2ZXIuaCAqLzsgfTsKKwkJQ0RDMUY0NzYyNUNGNjlFQTAwODRDQTE2IC8qIG9wdXNfZGVmaW5l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDMUY0
NzQyNUNGNjlFNDAwODRDQTE2IC8qIG9wdXNfZGVmaW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQ0RDMUY0NzcyNUNGNkE2NDAwODRDQTE2IC8q
IG9wdXNfdHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEQzFGNDczMjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX3R5cGVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlDREVCQjRCNjI0QzAxOUM0MDBB
REJENDQgLyogdW5rbm93bl9wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREVCQjQ2NDI0QzAxOTFBMDBBREJENDQgLyogdW5rbm93bl9wYXJz
ZXIuY2MgKi87IH07CiAJCUNERUJCNEI3MjRDMDE5QzQwMEFEQkQ0NCAvKiBtYXN0ZXJfcGFyc2Vy
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQkI0
NkYyNEMwMTkxQTAwQURCRDQ0IC8qIG1hc3Rlcl9wYXJzZXIuY2MgKi87IH07CiAJCUNERUJCNEI4
MjRDMDE5QzQwMEFEQkQ0NCAvKiBibG9ja19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVCQjQ3NjI0QzAxOTFBMDBBREJENDQgLyogYmxv
Y2tfcGFyc2VyLmNjICovOyB9OwpAQCAtODE0NCw2ICs4MTQ2LDEyIEBACiAJCUNEMzgxRjI4MjU4
MTU5MUYwMDc3REVDOCAvKiBXZWJLaXRWUDhEZWNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdFZQOERlY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDM4MUYyQTI1ODFGRUJBMDA3N0RFQzggLyogV2ViS2l0RGVjb2RlclJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdERl
Y29kZXJSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzgxRjJD
MjU4MUZGMEIwMDc3REVDOCAvKiBXZWJLaXREZWNvZGVyUmVjZWl2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViS2l0RGVjb2RlclJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQzFGNDcwMjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG9wdXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMUY0NzEyNUNGNjlFNDAwODRDQTE2
IC8qIG9wdXNfbXVsdGlzdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c19tdWx0aXN0cmVhbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMxRjQ3MjI1Q0Y2OUU0MDA4NENBMTYg
Lyogb3B1c19jdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c19jdXN0b20uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMUY0NzMyNUNGNjlFNDAwODRDQTE2IC8qIG9wdXNfdHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c190eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREMxRjQ3NDI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19kZWZpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IG9wdXNfZGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REMxRjQ3NTI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19wcm9qZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IG9wdXNfcHJvamVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVC
QjExOTI0QzAxODc0MDBBREJENDQgLyogbGlid2VibS5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJ3ZWJtLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CUNERUJCMTFFMjRDMDE4OTYwMEFEQkQ0NCAvKiBsaWJ3ZWJtLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IGxpYndlYm0ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUJC
NDA1MjRDMDE5MUEwMEFEQkQ0NCAvKiByZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmVhZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM3OSw2ICsxMjM4Nyw3IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVDREQ4Q0FDMUU0M0M3MjMwMDYy
MUU5MiAvKiBjZWx0ICovLAorCQkJCUNEQzFGNDZGMjVDRjY5RTQwMDg0Q0ExNiAvKiBpbmNsdWRl
ICovLAogCQkJCTVDREQ4RDVEMUU0M0M3QzcwMDYyMUU5MiAvKiBzaWxrICovLAogCQkJCTVDNEI0
QTkyMUU0MkM1MjIwMDI2NTFDOCAvKiBzcmMgKi8sCiAJCQkpOwpAQCAtMTUwODksNiArMTUwOTgs
MTkgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCUNEQzFGNDZGMjVDRjY5RTQwMDg0Q0ExNiAvKiBpbmNsdWRlICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDREMxRjQ3MDI1Q0Y2OUU0
MDA4NENBMTYgLyogb3B1cy5oICovLAorCQkJCUNEQzFGNDcyMjVDRjY5RTQwMDg0Q0ExNiAvKiBv
cHVzX2N1c3RvbS5oICovLAorCQkJCUNEQzFGNDc0MjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX2Rl
ZmluZXMuaCAqLywKKwkJCQlDREMxRjQ3MTI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19tdWx0aXN0
cmVhbS5oICovLAorCQkJCUNEQzFGNDc1MjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX3Byb2plY3Rp
b24uaCAqLywKKwkJCQlDREMxRjQ3MzI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c190eXBlcy5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBpbmNsdWRlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJQ0RFQkIxMUYyNEMwMTkxODAwQURCRDQ0IC8qIGxpYndlYm0gKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTU1MjQsNyArMTU1NDYsOSBAQAog
CQkJCTVDNEI0QUI5MUU0MkM1NzQwMDI2NTFDOCAvKiBtbHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4RDUwMUU0M0M3OUMwMDYyMUU5MiAvKiBtb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhFNzAxRTQzQzgwQzAwNjIxRTkyIC8qIE5TUS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RD
MUY0NzYyNUNGNjlFQTAwODRDQTE2IC8qIG9wdXNfZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUM0QjRBQzExRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfcHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0RDMUY0NzcyNUNGNkE2NDAwODRDQTE2IC8qIG9wdXNfdHlwZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4RDUxMUU0M0M3OUMwMDYyMUU5MiAvKiBvc19zdXBwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REOEQ1MzFFNDNDNzlDMDA2MjFFOTIgLyogcGl0Y2guaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4RTcxMUU0M0M4MEMwMDYyMUU5MiAvKiBwaXRjaF9lc3RfZGVm
aW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODc3Miw2ICsxODc5Niw3IEBACiAJCQkJNDEzMUMx
QkYyMzRCOEE0QTAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzA0NzIzNEI4OThEMDAyOEE2MTUgLyogaWZhZGRyc19hbmRyb2lkLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNUMyMzRCODk4RDAwMjhBNjE1IC8qIGlmYWRkcnNf
Y29udmVydGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDFBNkY2QUQyNTg5NTJGMDAwNUI4QUE2
IC8qIGlsYmNfc3BlY2lmaWNfZnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEMx
QzFFNDMxRjc1MDAyNjUxQzggLyogaW5jb21pbmdfdmlkZW9fc3RyZWFtLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE0MzNDRjgxRjc5QjMzNDAwMzg3QjREIC8qIGluaXRpYWxpemUuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4QTlBMUU0M0MwMEYwMDYyMUU5MiAvKiBpbnB1dF9hdWRpb19maWxl
LmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xOTA1Miw3ICsxOTA3Nyw2IEBACiAJCQkJNDEzMUMxNUEy
MzRCODlFMjAwMjhBNjE1IC8qIHJ0Y19jZXJ0aWZpY2F0ZV9nZW5lcmF0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzJFRjIzNEI4REMyMDAyOEE2MTUgLyogcnRjX2Vycm9yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUM0NzAyMzRDODFCNjAwMjhBNjE1IC8qIHJ0Y19ldmVudC5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxQTZGNkFEMjU4OTUyRjAwMDVCOEFBNiAvKiBpbGJjX3NwZWNp
ZmljX2Z1bmN0aW9ucy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM1NUIyMzRDOEIxOTAwMjhB
NjE1IC8qIHJ0Y19ldmVudF9hbHJfc3RhdGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzU0
NzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2F1ZGlvX25ldHdvcmtfYWRhcHRhdGlvbi5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTRBMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfYXVkaW9fcGxheW91dC5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbAppbmRleCBlYjYxMmVjMjY4MDIxNGMyNzdjNmY2OWMzMzM2NDZlMDlhZTI1MWEyLi5hZmFh
MWVmMDU3Y2EwNThmNGIwYzQyZWJjNTc2OGZmYThiNWE5MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbApAQCAtNjAyLDYgKzYwMiwxOCBAQCBNb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9F
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitPcHVzRGVjb2Rl
ckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPcHVzIGF1ZGlv
IGRlY29kZXIiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBPcHVzIGF1ZGlv
IGRlY29kZXIiCisgIGNvbmRpdGlvbjogRU5BQkxFKE9QVVMpCisgIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6
CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisKIE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAppbmRleCBhY2RiMzY2YjY5NGRlYzllNzJiNTY1MWFkNjFmMmMzZmI3MzUxZDE1
Li43OGQ1ODczYTMwODkxMDIwZTVhNzcyYmM5NTBhMmViNjQxM2ZiNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC02MzcsMyArNjM3LDcgQEAKICNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCTV9GT1JNQVRfUkVBREVSKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMTAzMDAKICNkZWZpbmUgRU5BQkxFX1dFQk1fRk9STUFU
X1JFQURFUiAxCiAjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUFVTKSAmJiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisjZGVm
aW5lIEVOQUJMRV9PUFVTIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXgg
M2ZmYzYyOGVjMjA1ZGQ4NDU4ZDgwNDQ1YmI0OWU1ODBjOGFiYjYwYy4uZmQyM2Q1ZWRlNzUxNDA5
MzRhMzQ4OWNkMjM1ODgzOTcyNTdlYWJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBA
IC00Myw2ICs0MywxMCBAQCBib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6bV93ZWJN
Rm9ybWF0UmVhZGVyRW5hYmxlZDsKIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpt
X3ZvcmJpc0RlY29kZXJFbmFibGVkOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExB
VEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1fb3B1c0RlY29k
ZXJFbmFibGVkOworI2VuZGlmCisKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyPiYgc2hhcmVkUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkKIHsK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcj4+IHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKQEAgLTY1NSw2ICs2
NTksMjQgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29k
ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCitib29sIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6b3B1c0RlY29kZXJFbmFibGVkKCkKK3sKKyNpZiBFTkFCTEUoT1BVUykg
JiYgUExBVEZPUk0oTUFDKQorICAgIHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzZXRPcHVzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVO
QUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgbV9vcHVzRGVjb2RlckVuYWJsZWQgPSBl
bmFibGVkOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKwog
I2Vsc2UgLy8gRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQogCiB2b2lkIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDJiYzNjMmYyNDc0OGUxMTljYTNmZGYzNzE5ODE5
MjM5YzczODlmYzUuLjhlNzc0Y2IzZWZkNzg1NTBiZThhZmIyM2JhMjMzOTg5ZDRkM2ZiZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCB3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHZvcmJpc0RlY29kZXJFbmFibGVkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0T3B1c0RlY29kZXJFbmFibGVkKGJvb2wp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIG9wdXNEZWNvZGVyRW5hYmxlZCgpOwog
CiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkgPSBkZWZhdWx0Owog
CkBAIC0yMTUsNiArMjE3LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFU
Rk9STShNQUMpCiAgICAgc3RhdGljIGJvb2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKICNlbmRp
ZgorI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgbV9v
cHVzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIFJlZjxBZ2dyZWdhdGVMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcAppbmRleCA2OTgzMWIwMDZhODQ5NWJiNmNhY2M2ZjU5NmZjYjJlMDAxOWFiZDg2
Li44Y2JjNDZiZDcxZmUwZWMxNzZjMTY0YTRjZjI4N2JmMGMyZTZiMmQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAtMTIyMSw2ICsxMjIxLDI3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiB7CiAgICAgQVNTRVJUKHNhbXBsZUNvdW50KTsKIAorICAgIGlmIChtX3Bh
Y2tldERlc2NyaXB0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9wYWNrZXRCeXRlc1JlYWQg
PSAwOworICAgICAgICBtX2J5dGVPZmZzZXQgPSBtZXRhZGF0YS5wb3NpdGlvbjsKKyAgICAgICAg
bV9zYW1wbGVQcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKKyAgICB9CisKKyAg
ICBtX3BhY2tldERhdGEucmVzaXplKG1fcGFja2V0Qnl0ZXNSZWFkICsgbWV0YWRhdGEuc2l6ZSk7
CisgICAgc2l6ZV90IHBhY2tldERhdGFPZmZzZXQgPSBtX3BhY2tldEJ5dGVzUmVhZDsKKyAgICBz
aXplX3QgYnl0ZXNUb1JlYWQgPSBtZXRhZGF0YS5zaXplOworICAgIHdoaWxlIChieXRlc1RvUmVh
ZCkgeworICAgICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CisgICAgICAgIGF1dG8gc3RhdHVzID0g
cmVhZGVyLlJlYWQoYnl0ZXNUb1JlYWQsIG1fcGFja2V0RGF0YS5kYXRhKCkgKyBtX3BhY2tldEJ5
dGVzUmVhZCwgJmJ5dGVzUmVhZCk7CisgICAgICAgIGJ5dGVzVG9SZWFkIC09IGJ5dGVzUmVhZDsK
KyAgICAgICAgKmJ5dGVzUmVtYWluaW5nIC09IGJ5dGVzUmVhZDsKKyAgICAgICAgbV9wYWNrZXRC
eXRlc1JlYWQgKz0gYnl0ZXNSZWFkOworCisgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4ndCB5ZXQg
aGFuZGxlIHBhcnNpbmcgYSBGcmFtZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbGwgaXRzIG1lbW9yeSBh
dmFpbGFibGUuCisgICAgICAgIGlmIChzdGF0dXMuY29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtPa1Bh
cnRpYWwgfHwgc3RhdHVzLmNvZGUgPT0gd2VibTo6U3RhdHVzOjprV291bGRCbG9jaykKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlv
bigpKSB7CiAgICAgICAgIGlmICghdHJhY2soKS5jb2RlY19wcml2YXRlLmlzX3ByZXNlbnQoKSkg
ewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQXVkaW8gdHJhY2sg
bWlzc2luZyBtYWdpYyBjb29raWUiKTsKQEAgLTEyMzIsNyArMTI1Myw3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiAgICAgICAgIGlmIChjb2RlYygpID09IENvZGVjVHlwZTo6Vm9yYmlzKQog
ICAgICAgICAgICAgZm9ybWF0RGVzY3JpcHRpb24gPSBjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKHByaXZhdGVEYXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpKTsKICAgICAg
ICAgZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpCi0gICAgICAgICAgICBmb3Jt
YXREZXNjcmlwdGlvbiA9IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKHByaXZhdGVE
YXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpKTsKKyAgICAgICAgICAgIGZvcm1hdERlc2Ny
aXB0aW9uID0gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24ocHJpdmF0ZURhdGEuc2l6
ZSgpLCBwcml2YXRlRGF0YS5kYXRhKCksIG1fcGFja2V0RGF0YS5zaXplKCksIG1fcGFja2V0RGF0
YS5kYXRhKCkpOwogCiAgICAgICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkZhaWxlZCB0byBjcmVhdGUgZm9ybWF0
IGRlc2NyaXB0aW9uIGZyb20gYXVkaW8gdHJhY2sgaGVhZGVyIik7CkBAIC0xMjQ5LDI3ICsxMjcw
LDYgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRh
Ojpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgc2V0Rm9ybWF0RGVzY3JpcHRp
b24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAgIH0KIAotICAgIGlmIChtX3BhY2tl
dERlc2NyaXB0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wYWNrZXRCeXRlc1JlYWQgPSAw
OwotICAgICAgICBtX2J5dGVPZmZzZXQgPSBtZXRhZGF0YS5wb3NpdGlvbjsKLSAgICAgICAgbV9z
YW1wbGVQcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKLSAgICB9Ci0KLSAgICBt
X3BhY2tldERhdGEucmVzaXplKG1fcGFja2V0Qnl0ZXNSZWFkICsgbWV0YWRhdGEuc2l6ZSk7Ci0g
ICAgc2l6ZV90IHBhY2tldERhdGFPZmZzZXQgPSBtX3BhY2tldEJ5dGVzUmVhZDsKLSAgICBzaXpl
X3QgYnl0ZXNUb1JlYWQgPSBtZXRhZGF0YS5zaXplOwotICAgIHdoaWxlIChieXRlc1RvUmVhZCkg
ewotICAgICAgICB1aW50NjRfdCBieXRlc1JlYWQ7Ci0gICAgICAgIGF1dG8gc3RhdHVzID0gcmVh
ZGVyLlJlYWQoYnl0ZXNUb1JlYWQsIG1fcGFja2V0RGF0YS5kYXRhKCkgKyBtX3BhY2tldEJ5dGVz
UmVhZCwgJmJ5dGVzUmVhZCk7Ci0gICAgICAgIGJ5dGVzVG9SZWFkIC09IGJ5dGVzUmVhZDsKLSAg
ICAgICAgKmJ5dGVzUmVtYWluaW5nIC09IGJ5dGVzUmVhZDsKLSAgICAgICAgbV9wYWNrZXRCeXRl
c1JlYWQgKz0gYnl0ZXNSZWFkOwotCi0gICAgICAgIC8vIEZJWE1FOiBXZSBjYW4ndCB5ZXQgaGFu
ZGxlIHBhcnNpbmcgYSBGcmFtZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbGwgaXRzIG1lbW9yeSBhdmFp
bGFibGUuCi0gICAgICAgIGlmIChzdGF0dXMuY29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtPa1BhcnRp
YWwgfHwgc3RhdHVzLmNvZGUgPT0gd2VibTo6U3RhdHVzOjprV291bGRCbG9jaykKLSAgICAgICAg
ICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCiAgICAgbV9wYWNrZXREZXNjcmlwdGlvbnMuYXBw
ZW5kKHsgc3RhdGljX2Nhc3Q8aW50NjRfdD4ocGFja2V0RGF0YU9mZnNldCksIDAsIHN0YXRpY19j
YXN0PFVJbnQzMj4obWV0YWRhdGEuc2l6ZSkgfSk7CiAgICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9
IENNVGltZUdldFNlY29uZHMoQ01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1w
bGVQcmVzZW50YXRpb25UaW1lKSkgKyBDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24p
ICogc2FtcGxlQ291bnQ7CiAgICAgaWYgKHNhbXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBs
ZUR1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLmgKaW5kZXggYjFmNjM3YzAy
NGY4YzU4N2VhY2IzYjdlYTAxNzcyNjNjYTg3ODM0OS4uZWY2MTQwZGI1MjdiMjZjOGZiZjE4MTJj
MzIxNjhmOGZjNmJkZDExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5oCkBAIC0z
OCw3ICszOCw3IEBAIGJvb2wgaXNWb3JiaXNEZWNvZGVyQXZhaWxhYmxlKCk7CiBSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlVm9yYmlzQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bihzaXplX3QsIGNvbnN0IHZvaWQqKTsKIAogYm9vbCBpc09wdXNEZWNvZGVyQXZhaWxhYmxlKCk7
Ci1SZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0
RGVzY3JpcHRpb24oc2l6ZV90LCBjb25zdCB2b2lkKik7CitSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90LCBjb25z
dCB2b2lkKiwgc2l6ZV90LCBjb25zdCB2b2lkKik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGls
aXRpZXNDb2NvYS5tbQppbmRleCBkZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2
ZjYwLi4zYjI4ZjE1NjkzNDUyMzllOTVlMmJmYTBiNmQ3NTNhYzE2OWYyNDliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRp
ZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzYsNiArMzYsMTIgQEAKICNpbXBvcnQgPEF1
ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVz
Y3JpcHRpb24uaD4KICNpbXBvcnQgPGRsZmNuLmg+CisjaW1wb3J0IDx3dGYvRmxpcEJ5dGVzLmg+
CisjaW1wb3J0IDx3dGYvU2Vjb25kcy5oPgorCisjaWYgRU5BQkxFKE9QVVMpCisjaW1wb3J0IDxs
aWJ3ZWJydGMvb3B1c19kZWZpbmVzLmg+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02MCw3ICs2Niw3IEBAIHN0YXRpYyBib29sIHJlZ2lzdGVyRGVjb2RlckZhY3RvcnkoY29u
c3QgY2hhciogZGVjb2Rlck5hbWUsIE9TVHlwZSBkZWNvZGVyVHlwZSkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVB
dWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE9TVHlwZSBmb3JtYXRJRCwgVmVjdG9yPHVp
bnQ4X3Q+IG1hZ2ljQ29va2llKQorc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE9TVHlwZSBmb3JtYXRJ
RCwgVmVjdG9yPHVpbnQ4X3Q+JiYgbWFnaWNDb29raWUpCiB7CiAgICAgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uIGFzYmQgeyB9OwogICAgIGFzYmQubUZvcm1hdElEID0gZm9ybWF0SUQ7CkBA
IC03NSwxMCArODEsMjM5IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJl
Zj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkZvckZvcm1hdChPCiB9CiAjZW5kaWYgLy8g
RU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCiAKK2NvbnN0ZXhwciBTZWNvbmRzIG9wdXND
b25maWdUb0ZyYW1lRHVyYXRpb24odWludDhfdCBjb25maWcpCit7CisgICAgLy8gUmVmZXIgdG8g
aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3MTYjc2VjdGlvbi0zOgorICAgIC8vIFNl
Y3Rpb24gMy4xLiBUaGUgVE9DIEJ5dGUKKyAgICAvLyBUYWJsZSAyOiBUT0MgQnl0ZSBDb25maWd1
cmF0aW9uIFBhcmFtZXRlcnMKKyAgICAvLyBDb2x1bW4gNDogRnJhbWUgU2l6ZXMKKyAgICBjb25z
dGV4cHIgU2Vjb25kcyBmcmFtZVNpemVBcnJheVtdID0geworICAgICAgICAxMF9tcywKKyAgICAg
ICAgMjBfbXMsCisgICAgICAgIDQwX21zLAorICAgICAgICA2MF9tcywKKyAgICAgICAgMTBfbXMs
CisgICAgICAgIDIwX21zLAorICAgICAgICA0MF9tcywKKyAgICAgICAgNjBfbXMsCisgICAgICAg
IDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAgNDBfbXMsCisgICAgICAgIDYwX21zLAor
ICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgICAgIDEwX21zLAorICAgICAgICAy
MF9tcywKKyAgICAgICAgMi41X21zLAorICAgICAgICA1X21zLAorICAgICAgICAxMF9tcywKKyAg
ICAgICAgMjBfbXMsCisgICAgICAgIDIuNV9tcywKKyAgICAgICAgNV9tcywKKyAgICAgICAgMTBf
bXMsCisgICAgICAgIDIwX21zLAorICAgICAgICAyLjVfbXMsCisgICAgICAgIDVfbXMsCisgICAg
ICAgIDEwX21zLAorICAgICAgICAyMF9tcywKKyAgICAgICAgMi41X21zLAorICAgICAgICA1X21z
LAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAgfTsKKyAgICBpZiAoY29uZmln
IDwgc3RkOjpzaXplKGZyYW1lU2l6ZUFycmF5KSkKKyAgICAgICAgcmV0dXJuIGZyYW1lU2l6ZUFy
cmF5W2NvbmZpZ107CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMV9t
czsKK30KKworY29uc3RleHByIGludDMyX3Qgb3B1c0NvbmZpZ1RvQmFuZHdpZHRoKHVpbnQ4X3Qg
Y29uZmlnKQoreworICAgIC8vIFJlZmVyIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmM2NzE2I3NlY3Rpb24tMzoKKyAgICAvLyBTZWN0aW9uIDMuMS4gVGhlIFRPQyBCeXRlCisgICAg
Ly8gVGFibGUgMjogVE9DIEJ5dGUgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzCisgICAgLy8gQ29s
dW1uIDM6IEJhbmR3aWR0aAorICAgIGlmIChjb25maWcgPD0gMykKKyAgICAgICAgcmV0dXJuIE9Q
VVNfQkFORFdJRFRIX05BUlJPV0JBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSA3KQorICAgICAgICBy
ZXR1cm4gT1BVU19CQU5EV0lEVEhfTUVESVVNQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDExKQor
ICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfV0lERUJBTkQ7CisgICAgaWYgKGNvbmZpZyA8
PSAxMykKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX1NVUEVSV0lERUJBTkQ7CisgICAg
aWYgKGNvbmZpZyA8PSAxNSkKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJRFRIX0ZVTExCQU5E
OworICAgIGlmIChjb25maWcgPD0gMTkpCisgICAgICAgIHJldHVybiBPUFVTX0JBTkRXSURUSF9O
QVJST1dCQU5EOworICAgIGlmIChjb25maWcgPD0gMjMpCisgICAgICAgIHJldHVybiBPUFVTX0JB
TkRXSURUSF9XSURFQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDI3KQorICAgICAgICByZXR1cm4g
T1BVU19CQU5EV0lEVEhfU1VQRVJXSURFQkFORDsKKyAgICBpZiAoY29uZmlnIDw9IDMxKQorICAg
ICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfRlVMTEJBTkQ7CisKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworCiAjaWYgRU5BQkxFKE9QVVMpCi1zdGF0aWMg
VmVjdG9yPHVpbnQ4X3Q+IGNvb2tpZUZyb21PcHVzQ29kZWNQcml2YXRlKHNpemVfdCwgY29uc3Qg
dm9pZCopCitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNvb2tpZUZyb21PcHVzQ29kZWNQcml2YXRl
KHNpemVfdCBjb2RlY1ByaXZhdGVTaXplLCBjb25zdCB2b2lkKiBjb2RlY1ByaXZhdGVEYXRhLCBz
aXplX3QgZnJhbWVTaXplLCBjb25zdCB2b2lkKiBmcmFtZURhdGEpCiB7Ci0gICAgcmV0dXJuIHsg
fTsKKyAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzg0NQorICAgIC8vIDUu
IEhlYWRlciBQYWNrZXRzCisgICAgLy8KKyAgICAvLyAgICBBbiBPZ2cgT3B1cyBsb2dpY2FsIHN0
cmVhbSBjb250YWlucyBleGFjdGx5IHR3byBtYW5kYXRvcnkgaGVhZGVyCisgICAgLy8gICAgcGFj
a2V0czogYW4gaWRlbnRpZmljYXRpb24gaGVhZGVyIGFuZCBhIGNvbW1lbnQgaGVhZGVyLgorICAg
IC8vCisgICAgLy8gNS4xLiBJZGVudGlmaWNhdGlvbiBIZWFkZXIKKyAgICAvLworICAgIC8vICAg
ICAgIDAgICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAg
ICAgICAgIDMKKyAgICAvLyAgICAgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYg
NyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgICAvLyAgICAgICstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgICAg
Ly8gICAgICB8ICAgICAgJ08nICAgICAgfCAgICAgICdwJyAgICAgIHwgICAgICAndScgICAgICB8
ICAgICAgJ3MnICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgICAvLyAgICAgIHwgICAg
ICAnSCcgICAgICB8ICAgICAgJ2UnICAgICAgfCAgICAgICdhJyAgICAgIHwgICAgICAnZCcgICAg
ICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgfCAgVmVyc2lvbiA9IDEgIHwg
Q2hhbm5lbCBDb3VudCB8ICAgICAgICAgICBQcmUtc2tpcCAgICAgICAgICAgIHwKKyAgICAvLyAg
ICAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rCisgICAgLy8gICAgICB8ICAgICAgICAgICAgICAgICAgICAgSW5wdXQgU2Ft
cGxlIFJhdGUgKEh6KSAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsK
KyAgICAvLyAgICAgIHwgICBPdXRwdXQgR2FpbiAoUTcuOCBpbiBkQikgICAgfCBNYXBwaW5nIEZh
bWlseXwgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rICAgICAgICAgICAgICAgOgorICAgIC8vICAgICAg
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKKyAgICAvLyAgICAgIHwgICAgICAgICAgICAgICBPcHRpb25hbCBDaGFubmVsIE1h
cHBpbmcgVGFibGUgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAg
IC8vICAgICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSsKKworICAgIGF1dG8qIHByaXZhdGVEYXRhUHRyID0gc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGNvZGVjUHJpdmF0ZURhdGEpOworCisgICAgaWYgKGNvZGVjUHJp
dmF0ZVNpemUgPCAxOSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIC8vIDEuIE1hZ2ljIFNp
Z25hdHVyZToKKyAgICAvLworICAgIC8vICAgICBUaGlzIGlzIGFuIDgtb2N0ZXQgKDY0LWJpdCkg
ZmllbGQgdGhhdCBhbGxvd3MgY29kZWMKKyAgICAvLyAgICAgaWRlbnRpZmljYXRpb24gYW5kIGlz
IGh1bWFuIHJlYWRhYmxlLgorICAgIGlmIChzdHJuY21wKCJPcHVzSGVhZCIsIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KHByaXZhdGVEYXRhUHRyKSwgOCkpCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICAvLyAyLiBWZXJzaW9uICg4IGJpdHMsIHVuc2lnbmVkKToKKyAgICB1aW50OF90
IHZlcnNpb24gPSAqKHByaXZhdGVEYXRhUHRyICsgOCk7CisKKyAgICAvLyAzLiBPdXRwdXQgQ2hh
bm5lbCBDb3VudCAnQycgKDggYml0cywgdW5zaWduZWQpOgorICAgIHVpbnQ4X3QgY2hhbm5lbENv
dW50ID0gKihwcml2YXRlRGF0YVB0ciArIDkpOworCisgICAgLy8gNC4gUHJlLXNraXAgKDE2IGJp
dHMsIHVuc2lnbmVkLCBsaXR0bGUgZW5kaWFuKToKKyAgICB1aW50MTZfdCBwcmVTa2lwID0gZmxp
cEJ5dGVzSWZMaXR0bGVFbmRpYW4oKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihw
cml2YXRlRGF0YVB0ciArIDEwKSwgdHJ1ZSk7CisKKyAgICAvLyA1LiBJbnB1dCBTYW1wbGUgUmF0
ZSAoMzIgYml0cywgdW5zaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAgIHVpbnQzMl90IHNhbXBs
ZVJhdGUgPSBmbGlwQnl0ZXNJZkxpdHRsZUVuZGlhbigqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50MzJfdCo+KHByaXZhdGVEYXRhUHRyICsgMTIpLCB0cnVlKTsKKworICAgIC8vIDYuIE91dHB1
dCBHYWluICgxNiBiaXRzLCBzaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAgIGludDE2X3Qgb3V0
cHV0R2FpbiA9IGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKCpyZWludGVycHJldF9jYXN0PGNvbnN0
IGludDE2X3QqPihwcml2YXRlRGF0YVB0ciArIDE2KSwgdHJ1ZSk7CisKKyAgICAvLyA3LiBDaGFu
bmVsIE1hcHBpbmcgRmFtaWx5ICg4IGJpdHMsIHVuc2lnbmVkKToKKyAgICB1aW50OF90IG1hcHBp
bmdGYW1pbHkgPSAqKHByaXZhdGVEYXRhUHRyICsgMTgpOworCisgICAgYXV0byBmcmFtZVB0ciA9
IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihmcmFtZURhdGEpOworCisgICAgaWYgKGZyYW1l
U2l6ZSA8IDEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICAvLyBodHRwczovL3Rvb2xzLmll
dGYub3JnL2h0bWwvcmZjNjcxNgorICAgIC8vIDMuMS4gVGhlIFRPQyBCeXRlCisgICAgLy8KKyAg
ICAvLyAgICBBIHdlbGwtZm9ybWVkIE9wdXMgcGFja2V0IE1VU1QgY29udGFpbiBhdCBsZWFzdCBv
bmUgYnl0ZSBbUjFdLiBUaGlzCisgICAgLy8gICAgYnl0ZSBmb3JtcyBhIHRhYmxlLW9mLWNvbnRl
bnRzIChUT0MpIGhlYWRlciB0aGF0IHNpZ25hbHMgd2hpY2ggb2YgdGhlCisgICAgLy8gICAgdmFy
aW91cyBtb2RlcyBhbmQgY29uZmlndXJhdGlvbnMgYSBnaXZlbiBwYWNrZXQgdXNlcy4gSXQgaXMg
Y29tcG9zZWQKKyAgICAvLyAgICBvZiBhIGNvbmZpZ3VyYXRpb24gbnVtYmVyLCAiY29uZmlnIiwg
YSBzdGVyZW8gZmxhZywgInMiLCBhbmQgYSBmcmFtZQorICAgIC8vICAgIGNvdW50IGNvZGUsICJj
IiwgYXJyYW5nZWQgYXMgaWxsdXN0cmF0ZWQgaW4gRmlndXJlIDEuIEEgZGVzY3JpcHRpb24KKyAg
ICAvLyAgICBvZiBlYWNoIG9mIHRoZXNlIGZpZWxkcyBmb2xsb3dzLgorICAgIC8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAwCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIDAgMSAy
IDMgNCA1IDYgNworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICstKy0rLSstKy0rLSst
Ky0rCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCBjb25maWcgIHxzfCBjIHwKKyAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKworICAgIC8vICAg
ICAgICAgICAgICAgICAgICAgICBGaWd1cmUgMTogVGhlIFRPQyBCeXRlCisKKyAgICB1aW50OF90
IHRvY0J5dGUgPSAqZnJhbWVQdHI7CisgICAgdWludDhfdCBjb25maWcgPSAodG9jQnl0ZSAmIDBi
MTExMTEwMDApID4+IDM7CisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uID0gb3B1c0NvbmZpZ1Rv
RnJhbWVEdXJhdGlvbihjb25maWcpOworICAgIGludDMyX3QgYmFuZHdpZHRoID0gb3B1c0NvbmZp
Z1RvQmFuZHdpZHRoKGNvbmZpZyk7CisKKyAgICB1aW50OF90IGZyYW1lQ291bnRWYWx1ZSA9ICh0
b2NCeXRlICYgMGIwMDAwMDAxMSk7CisKKyAgICB1aW50OF90IGZyYW1lc1BlclBhY2tldCA9IDA7
CisgICAgaWYgKCFmcmFtZUNvdW50VmFsdWUpCisgICAgICAgIGZyYW1lc1BlclBhY2tldCA9IDE7
CisgICAgZWxzZSBpZiAoZnJhbWVDb3VudFZhbHVlID09IDEgfHwgZnJhbWVDb3VudFZhbHVlID09
IDIpCisgICAgICAgIGZyYW1lc1BlclBhY2tldCA9IDI7CisgICAgZWxzZSBpZiAoZnJhbWVDb3Vu
dFZhbHVlID09IDMpIHsKKyAgICAgICAgLy8gMy4yLjUuIENvZGUgMzogQSBTaWduYWxlZCBOdW1i
ZXIgb2YgRnJhbWVzIGluIHRoZSBQYWNrZXQKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgQ29k
ZSAzIHBhY2tldHMgc2lnbmFsIHRoZSBudW1iZXIgb2YgZnJhbWVzLCBhcyB3ZWxsIGFzIGFkZGl0
aW9uYWwKKyAgICAgICAgLy8gICAgcGFkZGluZywgY2FsbGVkICJPcHVzIHBhZGRpbmciIHRvIGlu
ZGljYXRlIHRoYXQgdGhpcyBwYWRkaW5nIGlzIGFkZGVkCisgICAgICAgIC8vICAgIGF0IHRoZSBP
cHVzIGxheWVyIHJhdGhlciB0aGFuIGF0IHRoZSB0cmFuc3BvcnQgbGF5ZXIuIENvZGUgMyBwYWNr
ZXRzCisgICAgICAgIC8vICAgIE1VU1QgaGF2ZSBhdCBsZWFzdCAyIGJ5dGVzIFtSNixSN10uIFRo
ZSBUT0MgYnl0ZSBpcyBmb2xsb3dlZCBieSBhCisgICAgICAgIC8vICAgIGJ5dGUgZW5jb2Rpbmcg
dGhlIG51bWJlciBvZiBmcmFtZXMgaW4gdGhlIHBhY2tldCBpbiBiaXRzIDIgdG8gNworICAgICAg
ICAvLyAgICAobWFya2VkICJNIiBpbiBGaWd1cmUgNSksIHdpdGggYml0IDEgaW5kaWNhdGluZyB3
aGV0aGVyIG9yIG5vdCBPcHVzCisgICAgICAgIC8vICAgIHBhZGRpbmcgaXMgaW5zZXJ0ZWQgKG1h
cmtlZCAicCIgaW4gRmlndXJlIDUpLCBhbmQgYml0IDAgaW5kaWNhdGluZworICAgICAgICAvLyAg
ICBWQlIgKG1hcmtlZCAidiIgaW4gRmlndXJlIDUpLiBNIE1VU1QgTk9UIGJlIHplcm8sIGFuZCB0
aGUgYXVkaW8KKyAgICAgICAgLy8gICAgZHVyYXRpb24gY29udGFpbmVkIHdpdGhpbiBhIHBhY2tl
dCBNVVNUIE5PVCBleGNlZWQgMTIwIG1zIFtSNV0uIFRoaXMKKyAgICAgICAgLy8gICAgbGltaXRz
IHRoZSBtYXhpbXVtIGZyYW1lIGNvdW50IGZvciBhbnkgZnJhbWUgc2l6ZSB0byA0OCAoZm9yIDIu
NSBtcworICAgICAgICAvLyAgICBmcmFtZXMpLCB3aXRoIGxvd2VyIGxpbWl0cyBmb3IgbG9uZ2Vy
IGZyYW1lIHNpemVzLiBGaWd1cmUgNQorICAgICAgICAvLyAgICBpbGx1c3RyYXRlcyB0aGUgbGF5
b3V0IG9mIHRoZSBmcmFtZSBjb3VudCBieXRlLgorICAgICAgICAvLworICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAgMSAyIDMgNCA1IDYgNworICAgICAgICAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICstKy0rLSstKy0rLSstKy0rCisgICAgICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfHZ8cHwgICAgIE0gICAgIHwKKyAgICAgICAgLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKworICAgICAgICAvLworICAgICAgICAv
LyAgICAgICAgICAgICAgICAgICAgICAgRmlndXJlIDU6IFRoZSBmcmFtZSBjb3VudCBieXRlCisg
ICAgICAgIGlmIChmcmFtZVNpemUgPCAyKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
ICAgICB1aW50OF90IGZyYW1lQ291bnRCeXRlID0gKihmcmFtZVB0ciArIDEpOworICAgICAgICBi
b29sIGlzVkJSID0gKChmcmFtZUNvdW50Qnl0ZSAmIDBiMTAwMDAwMDApID4+IDcpID09IDE7Cisg
ICAgICAgIGJvb2wgaGFzUGFkZGluZyA9ICgoZnJhbWVDb3VudEJ5dGUgJiAwYjAxMDAwMDAwKSA+
PiA2KSA9PSAxOworICAgICAgICBmcmFtZXNQZXJQYWNrZXQgPSAoZnJhbWVDb3VudEJ5dGUgJiAw
YjAwMTExMTExKTsKKworICAgICAgICBVTlVTRURfUEFSQU0oaXNWQlIpOworICAgICAgICBVTlVT
RURfUEFSQU0oaGFzUGFkZGluZyk7CisgICAgfQorCisgICAgVU5VU0VEX1BBUkFNKHZlcnNpb24p
OworICAgIFVOVVNFRF9QQVJBTShwcmVTa2lwKTsKKyAgICBVTlVTRURfUEFSQU0ob3V0cHV0R2Fp
bik7CisgICAgVU5VU0VEX1BBUkFNKG1hcHBpbmdGYW1pbHkpOworCisgICAgYXV0byBzYW1wbGVz
UGVyUGFja2V0ID0gZnJhbWVzUGVyUGFja2V0ICogKGZyYW1lRHVyYXRpb24uc2Vjb25kcygpICog
c2FtcGxlUmF0ZSk7CisKKyAgICBzdHJ1Y3QgQ29yZUF1ZGlvT3B1c0hlYWRlciB7CisgICAgICAg
IHVuc2lnbmVkIGFwcGxpY2F0aW9uSUQ7CisgICAgICAgIHVuc2lnbmVkIHNhbXBsZVJhdGU7Cisg
ICAgICAgIHVuc2lnbmVkIHBhY2tldEZyYW1lU2l6ZTsKKyAgICAgICAgaW50IHBhY2tldEJhbmR3
aWR0aDsKKyAgICAgICAgdW5zaWduZWQgcGFja2V0U3RyZWFtQ2hhbm5lbHM7CisgICAgICAgIHVu
c2lnbmVkIHVzZUluYmFuZEZFQyB7IDEgfTsKKyAgICAgICAgdW5zaWduZWQgZW5jRmluYWxSYW5n
ZSB7IDAgfTsKKyAgICB9OworCisgICAgQ29yZUF1ZGlvT3B1c0hlYWRlciBoZWFkZXIgPSB7Cisg
ICAgICAgIENGU3dhcEludDMySG9zdFRvQmlnKE9QVVNfQVBQTElDQVRJT05fQVVESU8pLAorICAg
ICAgICBDRlN3YXBJbnQzMkhvc3RUb0JpZyhzYW1wbGVSYXRlKSwKKyAgICAgICAgQ0ZTd2FwSW50
MzJIb3N0VG9CaWcoc2FtcGxlc1BlclBhY2tldCksCisgICAgICAgIHN0YXRpY19jYXN0PGludD4o
Q0ZTd2FwSW50MzJIb3N0VG9CaWcoYmFuZHdpZHRoKSksCisgICAgICAgIENGU3dhcEludDMySG9z
dFRvQmlnKGNoYW5uZWxDb3VudCksCisgICAgfTsKKworICAgIGF1dG8gbWFnaWNDb29raWUgPSBW
ZWN0b3I8dWludDhfdD4oc2l6ZW9mKENvcmVBdWRpb09wdXNIZWFkZXIpKTsKKyAgICAqcmVpbnRl
cnByZXRfY2FzdDxDb3JlQXVkaW9PcHVzSGVhZGVyKj4obWFnaWNDb29raWUuZGF0YSgpKSA9IGhl
YWRlcjsKKworICAgIHJldHVybiBtYWdpY0Nvb2tpZTsKIH0KICNlbmRpZgogCkBAIC04Nyw2ICsz
MjIsOSBAQCBib29sIGlzT3B1c0RlY29kZXJBdmFpbGFibGUoKQogICAgIHN0YXRpYyBib29sIGF2
YWlsYWJsZTsKIAogI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgaWYgKCFQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om9wdXNEZWNvZGVyRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsK
ICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAgICAgICAgIGF2YWlsYWJsZSA9IHJl
Z2lzdGVyRGVjb2RlckZhY3RvcnkoIkFDT3B1c0RlY29kZXJGYWN0b3J5IiwgJ29wdXMnKTsKQEAg
LTk2LDIwICszMzQsMjIgQEAgYm9vbCBpc09wdXNEZWNvZGVyQXZhaWxhYmxlKCkKICAgICByZXR1
cm4gYXZhaWxhYmxlOwogfQogCi1SZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3Jl
YXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXZhdGVEYXRhU2l6ZSwgY29u
c3Qgdm9pZCogcHJpdmF0ZURhdGEpCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4g
Y3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXZhdGVEYXRhU2l6ZSwg
Y29uc3Qgdm9pZCogcHJpdmF0ZURhdGEsIHNpemVfdCBmcmFtZURhdGFTaXplLCBjb25zdCB2b2lk
KiBmcmFtZURhdGEpCiB7CiAjaWYgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFpc09wdXNEZWNvZGVy
QXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBjb29raWVE
YXRhID0gY29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUocHJpdmF0ZURhdGFTaXplLCBwcml2YXRl
RGF0YSk7CisgICAgYXV0byBjb29raWVEYXRhID0gY29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUo
cHJpdmF0ZURhdGFTaXplLCBwcml2YXRlRGF0YSwgZnJhbWVEYXRhU2l6ZSwgZnJhbWVEYXRhKTsK
ICAgICBpZiAoIWNvb2tpZURhdGEuc2l6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIHJldHVybiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KCdvcHVzJywg
Y29va2llRGF0YSk7CisgICAgcmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JG
b3JtYXQoJ29wdXMnLCBXVEZNb3ZlKGNvb2tpZURhdGEpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHByaXZhdGVEYXRhU2l6ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHByaXZhdGVEYXRhKTsKKyAg
ICBVTlVTRURfUEFSQU0oZnJhbWVEYXRhU2l6ZSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lRGF0
YSk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KQEAgLTE5OSw3ICs0MzksNyBAQCBS
ZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlVm9yYmlzQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbihzaXplX3QgcHJpdgogICAgIGlmICghY29va2llRGF0YS5zaXplKCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25Gb3JGb3JtYXQoJ3ZvcmInLCBjb29raWVEYXRhKTsKKyAgICByZXR1cm4gY3JlYXRlQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkZvckZvcm1hdCgndm9yYicsIFdURk1vdmUoY29va2llRGF0YSkp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocHJpdmF0ZURhdGFTaXplKTsKICAgICBVTlVTRURf
UEFSQU0ocHJpdmF0ZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggYzk1ZDUzNjhlZWJlNjBkMWI2NTcxM2ZhZjNiY2Mx
MWNiODZjYjBiMS4uNTNlZjk1OTllMzExMWMzZGQ1YWM3YjkwMjYyODA5MDMwYzFmYjQ2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CkBAIC0zNTgsNiArMzU4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnZvcmJpc0RlY29kZXJFbmFibGVkKCkpOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExBVEZPUk0oTUFDKQorICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0T3B1c0RlY29kZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkub3B1c0RlY29kZXJFbmFibGVkKCkpOworI2VuZGlm
CisKICAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAgICAg
ICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBlbHNl
IHsK
</data>
<flag name="commit-queue"
          id="438382"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419999</attachid>
            <date>2021-02-11 09:22:12 -0800</date>
            <delta_ts>2021-02-11 16:08:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221745-20210211092211.patch</filename>
            <type>text/plain</type>
            <size>31461</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA3MDkxMTEyOGIwZmZmMzY0ZTk2NjNlODNmNDU5NzUzNzdkMGI3M2YyLi45ZTk5
MmE0MzMxOGVkYzdhZDQ4NmRhOGMxNDZlNWUwYjlhZTgyYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBBZGQgRXhwZXJpbWVudGFs
IE9wdXMgQ29kZWMgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxNzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ29weSBsaWJvcHVzIGhlYWRlcnMgaW50byB0aGUgbGlid2VicnRjIGhlYWRl
ciBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0wMi0wNSAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gSGlkZSBsaWJ3ZWJydGMgc3ltYm9scwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCAxNzViZjBjNTRjZTFlNTRmYjU0ZjMwZmFiMjY0OGZiMzE0NjlkNTk2Li4xY2QzYTdhYTQy
Y2I3ODhlNDRlMzIyNDA0NDFhMmUxMjE5ZGE4YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIx
LTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNd
IEFkZCBFeHBlcmltZW50YWwgT3B1cyBDb2RlYyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZXhwZXJpbWVudGFsIGZlYXR1
cmUgc2V0dGluZywgZGlzYWJsZWQgYnkgZGVmYXVsdCwgY29udHJvbGxpbmcgd2hldGhlciB0bwor
ICAgICAgICBlbmFibGUgcGFyc2luZyBvZiBPcHVzIHRyYWNrcyBmcm9tIFdlYk0gZmlsZXMuCisK
KyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWw6CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wMi0x
MCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
SEFWRShQRVBQRVJfVUlfQ09SRSkgaW5zdGVhZCBvZiBQTEFURk9STShXQVRDSE9TKSB0byBndWFy
ZCBjb2RlIHRoYXQgdXNlcyBQZXBwZXJVSUNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OWFmZDNkNzJjOGUy
YjA4NDliZGQwMmRjYmI3N2RiYzg0MzhhMmIwLi5lNDJiYWU1Nzc1MmM2N2MwMzRjYWUxMzQ1MjZj
OGY4YjdkOTUxNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDItMTEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVy
aW1lbnRhbCBPcHVzIENvZGVjIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMTc0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgT3B1cyBDb2RlYyBpbiBhIFdl
Yk0gY29udGFpbmVyIGJ5IHBhcnNpbmcgdGhlIE9wdXMgcHJpdmF0ZQorICAgICAgICBjb2RlYyBk
YXRhIGludG8gYSBDb3JlQXVkaW8tc3BlY2lmaWMgbWFnaWMgY29va2llLCBhbmQgdXNpbmcgdGhh
dCBjb29raWUgdG8KKyAgICAgICAgaW5pdGlhbGl6ZSBhbiBBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
IG5lY2Vzc2FyeSB0byBpbnN0YW50aWF0ZSB0aGUgQ29yZUF1ZGlvCisgICAgICAgIE9wdXMgZGVj
b2Rlci4KKworICAgICAgICBUaGlzIG1hZ2ljIGNvb2tpZSByZXF1aXJlcyBpbmZvcm1hdGlvbiBi
b3RoIGZyb20gdGhlIHByaXZhdGUgY29kZWMgZGF0YSwgYnV0CisgICAgICAgIGFsc28gcmVxdWly
ZXMgaW5mb3JtYXRpb24gcGFyc2VkIGRpcmVjdGx5IGZyb20gdGhlIHN0cmVhbSBpdHNlbGY7IHVw
ZGF0ZSB0aGUKKyAgICAgICAgY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oKSB0byB0
YWtlIGZyYW1lIGRhdGEgYXMgd2VsbCBhcyBjb29raWUgZGF0YS4KKworICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om9wdXNEZWNvZGVyRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldE9wdXNEZWNv
ZGVyRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3B1c0NvbmZpZ1RvRnJhbWVEdXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpvcHVzQ29uZmlnVG9CYW5kd2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llRnJv
bU9wdXNDb2RlY1ByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNPcHVzRGVjb2RlckF2YWls
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHVzQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
KToKKwogMjAyMS0wMi0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdW0dQVVBdIE1vdmUgUmVtb3RlQ29tbWFuZExpc3RlbmVyIGludG8gdGhlIEdQ
VSBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5MWQ0NDI5NjU3ZjdjZTlmZjkzNzYwYjQ0MjZjMGQyZmRh
YjYwM2EuLjAxZDA1NWE4YzA1ZWNhZWY1MTFhZmVmMjA1NzYwYzMzOTBkOWEzOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMTEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW01hY10gQWRkIEV4cGVyaW1lbnRhbCBPcHVzIENvZGVjIHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTAyLTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bR1BVUF0gTW92
ZSBSZW1vdGVDb21tYW5kTGlzdGVuZXIgaW50byB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3NmE4YWJmYmEzMjQwYzM4MDJhOGMyMDQ3NTRkMjZmYjQw
NjljMzlkLi5iNThiNTgwNzg4ZGFlYmI0YmY0NTdlMWEwZDYxZjQxZTA2ZDI3MjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzY1LDYgKzM3NjUsOCBAQAogCQlDRDM4MUYy
OTI1ODE1OTFGMDA3N0RFQzggLyogV2ViS2l0VlA4RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM4MUYyODI1ODE1OTFGMDA3N0RFQzgg
LyogV2ViS2l0VlA4RGVjb2Rlci5jcHAgKi87IH07CiAJCUNEMzgxRjJCMjU4MUZFQkEwMDc3REVD
OCAvKiBXZWJLaXREZWNvZGVyUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzODFGMkEyNTgxRkVCQTAwNzdERUM4IC8qIFdlYktpdERl
Y29kZXJSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEMzgxRjJEMjU4MUZGMEIwMDc3REVDOCAvKiBX
ZWJLaXREZWNvZGVyUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMzgxRjJDMjU4MUZGMEIwMDc3REVDOCAvKiBXZWJLaXREZWNvZGVyUmVj
ZWl2ZXIuaCAqLzsgfTsKKwkJQ0RDMUY0NzYyNUNGNjlFQTAwODRDQTE2IC8qIG9wdXNfZGVmaW5l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDMUY0
NzQyNUNGNjlFNDAwODRDQTE2IC8qIG9wdXNfZGVmaW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQ0RDMUY0NzcyNUNGNkE2NDAwODRDQTE2IC8q
IG9wdXNfdHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEQzFGNDczMjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX3R5cGVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlDREVCQjRCNjI0QzAxOUM0MDBB
REJENDQgLyogdW5rbm93bl9wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREVCQjQ2NDI0QzAxOTFBMDBBREJENDQgLyogdW5rbm93bl9wYXJz
ZXIuY2MgKi87IH07CiAJCUNERUJCNEI3MjRDMDE5QzQwMEFEQkQ0NCAvKiBtYXN0ZXJfcGFyc2Vy
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQkI0
NkYyNEMwMTkxQTAwQURCRDQ0IC8qIG1hc3Rlcl9wYXJzZXIuY2MgKi87IH07CiAJCUNERUJCNEI4
MjRDMDE5QzQwMEFEQkQ0NCAvKiBibG9ja19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVCQjQ3NjI0QzAxOTFBMDBBREJENDQgLyogYmxv
Y2tfcGFyc2VyLmNjICovOyB9OwpAQCAtODE0NCw2ICs4MTQ2LDEyIEBACiAJCUNEMzgxRjI4MjU4
MTU5MUYwMDc3REVDOCAvKiBXZWJLaXRWUDhEZWNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdFZQOERlY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDM4MUYyQTI1ODFGRUJBMDA3N0RFQzggLyogV2ViS2l0RGVjb2RlclJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdERl
Y29kZXJSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzgxRjJD
MjU4MUZGMEIwMDc3REVDOCAvKiBXZWJLaXREZWNvZGVyUmVjZWl2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViS2l0RGVjb2RlclJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQzFGNDcwMjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG9wdXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMUY0NzEyNUNGNjlFNDAwODRDQTE2
IC8qIG9wdXNfbXVsdGlzdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c19tdWx0aXN0cmVhbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMxRjQ3MjI1Q0Y2OUU0MDA4NENBMTYg
Lyogb3B1c19jdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c19jdXN0b20uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMUY0NzMyNUNGNjlFNDAwODRDQTE2IC8qIG9wdXNfdHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gb3B1c190eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREMxRjQ3NDI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19kZWZpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IG9wdXNfZGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REMxRjQ3NTI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19wcm9qZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IG9wdXNfcHJvamVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVC
QjExOTI0QzAxODc0MDBBREJENDQgLyogbGlid2VibS5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJ3ZWJtLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CUNERUJCMTFFMjRDMDE4OTYwMEFEQkQ0NCAvKiBsaWJ3ZWJtLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IGxpYndlYm0ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUJC
NDA1MjRDMDE5MUEwMEFEQkQ0NCAvKiByZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmVhZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM3OSw2ICsxMjM4Nyw3IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVDREQ4Q0FDMUU0M0M3MjMwMDYy
MUU5MiAvKiBjZWx0ICovLAorCQkJCUNEQzFGNDZGMjVDRjY5RTQwMDg0Q0ExNiAvKiBpbmNsdWRl
ICovLAogCQkJCTVDREQ4RDVEMUU0M0M3QzcwMDYyMUU5MiAvKiBzaWxrICovLAogCQkJCTVDNEI0
QTkyMUU0MkM1MjIwMDI2NTFDOCAvKiBzcmMgKi8sCiAJCQkpOwpAQCAtMTUwODksNiArMTUwOTgs
MTkgQEAKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCUNEQzFGNDZGMjVDRjY5RTQwMDg0Q0ExNiAvKiBpbmNsdWRlICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDREMxRjQ3MDI1Q0Y2OUU0
MDA4NENBMTYgLyogb3B1cy5oICovLAorCQkJCUNEQzFGNDcyMjVDRjY5RTQwMDg0Q0ExNiAvKiBv
cHVzX2N1c3RvbS5oICovLAorCQkJCUNEQzFGNDc0MjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX2Rl
ZmluZXMuaCAqLywKKwkJCQlDREMxRjQ3MTI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c19tdWx0aXN0
cmVhbS5oICovLAorCQkJCUNEQzFGNDc1MjVDRjY5RTQwMDg0Q0ExNiAvKiBvcHVzX3Byb2plY3Rp
b24uaCAqLywKKwkJCQlDREMxRjQ3MzI1Q0Y2OUU0MDA4NENBMTYgLyogb3B1c190eXBlcy5oICov
LAorCQkJKTsKKwkJCXBhdGggPSBpbmNsdWRlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJQ0RFQkIxMUYyNEMwMTkxODAwQURCRDQ0IC8qIGxpYndlYm0gKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTU1MjQsNyArMTU1NDYsOSBAQAog
CQkJCTVDNEI0QUI5MUU0MkM1NzQwMDI2NTFDOCAvKiBtbHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4RDUwMUU0M0M3OUMwMDYyMUU5MiAvKiBtb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhFNzAxRTQzQzgwQzAwNjIxRTkyIC8qIE5TUS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RD
MUY0NzYyNUNGNjlFQTAwODRDQTE2IC8qIG9wdXNfZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUM0QjRBQzExRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXNfcHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0RDMUY0NzcyNUNGNkE2NDAwODRDQTE2IC8qIG9wdXNfdHlwZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4RDUxMUU0M0M3OUMwMDYyMUU5MiAvKiBvc19zdXBwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REOEQ1MzFFNDNDNzlDMDA2MjFFOTIgLyogcGl0Y2guaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4RTcxMUU0M0M4MEMwMDYyMUU5MiAvKiBwaXRjaF9lc3RfZGVm
aW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODc3Miw2ICsxODc5Niw3IEBACiAJCQkJNDEzMUMx
QkYyMzRCOEE0QTAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzA0NzIzNEI4OThEMDAyOEE2MTUgLyogaWZhZGRyc19hbmRyb2lkLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNUMyMzRCODk4RDAwMjhBNjE1IC8qIGlmYWRkcnNf
Y29udmVydGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDFBNkY2QUQyNTg5NTJGMDAwNUI4QUE2
IC8qIGlsYmNfc3BlY2lmaWNfZnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEMx
QzFFNDMxRjc1MDAyNjUxQzggLyogaW5jb21pbmdfdmlkZW9fc3RyZWFtLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE0MzNDRjgxRjc5QjMzNDAwMzg3QjREIC8qIGluaXRpYWxpemUuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4QTlBMUU0M0MwMEYwMDYyMUU5MiAvKiBpbnB1dF9hdWRpb19maWxl
LmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xOTA1Miw3ICsxOTA3Nyw2IEBACiAJCQkJNDEzMUMxNUEy
MzRCODlFMjAwMjhBNjE1IC8qIHJ0Y19jZXJ0aWZpY2F0ZV9nZW5lcmF0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzJFRjIzNEI4REMyMDAyOEE2MTUgLyogcnRjX2Vycm9yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUM0NzAyMzRDODFCNjAwMjhBNjE1IC8qIHJ0Y19ldmVudC5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxQTZGNkFEMjU4OTUyRjAwMDVCOEFBNiAvKiBpbGJjX3NwZWNp
ZmljX2Z1bmN0aW9ucy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM1NUIyMzRDOEIxOTAwMjhB
NjE1IC8qIHJ0Y19ldmVudF9hbHJfc3RhdGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzU0
NzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2F1ZGlvX25ldHdvcmtfYWRhcHRhdGlvbi5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTRBMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfYXVkaW9fcGxheW91dC5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbAppbmRleCBlYjYxMmVjMjY4MDIxNGMyNzdjNmY2OWMzMzM2NDZlMDlhZTI1MWEyLi5hZmFh
MWVmMDU3Y2EwNThmNGIwYzQyZWJjNTc2OGZmYThiNWE5MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbApAQCAtNjAyLDYgKzYwMiwxOCBAQCBNb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9F
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitPcHVzRGVjb2Rl
ckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPcHVzIGF1ZGlv
IGRlY29kZXIiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBPcHVzIGF1ZGlv
IGRlY29kZXIiCisgIGNvbmRpdGlvbjogRU5BQkxFKE9QVVMpCisgIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6
CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisKIE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAppbmRleCBhY2RiMzY2YjY5NGRlYzllNzJiNTY1MWFkNjFmMmMzZmI3MzUxZDE1
Li43OGQ1ODczYTMwODkxMDIwZTVhNzcyYmM5NTBhMmViNjQxM2ZiNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC02MzcsMyArNjM3LDcgQEAKICNpZiAhZGVmaW5lZChF
TkFCTEVfV0VCTV9GT1JNQVRfUkVBREVSKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMTAzMDAKICNkZWZpbmUgRU5BQkxFX1dFQk1fRk9STUFU
X1JFQURFUiAxCiAjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9PUFVTKSAmJiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisjZGVm
aW5lIEVOQUJMRV9PUFVTIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXgg
M2ZmYzYyOGVjMjA1ZGQ4NDU4ZDgwNDQ1YmI0OWU1ODBjOGFiYjYwYy4uZmQyM2Q1ZWRlNzUxNDA5
MzRhMzQ4OWNkMjM1ODgzOTcyNTdlYWJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBA
IC00Myw2ICs0MywxMCBAQCBib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6bV93ZWJN
Rm9ybWF0UmVhZGVyRW5hYmxlZDsKIGJvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpt
X3ZvcmJpc0RlY29kZXJFbmFibGVkOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExB
VEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1fb3B1c0RlY29k
ZXJFbmFibGVkOworI2VuZGlmCisKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyPiYgc2hhcmVkUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkKIHsK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcj4+IHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjsKQEAgLTY1NSw2ICs2
NTksMjQgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29k
ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCitib29sIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6b3B1c0RlY29kZXJFbmFibGVkKCkKK3sKKyNpZiBFTkFCTEUoT1BVUykg
JiYgUExBVEZPUk0oTUFDKQorICAgIHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzZXRPcHVzRGVjb2RlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVO
QUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgbV9vcHVzRGVjb2RlckVuYWJsZWQgPSBl
bmFibGVkOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKwog
I2Vsc2UgLy8gRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQogCiB2b2lkIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDJiYzNjMmYyNDc0OGUxMTljYTNmZGYzNzE5ODE5
MjM5YzczODlmYzUuLjhlNzc0Y2IzZWZkNzg1NTBiZThhZmIyM2JhMjMzOTg5ZDRkM2ZiZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCB3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHZvcmJpc0RlY29kZXJFbmFibGVkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0T3B1c0RlY29kZXJFbmFibGVkKGJvb2wp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIG9wdXNEZWNvZGVyRW5hYmxlZCgpOwog
CiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkgPSBkZWZhdWx0Owog
CkBAIC0yMTUsNiArMjE3LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFU
Rk9STShNQUMpCiAgICAgc3RhdGljIGJvb2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKICNlbmRp
ZgorI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJvb2wgbV9v
cHVzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIFJlZjxBZ2dyZWdhdGVMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcAppbmRleCA2OTgzMWIwMDZhODQ5NWJiNmNhY2M2ZjU5NmZjYjJlMDAxOWFiZDg2
Li44Y2JjNDZiZDcxZmUwZWMxNzZjMTY0YTRjZjI4N2JmMGMyZTZiMmQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAtMTIyMSw2ICsxMjIxLDI3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiB7CiAgICAgQVNTRVJUKHNhbXBsZUNvdW50KTsKIAorICAgIGlmIChtX3Bh
Y2tldERlc2NyaXB0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9wYWNrZXRCeXRlc1JlYWQg
PSAwOworICAgICAgICBtX2J5dGVPZmZzZXQgPSBtZXRhZGF0YS5wb3NpdGlvbjsKKyAgICAgICAg
bV9zYW1wbGVQcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKKyAgICB9CisKKyAg
ICBtX3BhY2tldERhdGEucmVzaXplKG1fcGFja2V0Qnl0ZXNSZWFkICsgbWV0YWRhdGEuc2l6ZSk7
CisgICAgc2l6ZV90IHBhY2tldERhdGFPZmZzZXQgPSBtX3BhY2tldEJ5dGVzUmVhZDsKKyAgICBz
aXplX3QgYnl0ZXNUb1JlYWQgPSBtZXRhZGF0YS5zaXplOworICAgIHdoaWxlIChieXRlc1RvUmVh
ZCkgeworICAgICAgICB1aW50NjRfdCBieXRlc1JlYWQ7CisgICAgICAgIGF1dG8gc3RhdHVzID0g
cmVhZGVyLlJlYWQoYnl0ZXNUb1JlYWQsIG1fcGFja2V0RGF0YS5kYXRhKCkgKyBtX3BhY2tldEJ5
dGVzUmVhZCwgJmJ5dGVzUmVhZCk7CisgICAgICAgIGJ5dGVzVG9SZWFkIC09IGJ5dGVzUmVhZDsK
KyAgICAgICAgKmJ5dGVzUmVtYWluaW5nIC09IGJ5dGVzUmVhZDsKKyAgICAgICAgbV9wYWNrZXRC
eXRlc1JlYWQgKz0gYnl0ZXNSZWFkOworCisgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4ndCB5ZXQg
aGFuZGxlIHBhcnNpbmcgYSBGcmFtZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbGwgaXRzIG1lbW9yeSBh
dmFpbGFibGUuCisgICAgICAgIGlmIChzdGF0dXMuY29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtPa1Bh
cnRpYWwgfHwgc3RhdHVzLmNvZGUgPT0gd2VibTo6U3RhdHVzOjprV291bGRCbG9jaykKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlv
bigpKSB7CiAgICAgICAgIGlmICghdHJhY2soKS5jb2RlY19wcml2YXRlLmlzX3ByZXNlbnQoKSkg
ewogICAgICAgICAgICAgUEFSU0VSX0xPR19FUlJPUl9JRl9QT1NTSUJMRSgiQXVkaW8gdHJhY2sg
bWlzc2luZyBtYWdpYyBjb29raWUiKTsKQEAgLTEyMzIsNyArMTI1Myw3IEBAIHdlYm06OlN0YXR1
cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpBdWRpb1RyYWNrRGF0YTo6Y29uc3VtZUZyYW1lRGF0
YSh3ZWJtOjpSZWFkCiAgICAgICAgIGlmIChjb2RlYygpID09IENvZGVjVHlwZTo6Vm9yYmlzKQog
ICAgICAgICAgICAgZm9ybWF0RGVzY3JpcHRpb24gPSBjcmVhdGVWb3JiaXNBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKHByaXZhdGVEYXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpKTsKICAgICAg
ICAgZWxzZSBpZiAoY29kZWMoKSA9PSBDb2RlY1R5cGU6Ok9wdXMpCi0gICAgICAgICAgICBmb3Jt
YXREZXNjcmlwdGlvbiA9IGNyZWF0ZU9wdXNBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKHByaXZhdGVE
YXRhLnNpemUoKSwgcHJpdmF0ZURhdGEuZGF0YSgpKTsKKyAgICAgICAgICAgIGZvcm1hdERlc2Ny
aXB0aW9uID0gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24ocHJpdmF0ZURhdGEuc2l6
ZSgpLCBwcml2YXRlRGF0YS5kYXRhKCksIG1fcGFja2V0RGF0YS5zaXplKCksIG1fcGFja2V0RGF0
YS5kYXRhKCkpOwogCiAgICAgICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pIHsKICAgICAgICAg
ICAgIFBBUlNFUl9MT0dfRVJST1JfSUZfUE9TU0lCTEUoIkZhaWxlZCB0byBjcmVhdGUgZm9ybWF0
IGRlc2NyaXB0aW9uIGZyb20gYXVkaW8gdHJhY2sgaGVhZGVyIik7CkBAIC0xMjQ5LDI3ICsxMjcw
LDYgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkF1ZGlvVHJhY2tEYXRh
Ojpjb25zdW1lRnJhbWVEYXRhKHdlYm06OlJlYWQKICAgICAgICAgc2V0Rm9ybWF0RGVzY3JpcHRp
b24oV1RGTW92ZShmb3JtYXREZXNjcmlwdGlvbikpOwogICAgIH0KIAotICAgIGlmIChtX3BhY2tl
dERlc2NyaXB0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wYWNrZXRCeXRlc1JlYWQgPSAw
OwotICAgICAgICBtX2J5dGVPZmZzZXQgPSBtZXRhZGF0YS5wb3NpdGlvbjsKLSAgICAgICAgbV9z
YW1wbGVQcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKLSAgICB9Ci0KLSAgICBt
X3BhY2tldERhdGEucmVzaXplKG1fcGFja2V0Qnl0ZXNSZWFkICsgbWV0YWRhdGEuc2l6ZSk7Ci0g
ICAgc2l6ZV90IHBhY2tldERhdGFPZmZzZXQgPSBtX3BhY2tldEJ5dGVzUmVhZDsKLSAgICBzaXpl
X3QgYnl0ZXNUb1JlYWQgPSBtZXRhZGF0YS5zaXplOwotICAgIHdoaWxlIChieXRlc1RvUmVhZCkg
ewotICAgICAgICB1aW50NjRfdCBieXRlc1JlYWQ7Ci0gICAgICAgIGF1dG8gc3RhdHVzID0gcmVh
ZGVyLlJlYWQoYnl0ZXNUb1JlYWQsIG1fcGFja2V0RGF0YS5kYXRhKCkgKyBtX3BhY2tldEJ5dGVz
UmVhZCwgJmJ5dGVzUmVhZCk7Ci0gICAgICAgIGJ5dGVzVG9SZWFkIC09IGJ5dGVzUmVhZDsKLSAg
ICAgICAgKmJ5dGVzUmVtYWluaW5nIC09IGJ5dGVzUmVhZDsKLSAgICAgICAgbV9wYWNrZXRCeXRl
c1JlYWQgKz0gYnl0ZXNSZWFkOwotCi0gICAgICAgIC8vIEZJWE1FOiBXZSBjYW4ndCB5ZXQgaGFu
ZGxlIHBhcnNpbmcgYSBGcmFtZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhbGwgaXRzIG1lbW9yeSBhdmFp
bGFibGUuCi0gICAgICAgIGlmIChzdGF0dXMuY29kZSA9PSB3ZWJtOjpTdGF0dXM6OmtPa1BhcnRp
YWwgfHwgc3RhdHVzLmNvZGUgPT0gd2VibTo6U3RhdHVzOjprV291bGRCbG9jaykKLSAgICAgICAg
ICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCiAgICAgbV9wYWNrZXREZXNjcmlwdGlvbnMuYXBw
ZW5kKHsgc3RhdGljX2Nhc3Q8aW50NjRfdD4ocGFja2V0RGF0YU9mZnNldCksIDAsIHN0YXRpY19j
YXN0PFVJbnQzMj4obWV0YWRhdGEuc2l6ZSkgfSk7CiAgICAgYXV0byBzYW1wbGVEdXJhdGlvbiA9
IENNVGltZUdldFNlY29uZHMoQ01UaW1lU3VidHJhY3QocHJlc2VudGF0aW9uVGltZSwgbV9zYW1w
bGVQcmVzZW50YXRpb25UaW1lKSkgKyBDTVRpbWVHZXRTZWNvbmRzKG1fcGFja2V0RHVyYXRpb24p
ICogc2FtcGxlQ291bnQ7CiAgICAgaWYgKHNhbXBsZUR1cmF0aW9uID49IG1fbWluaW11bVNhbXBs
ZUR1cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGllc0NvY29hLmgKaW5kZXggYjFmNjM3YzAy
NGY4YzU4N2VhY2IzYjdlYTAxNzcyNjNjYTg3ODM0OS4uZWY2MTQwZGI1MjdiMjZjOGZiZjE4MTJj
MzIxNjhmOGZjNmJkZDExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5oCkBAIC0z
OCw3ICszOCw3IEBAIGJvb2wgaXNWb3JiaXNEZWNvZGVyQXZhaWxhYmxlKCk7CiBSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlVm9yYmlzQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bihzaXplX3QsIGNvbnN0IHZvaWQqKTsKIAogYm9vbCBpc09wdXNEZWNvZGVyQXZhaWxhYmxlKCk7
Ci1SZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0
RGVzY3JpcHRpb24oc2l6ZV90LCBjb25zdCB2b2lkKik7CitSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlT3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90LCBjb25z
dCB2b2lkKiwgc2l6ZV90LCBjb25zdCB2b2lkKik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGls
aXRpZXNDb2NvYS5tbQppbmRleCBkZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2
ZjYwLi4zYjFiMTg4ZmUxODhmMzI4ODNjMzJhNDI3ZmFhNWRmNTlhMzdiZGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRp
ZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzYsNiArMzYsMTIgQEAKICNpbXBvcnQgPEF1
ZGlvVG9vbGJveC9BdWRpb0Zvcm1hdC5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVz
Y3JpcHRpb24uaD4KICNpbXBvcnQgPGRsZmNuLmg+CisjaW1wb3J0IDx3dGYvRmxpcEJ5dGVzLmg+
CisjaW1wb3J0IDx3dGYvU2Vjb25kcy5oPgorCisjaWYgRU5BQkxFKE9QVVMpCisjaW1wb3J0IDxs
aWJ3ZWJydGMvb3B1c19kZWZpbmVzLmg+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02MCw3ICs2Niw3IEBAIHN0YXRpYyBib29sIHJlZ2lzdGVyRGVjb2RlckZhY3RvcnkoY29u
c3QgY2hhciogZGVjb2Rlck5hbWUsIE9TVHlwZSBkZWNvZGVyVHlwZSkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVB
dWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE9TVHlwZSBmb3JtYXRJRCwgVmVjdG9yPHVp
bnQ4X3Q+IG1hZ2ljQ29va2llKQorc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE9TVHlwZSBmb3JtYXRJ
RCwgVmVjdG9yPHVpbnQ4X3Q+JiYgbWFnaWNDb29raWUpCiB7CiAgICAgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uIGFzYmQgeyB9OwogICAgIGFzYmQubUZvcm1hdElEID0gZm9ybWF0SUQ7CkBA
IC03Niw5ICs4MiwyMzcgQEAgc3RhdGljIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVm
PiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KE8KICNlbmRpZiAvLyBFTkFC
TEUoVk9SQklTKSB8fCBFTkFCTEUoT1BVUykKIAogI2lmIEVOQUJMRShPUFVTKQotc3RhdGljIFZl
Y3Rvcjx1aW50OF90PiBjb29raWVGcm9tT3B1c0NvZGVjUHJpdmF0ZShzaXplX3QsIGNvbnN0IHZv
aWQqKQorY29uc3RleHByIFNlY29uZHMgb3B1c0NvbmZpZ1RvRnJhbWVEdXJhdGlvbih1aW50OF90
IGNvbmZpZykKIHsKLSAgICByZXR1cm4geyB9OworICAgIC8vIFJlZmVyIHRvIGh0dHBzOi8vdG9v
bHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzE2I3NlY3Rpb24tMzoKKyAgICAvLyBTZWN0aW9uIDMuMS4g
VGhlIFRPQyBCeXRlCisgICAgLy8gVGFibGUgMjogVE9DIEJ5dGUgQ29uZmlndXJhdGlvbiBQYXJh
bWV0ZXJzCisgICAgLy8gQ29sdW1uIDQ6IEZyYW1lIFNpemVzCisgICAgY29uc3RleHByIFNlY29u
ZHMgZnJhbWVTaXplQXJyYXlbXSA9IHsKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21zLAor
ICAgICAgICA0MF9tcywKKyAgICAgICAgNjBfbXMsCisgICAgICAgIDEwX21zLAorICAgICAgICAy
MF9tcywKKyAgICAgICAgNDBfbXMsCisgICAgICAgIDYwX21zLAorICAgICAgICAxMF9tcywKKyAg
ICAgICAgMjBfbXMsCisgICAgICAgIDQwX21zLAorICAgICAgICA2MF9tcywKKyAgICAgICAgMTBf
bXMsCisgICAgICAgIDIwX21zLAorICAgICAgICAxMF9tcywKKyAgICAgICAgMjBfbXMsCisgICAg
ICAgIDIuNV9tcywKKyAgICAgICAgNV9tcywKKyAgICAgICAgMTBfbXMsCisgICAgICAgIDIwX21z
LAorICAgICAgICAyLjVfbXMsCisgICAgICAgIDVfbXMsCisgICAgICAgIDEwX21zLAorICAgICAg
ICAyMF9tcywKKyAgICAgICAgMi41X21zLAorICAgICAgICA1X21zLAorICAgICAgICAxMF9tcywK
KyAgICAgICAgMjBfbXMsCisgICAgICAgIDIuNV9tcywKKyAgICAgICAgNV9tcywKKyAgICAgICAg
MTBfbXMsCisgICAgICAgIDIwX21zLAorICAgIH07CisgICAgaWYgKGNvbmZpZyA8IHN0ZDo6c2l6
ZShmcmFtZVNpemVBcnJheSkpCisgICAgICAgIHJldHVybiBmcmFtZVNpemVBcnJheVtjb25maWdd
OworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDFfbXM7Cit9CisKK2Nv
bnN0ZXhwciBpbnQzMl90IG9wdXNDb25maWdUb0JhbmR3aWR0aCh1aW50OF90IGNvbmZpZykKK3sK
KyAgICAvLyBSZWZlciB0byBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjcxNiNzZWN0
aW9uLTM6CisgICAgLy8gU2VjdGlvbiAzLjEuIFRoZSBUT0MgQnl0ZQorICAgIC8vIFRhYmxlIDI6
IFRPQyBCeXRlIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycworICAgIC8vIENvbHVtbiAzOiBCYW5k
d2lkdGgKKyAgICBpZiAoY29uZmlnIDw9IDMpCisgICAgICAgIHJldHVybiBPUFVTX0JBTkRXSURU
SF9OQVJST1dCQU5EOworICAgIGlmIChjb25maWcgPD0gNykKKyAgICAgICAgcmV0dXJuIE9QVVNf
QkFORFdJRFRIX01FRElVTUJBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSAxMSkKKyAgICAgICAgcmV0
dXJuIE9QVVNfQkFORFdJRFRIX1dJREVCQU5EOworICAgIGlmIChjb25maWcgPD0gMTMpCisgICAg
ICAgIHJldHVybiBPUFVTX0JBTkRXSURUSF9TVVBFUldJREVCQU5EOworICAgIGlmIChjb25maWcg
PD0gMTUpCisgICAgICAgIHJldHVybiBPUFVTX0JBTkRXSURUSF9GVUxMQkFORDsKKyAgICBpZiAo
Y29uZmlnIDw9IDE5KQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfTkFSUk9XQkFORDsK
KyAgICBpZiAoY29uZmlnIDw9IDIzKQorICAgICAgICByZXR1cm4gT1BVU19CQU5EV0lEVEhfV0lE
RUJBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSAyNykKKyAgICAgICAgcmV0dXJuIE9QVVNfQkFORFdJ
RFRIX1NVUEVSV0lERUJBTkQ7CisgICAgaWYgKGNvbmZpZyA8PSAzMSkKKyAgICAgICAgcmV0dXJu
IE9QVVNfQkFORFdJRFRIX0ZVTExCQU5EOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBWZWN0b3I8dWludDhfdD4gY29va2llRnJvbU9wdXND
b2RlY1ByaXZhdGUoc2l6ZV90IGNvZGVjUHJpdmF0ZVNpemUsIGNvbnN0IHZvaWQqIGNvZGVjUHJp
dmF0ZURhdGEsIHNpemVfdCBmcmFtZVNpemUsIGNvbnN0IHZvaWQqIGZyYW1lRGF0YSkKK3sKKyAg
ICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzg0NQorICAgIC8vIDUuIEhlYWRl
ciBQYWNrZXRzCisgICAgLy8KKyAgICAvLyAgICBBbiBPZ2cgT3B1cyBsb2dpY2FsIHN0cmVhbSBj
b250YWlucyBleGFjdGx5IHR3byBtYW5kYXRvcnkgaGVhZGVyCisgICAgLy8gICAgcGFja2V0czog
YW4gaWRlbnRpZmljYXRpb24gaGVhZGVyIGFuZCBhIGNvbW1lbnQgaGVhZGVyLgorICAgIC8vCisg
ICAgLy8gNS4xLiBJZGVudGlmaWNhdGlvbiBIZWFkZXIKKyAgICAvLworICAgIC8vICAgICAgIDAg
ICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgICAg
IDMKKyAgICAvLyAgICAgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkg
MCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgICAvLyAgICAgICstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgICAgLy8gICAg
ICB8ICAgICAgJ08nICAgICAgfCAgICAgICdwJyAgICAgIHwgICAgICAndScgICAgICB8ICAgICAg
J3MnICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgICAvLyAgICAgIHwgICAgICAnSCcg
ICAgICB8ICAgICAgJ2UnICAgICAgfCAgICAgICdhJyAgICAgIHwgICAgICAnZCcgICAgICB8Cisg
ICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgfCAgVmVyc2lvbiA9IDEgIHwgQ2hhbm5l
bCBDb3VudCB8ICAgICAgICAgICBQcmUtc2tpcCAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rCisgICAgLy8gICAgICB8ICAgICAgICAgICAgICAgICAgICAgSW5wdXQgU2FtcGxlIFJh
dGUgKEh6KSAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgICAv
LyAgICAgIHwgICBPdXRwdXQgR2FpbiAoUTcuOCBpbiBkQikgICAgfCBNYXBwaW5nIEZhbWlseXwg
ICAgICAgICAgICAgICB8CisgICAgLy8gICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rICAgICAgICAgICAgICAgOgorICAgIC8vICAgICAgfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwKKyAgICAvLyAgICAgIHwgICAgICAgICAgICAgICBPcHRpb25hbCBDaGFubmVsIE1hcHBpbmcg
VGFibGUgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAg
ICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSsKKworICAgIGF1dG8qIHByaXZhdGVEYXRhUHRyID0gc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGNvZGVjUHJpdmF0ZURhdGEpOworCisgICAgaWYgKGNvZGVjUHJpdmF0ZVNp
emUgPCAxOSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIC8vIDEuIE1hZ2ljIFNpZ25hdHVy
ZToKKyAgICAvLworICAgIC8vICAgICBUaGlzIGlzIGFuIDgtb2N0ZXQgKDY0LWJpdCkgZmllbGQg
dGhhdCBhbGxvd3MgY29kZWMKKyAgICAvLyAgICAgaWRlbnRpZmljYXRpb24gYW5kIGlzIGh1bWFu
IHJlYWRhYmxlLgorICAgIGlmIChzdHJuY21wKCJPcHVzSGVhZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KHByaXZhdGVEYXRhUHRyKSwgOCkpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICAvLyAyLiBWZXJzaW9uICg4IGJpdHMsIHVuc2lnbmVkKToKKyAgICB1aW50OF90IHZlcnNp
b24gPSAqKHByaXZhdGVEYXRhUHRyICsgOCk7CisKKyAgICAvLyAzLiBPdXRwdXQgQ2hhbm5lbCBD
b3VudCAnQycgKDggYml0cywgdW5zaWduZWQpOgorICAgIHVpbnQ4X3QgY2hhbm5lbENvdW50ID0g
Kihwcml2YXRlRGF0YVB0ciArIDkpOworCisgICAgLy8gNC4gUHJlLXNraXAgKDE2IGJpdHMsIHVu
c2lnbmVkLCBsaXR0bGUgZW5kaWFuKToKKyAgICB1aW50MTZfdCBwcmVTa2lwID0gZmxpcEJ5dGVz
SWZMaXR0bGVFbmRpYW4oKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihwcml2YXRl
RGF0YVB0ciArIDEwKSwgdHJ1ZSk7CisKKyAgICAvLyA1LiBJbnB1dCBTYW1wbGUgUmF0ZSAoMzIg
Yml0cywgdW5zaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAgIHVpbnQzMl90IHNhbXBsZVJhdGUg
PSBmbGlwQnl0ZXNJZkxpdHRsZUVuZGlhbigqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJf
dCo+KHByaXZhdGVEYXRhUHRyICsgMTIpLCB0cnVlKTsKKworICAgIC8vIDYuIE91dHB1dCBHYWlu
ICgxNiBiaXRzLCBzaWduZWQsIGxpdHRsZSBlbmRpYW4pOgorICAgIGludDE2X3Qgb3V0cHV0R2Fp
biA9IGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKCpyZWludGVycHJldF9jYXN0PGNvbnN0IGludDE2
X3QqPihwcml2YXRlRGF0YVB0ciArIDE2KSwgdHJ1ZSk7CisKKyAgICAvLyA3LiBDaGFubmVsIE1h
cHBpbmcgRmFtaWx5ICg4IGJpdHMsIHVuc2lnbmVkKToKKyAgICB1aW50OF90IG1hcHBpbmdGYW1p
bHkgPSAqKHByaXZhdGVEYXRhUHRyICsgMTgpOworCisgICAgYXV0byBmcmFtZVB0ciA9IHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQ4X3QqPihmcmFtZURhdGEpOworCisgICAgaWYgKGZyYW1lU2l6ZSA8
IDEpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvcmZjNjcxNgorICAgIC8vIDMuMS4gVGhlIFRPQyBCeXRlCisgICAgLy8KKyAgICAvLyAg
ICBBIHdlbGwtZm9ybWVkIE9wdXMgcGFja2V0IE1VU1QgY29udGFpbiBhdCBsZWFzdCBvbmUgYnl0
ZSBbUjFdLiBUaGlzCisgICAgLy8gICAgYnl0ZSBmb3JtcyBhIHRhYmxlLW9mLWNvbnRlbnRzIChU
T0MpIGhlYWRlciB0aGF0IHNpZ25hbHMgd2hpY2ggb2YgdGhlCisgICAgLy8gICAgdmFyaW91cyBt
b2RlcyBhbmQgY29uZmlndXJhdGlvbnMgYSBnaXZlbiBwYWNrZXQgdXNlcy4gSXQgaXMgY29tcG9z
ZWQKKyAgICAvLyAgICBvZiBhIGNvbmZpZ3VyYXRpb24gbnVtYmVyLCAiY29uZmlnIiwgYSBzdGVy
ZW8gZmxhZywgInMiLCBhbmQgYSBmcmFtZQorICAgIC8vICAgIGNvdW50IGNvZGUsICJjIiwgYXJy
YW5nZWQgYXMgaWxsdXN0cmF0ZWQgaW4gRmlndXJlIDEuIEEgZGVzY3JpcHRpb24KKyAgICAvLyAg
ICBvZiBlYWNoIG9mIHRoZXNlIGZpZWxkcyBmb2xsb3dzLgorICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgICAgICAwCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgIDAgMSAyIDMgNCA1
IDYgNworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICstKy0rLSstKy0rLSstKy0rCisg
ICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCBjb25maWcgIHxzfCBjIHwKKyAgICAvLyAg
ICAgICAgICAgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKworICAgIC8vICAgICAgICAg
ICAgICAgICAgICAgICBGaWd1cmUgMTogVGhlIFRPQyBCeXRlCisKKyAgICB1aW50OF90IHRvY0J5
dGUgPSAqZnJhbWVQdHI7CisgICAgdWludDhfdCBjb25maWcgPSAodG9jQnl0ZSAmIDBiMTExMTEw
MDApID4+IDM7CisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uID0gb3B1c0NvbmZpZ1RvRnJhbWVE
dXJhdGlvbihjb25maWcpOworICAgIGludDMyX3QgYmFuZHdpZHRoID0gb3B1c0NvbmZpZ1RvQmFu
ZHdpZHRoKGNvbmZpZyk7CisKKyAgICB1aW50OF90IGZyYW1lQ291bnRWYWx1ZSA9ICh0b2NCeXRl
ICYgMGIwMDAwMDAxMSk7CisKKyAgICB1aW50OF90IGZyYW1lc1BlclBhY2tldCA9IDA7CisgICAg
aWYgKCFmcmFtZUNvdW50VmFsdWUpCisgICAgICAgIGZyYW1lc1BlclBhY2tldCA9IDE7CisgICAg
ZWxzZSBpZiAoZnJhbWVDb3VudFZhbHVlID09IDEgfHwgZnJhbWVDb3VudFZhbHVlID09IDIpCisg
ICAgICAgIGZyYW1lc1BlclBhY2tldCA9IDI7CisgICAgZWxzZSBpZiAoZnJhbWVDb3VudFZhbHVl
ID09IDMpIHsKKyAgICAgICAgLy8gMy4yLjUuIENvZGUgMzogQSBTaWduYWxlZCBOdW1iZXIgb2Yg
RnJhbWVzIGluIHRoZSBQYWNrZXQKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgQ29kZSAzIHBh
Y2tldHMgc2lnbmFsIHRoZSBudW1iZXIgb2YgZnJhbWVzLCBhcyB3ZWxsIGFzIGFkZGl0aW9uYWwK
KyAgICAgICAgLy8gICAgcGFkZGluZywgY2FsbGVkICJPcHVzIHBhZGRpbmciIHRvIGluZGljYXRl
IHRoYXQgdGhpcyBwYWRkaW5nIGlzIGFkZGVkCisgICAgICAgIC8vICAgIGF0IHRoZSBPcHVzIGxh
eWVyIHJhdGhlciB0aGFuIGF0IHRoZSB0cmFuc3BvcnQgbGF5ZXIuIENvZGUgMyBwYWNrZXRzCisg
ICAgICAgIC8vICAgIE1VU1QgaGF2ZSBhdCBsZWFzdCAyIGJ5dGVzIFtSNixSN10uIFRoZSBUT0Mg
Ynl0ZSBpcyBmb2xsb3dlZCBieSBhCisgICAgICAgIC8vICAgIGJ5dGUgZW5jb2RpbmcgdGhlIG51
bWJlciBvZiBmcmFtZXMgaW4gdGhlIHBhY2tldCBpbiBiaXRzIDIgdG8gNworICAgICAgICAvLyAg
ICAobWFya2VkICJNIiBpbiBGaWd1cmUgNSksIHdpdGggYml0IDEgaW5kaWNhdGluZyB3aGV0aGVy
IG9yIG5vdCBPcHVzCisgICAgICAgIC8vICAgIHBhZGRpbmcgaXMgaW5zZXJ0ZWQgKG1hcmtlZCAi
cCIgaW4gRmlndXJlIDUpLCBhbmQgYml0IDAgaW5kaWNhdGluZworICAgICAgICAvLyAgICBWQlIg
KG1hcmtlZCAidiIgaW4gRmlndXJlIDUpLiBNIE1VU1QgTk9UIGJlIHplcm8sIGFuZCB0aGUgYXVk
aW8KKyAgICAgICAgLy8gICAgZHVyYXRpb24gY29udGFpbmVkIHdpdGhpbiBhIHBhY2tldCBNVVNU
IE5PVCBleGNlZWQgMTIwIG1zIFtSNV0uIFRoaXMKKyAgICAgICAgLy8gICAgbGltaXRzIHRoZSBt
YXhpbXVtIGZyYW1lIGNvdW50IGZvciBhbnkgZnJhbWUgc2l6ZSB0byA0OCAoZm9yIDIuNSBtcwor
ICAgICAgICAvLyAgICBmcmFtZXMpLCB3aXRoIGxvd2VyIGxpbWl0cyBmb3IgbG9uZ2VyIGZyYW1l
IHNpemVzLiBGaWd1cmUgNQorICAgICAgICAvLyAgICBpbGx1c3RyYXRlcyB0aGUgbGF5b3V0IG9m
IHRoZSBmcmFtZSBjb3VudCBieXRlLgorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAgMSAyIDMgNCA1IDYgNworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICstKy0rLSstKy0rLSstKy0rCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfHZ8cHwgICAgIE0gICAgIHwKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArLSstKy0rLSstKy0rLSstKworICAgICAgICAvLworICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgRmlndXJlIDU6IFRoZSBmcmFtZSBjb3VudCBieXRlCisgICAgICAg
IGlmIChmcmFtZVNpemUgPCAyKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICB1
aW50OF90IGZyYW1lQ291bnRCeXRlID0gKihmcmFtZVB0ciArIDEpOworICAgICAgICBib29sIGlz
VkJSID0gKChmcmFtZUNvdW50Qnl0ZSAmIDBiMTAwMDAwMDApID4+IDcpID09IDE7CisgICAgICAg
IGJvb2wgaGFzUGFkZGluZyA9ICgoZnJhbWVDb3VudEJ5dGUgJiAwYjAxMDAwMDAwKSA+PiA2KSA9
PSAxOworICAgICAgICBmcmFtZXNQZXJQYWNrZXQgPSAoZnJhbWVDb3VudEJ5dGUgJiAwYjAwMTEx
MTExKTsKKworICAgICAgICBVTlVTRURfUEFSQU0oaXNWQlIpOworICAgICAgICBVTlVTRURfUEFS
QU0oaGFzUGFkZGluZyk7CisgICAgfQorCisgICAgVU5VU0VEX1BBUkFNKHZlcnNpb24pOworICAg
IFVOVVNFRF9QQVJBTShwcmVTa2lwKTsKKyAgICBVTlVTRURfUEFSQU0ob3V0cHV0R2Fpbik7Cisg
ICAgVU5VU0VEX1BBUkFNKG1hcHBpbmdGYW1pbHkpOworCisgICAgYXV0byBzYW1wbGVzUGVyUGFj
a2V0ID0gZnJhbWVzUGVyUGFja2V0ICogKGZyYW1lRHVyYXRpb24uc2Vjb25kcygpICogc2FtcGxl
UmF0ZSk7CisKKyAgICBzdHJ1Y3QgQ29yZUF1ZGlvT3B1c0hlYWRlciB7CisgICAgICAgIHVuc2ln
bmVkIGFwcGxpY2F0aW9uSUQ7CisgICAgICAgIHVuc2lnbmVkIHNhbXBsZVJhdGU7CisgICAgICAg
IHVuc2lnbmVkIHBhY2tldEZyYW1lU2l6ZTsKKyAgICAgICAgaW50IHBhY2tldEJhbmR3aWR0aDsK
KyAgICAgICAgdW5zaWduZWQgcGFja2V0U3RyZWFtQ2hhbm5lbHM7CisgICAgICAgIHVuc2lnbmVk
IHVzZUluYmFuZEZFQyB7IDEgfTsKKyAgICAgICAgdW5zaWduZWQgZW5jRmluYWxSYW5nZSB7IDAg
fTsKKyAgICB9OworCisgICAgQ29yZUF1ZGlvT3B1c0hlYWRlciBoZWFkZXIgPSB7CisgICAgICAg
IENGU3dhcEludDMySG9zdFRvQmlnKE9QVVNfQVBQTElDQVRJT05fQVVESU8pLAorICAgICAgICBD
RlN3YXBJbnQzMkhvc3RUb0JpZyhzYW1wbGVSYXRlKSwKKyAgICAgICAgQ0ZTd2FwSW50MzJIb3N0
VG9CaWcoc2FtcGxlc1BlclBhY2tldCksCisgICAgICAgIHN0YXRpY19jYXN0PGludD4oQ0ZTd2Fw
SW50MzJIb3N0VG9CaWcoYmFuZHdpZHRoKSksCisgICAgICAgIENGU3dhcEludDMySG9zdFRvQmln
KGNoYW5uZWxDb3VudCksCisgICAgfTsKKworICAgIGF1dG8gbWFnaWNDb29raWUgPSBWZWN0b3I8
dWludDhfdD4oc2l6ZW9mKENvcmVBdWRpb09wdXNIZWFkZXIpKTsKKyAgICAqcmVpbnRlcnByZXRf
Y2FzdDxDb3JlQXVkaW9PcHVzSGVhZGVyKj4obWFnaWNDb29raWUuZGF0YSgpKSA9IGhlYWRlcjsK
KworICAgIHJldHVybiBtYWdpY0Nvb2tpZTsKIH0KICNlbmRpZgogCkBAIC04Nyw2ICszMjEsOSBA
QCBib29sIGlzT3B1c0RlY29kZXJBdmFpbGFibGUoKQogICAgIHN0YXRpYyBib29sIGF2YWlsYWJs
ZTsKIAogI2lmIEVOQUJMRShPUFVTKSAmJiBQTEFURk9STShNQUMpCisgICAgaWYgKCFQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om9wdXNEZWNvZGVyRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKICAgICBk
aXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CiAgICAgICAgIGF2YWlsYWJsZSA9IHJlZ2lzdGVy
RGVjb2RlckZhY3RvcnkoIkFDT3B1c0RlY29kZXJGYWN0b3J5IiwgJ29wdXMnKTsKQEAgLTk2LDIw
ICszMzMsMjIgQEAgYm9vbCBpc09wdXNEZWNvZGVyQXZhaWxhYmxlKCkKICAgICByZXR1cm4gYXZh
aWxhYmxlOwogfQogCi1SZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlT3B1
c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXZhdGVEYXRhU2l6ZSwgY29uc3Qgdm9p
ZCogcHJpdmF0ZURhdGEpCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRl
T3B1c0F1ZGlvRm9ybWF0RGVzY3JpcHRpb24oc2l6ZV90IHByaXZhdGVEYXRhU2l6ZSwgY29uc3Qg
dm9pZCogcHJpdmF0ZURhdGEsIHNpemVfdCBmcmFtZURhdGFTaXplLCBjb25zdCB2b2lkKiBmcmFt
ZURhdGEpCiB7CiAjaWYgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFpc09wdXNEZWNvZGVyQXZhaWxh
YmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBjb29raWVEYXRhID0g
Y29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUocHJpdmF0ZURhdGFTaXplLCBwcml2YXRlRGF0YSk7
CisgICAgYXV0byBjb29raWVEYXRhID0gY29va2llRnJvbU9wdXNDb2RlY1ByaXZhdGUocHJpdmF0
ZURhdGFTaXplLCBwcml2YXRlRGF0YSwgZnJhbWVEYXRhU2l6ZSwgZnJhbWVEYXRhKTsKICAgICBp
ZiAoIWNvb2tpZURhdGEuc2l6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJl
dHVybiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uRm9yRm9ybWF0KCdvcHVzJywgY29va2ll
RGF0YSk7CisgICAgcmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25Gb3JGb3JtYXQo
J29wdXMnLCBXVEZNb3ZlKGNvb2tpZURhdGEpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBy
aXZhdGVEYXRhU2l6ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHByaXZhdGVEYXRhKTsKKyAgICBVTlVT
RURfUEFSQU0oZnJhbWVEYXRhU2l6ZSk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lRGF0YSk7CiAg
ICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KQEAgLTE5OSw3ICs0MzgsNyBAQCBSZXRhaW5Q
dHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlVm9yYmlzQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbihzaXplX3QgcHJpdgogICAgIGlmICghY29va2llRGF0YS5zaXplKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25G
b3JGb3JtYXQoJ3ZvcmInLCBjb29raWVEYXRhKTsKKyAgICByZXR1cm4gY3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkZvckZvcm1hdCgndm9yYicsIFdURk1vdmUoY29va2llRGF0YSkpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0ocHJpdmF0ZURhdGFTaXplKTsKICAgICBVTlVTRURfUEFSQU0o
cHJpdmF0ZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KaW5kZXggYzk1ZDUzNjhlZWJlNjBkMWI2NTcxM2ZhZjNiY2MxMWNiODZj
YjBiMS4uNTNlZjk1OTllMzExMWMzZGQ1YWM3YjkwMjYyODA5MDMwYzFmYjQ2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0z
NTgsNiArMzU4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnZvcmJpc0RlY29kZXJFbmFibGVkKCkpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoT1BVUykgJiYgUExBVEZPUk0oTUFDKQorICAgIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2V0T3B1c0RlY29kZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkub3B1c0RlY29kZXJFbmFibGVkKCkpOworI2VuZGlmCisKICAg
ICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRN
ZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBlbHNlIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>