<?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>217322</bug_id>
          
          <creation_ts>2020-10-05 10:47:38 -0700</creation_ts>
          <short_desc>[Cocoa] Vectorize linear to decibels conversion in RealtimeAnalyser</short_desc>
          <delta_ts>2020-10-05 15:04:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694752</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 10:47:38 -0700</bug_when>
    <thetext>Vectorize linear to decibels conversion in RealtimeAnalyser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694753</commentid>
    <comment_count>1</comment_count>
      <attachid>410530</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 10:50:29 -0700</bug_when>
    <thetext>Created attachment 410530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694782</commentid>
    <comment_count>2</comment_count>
      <attachid>410536</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 11:56:07 -0700</bug_when>
    <thetext>Created attachment 410536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694835</commentid>
    <comment_count>3</comment_count>
      <attachid>410536</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-05 13:43:22 -0700</bug_when>
    <thetext>Comment on attachment 410536
Patch

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

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:190
&gt; +    if (length &gt; 0)

Is this if statement an important optimization? I would have done all of this in one line.

&gt; Source/WebCore/platform/audio/VectorMath.cpp:755
&gt; +    int n = framesToProcess;

Not OK to just put a size_t into an int, especially when there is no reason to.

Also not sure why the loop is written this way. Could use a for loop instead, I guess?

&gt; Source/WebCore/platform/audio/VectorMath.h:56
&gt; +void linearToDecibels(const float* sourceP, int sourceStride, float* destP, int destStride, size_t framesToProcess);

Can we do better on these argument names? Not sure sourceP is better than inputVector, for example. Looking at vDSP_vdbcon they seem to refer to these as input and output vector. Also they use the terminology &quot;number of elements to process&quot;. I don’t think the argument should be named &quot;frames to process&quot; since it’s not frames, it’s a number.

Do we need to pass the stride values in? I understand that the underlying vector function takes a stride algorithm, but I am not sure we need that flexibility in our vector math wrapper interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694837</commentid>
    <comment_count>4</comment_count>
      <attachid>410536</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 13:46:16 -0700</bug_when>
    <thetext>Comment on attachment 410536
Patch

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

&gt;&gt; Source/WebCore/platform/audio/VectorMath.cpp:755
&gt;&gt; +    int n = framesToProcess;
&gt; 
&gt; Not OK to just put a size_t into an int, especially when there is no reason to.
&gt; 
&gt; Also not sure why the loop is written this way. Could use a for loop instead, I guess?

Ok. I was merely following the pattern in this file. I will fix all of them.

&gt;&gt; Source/WebCore/platform/audio/VectorMath.h:56
&gt;&gt; +void linearToDecibels(const float* sourceP, int sourceStride, float* destP, int destStride, size_t framesToProcess);
&gt; 
&gt; Can we do better on these argument names? Not sure sourceP is better than inputVector, for example. Looking at vDSP_vdbcon they seem to refer to these as input and output vector. Also they use the terminology &quot;number of elements to process&quot;. I don’t think the argument should be named &quot;frames to process&quot; since it’s not frames, it’s a number.
&gt; 
&gt; Do we need to pass the stride values in? I understand that the underlying vector function takes a stride algorithm, but I am not sure we need that flexibility in our vector math wrapper interface.

Ok. I will look into improving our VectorMath API in a follow-up since your comments apply to all functions, not just the one I am adding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694847</commentid>
    <comment_count>5</comment_count>
      <attachid>410556</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 14:10:42 -0700</bug_when>
    <thetext>Created attachment 410556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694851</commentid>
    <comment_count>6</comment_count>
      <attachid>410558</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 14:17:50 -0700</bug_when>
    <thetext>Created attachment 410558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694882</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-05 15:03:07 -0700</bug_when>
    <thetext>Committed r268006: &lt;https://trac.webkit.org/changeset/268006&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410558.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694883</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 15:04:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/69972790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410530</attachid>
            <date>2020-10-05 10:50:29 -0700</date>
            <delta_ts>2020-10-05 11:56:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217322-20201005105028.patch</filename>
            <type>text/plain</type>
            <size>14415</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE2MTIzNmMwMDY1Yjdk
ZjVjODdhOTI5NjU0NTJhYjE0MDgzMTMyMC4uMmUzYzY1YWE2NTRiNGI5Yjg0YjQ5ZDlhMGQwNTJj
MTZhNTcxMzY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBWZWN0b3JpemUg
bGluZWFyIHRvIGRlY2liZWxzIGNvbnZlcnNpb24gaW4gUmVhbHRpbWVBbmFseXNlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVmVjdG9yaXplIGxpbmVh
ciB0byBkZWNpYmVscyBjb252ZXJzaW9uIGluIFJlYWx0aW1lQW5hbHlzZXIgb24gQ29jb2EgcG9y
dHMgZm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8g
d2ViLWZhY2luZyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L1JlYWx0aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNl
cjo6Z2V0RmxvYXRGcmVxdWVuY3lEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0
b3JNYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OmxpbmVhclRvRGVjaWJl
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaDoKKwogMjAyMC0xMC0w
NSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50
ZWdyYXRpb25dIE1vdmUgRGlzcGxheTo6SW5saW5lQ29udGVudCB0byBMYXlvdXRJbnRlZ3JhdGlv
biBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UmVhbHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Jl
YWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4IGM0ZGEzZmZmNTc1ZTI0YTVhNWNhOTdmOGZjZWFiMGJm
ODJmMjQ2MWYuLjM4M2FmYmJmNTk4ZDVlYTM0YTc0YzM0Yjg0MDRkYWZlMDI5NGFjN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcApAQCAtMTg3LDEzICsxODcsOCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0
RnJlcXVlbmN5RGF0YShGbG9hdDMyQXJyYXkmIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgLy8gQ29u
dmVydCBmcm9tIGxpbmVhciBtYWduaXR1ZGUgdG8gZmxvYXRpbmctcG9pbnQgZGVjaWJlbHMuCiAg
ICAgdW5zaWduZWQgc291cmNlTGVuZ3RoID0gbWFnbml0dWRlQnVmZmVyKCkuc2l6ZSgpOwogICAg
IHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbihzb3VyY2VMZW5ndGgsIGRlc3RpbmF0aW9uQXJyYXku
bGVuZ3RoKCkpOwotICAgIGlmIChsZW5ndGggPiAwKSB7Ci0gICAgICAgIGF1dG8qIHNvdXJjZSA9
IG1hZ25pdHVkZUJ1ZmZlcigpLmRhdGEoKTsKLSAgICAgICAgYXV0byogZGVzdGluYXRpb24gPSBk
ZXN0aW5hdGlvbkFycmF5LmRhdGEoKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBkZXN0aW5hdGlvbltpXSA9IEF1ZGlv
VXRpbGl0aWVzOjpsaW5lYXJUb0RlY2liZWxzKHNvdXJjZVtpXSk7Ci0gICAgfQorICAgIGlmIChs
ZW5ndGggPiAwKQorICAgICAgICBWZWN0b3JNYXRoOjpsaW5lYXJUb0RlY2liZWxzKG1hZ25pdHVk
ZUJ1ZmZlcigpLmRhdGEoKSwgMSwgZGVzdGluYXRpb25BcnJheS5kYXRhKCksIDEsIGxlbmd0aCk7
CiB9CiAKIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhB
cnJheSYgZGVzdGluYXRpb25BcnJheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
VmVjdG9yTWF0aC5jcHAKaW5kZXggNGU0YzE0YzdkYzM5YzMwOTE3Njc0YmQ2YTMwYTdlOTdmNDhl
MWZkNy4uNDEwN2EyZTczMmUyNzhmZDcwNmIxZWE1YzJiMzBjZmYxZTRmNGRhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5o
IgogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFKQpAQCAtMTAz
LDYgKzEwNCwxMyBAQCB2b2lkIHZjbGlwKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNl
U3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xkUCwgYwogewogICAgIHZEU1BfdmNsaXAo
Y29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZVApLCBzb3VyY2VTdHJpZGUsIGNvbnN0X2Nhc3Q8Zmxv
YXQqPihsb3dUaHJlc2hvbGRQKSwgY29uc3RfY2FzdDxmbG9hdCo+KGhpZ2hUaHJlc2hvbGRQKSwg
ZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2Vzcyk7CiB9CisKK3ZvaWQgbGluZWFyVG9E
ZWNpYmVscyhjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIGRl
c3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICBmbG9h
dCByZWZlcmVuY2UgPSAxOworICAgIHZEU1BfdmRiY29uKHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwg
JnJlZmVyZW5jZSwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2VzcywgMSk7Cit9CisK
ICNlbHNlCiAKIHZvaWQgdnNtYShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlk
ZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKQpAQCAtNzQyLDYgKzc1MCwxNiBAQCB2b2lkIHZjbGlwKGNvbnN0
IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNo
b2xkUCwgYwogICAgIH0KIH0KIAordm9pZCBsaW5lYXJUb0RlY2liZWxzKGNvbnN0IGZsb2F0KiBz
b3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOwor
ICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAgKmRlc3RQID0gQXVkaW9VdGlsaXRpZXM6OmxpbmVh
clRvRGVjaWJlbHMoKnNvdXJjZVApOworICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsK
KyAgICAgICAgZGVzdFAgKz0gZGVzdFN0cmlkZTsKKyAgICB9Cit9CisKICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURSkKIAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCmluZGV4IDlmMDBhYjI2OGM4YzIzYWI1ZjViZTJl
M2ZhMmFlMmU5ZjM4NWEwMmYuLjZhZWI4OTc5MWQ1MjliN2YyMzg1NzQzMmM1Y2Y2N2E4MTdmYTg4
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKQEAgLTUz
LDYgKzUzLDggQEAgdm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbDFQLCBjb25zdCBmbG9hdCog
aW1hZzFQLCBjb25zdCBmbG9hdCogcmVhbDJQLCBjb25zdAogLy8gQ29waWVzIGVsZW1lbnRzIHdo
aWxlIGNsaXBwaW5nIHZhbHVlcyB0byB0aGUgdGhyZXNob2xkIGlucHV0cy4KIHZvaWQgdmNsaXAo
Y29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBsb3dU
aHJlc2hvbGRQLCBjb25zdCBmbG9hdCogaGlnaFRocmVzaG9sZFAsIGZsb2F0KiBkZXN0UCwgaW50
IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCit2b2lkIGxpbmVhclRvRGVj
aWJlbHMoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBkZXN0
UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOworCiB9IC8vIG5hbWVz
cGFjZSBWZWN0b3JNYXRoCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MTA5YzMw
NWI0N2Y0YzM4ODhhOWZhZGQ0YTkwOWFjMWJiNzg0MGNhLi45Nzc1NjI4ZjM3ZWE2Mjc1YmRmNzE3
OGE5NzgxZGZhM2ExYmZiZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTAtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFZlY3Rvcml6
ZSBsaW5lYXIgdG8gZGVjaWJlbHMgY29udmVyc2lvbiBpbiBSZWFsdGltZUFuYWx5c2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczMjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbGlnaHRseSBpbmNy
ZWFzZSB0aGUgZXJyb3IgdGhyZXNob2xkIGluIGEgZmV3IFdlYkF1ZGlvIHRlc3RzIGJlY2F1c2Ug
dGhlIHZlY3Rvcml6YXRpb24KKyAgICAgICAgb3V0cHV0IGZvciBsaW5lYXIgdG8gZGVjaWJlbHMg
Y29udmVyc2lvbiBpcyBub3QgcXVpdGUgaWRlbnRpY2FsIHRvIG91ciBwcmV2aW91cyBvdXRwdXQK
KyAgICAgICAgKGFsdGhvdWdoIHZlcnkgY2xvc2UpLgorCisgICAgICAgICogd2ViYXVkaW8vQW5h
bHlzZXIvcmVhbHRpbWVhbmFseXNlci1kb3dubWl4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXguaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0
c2l6ZS1yZXNldC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5h
bHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9BbmFseXNl
ci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sOgorCiAyMDIwLTEwLTA1ICBEaWVnbyBQ
aW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFVucmV2aWV3
ZWQgdGVzdCBnYXJkZW5pbmcuIE1lcmdlIGNvbW1vbiBHVEsgYW5kIFdQRSBiYXNlbGluZXMgYW5k
IGVtaXQgbmV3IGJhc2VsaW5lcyBmb3IgV1BFIHRlc3RzIGFmdGVyIHIyNjc5NjAuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25t
aXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVh
bmFseXNlci1kb3dubWl4LWV4cGVjdGVkLnR4dAppbmRleCBiMTg3Yzk1NmQ3YmJhZTEyZGQ4ZWUz
Y2QwZmE3ZGU3ZWI0YWM2NzNmLi44YjU4ZWNhMzFlNDIyODBmNzU2YWFiZDkyMGEzM2VmNTk4NTRh
ZTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFu
YWx5c2VyLWRvd25taXgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0Fu
YWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZG93bm1peC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3
IEBAIFBBU1MgRXhlY3V0aW5nICIzLWNoYW5uZWwiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+
IFttb25vXQogUEFTUyAgIEFuYWx5c2VyIGRvd25taXggbW9ubyB0byBtb25vIHRpbWUgZGF0YSBp
cyBpZGVudGljYWwgdG8gdGhlIGFycmF5IFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
Li4uXS4KLVBBU1MgICBBbmFseXNlciBkb3dubWl4IG1vbm8gdG8gbW9ubyBmcmVxIGRhdGEgZXF1
YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjo2LjMyODNlLTh9LgorUEFT
UyAgIEFuYWx5c2VyIGRvd25taXggbW9ubyB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRo
cmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjEuMjY1N2UtN30uCiBQQVNTIDwgW21vbm9d
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKIFBBU1MgPiBbc3Rl
cmVvXQogUEFTUyAgIEFuYWx5c2VyIGRvd25taXggc3RlcmVvIHRvIG1vbm8gdGltZSBkYXRhIGlz
IGlkZW50aWNhbCB0byB0aGUgYXJyYXkgWzIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNSwyLjUs
Mi41LDIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNS4uLl0uCkBAIC0yNCw3ICsyNCw3IEBAIFBB
U1MgICBBbmFseXNlciBkb3dubWl4IDUuMSB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsCiBQQVNTIDwgWzUuMV0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMiBhc3NlcnRpb25zKQogUEFTUyA+IFszLWNoYW5uZWxdCiBQQVNTICAgQW5hbHlz
ZXIgZG93bm1peCAzLWNoYW5uZWwgdG8gbW9ubyB0aW1lIGRhdGEgaXMgaWRlbnRpY2FsIHRvIHRo
ZSBhcnJheSBbMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4uLl0uCi1QQVNTICAgQW5h
bHlzZXIgZG93bm1peCAzLWNoYW5uZWwgdG8gbW9ubyBmcmVxIGRhdGEgZXF1YWxzIFtleHBlY3Rl
ZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjo2LjMyODNlLTh9LgorUEFTUyAgIEFuYWx5c2Vy
IGRvd25taXggMy1jaGFubmVsIHRvIG1vbm8gZnJlcSBkYXRhIGVxdWFscyBbZXhwZWN0ZWQgYXJy
YXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MS4yNjU3ZS03fS4KIFBBU1MgPCBbMy1jaGFubmVsXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCiBQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgRklOSVNIRUQ6IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1kb3du
bWl4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2Vy
LWRvd25taXguaHRtbAppbmRleCBjNDljODJhYzYwOWUyNjRhMWFiMTRjZjRlYWNjYzQ1NzNkMzUw
OWMwLi44OTRjNDVkMjMyYmExNzJiNTY2ZmY1OTI4YTFkODVjZWNmOWJiNDdmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXgu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2Vy
LWRvd25taXguaHRtbApAQCAtMTksMTEgKzE5LDExIEBACiAgICAgICBsZXQgYXVkaXQgPSBBdWRp
dC5jcmVhdGVUYXNrUnVubmVyKCk7CiAKICAgICAgIGxldCB0ZXN0Q29uZmlncyA9IFsKLSAgICAg
ICAge2NoYW5uZWxDb3VudDogMSwgbWVzc2FnZTogJ21vbm8nLCBmbG9hdFJlbEVycm9yOiA2LjMy
ODNlLTh9LAorICAgICAgICB7Y2hhbm5lbENvdW50OiAxLCBtZXNzYWdlOiAnbW9ubycsIGZsb2F0
UmVsRXJyb3I6IDEuMjY1N2UtN30sCiAgICAgICAgIHtjaGFubmVsQ291bnQ6IDIsIG1lc3NhZ2U6
ICdzdGVyZW8nLCBmbG9hdFJlbEVycm9yOiAxLjE2ODFlLTd9LAogICAgICAgICB7Y2hhbm5lbENv
dW50OiA0LCBtZXNzYWdlOiAncXVhZCcsIGZsb2F0UmVsRXJyb3I6IDQuOTc5M2UtN30sCiAgICAg
ICAgIHtjaGFubmVsQ291bnQ6IDYsIG1lc3NhZ2U6ICc1LjEnLCBmbG9hdFJlbEVycm9yOiAyLjAy
MTVlLTd9LAotICAgICAgICB7Y2hhbm5lbENvdW50OiAzLCBtZXNzYWdlOiAnMy1jaGFubmVsJywg
ZmxvYXRSZWxFcnJvcjogNi4zMjgzZS04fQorICAgICAgICB7Y2hhbm5lbENvdW50OiAzLCBtZXNz
YWdlOiAnMy1jaGFubmVsJywgZmxvYXRSZWxFcnJvcjogMS4yNjU3ZS03fQogICAgICAgXTsKIAog
ICAgICAgLy8gQ3JlYXRlIHRhc2tzIGZvciBlYWNoIGVudHJ5IGluIHRlc3RDb25maWdzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZm
dHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIv
cmVhbHRpbWVhbmFseXNlci1mZnRzaXplLXJlc2V0LWV4cGVjdGVkLnR4dAppbmRleCAwZTJhOGMw
MTcxMTQ3ZTA1YTBjZmVlMWM5NThiMDlhNjYzNjQ4YWI4Li5kYzJmMWNhNzUxYjc1OWUwODQ1YWU2
MDE0MzAyNzRmNzA0YWUyNTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFs
eXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNl
dC1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFBBU1MgRXhlY3V0aW5nICI1MTItPjI1NiIK
IFBBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gWzEyOC0+MTAyNF0KIFBBU1MgICBUaW1lIGRhdGEg
ZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9m
IHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4KLVBBU1MgICBM
aW5lYXIgRkZUIGRhdGEgYWZ0ZXIgc2V0dGluZyBmZnRTaXplID0gMTAyNCBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRo
cmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjAuMDAwMDAxOTQ1NX0uCitQQVNTICAgTGlu
ZWFyIEZGVCBkYXRhIGFmdGVyIHNldHRpbmcgZmZ0U2l6ZSA9IDEwMjQgZXF1YWxzIFtleHBlY3Rl
ZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowLjAwMDAwMzYyOTZ9LgogUEFTUyA8IFsxMjgt
PjEwMjRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKIFBBU1Mg
PiBbNTEyLT4yNTZdCiBQQVNTICAgVGltZSBkYXRhIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdp
dGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJy
ZWxhdGl2ZVRocmVzaG9sZCI6MH0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
bmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC5odG1sCmlu
ZGV4IGI4MzNhOTYyMzJlYjFjZTQ1YzY5M2M3NjcwMWQ5MTcxYzEzZDI0NjAuLmFjZmE2ZWQxZGNh
OTkzM2VkZTUzMWRjOTYwYTAyZmNmM2ZmZGEyYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1y
ZXNldC5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIHRlc3RGRlRTaXplKHNob3VsZCwg
ewogICAgICAgICAgIGluaXRpYWxGRlRTaXplOiAxMjgsCiAgICAgICAgICAgZmluYWxGRlRTaXpl
OiAxMDI0LAotICAgICAgICAgIGVycm9yVGhyZXNob2xkOiB7cmVsYXRpdmVUaHJlc2hvbGQ6IDEu
OTQ1NWUtNn0KKyAgICAgICAgICBlcnJvclRocmVzaG9sZDoge3JlbGF0aXZlVGhyZXNob2xkOiAz
LjYyOTZlLTZ9CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOwogICAgICAgfSk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5h
bHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5
c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dAppbmRleCBiODQ0ZmE0
NjNiZDhlNzRlOGZiZmE1MGQwMzY1N2ZiZGJmZmJiNjRmLi5hM2RkZGM3YmQyYmFlNzViZDI4Mjk5
MTk2OTRjODEzOGQ3ZmM0YzAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFs
eXNlci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1mcmVxLWRhdGEtZXhwZWN0
ZWQudHh0CkBAIC02MiwxOSArNjIsMTkgQEAgUEFTUyAgIE9yZGVyOiAxMjogTWF4IEZGVCB2YWx1
ZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gLTMwLgogUEFTUyAgIDQwOTYtcG9pbnQgYnl0
ZSBGRlQgZXF1YWxzIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLi4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LgogUEFTUyA8IFsxMi1vcmRlciBGRlRdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKIFBBU1MgPiBbMTMtb3JkZXIgRkZUXQotUEFTUyAg
IDgxOTItcG9pbnQgZmxvYXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0x
MDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0g
d2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAs
InJlbGF0aXZlVGhyZXNob2xkIjozLjIxMDZlLTd9LgorUEFTUyAgIDgxOTItcG9pbnQgZmxvYXQg
RkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAs
LTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xk
IjozLjQxOTZlLTd9LgogUEFTUyAgIE9yZGVyOiAxMzogTWluIEZGVCB2YWx1ZSBpcyBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gLTEwMC4KIFBBU1MgICBPcmRlcjogMTM6IE1heCBGRlQgdmFsdWUgaXMg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIC0zMC4KIFBBU1MgICA4MTkyLXBvaW50IGJ5dGUgRkZU
IGVxdWFscyBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4uLl0gd2l0aCBhbiBlbGVt
ZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhy
ZXNob2xkIjowfS4KIFBBU1MgPCBbMTMtb3JkZXIgRkZUXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCA0IGFzc2VydGlvbnMpCiBQQVNTID4gWzE0LW9yZGVyIEZGVF0KLVBBU1MgICAxNjM4
NC1wb2ludCBmbG9hdCBGRlQgZXF1YWxzIFstMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwt
MTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLi4uXSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVs
YXRpdmVUaHJlc2hvbGQiOjEuMTc1NmUtN30uCitQQVNTICAgMTYzODQtcG9pbnQgZmxvYXQgRkZU
IGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEw
MCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2Ug
dG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjox
LjU1NzVlLTd9LgogUEFTUyAgIE9yZGVyOiAxNDogTWluIEZGVCB2YWx1ZSBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gLTEwMC4KIFBBU1MgICBPcmRlcjogMTQ6IE1heCBGRlQgdmFsdWUgaXMgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIC0zMC4KIFBBU1MgICAxNjM4NC1wb2ludCBieXRlIEZGVCBl
cXVhbHMgWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAuLi5dIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVz
aG9sZCI6MH0uCiBQQVNTIDwgWzE0LW9yZGVyIEZGVF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAo
dG90YWwgNCBhc3NlcnRpb25zKQogUEFTUyA+IFsxNS1vcmRlciBGRlRdCi1QQVNTICAgMzI3Njgt
cG9pbnQgZmxvYXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEw
MCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0aCBh
biBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0
aXZlVGhyZXNob2xkIjoxLjE3NTZlLTd9LgorUEFTUyAgIDMyNzY4LXBvaW50IGZsb2F0IEZGVCBl
cXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAs
LTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6Mi4w
ODc2ZS03fS4KIFBBU1MgICBPcmRlcjogMTU6IE1pbiBGRlQgdmFsdWUgaXMgbGVzcyB0aGFuIG9y
IGVxdWFsIHRvIC0xMDAuCiBQQVNTICAgT3JkZXI6IDE1OiBNYXggRkZUIHZhbHVlIGlzIGdyZWF0
ZXIgdGhhbiBvciBlcXVhbCB0byAtMzAuCiBQQVNTICAgMzI3NjgtcG9pbnQgYnl0ZSBGRlQgZXF1
YWxzIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLi4uXSB3aXRoIGFuIGVsZW1lbnQt
d2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hv
bGQiOjB9LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRp
bWVhbmFseXNlci1mcmVxLWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2Vy
L3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLmh0bWwKaW5kZXggNDRlNTNmMzRkZGZmMzliZGI3
ODM4ZTQ4MDQ2OGUxZDAxOTY0N2Q0NS4uYWM0NmIwNTQ3OGZhZjJmMTczMzNkYTFkNzA2ZGVkNGIw
MjgwOGQ5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRp
bWVhbmFseXNlci1mcmVxLWRhdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFs
eXNlci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sCkBAIC01MCw5ICs1MCw5IEBACiAg
ICAgICAgIHtvcmRlcjogMTAsIGZsb2F0UmVsRXJyb3I6IDIuOTc3MWUtNSwgYnl0ZVRocmVzaG9s
ZDogMX0sCiAgICAgICAgIHtvcmRlcjogMTEsIGZsb2F0UmVsRXJyb3I6IDEuMzQ1NmUtNX0sCiAg
ICAgICAgIHtvcmRlcjogMTIsIGZsb2F0UmVsRXJyb3I6IDQuNjExNmUtN30sCi0gICAgICAgIHtv
cmRlcjogMTMsIGZsb2F0UmVsRXJyb3I6IDMuMjEwNmUtN30sCi0gICAgICAgIHtvcmRlcjogMTQs
IGZsb2F0UmVsRXJyb3I6IDEuMTc1NmUtN30sCi0gICAgICAgIHtvcmRlcjogMTUsIGZsb2F0UmVs
RXJyb3I6IDEuMTc1NmUtN30KKyAgICAgICAge29yZGVyOiAxMywgZmxvYXRSZWxFcnJvcjogMy40
MTk2ZS03fSwKKyAgICAgICAge29yZGVyOiAxNCwgZmxvYXRSZWxFcnJvcjogMS41NTc1ZS03fSwK
KyAgICAgICAge29yZGVyOiAxNSwgZmxvYXRSZWxFcnJvcjogMi4wODc2ZS03fQogICAgICAgXTsK
IAogICAgICAgLy8gVHJ1ZSBpZiBhbGwgb2YgdGhlIGJhc2ljIHRlc3RzIHBhc3NlZC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410536</attachid>
            <date>2020-10-05 11:56:07 -0700</date>
            <delta_ts>2020-10-05 14:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217322-20201005115607.patch</filename>
            <type>text/plain</type>
            <size>15157</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE2MTIzNmMwMDY1Yjdk
ZjVjODdhOTI5NjU0NTJhYjE0MDgzMTMyMC4uMmUzYzY1YWE2NTRiNGI5Yjg0YjQ5ZDlhMGQwNTJj
MTZhNTcxMzY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBWZWN0b3JpemUg
bGluZWFyIHRvIGRlY2liZWxzIGNvbnZlcnNpb24gaW4gUmVhbHRpbWVBbmFseXNlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVmVjdG9yaXplIGxpbmVh
ciB0byBkZWNpYmVscyBjb252ZXJzaW9uIGluIFJlYWx0aW1lQW5hbHlzZXIgb24gQ29jb2EgcG9y
dHMgZm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8g
d2ViLWZhY2luZyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L1JlYWx0aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNl
cjo6Z2V0RmxvYXRGcmVxdWVuY3lEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0
b3JNYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OmxpbmVhclRvRGVjaWJl
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaDoKKwogMjAyMC0xMC0w
NSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50
ZWdyYXRpb25dIE1vdmUgRGlzcGxheTo6SW5saW5lQ29udGVudCB0byBMYXlvdXRJbnRlZ3JhdGlv
biBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UmVhbHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Jl
YWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4IGM0ZGEzZmZmNTc1ZTI0YTVhNWNhOTdmOGZjZWFiMGJm
ODJmMjQ2MWYuLjM4M2FmYmJmNTk4ZDVlYTM0YTc0YzM0Yjg0MDRkYWZlMDI5NGFjN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcApAQCAtMTg3LDEzICsxODcsOCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0
RnJlcXVlbmN5RGF0YShGbG9hdDMyQXJyYXkmIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgLy8gQ29u
dmVydCBmcm9tIGxpbmVhciBtYWduaXR1ZGUgdG8gZmxvYXRpbmctcG9pbnQgZGVjaWJlbHMuCiAg
ICAgdW5zaWduZWQgc291cmNlTGVuZ3RoID0gbWFnbml0dWRlQnVmZmVyKCkuc2l6ZSgpOwogICAg
IHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbihzb3VyY2VMZW5ndGgsIGRlc3RpbmF0aW9uQXJyYXku
bGVuZ3RoKCkpOwotICAgIGlmIChsZW5ndGggPiAwKSB7Ci0gICAgICAgIGF1dG8qIHNvdXJjZSA9
IG1hZ25pdHVkZUJ1ZmZlcigpLmRhdGEoKTsKLSAgICAgICAgYXV0byogZGVzdGluYXRpb24gPSBk
ZXN0aW5hdGlvbkFycmF5LmRhdGEoKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBkZXN0aW5hdGlvbltpXSA9IEF1ZGlv
VXRpbGl0aWVzOjpsaW5lYXJUb0RlY2liZWxzKHNvdXJjZVtpXSk7Ci0gICAgfQorICAgIGlmIChs
ZW5ndGggPiAwKQorICAgICAgICBWZWN0b3JNYXRoOjpsaW5lYXJUb0RlY2liZWxzKG1hZ25pdHVk
ZUJ1ZmZlcigpLmRhdGEoKSwgMSwgZGVzdGluYXRpb25BcnJheS5kYXRhKCksIDEsIGxlbmd0aCk7
CiB9CiAKIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhB
cnJheSYgZGVzdGluYXRpb25BcnJheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
VmVjdG9yTWF0aC5jcHAKaW5kZXggNGU0YzE0YzdkYzM5YzMwOTE3Njc0YmQ2YTMwYTdlOTdmNDhl
MWZkNy4uNDEwN2EyZTczMmUyNzhmZDcwNmIxZWE1YzJiMzBjZmYxZTRmNGRhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5o
IgogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFKQpAQCAtMTAz
LDYgKzEwNCwxMyBAQCB2b2lkIHZjbGlwKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNl
U3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xkUCwgYwogewogICAgIHZEU1BfdmNsaXAo
Y29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZVApLCBzb3VyY2VTdHJpZGUsIGNvbnN0X2Nhc3Q8Zmxv
YXQqPihsb3dUaHJlc2hvbGRQKSwgY29uc3RfY2FzdDxmbG9hdCo+KGhpZ2hUaHJlc2hvbGRQKSwg
ZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2Vzcyk7CiB9CisKK3ZvaWQgbGluZWFyVG9E
ZWNpYmVscyhjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIGRl
c3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICBmbG9h
dCByZWZlcmVuY2UgPSAxOworICAgIHZEU1BfdmRiY29uKHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwg
JnJlZmVyZW5jZSwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2VzcywgMSk7Cit9CisK
ICNlbHNlCiAKIHZvaWQgdnNtYShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlk
ZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKQpAQCAtNzQyLDYgKzc1MCwxNiBAQCB2b2lkIHZjbGlwKGNvbnN0
IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNo
b2xkUCwgYwogICAgIH0KIH0KIAordm9pZCBsaW5lYXJUb0RlY2liZWxzKGNvbnN0IGZsb2F0KiBz
b3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOwor
ICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAgKmRlc3RQID0gQXVkaW9VdGlsaXRpZXM6OmxpbmVh
clRvRGVjaWJlbHMoKnNvdXJjZVApOworICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsK
KyAgICAgICAgZGVzdFAgKz0gZGVzdFN0cmlkZTsKKyAgICB9Cit9CisKICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURSkKIAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCmluZGV4IDlmMDBhYjI2OGM4YzIzYWI1ZjViZTJl
M2ZhMmFlMmU5ZjM4NWEwMmYuLjZhZWI4OTc5MWQ1MjliN2YyMzg1NzQzMmM1Y2Y2N2E4MTdmYTg4
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKQEAgLTUz
LDYgKzUzLDggQEAgdm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbDFQLCBjb25zdCBmbG9hdCog
aW1hZzFQLCBjb25zdCBmbG9hdCogcmVhbDJQLCBjb25zdAogLy8gQ29waWVzIGVsZW1lbnRzIHdo
aWxlIGNsaXBwaW5nIHZhbHVlcyB0byB0aGUgdGhyZXNob2xkIGlucHV0cy4KIHZvaWQgdmNsaXAo
Y29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBsb3dU
aHJlc2hvbGRQLCBjb25zdCBmbG9hdCogaGlnaFRocmVzaG9sZFAsIGZsb2F0KiBkZXN0UCwgaW50
IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCit2b2lkIGxpbmVhclRvRGVj
aWJlbHMoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBkZXN0
UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOworCiB9IC8vIG5hbWVz
cGFjZSBWZWN0b3JNYXRoCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MTA5YzMw
NWI0N2Y0YzM4ODhhOWZhZGQ0YTkwOWFjMWJiNzg0MGNhLi45Nzc1NjI4ZjM3ZWE2Mjc1YmRmNzE3
OGE5NzgxZGZhM2ExYmZiZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTAtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFZlY3Rvcml6
ZSBsaW5lYXIgdG8gZGVjaWJlbHMgY29udmVyc2lvbiBpbiBSZWFsdGltZUFuYWx5c2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczMjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbGlnaHRseSBpbmNy
ZWFzZSB0aGUgZXJyb3IgdGhyZXNob2xkIGluIGEgZmV3IFdlYkF1ZGlvIHRlc3RzIGJlY2F1c2Ug
dGhlIHZlY3Rvcml6YXRpb24KKyAgICAgICAgb3V0cHV0IGZvciBsaW5lYXIgdG8gZGVjaWJlbHMg
Y29udmVyc2lvbiBpcyBub3QgcXVpdGUgaWRlbnRpY2FsIHRvIG91ciBwcmV2aW91cyBvdXRwdXQK
KyAgICAgICAgKGFsdGhvdWdoIHZlcnkgY2xvc2UpLgorCisgICAgICAgICogd2ViYXVkaW8vQW5h
bHlzZXIvcmVhbHRpbWVhbmFseXNlci1kb3dubWl4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXguaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0
c2l6ZS1yZXNldC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5h
bHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9BbmFseXNl
ci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sOgorCiAyMDIwLTEwLTA1ICBEaWVnbyBQ
aW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFVucmV2aWV3
ZWQgdGVzdCBnYXJkZW5pbmcuIE1lcmdlIGNvbW1vbiBHVEsgYW5kIFdQRSBiYXNlbGluZXMgYW5k
IGVtaXQgbmV3IGJhc2VsaW5lcyBmb3IgV1BFIHRlc3RzIGFmdGVyIHIyNjc5NjAuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25t
aXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVh
bmFseXNlci1kb3dubWl4LWV4cGVjdGVkLnR4dAppbmRleCBiMTg3Yzk1NmQ3YmJhZTEyZGQ4ZWUz
Y2QwZmE3ZGU3ZWI0YWM2NzNmLi44YjU4ZWNhMzFlNDIyODBmNzU2YWFiZDkyMGEzM2VmNTk4NTRh
ZTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFu
YWx5c2VyLWRvd25taXgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0Fu
YWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZG93bm1peC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3
IEBAIFBBU1MgRXhlY3V0aW5nICIzLWNoYW5uZWwiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+
IFttb25vXQogUEFTUyAgIEFuYWx5c2VyIGRvd25taXggbW9ubyB0byBtb25vIHRpbWUgZGF0YSBp
cyBpZGVudGljYWwgdG8gdGhlIGFycmF5IFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
Li4uXS4KLVBBU1MgICBBbmFseXNlciBkb3dubWl4IG1vbm8gdG8gbW9ubyBmcmVxIGRhdGEgZXF1
YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjo2LjMyODNlLTh9LgorUEFT
UyAgIEFuYWx5c2VyIGRvd25taXggbW9ubyB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRo
cmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjEuMjY1N2UtN30uCiBQQVNTIDwgW21vbm9d
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKIFBBU1MgPiBbc3Rl
cmVvXQogUEFTUyAgIEFuYWx5c2VyIGRvd25taXggc3RlcmVvIHRvIG1vbm8gdGltZSBkYXRhIGlz
IGlkZW50aWNhbCB0byB0aGUgYXJyYXkgWzIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNSwyLjUs
Mi41LDIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNS4uLl0uCkBAIC0yNCw3ICsyNCw3IEBAIFBB
U1MgICBBbmFseXNlciBkb3dubWl4IDUuMSB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsCiBQQVNTIDwgWzUuMV0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMiBhc3NlcnRpb25zKQogUEFTUyA+IFszLWNoYW5uZWxdCiBQQVNTICAgQW5hbHlz
ZXIgZG93bm1peCAzLWNoYW5uZWwgdG8gbW9ubyB0aW1lIGRhdGEgaXMgaWRlbnRpY2FsIHRvIHRo
ZSBhcnJheSBbMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4uLl0uCi1QQVNTICAgQW5h
bHlzZXIgZG93bm1peCAzLWNoYW5uZWwgdG8gbW9ubyBmcmVxIGRhdGEgZXF1YWxzIFtleHBlY3Rl
ZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjo2LjMyODNlLTh9LgorUEFTUyAgIEFuYWx5c2Vy
IGRvd25taXggMy1jaGFubmVsIHRvIG1vbm8gZnJlcSBkYXRhIGVxdWFscyBbZXhwZWN0ZWQgYXJy
YXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MS4yNjU3ZS03fS4KIFBBU1MgPCBbMy1jaGFubmVsXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCiBQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgRklOSVNIRUQ6IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1kb3du
bWl4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2Vy
LWRvd25taXguaHRtbAppbmRleCBjNDljODJhYzYwOWUyNjRhMWFiMTRjZjRlYWNjYzQ1NzNkMzUw
OWMwLi44OTRjNDVkMjMyYmExNzJiNTY2ZmY1OTI4YTFkODVjZWNmOWJiNDdmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXgu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2Vy
LWRvd25taXguaHRtbApAQCAtMTksMTEgKzE5LDExIEBACiAgICAgICBsZXQgYXVkaXQgPSBBdWRp
dC5jcmVhdGVUYXNrUnVubmVyKCk7CiAKICAgICAgIGxldCB0ZXN0Q29uZmlncyA9IFsKLSAgICAg
ICAge2NoYW5uZWxDb3VudDogMSwgbWVzc2FnZTogJ21vbm8nLCBmbG9hdFJlbEVycm9yOiA2LjMy
ODNlLTh9LAorICAgICAgICB7Y2hhbm5lbENvdW50OiAxLCBtZXNzYWdlOiAnbW9ubycsIGZsb2F0
UmVsRXJyb3I6IDEuMjY1N2UtN30sCiAgICAgICAgIHtjaGFubmVsQ291bnQ6IDIsIG1lc3NhZ2U6
ICdzdGVyZW8nLCBmbG9hdFJlbEVycm9yOiAxLjE2ODFlLTd9LAogICAgICAgICB7Y2hhbm5lbENv
dW50OiA0LCBtZXNzYWdlOiAncXVhZCcsIGZsb2F0UmVsRXJyb3I6IDQuOTc5M2UtN30sCiAgICAg
ICAgIHtjaGFubmVsQ291bnQ6IDYsIG1lc3NhZ2U6ICc1LjEnLCBmbG9hdFJlbEVycm9yOiAyLjAy
MTVlLTd9LAotICAgICAgICB7Y2hhbm5lbENvdW50OiAzLCBtZXNzYWdlOiAnMy1jaGFubmVsJywg
ZmxvYXRSZWxFcnJvcjogNi4zMjgzZS04fQorICAgICAgICB7Y2hhbm5lbENvdW50OiAzLCBtZXNz
YWdlOiAnMy1jaGFubmVsJywgZmxvYXRSZWxFcnJvcjogMS4yNjU3ZS03fQogICAgICAgXTsKIAog
ICAgICAgLy8gQ3JlYXRlIHRhc2tzIGZvciBlYWNoIGVudHJ5IGluIHRlc3RDb25maWdzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZm
dHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIv
cmVhbHRpbWVhbmFseXNlci1mZnRzaXplLXJlc2V0LWV4cGVjdGVkLnR4dAppbmRleCAwZTJhOGMw
MTcxMTQ3ZTA1YTBjZmVlMWM5NThiMDlhNjYzNjQ4YWI4Li4xODZjMzk5NWY4YTE5MzE1NGUwNzkx
ZmI4MDMzOTc0ODkxYWVhMGE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFs
eXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNl
dC1leHBlY3RlZC50eHQKQEAgLTUsMTEgKzUsMTEgQEAgUEFTUyBFeGVjdXRpbmcgIjUxMi0+MjU2
IgogUEFTUyBBdWRpdCByZXBvcnQKIFBBU1MgPiBbMTI4LT4xMDI0XQogUEFTUyAgIFRpbWUgZGF0
YSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgotUEFTUyAg
IExpbmVhciBGRlQgZGF0YSBhZnRlciBzZXR0aW5nIGZmdFNpemUgPSAxMDI0IGVxdWFscyBbZXhw
ZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRl
VGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MC4wMDAwMDE5NDU1fS4KK1BBU1MgICBM
aW5lYXIgRkZUIGRhdGEgYWZ0ZXIgc2V0dGluZyBmZnRTaXplID0gMTAyNCBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRo
cmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjAuMDAwMDAzNjI5Nn0uCiBQQVNTIDwgWzEy
OC0+MTAyNF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQogUEFT
UyA+IFs1MTItPjI1Nl0KIFBBU1MgICBUaW1lIGRhdGEgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0g
d2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4KLVBBU1MgICBMaW5lYXIgRkZUIGRhdGEgYWZ0ZXIgc2V0
dGluZyBmZnRTaXplID0gMjU2IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVz
aG9sZCI6MC4wMDAwMDE4NTkyfS4KK1BBU1MgICBMaW5lYXIgRkZUIGRhdGEgYWZ0ZXIgc2V0dGlu
ZyBmZnRTaXplID0gMjU2IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13
aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9s
ZCI6MC4wMDAwMDE4NjE0fS4KIFBBU1MgPCBbNTEyLT4yNTZdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hF
RDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNl
dC5odG1sCmluZGV4IGI4MzNhOTYyMzJlYjFjZTQ1YzY5M2M3NjcwMWQ5MTcxYzEzZDI0NjAuLmMz
ZWNjMGEzMzNkY2UwZDU5MzhjMmVjNDk5MmI4MGM5YjY0ZTAyZjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXIt
ZmZ0c2l6ZS1yZXNldC5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIHRlc3RGRlRTaXpl
KHNob3VsZCwgewogICAgICAgICAgIGluaXRpYWxGRlRTaXplOiAxMjgsCiAgICAgICAgICAgZmlu
YWxGRlRTaXplOiAxMDI0LAotICAgICAgICAgIGVycm9yVGhyZXNob2xkOiB7cmVsYXRpdmVUaHJl
c2hvbGQ6IDEuOTQ1NWUtNn0KKyAgICAgICAgICBlcnJvclRocmVzaG9sZDoge3JlbGF0aXZlVGhy
ZXNob2xkOiAzLjYyOTZlLTZ9CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOwog
ICAgICAgfSk7CiAKQEAgLTMxLDcgKzMxLDcgQEAKICAgICAgICAgdGVzdEZGVFNpemUoc2hvdWxk
LCB7CiAgICAgICAgICAgaW5pdGlhbEZGVFNpemU6IDUxMiwKICAgICAgICAgICBmaW5hbEZGVFNp
emU6IDI1NiwKLSAgICAgICAgICBlcnJvclRocmVzaG9sZDoge3JlbGF0aXZlVGhyZXNob2xkOiAx
Ljg1OTJlLTZ9CisgICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IHtyZWxhdGl2ZVRocmVzaG9sZDog
MS44NjE0ZS02fQogICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKICAgICAgIH0p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFu
YWx5c2VyLWZyZXEtZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFs
eXNlci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS1leHBlY3RlZC50eHQKaW5kZXggYjg0NGZh
NDYzYmQ4ZTc0ZThmYmZhNTBkMDM2NTdmYmRiZmZiYjY0Zi4uNGIyYzI1YWZjMjFjMmE4ZGIwNTc4
NjJjMmVlM2EzMmNkMDM3MDliNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5h
bHlzZXIvcmVhbHRpbWVhbmFseXNlci1mcmVxLWRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLWV4cGVj
dGVkLnR4dApAQCAtNjIsMTkgKzYyLDE5IEBAIFBBU1MgICBPcmRlcjogMTI6IE1heCBGRlQgdmFs
dWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIC0zMC4KIFBBU1MgICA0MDk2LXBvaW50IGJ5
dGUgRkZUIGVxdWFscyBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4uLl0gd2l0aCBh
biBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0
aXZlVGhyZXNob2xkIjowfS4KIFBBU1MgPCBbMTItb3JkZXIgRkZUXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCiBQQVNTID4gWzEzLW9yZGVyIEZGVF0KLVBBU1Mg
ICA4MTkyLXBvaW50IGZsb2F0IEZGVCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwt
MTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5d
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LCJyZWxhdGl2ZVRocmVzaG9sZCI6My4yMTA2ZS03fS4KK1BBU1MgICA4MTkyLXBvaW50IGZsb2F0
IEZGVCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAw
LC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVudC13
aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9s
ZCI6My40MTk2ZS03fS4KIFBBU1MgICBPcmRlcjogMTM6IE1pbiBGRlQgdmFsdWUgaXMgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIC0xMDAuCiBQQVNTICAgT3JkZXI6IDEzOiBNYXggRkZUIHZhbHVlIGlz
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAtMzAuCiBQQVNTICAgODE5Mi1wb2ludCBieXRlIEZG
VCBlcXVhbHMgWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAuLi5dIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uCiBQQVNTIDwgWzEzLW9yZGVyIEZGVF0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgNCBhc3NlcnRpb25zKQogUEFTUyA+IFsxNC1vcmRlciBGRlRdCi1QQVNTICAgMTYz
ODQtcG9pbnQgZmxvYXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAs
LTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJl
bGF0aXZlVGhyZXNob2xkIjoxLjE3NTZlLTd9LgorUEFTUyAgIDE2Mzg0LXBvaW50IGZsb2F0IEZG
VCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0x
MDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6
MS42MjU3ZS03fS4KIFBBU1MgICBPcmRlcjogMTQ6IE1pbiBGRlQgdmFsdWUgaXMgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIC0xMDAuCiBQQVNTICAgT3JkZXI6IDE0OiBNYXggRkZUIHZhbHVlIGlzIGdy
ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAtMzAuCiBQQVNTICAgMTYzODQtcG9pbnQgYnl0ZSBGRlQg
ZXF1YWxzIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLi4uXSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJl
c2hvbGQiOjB9LgogUEFTUyA8IFsxNC1vcmRlciBGRlRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDQgYXNzZXJ0aW9ucykKIFBBU1MgPiBbMTUtb3JkZXIgRkZUXQotUEFTUyAgIDMyNzY4
LXBvaW50IGZsb2F0IEZGVCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0x
MDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGgg
YW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxh
dGl2ZVRocmVzaG9sZCI6MS4xNzU2ZS03fS4KK1BBU1MgICAzMjc2OC1wb2ludCBmbG9hdCBGRlQg
ZXF1YWxzIFstMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAw
LC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjIu
MDg3NmUtN30uCiBQQVNTICAgT3JkZXI6IDE1OiBNaW4gRkZUIHZhbHVlIGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byAtMTAwLgogUEFTUyAgIE9yZGVyOiAxNTogTWF4IEZGVCB2YWx1ZSBpcyBncmVh
dGVyIHRoYW4gb3IgZXF1YWwgdG8gLTMwLgogUEFTUyAgIDMyNzY4LXBvaW50IGJ5dGUgRkZUIGVx
dWFscyBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNo
b2xkIjowfS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0
aW1lYW5hbHlzZXItZnJlcS1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNl
ci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sCmluZGV4IDQ0ZTUzZjM0ZGRmZjM5YmRi
NzgzOGU0ODA0NjhlMWQwMTk2NDdkNDUuLjU3OWZmMDhmYTZkYmNlZTY5NzI1MTg3MTk2OGQ1ZjMz
ODhkZTgxNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0
aW1lYW5hbHlzZXItZnJlcS1kYXRhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5h
bHlzZXIvcmVhbHRpbWVhbmFseXNlci1mcmVxLWRhdGEuaHRtbApAQCAtNTAsOSArNTAsOSBAQAog
ICAgICAgICB7b3JkZXI6IDEwLCBmbG9hdFJlbEVycm9yOiAyLjk3NzFlLTUsIGJ5dGVUaHJlc2hv
bGQ6IDF9LAogICAgICAgICB7b3JkZXI6IDExLCBmbG9hdFJlbEVycm9yOiAxLjM0NTZlLTV9LAog
ICAgICAgICB7b3JkZXI6IDEyLCBmbG9hdFJlbEVycm9yOiA0LjYxMTZlLTd9LAotICAgICAgICB7
b3JkZXI6IDEzLCBmbG9hdFJlbEVycm9yOiAzLjIxMDZlLTd9LAotICAgICAgICB7b3JkZXI6IDE0
LCBmbG9hdFJlbEVycm9yOiAxLjE3NTZlLTd9LAotICAgICAgICB7b3JkZXI6IDE1LCBmbG9hdFJl
bEVycm9yOiAxLjE3NTZlLTd9CisgICAgICAgIHtvcmRlcjogMTMsIGZsb2F0UmVsRXJyb3I6IDMu
NDE5NmUtN30sCisgICAgICAgIHtvcmRlcjogMTQsIGZsb2F0UmVsRXJyb3I6IDEuNjI1N2UtN30s
CisgICAgICAgIHtvcmRlcjogMTUsIGZsb2F0UmVsRXJyb3I6IDIuMDg3NmUtN30KICAgICAgIF07
CiAKICAgICAgIC8vIFRydWUgaWYgYWxsIG9mIHRoZSBiYXNpYyB0ZXN0cyBwYXNzZWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410556</attachid>
            <date>2020-10-05 14:10:42 -0700</date>
            <delta_ts>2020-10-05 14:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217322-20201005141041.patch</filename>
            <type>text/plain</type>
            <size>58251</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE2MTIzNmMwMDY1Yjdk
ZjVjODdhOTI5NjU0NTJhYjE0MDgzMTMyMC4uYjJiYTUzMWVmZWFhMmY0OWQ3NTM2NWUxNmI2NDc4
ZWU2YzRkMmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBWZWN0b3JpemUg
bGluZWFyIHRvIGRlY2liZWxzIGNvbnZlcnNpb24gaW4gUmVhbHRpbWVBbmFseXNlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVmVjdG9yaXplIGxpbmVhciB0
byBkZWNpYmVscyBjb252ZXJzaW9uIGluIFJlYWx0aW1lQW5hbHlzZXIgb24gQ29jb2EgcG9ydHMg
Zm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gd2Vi
LWZhY2luZyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Jl
YWx0aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6
Z2V0RmxvYXRGcmVxdWVuY3lEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JN
YXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OmxpbmVhclRvRGVjaWJlbHMp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaDoKKwogMjAyMC0xMC0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdy
YXRpb25dIE1vdmUgRGlzcGxheTo6SW5saW5lQ29udGVudCB0byBMYXlvdXRJbnRlZ3JhdGlvbiBu
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVh
bHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwCmluZGV4IGM0ZGEzZmZmNTc1ZTI0YTVhNWNhOTdmOGZjZWFiMGJmODJm
MjQ2MWYuLjk3NmMwYjJmNGY5MWFkM2RlNTNiOTc2Nzc1OThiYTUxMGY1ZjUwNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNw
cApAQCAtMTg1LDE1ICsxODUsOCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJl
cXVlbmN5RGF0YShGbG9hdDMyQXJyYXkmIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgZG9GRlRBbmFs
eXNpc0lmTmVjZXNzYXJ5KCk7CiAgICAgCiAgICAgLy8gQ29udmVydCBmcm9tIGxpbmVhciBtYWdu
aXR1ZGUgdG8gZmxvYXRpbmctcG9pbnQgZGVjaWJlbHMuCi0gICAgdW5zaWduZWQgc291cmNlTGVu
Z3RoID0gbWFnbml0dWRlQnVmZmVyKCkuc2l6ZSgpOwotICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6
Om1pbihzb3VyY2VMZW5ndGgsIGRlc3RpbmF0aW9uQXJyYXkubGVuZ3RoKCkpOwotICAgIGlmIChs
ZW5ndGggPiAwKSB7Ci0gICAgICAgIGF1dG8qIHNvdXJjZSA9IG1hZ25pdHVkZUJ1ZmZlcigpLmRh
dGEoKTsKLSAgICAgICAgYXV0byogZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbkFycmF5LmRhdGEo
KTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbltpXSA9IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJUb0Rl
Y2liZWxzKHNvdXJjZVtpXSk7Ci0gICAgfQorICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbjxz
aXplX3Q+KG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKSwgZGVzdGluYXRpb25BcnJheS5sZW5ndGgo
KSk7CisgICAgVmVjdG9yTWF0aDo6bGluZWFyVG9EZWNpYmVscyhtYWduaXR1ZGVCdWZmZXIoKS5k
YXRhKCksIDEsIGRlc3RpbmF0aW9uQXJyYXkuZGF0YSgpLCAxLCBsZW5ndGgpOwogfQogCiB2b2lk
IFJlYWx0aW1lQW5hbHlzZXI6OmdldEJ5dGVGcmVxdWVuY3lEYXRhKFVpbnQ4QXJyYXkmIGRlc3Rp
bmF0aW9uQXJyYXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9W
ZWN0b3JNYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
Y3BwCmluZGV4IDRlNGMxNGM3ZGMzOWMzMDkxNzY3NGJkNmEzMGE3ZTk3ZjQ4ZTFmZDcuLmE2OTNl
OGZiNWUzNzNiNWI4M2IwZjIwZDdiZDFmMGE2MjQ4MzNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJWZWN0b3JNYXRoLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURSkKQEAgLTUwLDk4ICs1MSwxMDUg
QEAgbmFtZXNwYWNlIFZlY3Rvck1hdGggewogI2lmIFVTRShBQ0NFTEVSQVRFKQogLy8gT24gdGhl
IE1hYyB3ZSB1c2UgdGhlIGhpZ2hseSBvcHRpbWl6ZWQgdmVyc2lvbnMgaW4gQWNjZWxlcmF0ZS5m
cmFtZXdvcmsKIAotdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0
cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2c211bChjb25zdCBmbG9hdCogaW5wdXRWZWN0
b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogb3V0cHV0VmVj
dG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykK
IHsKLSAgICB2RFNQX3ZzbXVsKHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwgc2NhbGUsIGRlc3RQLCBk
ZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIHZEU1BfdnNtdWwoaW5wdXRWZWN0b3Is
IGlucHV0U3RyaWRlLCBzY2FsZSwgb3V0cHV0VmVjdG9yLCBvdXRwdXRTdHJpZGUsIG51bWJlck9m
RWxlbWVudHNUb1Byb2Nlc3MpOwogfQogCi12b2lkIHZhZGQoY29uc3QgZmxvYXQqIHNvdXJjZTFQ
LCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgc291cmNlU3Ry
aWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKK3ZvaWQgdmFkZChjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IxLCBpbnQgaW5wdXRTdHJpZGUx
LCBjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IyLCBpbnQgaW5wdXRTdHJpZGUyLCBmbG9hdCogb3V0
cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJv
Y2VzcykKIHsKLSAgICB2RFNQX3ZhZGQoc291cmNlMVAsIHNvdXJjZVN0cmlkZTEsIHNvdXJjZTJQ
LCBzb3VyY2VTdHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAg
ICB2RFNQX3ZhZGQoaW5wdXRWZWN0b3IxLCBpbnB1dFN0cmlkZTEsIGlucHV0VmVjdG9yMiwgaW5w
dXRTdHJpZGUyLCBvdXRwdXRWZWN0b3IsIG91dHB1dFN0cmlkZSwgbnVtYmVyT2ZFbGVtZW50c1Rv
UHJvY2Vzcyk7CiB9CiAKLXZvaWQgdnNhZGQoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3Vy
Y2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsYXIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJp
ZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZzYWRkKGNvbnN0IGZsb2F0KiBpbnB1
dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGFyLCBmbG9hdCogb3V0
cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJv
Y2VzcykKIHsKLSAgICB2RFNQX3ZzYWRkKHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwgc2NhbGFyLCBk
ZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICB2RFNQX3ZzYWRkKGlucHV0
VmVjdG9yLCBpbnB1dFN0cmlkZSwgc2NhbGFyLCBvdXRwdXRWZWN0b3IsIG91dHB1dFN0cmlkZSwg
bnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7CiB9CiAKLXZvaWQgdm11bChjb25zdCBmbG9hdCog
c291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBz
b3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjEsIGludCBpbnB1
dFN0cmlkZTEsIGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjIsIGludCBpbnB1dFN0cmlkZTIsIGZs
b2F0KiBvdXRwdXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNpemVfdCBudW1iZXJPZkVsZW1l
bnRzVG9Qcm9jZXNzKQogewotICAgIHZEU1Bfdm11bChzb3VyY2UxUCwgc291cmNlU3RyaWRlMSwg
c291cmNlMlAsIHNvdXJjZVN0cmlkZTIsIGRlc3RQLCBkZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nl
c3MpOworICAgIHZEU1Bfdm11bChpbnB1dFZlY3RvcjEsIGlucHV0U3RyaWRlMSwgaW5wdXRWZWN0
b3IyLCBpbnB1dFN0cmlkZTIsIG91dHB1dFZlY3Rvciwgb3V0cHV0U3RyaWRlLCBudW1iZXJPZkVs
ZW1lbnRzVG9Qcm9jZXNzKTsKIH0KIAotdm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbDFQLCBj
b25zdCBmbG9hdCogaW1hZzFQLCBjb25zdCBmbG9hdCogcmVhbDJQLCBjb25zdCBmbG9hdCogaW1h
ZzJQLCBmbG9hdCogcmVhbERlc3RQLCBmbG9hdCogaW1hZ0Rlc3RQLCBzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQordm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbFZlY3RvcjEsIGNvbnN0IGZsb2F0
KiBpbWFnVmVjdG9yMSwgY29uc3QgZmxvYXQqIHJlYWxWZWN0b3IyLCBjb25zdCBmbG9hdCogaW1h
ZzJQLCBmbG9hdCogcmVhbE91dHB1dFZlY3RvciwgZmxvYXQqIGltYWdEZXN0UCwgc2l6ZV90IG51
bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7CiAgICAgRFNQU3BsaXRDb21wbGV4IHNjMTsKICAg
ICBEU1BTcGxpdENvbXBsZXggc2MyOwogICAgIERTUFNwbGl0Q29tcGxleCBkZXN0OwotICAgIHNj
MS5yZWFscCA9IGNvbnN0X2Nhc3Q8ZmxvYXQqPihyZWFsMVApOwotICAgIHNjMS5pbWFncCA9IGNv
bnN0X2Nhc3Q8ZmxvYXQqPihpbWFnMVApOwotICAgIHNjMi5yZWFscCA9IGNvbnN0X2Nhc3Q8Zmxv
YXQqPihyZWFsMlApOworICAgIHNjMS5yZWFscCA9IGNvbnN0X2Nhc3Q8ZmxvYXQqPihyZWFsVmVj
dG9yMSk7CisgICAgc2MxLmltYWdwID0gY29uc3RfY2FzdDxmbG9hdCo+KGltYWdWZWN0b3IxKTsK
KyAgICBzYzIucmVhbHAgPSBjb25zdF9jYXN0PGZsb2F0Kj4ocmVhbFZlY3RvcjIpOwogICAgIHNj
Mi5pbWFncCA9IGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbWFnMlApOwotICAgIGRlc3QucmVhbHAgPSBy
ZWFsRGVzdFA7CisgICAgZGVzdC5yZWFscCA9IHJlYWxPdXRwdXRWZWN0b3I7CiAgICAgZGVzdC5p
bWFncCA9IGltYWdEZXN0UDsKLSAgICB2RFNQX3p2bXVsKCZzYzEsIDEsICZzYzIsIDEsICZkZXN0
LCAxLCBmcmFtZXNUb1Byb2Nlc3MsIDEpOworICAgIHZEU1BfenZtdWwoJnNjMSwgMSwgJnNjMiwg
MSwgJmRlc3QsIDEsIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MsIDEpOwogfQogCi12b2lkIHZz
bWEoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBz
Y2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKK3ZvaWQgdnNtYShjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwg
Y29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRl
LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICB2RFNQX3ZzbWEoc291
cmNlUCwgc291cmNlU3RyaWRlLCBzY2FsZSwgZGVzdFAsIGRlc3RTdHJpZGUsIGRlc3RQLCBkZXN0
U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIHZEU1BfdnNtYShpbnB1dFZlY3RvciwgaW5w
dXRTdHJpZGUsIHNjYWxlLCBvdXRwdXRWZWN0b3IsIG91dHB1dFN0cmlkZSwgb3V0cHV0VmVjdG9y
LCBvdXRwdXRTdHJpZGUsIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwogfQogCi12b2lkIHZt
YXhtZ3YoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBtYXhQ
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2bWF4bWd2KGNvbnN0IGZsb2F0KiBpbnB1
dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBmbG9hdCogbWF4aW11bVZhbHVlLCBzaXplX3QgbnVt
YmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICB2RFNQX21heG1ndihzb3VyY2VQLCBzb3Vy
Y2VTdHJpZGUsIG1heFAsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgdkRTUF9tYXhtZ3YoaW5wdXRW
ZWN0b3IsIGlucHV0U3RyaWRlLCBtYXhpbXVtVmFsdWUsIG51bWJlck9mRWxlbWVudHNUb1Byb2Nl
c3MpOwogfQogCi12b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0
cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZzdmVzcShj
b25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIHN1bSwgc2l6
ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgdkRTUF9zdmVzcShjb25zdF9j
YXN0PGZsb2F0Kj4oc291cmNlUCksIHNvdXJjZVN0cmlkZSwgc3VtUCwgZnJhbWVzVG9Qcm9jZXNz
KTsKKyAgICB2RFNQX3N2ZXNxKGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvciksIGlucHV0
U3RyaWRlLCBzdW0sIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwogfQogCi12b2lkIHZjbGlw
KGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogbG93
VGhyZXNob2xkUCwgY29uc3QgZmxvYXQqIGhpZ2hUaHJlc2hvbGRQLCBmbG9hdCogZGVzdFAsIGlu
dCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2Y2xpcChjb25zdCBm
bG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIGxvd1RocmVz
aG9sZFAsIGNvbnN0IGZsb2F0KiBoaWdoVGhyZXNob2xkUCwgZmxvYXQqIG91dHB1dFZlY3Rvciwg
aW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0g
ICAgdkRTUF92Y2xpcChjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlUCksIHNvdXJjZVN0cmlkZSwg
Y29uc3RfY2FzdDxmbG9hdCo+KGxvd1RocmVzaG9sZFApLCBjb25zdF9jYXN0PGZsb2F0Kj4oaGln
aFRocmVzaG9sZFApLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICB2
RFNQX3ZjbGlwKGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvciksIGlucHV0U3RyaWRlLCBj
b25zdF9jYXN0PGZsb2F0Kj4obG93VGhyZXNob2xkUCksIGNvbnN0X2Nhc3Q8ZmxvYXQqPihoaWdo
VGhyZXNob2xkUCksIG91dHB1dFZlY3Rvciwgb3V0cHV0U3RyaWRlLCBudW1iZXJPZkVsZW1lbnRz
VG9Qcm9jZXNzKTsKIH0KKwordm9pZCBsaW5lYXJUb0RlY2liZWxzKGNvbnN0IGZsb2F0KiBpbnB1
dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0
U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKK3sKKyAgICBmbG9hdCBy
ZWZlcmVuY2UgPSAxOworICAgIHZEU1BfdmRiY29uKGlucHV0VmVjdG9yLCBpbnB1dFN0cmlkZSwg
JnJlZmVyZW5jZSwgb3V0cHV0VmVjdG9yLCBvdXRwdXRTdHJpZGUsIG51bWJlck9mRWxlbWVudHNU
b1Byb2Nlc3MsIDEpOworfQorCiAjZWxzZQogCi12b2lkIHZzbWEoY29uc3QgZmxvYXQqIHNvdXJj
ZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBp
bnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgdnNtYShjb25zdCBm
bG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBm
bG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVt
ZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICBpbnQg
biA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAKICNpZiBDUFUoWDg2X1NTRTIpCi0gICAg
aWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsKKyAgICBpZiAo
KGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJpZGUgPT0gMSkpIHsKICAgICAgICAgZmxv
YXQgayA9ICpzY2FsZTsKIAotICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRyZXNzIGlzIG5v
dCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJl
ZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgotICAgICAgICB3aGlsZSAoKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihzb3VyY2VQKSAmIDB4MEYpICYmIG4pIHsKLSAgICAgICAg
ICAgICpkZXN0UCArPSBrICogKnNvdXJjZVA7Ci0gICAgICAgICAgICBzb3VyY2VQKys7Ci0gICAg
ICAgICAgICBkZXN0UCsrOworICAgICAgICAvLyBJZiB0aGUgaW5wdXRWZWN0b3IgYWRkcmVzcyBp
cyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1vc3Qg
dGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KKyAgICAgICAgd2hpbGUgKChy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oaW5wdXRWZWN0b3IpICYgMHgwRikgJiYgbikgewor
ICAgICAgICAgICAgKm91dHB1dFZlY3RvciArPSBrICogKmlucHV0VmVjdG9yOworICAgICAgICAg
ICAgaW5wdXRWZWN0b3IrKzsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvcisrOwogICAgICAgICAg
ICAgbi0tOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gTm93IHRoZSBzb3VyY2VQIGlzIGFsaWdu
ZWQsIHVzZSBTU0UuCisgICAgICAgIC8vIE5vdyB0aGUgaW5wdXRWZWN0b3IgaXMgYWxpZ25lZCwg
dXNlIFNTRS4KICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUgNDsKLSAgICAgICAgY29uc3Qg
ZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOworICAgICAgICBjb25zdCBmbG9h
dCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVzOwogCiAgICAgICAgIF9fbTEy
OCBwU291cmNlOwogICAgICAgICBfX20xMjggZGVzdDsKICAgICAgICAgX19tMTI4IHRlbXA7CiAg
ICAgICAgIF9fbTEyOCBtU2NhbGUgPSBfbW1fc2V0X3BzMShrKTsKIAotICAgICAgICBib29sIGRl
c3RBbGlnbmVkID0gIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGVzdFApICYgMHgwRik7
CisgICAgICAgIGJvb2wgZGVzdEFsaWduZWQgPSAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihvdXRwdXRWZWN0b3IpICYgMHgwRik7CiAKICNkZWZpbmUgU1NFMl9NVUxUX0FERChsb2FkSW5z
dHIsIHN0b3JlSW5zdHIpICAgICAgICBcCi0gICAgICAgICAgICB3aGlsZSAoZGVzdFAgPCBlbmRQ
KSAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgd2hpbGUgKG91dHB1dFZlY3RvciA8
IGVuZFApICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIHBTb3VyY2UgPSBfbW1f
bG9hZF9wcyhzb3VyY2VQKTsgICAgIFwKKyAgICAgICAgICAgICAgICBwU291cmNlID0gX21tX2xv
YWRfcHMoaW5wdXRWZWN0b3IpOyAgICAgXAogICAgICAgICAgICAgICAgIHRlbXAgPSBfbW1fbXVs
X3BzKHBTb3VyY2UsIG1TY2FsZSk7IFwKLSAgICAgICAgICAgICAgICBkZXN0ID0gX21tXyMjbG9h
ZEluc3RyIyNfcHMoZGVzdFApOyBcCisgICAgICAgICAgICAgICAgZGVzdCA9IF9tbV8jI2xvYWRJ
bnN0ciMjX3BzKG91dHB1dFZlY3Rvcik7IFwKICAgICAgICAgICAgICAgICBkZXN0ID0gX21tX2Fk
ZF9wcyhkZXN0LCB0ZW1wKTsgICAgICBcCi0gICAgICAgICAgICAgICAgX21tXyMjc3RvcmVJbnN0
ciMjX3BzKGRlc3RQLCBkZXN0KTsgXAotICAgICAgICAgICAgICAgIHNvdXJjZVAgKz0gNDsgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBkZXN0UCArPSA0OyAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgX21tXyMjc3RvcmVJbnN0ciMjX3Bz
KG91dHB1dFZlY3RvciwgZGVzdCk7IFwKKyAgICAgICAgICAgICAgICBpbnB1dFZlY3RvciArPSA0
OyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG91dHB1dFZlY3RvciAr
PSA0OyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB9CiAKICAgICAgICAg
aWYgKGRlc3RBbGlnbmVkKSAKQEAgLTE1Miw0OSArMTYwLDQ5IEBAIHZvaWQgdnNtYShjb25zdCBm
bG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9h
dCogZGVzCiAgICAgICAgIG4gPSB0YWlsRnJhbWVzOwogICAgIH0KICNlbGlmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKLSAgICBpZiAoKHNvdXJjZVN0cmlkZSA9PSAxKSAmJiAoZGVzdFN0cmlk
ZSA9PSAxKSkgeworICAgIGlmICgoaW5wdXRTdHJpZGUgPT0gMSkgJiYgKG91dHB1dFN0cmlkZSA9
PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9IG4gJSA0OwotICAgICAgICBjb25zdCBm
bG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFtZXM7CisgICAgICAgIGNvbnN0IGZsb2F0
KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAKICAgICAgICAgZmxvYXQz
Mng0X3QgayA9IHZkdXBxX25fZjMyKCpzY2FsZSk7Ci0gICAgICAgIHdoaWxlIChkZXN0UCA8IGVu
ZFApIHsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZSA9IHZsZDFxX2YzMihzb3VyY2VQ
KTsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90IGRlc3QgPSB2bGQxcV9mMzIoZGVzdFApOworICAg
ICAgICB3aGlsZSAob3V0cHV0VmVjdG9yIDwgZW5kUCkgeworICAgICAgICAgICAgZmxvYXQzMng0
X3Qgc291cmNlID0gdmxkMXFfZjMyKGlucHV0VmVjdG9yKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4
NF90IGRlc3QgPSB2bGQxcV9mMzIob3V0cHV0VmVjdG9yKTsKIAogICAgICAgICAgICAgZGVzdCA9
IHZtbGFxX2YzMihkZXN0LCBzb3VyY2UsIGspOwotICAgICAgICAgICAgdnN0MXFfZjMyKGRlc3RQ
LCBkZXN0KTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRwdXRWZWN0b3IsIGRlc3QpOwogCi0g
ICAgICAgICAgICBzb3VyY2VQICs9IDQ7Ci0gICAgICAgICAgICBkZXN0UCArPSA0OworICAgICAg
ICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0Owog
ICAgICAgICB9CiAgICAgICAgIG4gPSB0YWlsRnJhbWVzOwogICAgIH0KICNlbmRpZgogICAgIHdo
aWxlIChuKSB7Ci0gICAgICAgICpkZXN0UCArPSAqc291cmNlUCAqICpzY2FsZTsKLSAgICAgICAg
c291cmNlUCArPSBzb3VyY2VTdHJpZGU7Ci0gICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7Cisg
ICAgICAgICpvdXRwdXRWZWN0b3IgKz0gKmlucHV0VmVjdG9yICogKnNjYWxlOworICAgICAgICBp
bnB1dFZlY3RvciArPSBpbnB1dFN0cmlkZTsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91dHB1
dFN0cmlkZTsKICAgICAgICAgbi0tOwogICAgIH0KIH0KIAotdm9pZCB2c211bChjb25zdCBmbG9h
dCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCog
ZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2c211
bChjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQq
IHNjYWxlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVt
YmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsK
KyAgICBpbnQgbiA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAKICNpZiBDUFUoWDg2X1NT
RTIpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsK
KyAgICBpZiAoKGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJpZGUgPT0gMSkpIHsKICAg
ICAgICAgZmxvYXQgayA9ICpzY2FsZTsKIAotICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRy
ZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQg
bW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgotICAgICAgICB3aGls
ZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pihzb3VyY2VQKSAmIDB4MEYpICYmIG4pIHsKLSAg
ICAgICAgICAgICpkZXN0UCA9IGsgKiAqc291cmNlUDsKLSAgICAgICAgICAgIHNvdXJjZVArKzsK
LSAgICAgICAgICAgIGRlc3RQKys7CisgICAgICAgIC8vIElmIHRoZSBpbnB1dFZlY3RvciBhZGRy
ZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQg
bW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgorICAgICAgICB3aGls
ZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1dFZlY3RvcikgJiAweDBGKSAmJiBuKSB7
CisgICAgICAgICAgICAqb3V0cHV0VmVjdG9yID0gayAqICppbnB1dFZlY3RvcjsKKyAgICAgICAg
ICAgIGlucHV0VmVjdG9yKys7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAg
ICAgIG4tLTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIE5vdyB0aGUgc291cmNlUCBhZGRyZXNz
IGlzIGFsaWduZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBp
bnB1dFZlY3RvciBhZGRyZXNzIGlzIGFsaWduZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KICAg
ICAgICAgaW50IGdyb3VwID0gbiAvIDQ7CiAgICAgICAgIF9fbTEyOCBtU2NhbGUgPSBfbW1fc2V0
X3BzMShrKTsKICAgICAgICAgX19tMTI4KiBwU291cmNlOwpAQCAtMjAyLDE1NSArMjEwLDE1NSBA
QCB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25z
dCBmbG9hdCogc2NhbGUsIGZsb2F0KiBkZQogICAgICAgICBfX20xMjggZGVzdDsKIAogCi0gICAg
ICAgIGlmIChyZWludGVycHJldF9jYXN0PHNpemVfdD4oZGVzdFApICYgMHgwRikgeworICAgICAg
ICBpZiAocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KG91dHB1dFZlY3RvcikgJiAweDBGKSB7CiAg
ICAgICAgICAgICB3aGlsZSAoZ3JvdXAtLSkgewotICAgICAgICAgICAgICAgIHBTb3VyY2UgPSBy
ZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQqPihzb3VyY2VQKSk7Cisg
ICAgICAgICAgICAgICAgcFNvdXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3Rf
Y2FzdDxmbG9hdCo+KGlucHV0VmVjdG9yKSk7CiAgICAgICAgICAgICAgICAgZGVzdCA9IF9tbV9t
dWxfcHMoKnBTb3VyY2UsIG1TY2FsZSk7Ci0gICAgICAgICAgICAgICAgX21tX3N0b3JldV9wcyhk
ZXN0UCwgZGVzdCk7CisgICAgICAgICAgICAgICAgX21tX3N0b3JldV9wcyhvdXRwdXRWZWN0b3Is
IGRlc3QpOwogCi0gICAgICAgICAgICAgICAgc291cmNlUCArPSA0OwotICAgICAgICAgICAgICAg
IGRlc3RQICs9IDQ7CisgICAgICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKKyAgICAgICAg
ICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIHdoaWxlIChncm91cC0tKSB7Ci0gICAgICAgICAgICAgICAgcFNvdXJj
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZVAp
KTsKLSAgICAgICAgICAgICAgICBwRGVzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oZGVz
dFApOworICAgICAgICAgICAgICAgIHBTb3VyY2UgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+
KGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvcikpOworICAgICAgICAgICAgICAgIHBEZXN0
ID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihvdXRwdXRWZWN0b3IpOwogICAgICAgICAgICAg
ICAgICpwRGVzdCA9IF9tbV9tdWxfcHMoKnBTb3VyY2UsIG1TY2FsZSk7CiAKLSAgICAgICAgICAg
ICAgICBzb3VyY2VQICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAg
ICAgICAgICBpbnB1dFZlY3RvciArPSA0OworICAgICAgICAgICAgICAgIG91dHB1dFZlY3RvciAr
PSA0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLy8gTm9uLVNTRSBoYW5k
bGluZyBmb3IgcmVtYWluaW5nIGZyYW1lcyB3aGljaCBpcyBsZXNzIHRoYW4gNC4KICAgICAgICAg
biAlPSA0OwogICAgICAgICB3aGlsZSAobikgewotICAgICAgICAgICAgKmRlc3RQID0gayAqICpz
b3VyY2VQOwotICAgICAgICAgICAgc291cmNlUCsrOwotICAgICAgICAgICAgZGVzdFArKzsKKyAg
ICAgICAgICAgICpvdXRwdXRWZWN0b3IgPSBrICogKmlucHV0VmVjdG9yOworICAgICAgICAgICAg
aW5wdXRWZWN0b3IrKzsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvcisrOwogICAgICAgICAgICAg
bi0tOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsgLy8gSWYgc3RyaWRlcyBhcmUgbm90IDEsIHJv
bGxiYWNrIHRvIG5vcm1hbCBhbGdvcml0aG0uCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJ
Q1MpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsK
KyAgICBpZiAoKGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJpZGUgPT0gMSkpIHsKICAg
ICAgICAgZmxvYXQgayA9ICpzY2FsZTsKICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUgNDsK
LSAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOworICAg
ICAgICBjb25zdCBmbG9hdCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVzOwog
Ci0gICAgICAgIHdoaWxlIChkZXN0UCA8IGVuZFApIHsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90
IHNvdXJjZSA9IHZsZDFxX2YzMihzb3VyY2VQKTsKLSAgICAgICAgICAgIHZzdDFxX2YzMihkZXN0
UCwgdm11bHFfbl9mMzIoc291cmNlLCBrKSk7CisgICAgICAgIHdoaWxlIChvdXRwdXRWZWN0b3Ig
PCBlbmRQKSB7CisgICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3VyY2UgPSB2bGQxcV9mMzIoaW5w
dXRWZWN0b3IpOworICAgICAgICAgICAgdnN0MXFfZjMyKG91dHB1dFZlY3Rvciwgdm11bHFfbl9m
MzIoc291cmNlLCBrKSk7CiAKLSAgICAgICAgICAgIHNvdXJjZVAgKz0gNDsKLSAgICAgICAgICAg
IGRlc3RQICs9IDQ7CisgICAgICAgICAgICBpbnB1dFZlY3RvciArPSA0OworICAgICAgICAgICAg
b3V0cHV0VmVjdG9yICs9IDQ7CiAgICAgICAgIH0KICAgICAgICAgbiA9IHRhaWxGcmFtZXM7CiAg
ICAgfQogI2VuZGlmCiAgICAgZmxvYXQgayA9ICpzY2FsZTsKICAgICB3aGlsZSAobi0tKSB7Ci0g
ICAgICAgICpkZXN0UCA9IGsgKiAqc291cmNlUDsKLSAgICAgICAgc291cmNlUCArPSBzb3VyY2VT
dHJpZGU7Ci0gICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgICAgICpvdXRwdXRWZWN0
b3IgPSBrICogKmlucHV0VmVjdG9yOworICAgICAgICBpbnB1dFZlY3RvciArPSBpbnB1dFN0cmlk
ZTsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91dHB1dFN0cmlkZTsKICAgICB9CiAjaWYgQ1BV
KFg4Nl9TU0UyKQogICAgIH0KICNlbmRpZgogfQogCi12b2lkIHZzYWRkKGNvbnN0IGZsb2F0KiBz
b3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGFyLCBmbG9hdCogZGVz
dFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2c2FkZChj
b25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNj
YWxhciwgZmxvYXQqIG91dHB1dFZlY3RvciwgaW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJl
ck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7Cisg
ICAgaW50IG4gPSBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzOwogCiAjaWYgQ1BVKFg4Nl9TU0Uy
KQotICAgIGlmIChzb3VyY2VTdHJpZGUgPT0gMSAmJiBkZXN0U3RyaWRlID09IDEpIHsKLSAgICAg
ICAgLy8gSWYgdGhlIHNvdXJjZVAgYWRkcmVzcyBpcyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUg
Zmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1vc3QgdGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQg
c2VwYXJhdGVseS4KLSAgICAgICAgd2hpbGUgKChyZWludGVycHJldF9jYXN0PHNpemVfdD4oc291
cmNlUCkgJiAweDBGKSAmJiBuKSB7Ci0gICAgICAgICAgICAqZGVzdFAgPSAqc291cmNlUCArICpz
Y2FsYXI7Ci0gICAgICAgICAgICBzb3VyY2VQKys7Ci0gICAgICAgICAgICBkZXN0UCsrOworICAg
IGlmIChpbnB1dFN0cmlkZSA9PSAxICYmIG91dHB1dFN0cmlkZSA9PSAxKSB7CisgICAgICAgIC8v
IElmIHRoZSBpbnB1dFZlY3RvciBhZGRyZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBm
aXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBz
ZXBhcmF0ZWx5LgorICAgICAgICB3aGlsZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1
dFZlY3RvcikgJiAweDBGKSAmJiBuKSB7CisgICAgICAgICAgICAqb3V0cHV0VmVjdG9yID0gKmlu
cHV0VmVjdG9yICsgKnNjYWxhcjsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yKys7CisgICAgICAg
ICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsKICAgICAgICAgfQogCi0gICAg
ICAgIC8vIE5vdyB0aGUgc291cmNlUCBhZGRyZXNzIGlzIGFsaWduZWQgYW5kIHN0YXJ0IHRvIGFw
cGx5IFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBpbnB1dFZlY3RvciBhZGRyZXNzIGlzIGFsaWdu
ZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KICAgICAgICAgaW50IGdyb3VwID0gbiAvIDQ7CiAg
ICAgICAgIF9fbTEyOCBtU2NhbGFyID0gX21tX3NldF9wczEoKnNjYWxhcik7CiAgICAgICAgIF9f
bTEyOCogcFNvdXJjZTsKICAgICAgICAgX19tMTI4KiBwRGVzdDsKICAgICAgICAgX19tMTI4IGRl
c3Q7CiAKLSAgICAgICAgYm9vbCBkZXN0QWxpZ25lZCA9ICEocmVpbnRlcnByZXRfY2FzdDxzaXpl
X3Q+KGRlc3RQKSAmIDB4MEYpOworICAgICAgICBib29sIGRlc3RBbGlnbmVkID0gIShyZWludGVy
cHJldF9jYXN0PHNpemVfdD4ob3V0cHV0VmVjdG9yKSAmIDB4MEYpOwogICAgICAgICBpZiAoZGVz
dEFsaWduZWQpIHsgLy8gYWxsIGFsaWduZWQKICAgICAgICAgICAgIHdoaWxlIChncm91cC0tKSB7
Ci0gICAgICAgICAgICAgICAgcFNvdXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29u
c3RfY2FzdDxmbG9hdCo+KHNvdXJjZVApKTsKLSAgICAgICAgICAgICAgICBwRGVzdCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oZGVzdFApOworICAgICAgICAgICAgICAgIHBTb3VyY2UgPSBy
ZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3Rvcikp
OworICAgICAgICAgICAgICAgIHBEZXN0ID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihvdXRw
dXRWZWN0b3IpOwogICAgICAgICAgICAgICAgICpwRGVzdCA9IF9tbV9hZGRfcHMoKnBTb3VyY2Us
IG1TY2FsYXIpOwogCi0gICAgICAgICAgICAgICAgc291cmNlUCArPSA0OwotICAgICAgICAgICAg
ICAgIGRlc3RQICs9IDQ7CisgICAgICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKKyAgICAg
ICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHdoaWxlIChncm91cC0tKSB7Ci0gICAgICAgICAgICAgICAgcFNv
dXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJj
ZVApKTsKKyAgICAgICAgICAgICAgICBwU291cmNlID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgq
Pihjb25zdF9jYXN0PGZsb2F0Kj4oaW5wdXRWZWN0b3IpKTsKICAgICAgICAgICAgICAgICBkZXN0
ID0gX21tX2FkZF9wcygqcFNvdXJjZSwgbVNjYWxhcik7Ci0gICAgICAgICAgICAgICAgX21tX3N0
b3JldV9wcyhkZXN0UCwgZGVzdCk7CisgICAgICAgICAgICAgICAgX21tX3N0b3JldV9wcyhvdXRw
dXRWZWN0b3IsIGRlc3QpOwogCi0gICAgICAgICAgICAgICAgc291cmNlUCArPSA0OwotICAgICAg
ICAgICAgICAgIGRlc3RQICs9IDQ7CisgICAgICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsK
KyAgICAgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCiAgICAgICAgIC8vIE5vbi1TU0UgaGFuZGxpbmcgZm9yIHJlbWFpbmluZyBmcmFtZXMg
d2hpY2ggaXMgbGVzcyB0aGFuIDQuCiAgICAgICAgIG4gJT0gNDsKICAgICAgICAgd2hpbGUgKG4p
IHsKLSAgICAgICAgICAgICpkZXN0UCA9ICpzb3VyY2VQICsgKnNjYWxhcjsKLSAgICAgICAgICAg
IHNvdXJjZVArKzsKLSAgICAgICAgICAgIGRlc3RQKys7CisgICAgICAgICAgICAqb3V0cHV0VmVj
dG9yID0gKmlucHV0VmVjdG9yICsgKnNjYWxhcjsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yKys7
CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7IC8vIGlmIHN0cmlkZXMgYXJlIG5vdCAxLCByb2xsYmFjayB0byBub3Jt
YWwgYWxnb3JpdGhtCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKHNv
dXJjZVN0cmlkZSA9PSAxICYmIGRlc3RTdHJpZGUgPT0gMSkgeworICAgIGlmIChpbnB1dFN0cmlk
ZSA9PSAxICYmIG91dHB1dFN0cmlkZSA9PSAxKSB7CiAgICAgICAgIGludCB0YWlsRnJhbWVzID0g
biAlIDQ7Ci0gICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gZGVzdFAgKyBuIC0gdGFpbEZyYW1l
czsKKyAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBvdXRwdXRWZWN0b3IgKyBuIC0gdGFpbEZy
YW1lczsKICAgICAgICAgZmxvYXQzMng0X3Qgc2NhbGFyVmVjdG9yID0gdmR1cHFfbl9mMzIoKnNj
YWxhcik7CiAKLSAgICAgICAgd2hpbGUgKGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxv
YXQzMng0X3Qgc291cmNlID0gdmxkMXFfZjMyKHNvdXJjZVApOwotICAgICAgICAgICAgdnN0MXFf
ZjMyKGRlc3RQLCB2YWRkcV9mMzIoc291cmNlLCBzY2FsYXJWZWN0b3IpKTsKKyAgICAgICAgd2hp
bGUgKG91dHB1dFZlY3RvciA8IGVuZFApIHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJj
ZSA9IHZsZDFxX2YzMihpbnB1dFZlY3Rvcik7CisgICAgICAgICAgICB2c3QxcV9mMzIob3V0cHV0
VmVjdG9yLCB2YWRkcV9mMzIoc291cmNlLCBzY2FsYXJWZWN0b3IpKTsKIAotICAgICAgICAgICAg
c291cmNlUCArPSA0OwotICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgICAgIGlucHV0
VmVjdG9yICs9IDQ7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgfQog
ICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9CiAjZW5kaWYKICAgICB3aGlsZSAobi0tKSB7
Ci0gICAgICAgICpkZXN0UCA9ICpzb3VyY2VQICsgKnNjYWxhcjsKLSAgICAgICAgc291cmNlUCAr
PSBzb3VyY2VTdHJpZGU7Ci0gICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgICAgICpv
dXRwdXRWZWN0b3IgPSAqaW5wdXRWZWN0b3IgKyAqc2NhbGFyOworICAgICAgICBpbnB1dFZlY3Rv
ciArPSBpbnB1dFN0cmlkZTsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91dHB1dFN0cmlkZTsK
ICAgICB9CiAjaWYgQ1BVKFg4Nl9TU0UyKQogICAgIH0KICNlbmRpZgogfQogCi12b2lkIHZhZGQo
Y29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNv
dXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwg
c2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgdmFkZChjb25zdCBmbG9hdCogaW5wdXRWZWN0
b3IxLCBpbnQgaW5wdXRTdHJpZGUxLCBjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IyLCBpbnQgaW5w
dXRTdHJpZGUyLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3Qg
bnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2Vz
czsKKyAgICBpbnQgbiA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAKICNpZiBDUFUoWDg2
X1NTRTIpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUxID09MSkgJiYgKHNvdXJjZVN0cmlkZTIgPT0g
MSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsKLSAgICAgICAgLy8gSWYgdGhlIHNvdXJjZVAgYWRk
cmVzcyBpcyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0
IG1vc3QgdGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KLSAgICAgICAgd2hp
bGUgKChyZWludGVycHJldF9jYXN0PHNpemVfdD4oc291cmNlMVApICYgMHgwRikgJiYgbikgewot
ICAgICAgICAgICAgKmRlc3RQID0gKnNvdXJjZTFQICsgKnNvdXJjZTJQOwotICAgICAgICAgICAg
c291cmNlMVArKzsKLSAgICAgICAgICAgIHNvdXJjZTJQKys7Ci0gICAgICAgICAgICBkZXN0UCsr
OworICAgIGlmICgoaW5wdXRTdHJpZGUxID09MSkgJiYgKGlucHV0U3RyaWRlMiA9PSAxKSAmJiAo
b3V0cHV0U3RyaWRlID09IDEpKSB7CisgICAgICAgIC8vIElmIHRoZSBpbnB1dFZlY3RvciBhZGRy
ZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQg
bW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgorICAgICAgICB3aGls
ZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1dFZlY3RvcjEpICYgMHgwRikgJiYgbikg
eworICAgICAgICAgICAgKm91dHB1dFZlY3RvciA9ICppbnB1dFZlY3RvcjEgKyAqaW5wdXRWZWN0
b3IyOworICAgICAgICAgICAgaW5wdXRWZWN0b3IxKys7CisgICAgICAgICAgICBpbnB1dFZlY3Rv
cjIrKzsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvcisrOwogICAgICAgICAgICAgbi0tOwogICAg
ICAgICB9CiAKLSAgICAgICAgLy8gTm93IHRoZSBzb3VyY2UxUCBhZGRyZXNzIGlzIGFsaWduZWQg
YW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBpbnB1dFZlY3RvcjEg
YWRkcmVzcyBpcyBhbGlnbmVkIGFuZCBzdGFydCB0byBhcHBseSBTU0UuCiAgICAgICAgIGludCBn
cm91cCA9IG4gLyA0OwogICAgICAgICBfX20xMjgqIHBTb3VyY2UxOwogICAgICAgICBfX20xMjgq
IHBTb3VyY2UyOwpAQCAtMzU4LDEzMSArMzY2LDEzMSBAQCB2b2lkIHZhZGQoY29uc3QgZmxvYXQq
IHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQg
cwogICAgICAgICBfX20xMjggc291cmNlMjsKICAgICAgICAgX19tMTI4IGRlc3Q7CiAKLSAgICAg
ICAgYm9vbCBzb3VyY2UyQWxpZ25lZCA9ICEocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KHNvdXJj
ZTJQKSAmIDB4MEYpOwotICAgICAgICBib29sIGRlc3RBbGlnbmVkID0gIShyZWludGVycHJldF9j
YXN0PHNpemVfdD4oZGVzdFApICYgMHgwRik7CisgICAgICAgIGJvb2wgc291cmNlMkFsaWduZWQg
PSAhKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1dFZlY3RvcjIpICYgMHgwRik7CisgICAg
ICAgIGJvb2wgZGVzdEFsaWduZWQgPSAhKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihvdXRwdXRW
ZWN0b3IpICYgMHgwRik7CiAKICAgICAgICAgaWYgKHNvdXJjZTJBbGlnbmVkICYmIGRlc3RBbGln
bmVkKSB7IC8vIGFsbCBhbGlnbmVkCiAgICAgICAgICAgICB3aGlsZSAoZ3JvdXAtLSkgewotICAg
ICAgICAgICAgICAgIHBTb3VyY2UxID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihjb25zdF9j
YXN0PGZsb2F0Kj4oc291cmNlMVApKTsKLSAgICAgICAgICAgICAgICBwU291cmNlMiA9IHJlaW50
ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTJQKSk7Ci0gICAg
ICAgICAgICAgICAgcERlc3QgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGRlc3RQKTsKKyAg
ICAgICAgICAgICAgICBwU291cmNlMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3Rf
Y2FzdDxmbG9hdCo+KGlucHV0VmVjdG9yMSkpOworICAgICAgICAgICAgICAgIHBTb3VyY2UyID0g
cmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oaW5wdXRWZWN0b3Iy
KSk7CisgICAgICAgICAgICAgICAgcERlc3QgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+KG91
dHB1dFZlY3Rvcik7CiAgICAgICAgICAgICAgICAgKnBEZXN0ID0gX21tX2FkZF9wcygqcFNvdXJj
ZTEsICpwU291cmNlMik7CiAKLSAgICAgICAgICAgICAgICBzb3VyY2UxUCArPSA0OwotICAgICAg
ICAgICAgICAgIHNvdXJjZTJQICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAg
ICAgICAgICAgICAgICBpbnB1dFZlY3RvcjEgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1dFZl
Y3RvcjIgKz0gNDsKKyAgICAgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZTJBbGlnbmVkICYmICFkZXN0QWxpZ25l
ZCkgeyAvLyBzb3VyY2UyIGFsaWduZWQgYnV0IGRlc3Qgbm90IGFsaWduZWQgCiAgICAgICAgICAg
ICB3aGlsZSAoZ3JvdXAtLSkgewotICAgICAgICAgICAgICAgIHBTb3VyY2UxID0gcmVpbnRlcnBy
ZXRfY2FzdDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApKTsKLSAgICAgICAg
ICAgICAgICBwU291cmNlMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxm
bG9hdCo+KHNvdXJjZTJQKSk7CisgICAgICAgICAgICAgICAgcFNvdXJjZTEgPSByZWludGVycHJl
dF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvcjEpKTsKKyAgICAg
ICAgICAgICAgICBwU291cmNlMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2Fz
dDxmbG9hdCo+KGlucHV0VmVjdG9yMikpOwogICAgICAgICAgICAgICAgIGRlc3QgPSBfbW1fYWRk
X3BzKCpwU291cmNlMSwgKnBTb3VyY2UyKTsKLSAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3Bz
KGRlc3RQLCBkZXN0KTsKKyAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3BzKG91dHB1dFZlY3Rv
ciwgZGVzdCk7CiAKLSAgICAgICAgICAgICAgICBzb3VyY2UxUCArPSA0OwotICAgICAgICAgICAg
ICAgIHNvdXJjZTJQICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAg
ICAgICAgICBpbnB1dFZlY3RvcjEgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1dFZlY3RvcjIg
Kz0gNDsKKyAgICAgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0K
IAogICAgICAgICB9IGVsc2UgaWYgKCFzb3VyY2UyQWxpZ25lZCAmJiBkZXN0QWxpZ25lZCkgeyAv
LyBzb3VyY2UyIG5vdCBhbGlnbmVkIGJ1dCBkZXN0IGFsaWduZWQgCiAgICAgICAgICAgICB3aGls
ZSAoZ3JvdXAtLSkgewotICAgICAgICAgICAgICAgIHBTb3VyY2UxID0gcmVpbnRlcnByZXRfY2Fz
dDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApKTsKLSAgICAgICAgICAgICAg
ICBzb3VyY2UyID0gX21tX2xvYWR1X3BzKHNvdXJjZTJQKTsKLSAgICAgICAgICAgICAgICBwRGVz
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oZGVzdFApOworICAgICAgICAgICAgICAgIHBT
b3VyY2UxID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oaW5w
dXRWZWN0b3IxKSk7CisgICAgICAgICAgICAgICAgc291cmNlMiA9IF9tbV9sb2FkdV9wcyhpbnB1
dFZlY3RvcjIpOworICAgICAgICAgICAgICAgIHBEZXN0ID0gcmVpbnRlcnByZXRfY2FzdDxfX20x
MjgqPihvdXRwdXRWZWN0b3IpOwogICAgICAgICAgICAgICAgICpwRGVzdCA9IF9tbV9hZGRfcHMo
KnBTb3VyY2UxLCBzb3VyY2UyKTsKIAotICAgICAgICAgICAgICAgIHNvdXJjZTFQICs9IDQ7Ci0g
ICAgICAgICAgICAgICAgc291cmNlMlAgKz0gNDsKLSAgICAgICAgICAgICAgICBkZXN0UCArPSA0
OworICAgICAgICAgICAgICAgIGlucHV0VmVjdG9yMSArPSA0OworICAgICAgICAgICAgICAgIGlu
cHV0VmVjdG9yMiArPSA0OworICAgICAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0OwogICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKCFzb3VyY2UyQWxpZ25lZCAmJiAhZGVzdEFs
aWduZWQpIHsgLy8gYm90aCBzb3VyY2UyIGFuZCBkZXN0IG5vdCBhbGlnbmVkIAogICAgICAgICAg
ICAgd2hpbGUgKGdyb3VwLS0pIHsKLSAgICAgICAgICAgICAgICBwU291cmNlMSA9IHJlaW50ZXJw
cmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTFQKSk7Ci0gICAgICAg
ICAgICAgICAgc291cmNlMiA9IF9tbV9sb2FkdV9wcyhzb3VyY2UyUCk7CisgICAgICAgICAgICAg
ICAgcFNvdXJjZTEgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQq
PihpbnB1dFZlY3RvcjEpKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UyID0gX21tX2xvYWR1X3Bz
KGlucHV0VmVjdG9yMik7CiAgICAgICAgICAgICAgICAgZGVzdCA9IF9tbV9hZGRfcHMoKnBTb3Vy
Y2UxLCBzb3VyY2UyKTsKLSAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3BzKGRlc3RQLCBkZXN0
KTsKKyAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3BzKG91dHB1dFZlY3RvciwgZGVzdCk7CiAK
LSAgICAgICAgICAgICAgICBzb3VyY2UxUCArPSA0OwotICAgICAgICAgICAgICAgIHNvdXJjZTJQ
ICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1
dFZlY3RvcjEgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1dFZlY3RvcjIgKz0gNDsKKyAgICAg
ICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CiAgICAgICAgIC8vIE5vbi1TU0UgaGFuZGxpbmcgZm9yIHJlbWFpbmluZyBmcmFtZXMgd2hpY2gg
aXMgbGVzcyB0aGFuIDQuCiAgICAgICAgIG4gJT0gNDsKICAgICAgICAgd2hpbGUgKG4pIHsKLSAg
ICAgICAgICAgICpkZXN0UCA9ICpzb3VyY2UxUCArICpzb3VyY2UyUDsKLSAgICAgICAgICAgIHNv
dXJjZTFQKys7Ci0gICAgICAgICAgICBzb3VyY2UyUCsrOwotICAgICAgICAgICAgZGVzdFArKzsK
KyAgICAgICAgICAgICpvdXRwdXRWZWN0b3IgPSAqaW5wdXRWZWN0b3IxICsgKmlucHV0VmVjdG9y
MjsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yMSsrOworICAgICAgICAgICAgaW5wdXRWZWN0b3Iy
Kys7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7IC8vIGlmIHN0cmlkZXMgYXJlIG5vdCAxLCByb2xsYmFjayB0byBu
b3JtYWwgYWxnb3JpdGhtCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYg
KChzb3VyY2VTdHJpZGUxID09MSkgJiYgKHNvdXJjZVN0cmlkZTIgPT0gMSkgJiYgKGRlc3RTdHJp
ZGUgPT0gMSkpIHsKKyAgICBpZiAoKGlucHV0U3RyaWRlMSA9PTEpICYmIChpbnB1dFN0cmlkZTIg
PT0gMSkgJiYgKG91dHB1dFN0cmlkZSA9PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9
IG4gJSA0OwotICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFt
ZXM7CisgICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxG
cmFtZXM7CiAKLSAgICAgICAgd2hpbGUgKGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxv
YXQzMng0X3Qgc291cmNlMSA9IHZsZDFxX2YzMihzb3VyY2UxUCk7Ci0gICAgICAgICAgICBmbG9h
dDMyeDRfdCBzb3VyY2UyID0gdmxkMXFfZjMyKHNvdXJjZTJQKTsKLSAgICAgICAgICAgIHZzdDFx
X2YzMihkZXN0UCwgdmFkZHFfZjMyKHNvdXJjZTEsIHNvdXJjZTIpKTsKKyAgICAgICAgd2hpbGUg
KG91dHB1dFZlY3RvciA8IGVuZFApIHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZTEg
PSB2bGQxcV9mMzIoaW5wdXRWZWN0b3IxKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJj
ZTIgPSB2bGQxcV9mMzIoaW5wdXRWZWN0b3IyKTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRw
dXRWZWN0b3IsIHZhZGRxX2YzMihzb3VyY2UxLCBzb3VyY2UyKSk7CiAKLSAgICAgICAgICAgIHNv
dXJjZTFQICs9IDQ7Ci0gICAgICAgICAgICBzb3VyY2UyUCArPSA0OwotICAgICAgICAgICAgZGVz
dFAgKz0gNDsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yMSArPSA0OworICAgICAgICAgICAgaW5w
dXRWZWN0b3IyICs9IDQ7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAg
fQogICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9CiAjZW5kaWYKICAgICB3aGlsZSAobi0t
KSB7Ci0gICAgICAgICpkZXN0UCA9ICpzb3VyY2UxUCArICpzb3VyY2UyUDsKLSAgICAgICAgc291
cmNlMVAgKz0gc291cmNlU3RyaWRlMTsKLSAgICAgICAgc291cmNlMlAgKz0gc291cmNlU3RyaWRl
MjsKLSAgICAgICAgZGVzdFAgKz0gZGVzdFN0cmlkZTsKKyAgICAgICAgKm91dHB1dFZlY3RvciA9
ICppbnB1dFZlY3RvcjEgKyAqaW5wdXRWZWN0b3IyOworICAgICAgICBpbnB1dFZlY3RvcjEgKz0g
aW5wdXRTdHJpZGUxOworICAgICAgICBpbnB1dFZlY3RvcjIgKz0gaW5wdXRTdHJpZGUyOworICAg
ICAgICBvdXRwdXRWZWN0b3IgKz0gb3V0cHV0U3RyaWRlOwogICAgIH0KICNpZiBDUFUoWDg2X1NT
RTIpCiAgICAgfQogI2VuZGlmCiB9CiAKLXZvaWQgdm11bChjb25zdCBmbG9hdCogc291cmNlMVAs
IGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzb3VyY2VTdHJp
ZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNz
KQordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjEsIGludCBpbnB1dFN0cmlkZTEs
IGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjIsIGludCBpbnB1dFN0cmlkZTIsIGZsb2F0KiBvdXRw
dXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9j
ZXNzKQogewogCi0gICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7CisgICAgaW50IG4gPSBudW1i
ZXJPZkVsZW1lbnRzVG9Qcm9jZXNzOwogCiAjaWYgQ1BVKFg4Nl9TU0UyKQotICAgIGlmICgoc291
cmNlU3RyaWRlMSA9PSAxKSAmJiAoc291cmNlU3RyaWRlMiA9PSAxKSAmJiAoZGVzdFN0cmlkZSA9
PSAxKSkgewotICAgICAgICAvLyBJZiB0aGUgc291cmNlMVAgYWRkcmVzcyBpcyBub3QgMTYtYnl0
ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1vc3QgdGhyZWUpIHNob3Vs
ZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KLSAgICAgICAgd2hpbGUgKChyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oc291cmNlMVApICYgMHgwRikgJiYgbikgewotICAgICAgICAgICAgKmRl
c3RQID0gKnNvdXJjZTFQICogKnNvdXJjZTJQOwotICAgICAgICAgICAgc291cmNlMVArKzsKLSAg
ICAgICAgICAgIHNvdXJjZTJQKys7Ci0gICAgICAgICAgICBkZXN0UCsrOworICAgIGlmICgoaW5w
dXRTdHJpZGUxID09IDEpICYmIChpbnB1dFN0cmlkZTIgPT0gMSkgJiYgKG91dHB1dFN0cmlkZSA9
PSAxKSkgeworICAgICAgICAvLyBJZiB0aGUgaW5wdXRWZWN0b3IxIGFkZHJlc3MgaXMgbm90IDE2
LWJ5dGUgYWxpZ25lZCwgdGhlIGZpcnN0IHNldmVyYWwgZnJhbWVzIChhdCBtb3N0IHRocmVlKSBz
aG91bGQgYmUgcHJvY2Vzc2VkIHNlcGFyYXRlbHkuCisgICAgICAgIHdoaWxlICgocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGlucHV0VmVjdG9yMSkgJiAweDBGKSAmJiBuKSB7CisgICAgICAg
ICAgICAqb3V0cHV0VmVjdG9yID0gKmlucHV0VmVjdG9yMSAqICppbnB1dFZlY3RvcjI7CisgICAg
ICAgICAgICBpbnB1dFZlY3RvcjErKzsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yMisrOworICAg
ICAgICAgICAgb3V0cHV0VmVjdG9yKys7CiAgICAgICAgICAgICBuLS07CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBOb3cgdGhlIHNvdXJjZTFQIGFkZHJlc3MgYWxpZ25lZCBhbmQgc3RhcnQgdG8g
YXBwbHkgU1NFLgorICAgICAgICAvLyBOb3cgdGhlIGlucHV0VmVjdG9yMSBhZGRyZXNzIGFsaWdu
ZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUg
NDsKLSAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOwor
ICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVz
OwogICAgICAgICBfX20xMjggcFNvdXJjZTE7CiAgICAgICAgIF9fbTEyOCBwU291cmNlMjsKICAg
ICAgICAgX19tMTI4IGRlc3Q7CiAKLSAgICAgICAgYm9vbCBzb3VyY2UyQWxpZ25lZCA9ICEocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHNvdXJjZTJQKSAmIDB4MEYpOwotICAgICAgICBib29s
IGRlc3RBbGlnbmVkID0gIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGVzdFApICYgMHgw
Rik7CisgICAgICAgIGJvb2wgc291cmNlMkFsaWduZWQgPSAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihpbnB1dFZlY3RvcjIpICYgMHgwRik7CisgICAgICAgIGJvb2wgZGVzdEFsaWduZWQg
PSAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvdXRwdXRWZWN0b3IpICYgMHgwRik7CiAK
ICNkZWZpbmUgU1NFMl9NVUxUKGxvYWRJbnN0ciwgc3RvcmVJbnN0cikgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgd2hpbGUgKGRlc3RQIDwgZW5kUCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICB3aGlsZSAob3V0cHV0VmVjdG9yIDwgZW5kUCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBwU291cmNlMSA9IF9t
bV9sb2FkX3BzKHNvdXJjZTFQKTsgICAgICAgICAgXAotICAgICAgICAgICAgICAgIHBTb3VyY2Uy
ID0gX21tXyMjbG9hZEluc3RyIyNfcHMoc291cmNlMlApOyBcCisgICAgICAgICAgICAgICAgcFNv
dXJjZTEgPSBfbW1fbG9hZF9wcyhpbnB1dFZlY3RvcjEpOyAgICAgICAgICBcCisgICAgICAgICAg
ICAgICAgcFNvdXJjZTIgPSBfbW1fIyNsb2FkSW5zdHIjI19wcyhpbnB1dFZlY3RvcjIpOyBcCiAg
ICAgICAgICAgICAgICAgZGVzdCA9IF9tbV9tdWxfcHMocFNvdXJjZTEsIHBTb3VyY2UyKTsgICAg
IFwKLSAgICAgICAgICAgICAgICBfbW1fIyNzdG9yZUluc3RyIyNfcHMoZGVzdFAsIGRlc3QpOyAg
ICAgICAgXAotICAgICAgICAgICAgICAgIHNvdXJjZTFQICs9IDQ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgc291cmNlMlAgKz0gNDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBkZXN0UCArPSA0OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIF9tbV8jI3N0b3JlSW5zdHIj
I19wcyhvdXRwdXRWZWN0b3IsIGRlc3QpOyAgICAgICAgXAorICAgICAgICAgICAgICAgIGlucHV0
VmVjdG9yMSArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg
ICAgIGlucHV0VmVjdG9yMiArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgICAgICAgICAgfQogCiAgICAgICAgIGlmIChzb3VyY2UyQWxpZ25lZCAmJiBk
ZXN0QWxpZ25lZCkgLy8gQm90aCBhbGlnbmVkLgpAQCAtNDk3LDExMyArNTA1LDExMyBAQCB2b2lk
IHZtdWwoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxv
YXQqIHNvdXJjZTJQLCBpbnQgcwogICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9CiAjZWxp
ZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUxID09MSkg
JiYgKHNvdXJjZVN0cmlkZTIgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsKKyAgICBpZiAo
KGlucHV0U3RyaWRlMSA9PTEpICYmIChpbnB1dFN0cmlkZTIgPT0gMSkgJiYgKG91dHB1dFN0cmlk
ZSA9PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9IG4gJSA0OwotICAgICAgICBjb25z
dCBmbG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFtZXM7CisgICAgICAgIGNvbnN0IGZs
b2F0KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAKLSAgICAgICAgd2hp
bGUgKGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxvYXQzMng0X3Qgc291cmNlMSA9IHZs
ZDFxX2YzMihzb3VyY2UxUCk7Ci0gICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3VyY2UyID0gdmxk
MXFfZjMyKHNvdXJjZTJQKTsKLSAgICAgICAgICAgIHZzdDFxX2YzMihkZXN0UCwgdm11bHFfZjMy
KHNvdXJjZTEsIHNvdXJjZTIpKTsKKyAgICAgICAgd2hpbGUgKG91dHB1dFZlY3RvciA8IGVuZFAp
IHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZTEgPSB2bGQxcV9mMzIoaW5wdXRWZWN0
b3IxKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZTIgPSB2bGQxcV9mMzIoaW5wdXRW
ZWN0b3IyKTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRwdXRWZWN0b3IsIHZtdWxxX2YzMihz
b3VyY2UxLCBzb3VyY2UyKSk7CiAKLSAgICAgICAgICAgIHNvdXJjZTFQICs9IDQ7Ci0gICAgICAg
ICAgICBzb3VyY2UyUCArPSA0OwotICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgICAg
IGlucHV0VmVjdG9yMSArPSA0OworICAgICAgICAgICAgaW5wdXRWZWN0b3IyICs9IDQ7CisgICAg
ICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgfQogICAgICAgICBuID0gdGFpbEZy
YW1lczsKICAgICB9CiAjZW5kaWYKICAgICB3aGlsZSAobikgewotICAgICAgICAqZGVzdFAgPSAq
c291cmNlMVAgKiAqc291cmNlMlA7Ci0gICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7
Ci0gICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlkZTI7Ci0gICAgICAgIGRlc3RQICs9IGRl
c3RTdHJpZGU7CisgICAgICAgICpvdXRwdXRWZWN0b3IgPSAqaW5wdXRWZWN0b3IxICogKmlucHV0
VmVjdG9yMjsKKyAgICAgICAgaW5wdXRWZWN0b3IxICs9IGlucHV0U3RyaWRlMTsKKyAgICAgICAg
aW5wdXRWZWN0b3IyICs9IGlucHV0U3RyaWRlMjsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91
dHB1dFN0cmlkZTsKICAgICAgICAgbi0tOwogICAgIH0KIH0KIAotdm9pZCB6dm11bChjb25zdCBm
bG9hdCogcmVhbDFQLCBjb25zdCBmbG9hdCogaW1hZzFQLCBjb25zdCBmbG9hdCogcmVhbDJQLCBj
b25zdCBmbG9hdCogaW1hZzJQLCBmbG9hdCogcmVhbERlc3RQLCBmbG9hdCogaW1hZ0Rlc3RQLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbFZlY3Rv
cjEsIGNvbnN0IGZsb2F0KiBpbWFnVmVjdG9yMSwgY29uc3QgZmxvYXQqIHJlYWxWZWN0b3IyLCBj
b25zdCBmbG9hdCogaW1hZzJQLCBmbG9hdCogcmVhbE91dHB1dFZlY3RvciwgZmxvYXQqIGltYWdE
ZXN0UCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7CiAgICAgdW5zaWduZWQg
aSA9IDA7CiAjaWYgQ1BVKFg4Nl9TU0UyKQogICAgIC8vIE9ubHkgdXNlIHRoZSBTU0Ugb3B0aW1p
emF0aW9uIGluIHRoZSB2ZXJ5IGNvbW1vbiBjYXNlIHRoYXQgYWxsIGFkZHJlc3NlcyBhcmUgMTYt
Ynl0ZSBhbGlnbmVkLiAKICAgICAvLyBPdGhlcndpc2UsIGZhbGwgdGhyb3VnaCB0byB0aGUgc2Nh
bGFyIGNvZGUgYmVsb3cuCi0gICAgaWYgKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHJl
YWwxUCkgJiAweDBGKQotICAgICAgICAmJiAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihp
bWFnMVApICYgMHgwRikKLSAgICAgICAgJiYgIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
cmVhbDJQKSAmIDB4MEYpCisgICAgaWYgKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHJl
YWxWZWN0b3IxKSAmIDB4MEYpCisgICAgICAgICYmICEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGltYWdWZWN0b3IxKSAmIDB4MEYpCisgICAgICAgICYmICEocmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHJlYWxWZWN0b3IyKSAmIDB4MEYpCiAgICAgICAgICYmICEocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGltYWcyUCkgJiAweDBGKQotICAgICAgICAmJiAhKHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihyZWFsRGVzdFApICYgMHgwRikKKyAgICAgICAgJiYgIShyZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4ocmVhbE91dHB1dFZlY3RvcikgJiAweDBGKQogICAgICAgICAm
JiAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihpbWFnRGVzdFApICYgMHgwRikpIHsKICAg
ICAgICAgCi0gICAgICAgIHVuc2lnbmVkIGVuZFNpemUgPSBmcmFtZXNUb1Byb2Nlc3MgLSBmcmFt
ZXNUb1Byb2Nlc3MgJSA0OworICAgICAgICB1bnNpZ25lZCBlbmRTaXplID0gbnVtYmVyT2ZFbGVt
ZW50c1RvUHJvY2VzcyAtIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MgJSA0OwogICAgICAgICB3
aGlsZSAoaSA8IGVuZFNpemUpIHsKLSAgICAgICAgICAgIF9fbTEyOCByZWFsMSA9IF9tbV9sb2Fk
X3BzKHJlYWwxUCArIGkpOwotICAgICAgICAgICAgX19tMTI4IHJlYWwyID0gX21tX2xvYWRfcHMo
cmVhbDJQICsgaSk7Ci0gICAgICAgICAgICBfX20xMjggaW1hZzEgPSBfbW1fbG9hZF9wcyhpbWFn
MVAgKyBpKTsKKyAgICAgICAgICAgIF9fbTEyOCByZWFsMSA9IF9tbV9sb2FkX3BzKHJlYWxWZWN0
b3IxICsgaSk7CisgICAgICAgICAgICBfX20xMjggcmVhbDIgPSBfbW1fbG9hZF9wcyhyZWFsVmVj
dG9yMiArIGkpOworICAgICAgICAgICAgX19tMTI4IGltYWcxID0gX21tX2xvYWRfcHMoaW1hZ1Zl
Y3RvcjEgKyBpKTsKICAgICAgICAgICAgIF9fbTEyOCBpbWFnMiA9IF9tbV9sb2FkX3BzKGltYWcy
UCArIGkpOwogICAgICAgICAgICAgX19tMTI4IHJlYWwgPSBfbW1fbXVsX3BzKHJlYWwxLCByZWFs
Mik7CiAgICAgICAgICAgICByZWFsID0gX21tX3N1Yl9wcyhyZWFsLCBfbW1fbXVsX3BzKGltYWcx
LCBpbWFnMikpOwogICAgICAgICAgICAgX19tMTI4IGltYWcgPSBfbW1fbXVsX3BzKHJlYWwxLCBp
bWFnMik7CiAgICAgICAgICAgICBpbWFnID0gX21tX2FkZF9wcyhpbWFnLCBfbW1fbXVsX3BzKGlt
YWcxLCByZWFsMikpOwotICAgICAgICAgICAgX21tX3N0b3JlX3BzKHJlYWxEZXN0UCArIGksIHJl
YWwpOworICAgICAgICAgICAgX21tX3N0b3JlX3BzKHJlYWxPdXRwdXRWZWN0b3IgKyBpLCByZWFs
KTsKICAgICAgICAgICAgIF9tbV9zdG9yZV9wcyhpbWFnRGVzdFAgKyBpLCBpbWFnKTsKICAgICAg
ICAgICAgIGkgKz0gNDsKICAgICAgICAgfQogICAgIH0KICNlbGlmIEhBVkUoQVJNX05FT05fSU5U
UklOU0lDUykKLSAgICAgICAgdW5zaWduZWQgZW5kU2l6ZSA9IGZyYW1lc1RvUHJvY2VzcyAtIGZy
YW1lc1RvUHJvY2VzcyAlIDQ7CisgICAgICAgIHVuc2lnbmVkIGVuZFNpemUgPSBudW1iZXJPZkVs
ZW1lbnRzVG9Qcm9jZXNzIC0gbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcyAlIDQ7CiAgICAgICAg
IHdoaWxlIChpIDwgZW5kU2l6ZSkgewotICAgICAgICAgICAgZmxvYXQzMng0X3QgcmVhbDEgPSB2
bGQxcV9mMzIocmVhbDFQICsgaSk7Ci0gICAgICAgICAgICBmbG9hdDMyeDRfdCByZWFsMiA9IHZs
ZDFxX2YzMihyZWFsMlAgKyBpKTsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90IGltYWcxID0gdmxk
MXFfZjMyKGltYWcxUCArIGkpOworICAgICAgICAgICAgZmxvYXQzMng0X3QgcmVhbDEgPSB2bGQx
cV9mMzIocmVhbFZlY3RvcjEgKyBpKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHJlYWwyID0g
dmxkMXFfZjMyKHJlYWxWZWN0b3IyICsgaSk7CisgICAgICAgICAgICBmbG9hdDMyeDRfdCBpbWFn
MSA9IHZsZDFxX2YzMihpbWFnVmVjdG9yMSArIGkpOwogICAgICAgICAgICAgZmxvYXQzMng0X3Qg
aW1hZzIgPSB2bGQxcV9mMzIoaW1hZzJQICsgaSk7CiAKICAgICAgICAgICAgIGZsb2F0MzJ4NF90
IHJlYWxSZXN1bHQgPSB2bWxzcV9mMzIodm11bHFfZjMyKHJlYWwxLCByZWFsMiksIGltYWcxLCBp
bWFnMik7CiAgICAgICAgICAgICBmbG9hdDMyeDRfdCBpbWFnUmVzdWx0ID0gdm1sYXFfZjMyKHZt
dWxxX2YzMihyZWFsMSwgaW1hZzIpLCBpbWFnMSwgcmVhbDIpOwogCi0gICAgICAgICAgICB2c3Qx
cV9mMzIocmVhbERlc3RQICsgaSwgcmVhbFJlc3VsdCk7CisgICAgICAgICAgICB2c3QxcV9mMzIo
cmVhbE91dHB1dFZlY3RvciArIGksIHJlYWxSZXN1bHQpOwogICAgICAgICAgICAgdnN0MXFfZjMy
KGltYWdEZXN0UCArIGksIGltYWdSZXN1bHQpOwogCiAgICAgICAgICAgICBpICs9IDQ7CiAgICAg
ICAgIH0KICNlbmRpZgotICAgIGZvciAoOyBpIDwgZnJhbWVzVG9Qcm9jZXNzOyArK2kpIHsKKyAg
ICBmb3IgKDsgaSA8IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7ICsraSkgewogICAgICAgICAv
LyBSZWFkIGFuZCBjb21wdXRlIHJlc3VsdCBiZWZvcmUgc3RvcmluZyB0aGVtLCBpbiBjYXNlIHRo
ZQogICAgICAgICAvLyBkZXN0aW5hdGlvbiBpcyB0aGUgc2FtZSBhcyBvbmUgb2YgdGhlIHNvdXJj
ZXMuCi0gICAgICAgIGZsb2F0IHJlYWxSZXN1bHQgPSByZWFsMVBbaV0gKiByZWFsMlBbaV0gLSBp
bWFnMVBbaV0gKiBpbWFnMlBbaV07Ci0gICAgICAgIGZsb2F0IGltYWdSZXN1bHQgPSByZWFsMVBb
aV0gKiBpbWFnMlBbaV0gKyBpbWFnMVBbaV0gKiByZWFsMlBbaV07CisgICAgICAgIGZsb2F0IHJl
YWxSZXN1bHQgPSByZWFsVmVjdG9yMVtpXSAqIHJlYWxWZWN0b3IyW2ldIC0gaW1hZ1ZlY3RvcjFb
aV0gKiBpbWFnMlBbaV07CisgICAgICAgIGZsb2F0IGltYWdSZXN1bHQgPSByZWFsVmVjdG9yMVtp
XSAqIGltYWcyUFtpXSArIGltYWdWZWN0b3IxW2ldICogcmVhbFZlY3RvcjJbaV07CiAKLSAgICAg
ICAgcmVhbERlc3RQW2ldID0gcmVhbFJlc3VsdDsKKyAgICAgICAgcmVhbE91dHB1dFZlY3Rvcltp
XSA9IHJlYWxSZXN1bHQ7CiAgICAgICAgIGltYWdEZXN0UFtpXSA9IGltYWdSZXN1bHQ7CiAgICAg
fQogfQogCi12b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlk
ZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZzdmVzcShjb25z
dCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIHN1bSwgc2l6ZV90
IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nl
c3M7CisgICAgaW50IG4gPSBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzOwogICAgIGZsb2F0IHN1
bSA9IDA7CiAKICNpZiBDUFUoWDg2X1NTRTIpCi0gICAgaWYgKHNvdXJjZVN0cmlkZSA9PSAxKSB7
IAotICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRyZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWdu
ZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJlZSkgc2hvdWxkIGJlIHBy
b2Nlc3NlZCBzZXBhcmF0ZWx5LiAKLSAgICAgICAgd2hpbGUgKChyZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oc291cmNlUCkgJiAweDBGKSAmJiBuKSB7IAotICAgICAgICAgICAgZmxvYXQgc2Ft
cGxlID0gKnNvdXJjZVA7IAorICAgIGlmIChpbnB1dFN0cmlkZSA9PSAxKSB7CisgICAgICAgIC8v
IElmIHRoZSBpbnB1dFZlY3RvciBhZGRyZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBm
aXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBz
ZXBhcmF0ZWx5LgorICAgICAgICB3aGlsZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihp
bnB1dFZlY3RvcikgJiAweDBGKSAmJiBuKSB7CisgICAgICAgICAgICBmbG9hdCBzYW1wbGUgPSAq
aW5wdXRWZWN0b3I7CiAgICAgICAgICAgICBzdW0gKz0gc2FtcGxlICogc2FtcGxlOyAKLSAgICAg
ICAgICAgIHNvdXJjZVArKzsgCisgICAgICAgICAgICBpbnB1dFZlY3RvcisrOwogICAgICAgICAg
ICAgbi0tOyAKICAgICAgICAgfSAKICAKLSAgICAgICAgLy8gTm93IHRoZSBzb3VyY2VQIGlzIGFs
aWduZWQsIHVzZSBTU0UuCisgICAgICAgIC8vIE5vdyB0aGUgaW5wdXRWZWN0b3IgaXMgYWxpZ25l
ZCwgdXNlIFNTRS4KICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUgNDsgCi0gICAgICAgIGNv
bnN0IGZsb2F0KiBlbmRQID0gc291cmNlUCArIG4gLSB0YWlsRnJhbWVzOyAKKyAgICAgICAgY29u
c3QgZmxvYXQqIGVuZFAgPSBpbnB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVzOwogICAgICAgICBf
X20xMjggc291cmNlOyAKICAgICAgICAgX19tMTI4IG1TdW0gPSBfbW1fc2V0emVyb19wcygpOyAK
ICAKLSAgICAgICAgd2hpbGUgKHNvdXJjZVAgPCBlbmRQKSB7IAotICAgICAgICAgICAgc291cmNl
ID0gX21tX2xvYWRfcHMoc291cmNlUCk7IAorICAgICAgICB3aGlsZSAoaW5wdXRWZWN0b3IgPCBl
bmRQKSB7CisgICAgICAgICAgICBzb3VyY2UgPSBfbW1fbG9hZF9wcyhpbnB1dFZlY3Rvcik7CiAg
ICAgICAgICAgICBzb3VyY2UgPSBfbW1fbXVsX3BzKHNvdXJjZSwgc291cmNlKTsgCiAgICAgICAg
ICAgICBtU3VtID0gX21tX2FkZF9wcyhtU3VtLCBzb3VyY2UpOyAKLSAgICAgICAgICAgIHNvdXJj
ZVAgKz0gNDsgCisgICAgICAgICAgICBpbnB1dFZlY3RvciArPSA0OwogICAgICAgICB9IAogIAog
ICAgICAgICAvLyBTdW1tYXJpemUgdGhlIFNTRSByZXN1bHRzLiAKQEAgLTYxMywxNSArNjIxLDE1
IEBAIHZvaWQgdnN2ZXNxKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBm
bG9hdCogc3VtUCwgc2l6ZV90IGZyYW1lc1RvCiAgICAgICAgIG4gPSB0YWlsRnJhbWVzOyAKICAg
ICB9IAogI2VsaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQotICAgIGlmIChzb3VyY2VTdHJp
ZGUgPT0gMSkgeworICAgIGlmIChpbnB1dFN0cmlkZSA9PSAxKSB7CiAgICAgICAgIGludCB0YWls
RnJhbWVzID0gbiAlIDQ7Ci0gICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gc291cmNlUCArIG4g
LSB0YWlsRnJhbWVzOworICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IGlucHV0VmVjdG9yICsg
biAtIHRhaWxGcmFtZXM7CiAKICAgICAgICAgZmxvYXQzMng0X3QgZm91clN1bSA9IHZkdXBxX25f
ZjMyKDApOwotICAgICAgICB3aGlsZSAoc291cmNlUCA8IGVuZFApIHsKLSAgICAgICAgICAgIGZs
b2F0MzJ4NF90IHNvdXJjZSA9IHZsZDFxX2YzMihzb3VyY2VQKTsKKyAgICAgICAgd2hpbGUgKGlu
cHV0VmVjdG9yIDwgZW5kUCkgeworICAgICAgICAgICAgZmxvYXQzMng0X3Qgc291cmNlID0gdmxk
MXFfZjMyKGlucHV0VmVjdG9yKTsKICAgICAgICAgICAgIGZvdXJTdW0gPSB2bWxhcV9mMzIoZm91
clN1bSwgc291cmNlLCBzb3VyY2UpOwotICAgICAgICAgICAgc291cmNlUCArPSA0OworICAgICAg
ICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKICAgICAgICAgfQogICAgICAgICBmbG9hdDMyeDJfdCB0
d29TdW0gPSB2YWRkX2YzMih2Z2V0X2xvd19mMzIoZm91clN1bSksIHZnZXRfaGlnaF9mMzIoZm91
clN1bSkpOwogCkBAIC02MzQsNDMgKzY0Miw0MyBAQCB2b2lkIHZzdmVzcShjb25zdCBmbG9hdCog
c291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUbwog
I2VuZGlmCiAKICAgICB3aGlsZSAobi0tKSB7Ci0gICAgICAgIGZsb2F0IHNhbXBsZSA9ICpzb3Vy
Y2VQOworICAgICAgICBmbG9hdCBzYW1wbGUgPSAqaW5wdXRWZWN0b3I7CiAgICAgICAgIHN1bSAr
PSBzYW1wbGUgKiBzYW1wbGU7Ci0gICAgICAgIHNvdXJjZVAgKz0gc291cmNlU3RyaWRlOworICAg
ICAgICBpbnB1dFZlY3RvciArPSBpbnB1dFN0cmlkZTsKICAgICB9CiAKLSAgICBBU1NFUlQoc3Vt
UCk7Ci0gICAgKnN1bVAgPSBzdW07CisgICAgQVNTRVJUKHN1bSk7CisgICAgKnN1bSA9IHN1bTsK
IH0KIAotdm9pZCB2bWF4bWd2KGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRl
LCBmbG9hdCogbWF4UCwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgdm1heG1ndihjb25z
dCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIG1heGltdW1WYWx1
ZSwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgaW50IG4gPSBmcmFt
ZXNUb1Byb2Nlc3M7CisgICAgaW50IG4gPSBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzOwogICAg
IGZsb2F0IG1heCA9IDA7CiAKICNpZiBDUFUoWDg2X1NTRTIpCi0gICAgaWYgKHNvdXJjZVN0cmlk
ZSA9PSAxKSB7Ci0gICAgICAgIC8vIElmIHRoZSBzb3VyY2VQIGFkZHJlc3MgaXMgbm90IDE2LWJ5
dGUgYWxpZ25lZCwgdGhlIGZpcnN0IHNldmVyYWwgZnJhbWVzIChhdCBtb3N0IHRocmVlKSBzaG91
bGQgYmUgcHJvY2Vzc2VkIHNlcGFyYXRlbHkuCi0gICAgICAgIHdoaWxlICgocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KHNvdXJjZVApICYgMHgwRikgJiYgbikgewotICAgICAgICAgICAgbWF4
ID0gc3RkOjptYXgobWF4LCBmYWJzZigqc291cmNlUCkpOwotICAgICAgICAgICAgc291cmNlUCsr
OworICAgIGlmIChpbnB1dFN0cmlkZSA9PSAxKSB7CisgICAgICAgIC8vIElmIHRoZSBpbnB1dFZl
Y3RvciBhZGRyZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZy
YW1lcyAoYXQgbW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgorICAg
ICAgICB3aGlsZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihpbnB1dFZlY3RvcikgJiAw
eDBGKSAmJiBuKSB7CisgICAgICAgICAgICBtYXggPSBzdGQ6Om1heChtYXgsIGZhYnNmKCppbnB1
dFZlY3RvcikpOworICAgICAgICAgICAgaW5wdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsK
ICAgICAgICAgfQogCi0gICAgICAgIC8vIE5vdyB0aGUgc291cmNlUCBpcyBhbGlnbmVkLCB1c2Ug
U1NFLgorICAgICAgICAvLyBOb3cgdGhlIGlucHV0VmVjdG9yIGlzIGFsaWduZWQsIHVzZSBTU0Uu
CiAgICAgICAgIGludCB0YWlsRnJhbWVzID0gbiAlIDQ7Ci0gICAgICAgIGNvbnN0IGZsb2F0KiBl
bmRQID0gc291cmNlUCArIG4gLSB0YWlsRnJhbWVzOworICAgICAgICBjb25zdCBmbG9hdCogZW5k
UCA9IGlucHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAgICAgICAgIF9fbTEyOCBzb3VyY2U7
CiAgICAgICAgIF9fbTEyOCBtTWF4ID0gX21tX3NldHplcm9fcHMoKTsKICAgICAgICAgaW50IG1h
c2sgPSAweDdGRkZGRkZGOwogICAgICAgICBfX20xMjggbU1hc2sgPSBfbW1fc2V0MV9wcygqcmVp
bnRlcnByZXRfY2FzdDxmbG9hdCo+KCZtYXNrKSk7CiAKLSAgICAgICAgd2hpbGUgKHNvdXJjZVAg
PCBlbmRQKSB7Ci0gICAgICAgICAgICBzb3VyY2UgPSBfbW1fbG9hZF9wcyhzb3VyY2VQKTsKKyAg
ICAgICAgd2hpbGUgKGlucHV0VmVjdG9yIDwgZW5kUCkgeworICAgICAgICAgICAgc291cmNlID0g
X21tX2xvYWRfcHMoaW5wdXRWZWN0b3IpOwogICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBh
YnNvbHV0ZSB2YWx1ZSBieSBhbmRpbmcgc291cmNlIHdpdGggbWFzaywgdGhlIHNpZ24gYml0IGlz
IHNldCB0byAwLgogICAgICAgICAgICAgc291cmNlID0gX21tX2FuZF9wcyhzb3VyY2UsIG1NYXNr
KTsKICAgICAgICAgICAgIG1NYXggPSBfbW1fbWF4X3BzKG1NYXgsIHNvdXJjZSk7Ci0gICAgICAg
ICAgICBzb3VyY2VQICs9IDQ7CisgICAgICAgICAgICBpbnB1dFZlY3RvciArPSA0OwogICAgICAg
ICB9CiAKICAgICAgICAgLy8gR2V0IG1heCBmcm9tIHRoZSBTU0UgcmVzdWx0cy4KQEAgLTY4Mywx
NSArNjkxLDE1IEBAIHZvaWQgdm1heG1ndihjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJj
ZVN0cmlkZSwgZmxvYXQqIG1heFAsIHNpemVfdCBmcmFtZXNUCiAgICAgICAgIG4gPSB0YWlsRnJh
bWVzOwogICAgIH0KICNlbGlmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKLSAgICBpZiAoc291
cmNlU3RyaWRlID09IDEpIHsKKyAgICBpZiAoaW5wdXRTdHJpZGUgPT0gMSkgewogICAgICAgICBp
bnQgdGFpbEZyYW1lcyA9IG4gJSA0OwotICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IHNvdXJj
ZVAgKyBuIC0gdGFpbEZyYW1lczsKKyAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBpbnB1dFZl
Y3RvciArIG4gLSB0YWlsRnJhbWVzOwogCiAgICAgICAgIGZsb2F0MzJ4NF90IGZvdXJNYXggPSB2
ZHVwcV9uX2YzMigwKTsKLSAgICAgICAgd2hpbGUgKHNvdXJjZVAgPCBlbmRQKSB7Ci0gICAgICAg
ICAgICBmbG9hdDMyeDRfdCBzb3VyY2UgPSB2bGQxcV9mMzIoc291cmNlUCk7CisgICAgICAgIHdo
aWxlIChpbnB1dFZlY3RvciA8IGVuZFApIHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJj
ZSA9IHZsZDFxX2YzMihpbnB1dFZlY3Rvcik7CiAgICAgICAgICAgICBmb3VyTWF4ID0gdm1heHFf
ZjMyKGZvdXJNYXgsIHZhYnNxX2YzMihzb3VyY2UpKTsKLSAgICAgICAgICAgIHNvdXJjZVAgKz0g
NDsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yICs9IDQ7CiAgICAgICAgIH0KICAgICAgICAgZmxv
YXQzMngyX3QgdHdvTWF4ID0gdm1heF9mMzIodmdldF9sb3dfZjMyKGZvdXJNYXgpLCB2Z2V0X2hp
Z2hfZjMyKGZvdXJNYXgpKTsKIApAQCAtNzA0LDQ0ICs3MTIsNTAgQEAgdm9pZCB2bWF4bWd2KGNv
bnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBmbG9hdCogbWF4UCwgc2l6ZV90
IGZyYW1lc1QKICNlbmRpZgogCiAgICAgd2hpbGUgKG4tLSkgewotICAgICAgICBtYXggPSBzdGQ6
Om1heChtYXgsIGZhYnNmKCpzb3VyY2VQKSk7Ci0gICAgICAgIHNvdXJjZVAgKz0gc291cmNlU3Ry
aWRlOworICAgICAgICBtYXggPSBzdGQ6Om1heChtYXgsIGZhYnNmKCppbnB1dFZlY3RvcikpOwor
ICAgICAgICBpbnB1dFZlY3RvciArPSBpbnB1dFN0cmlkZTsKICAgICB9CiAKLSAgICBBU1NFUlQo
bWF4UCk7Ci0gICAgKm1heFAgPSBtYXg7CisgICAgQVNTRVJUKG1heGltdW1WYWx1ZSk7CisgICAg
Km1heGltdW1WYWx1ZSA9IG1heDsKIH0KIAotdm9pZCB2Y2xpcChjb25zdCBmbG9hdCogc291cmNl
UCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIGxvd1RocmVzaG9sZFAsIGNvbnN0IGZs
b2F0KiBoaWdoVGhyZXNob2xkUCwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgdmNsaXAoY29uc3QgZmxvYXQqIGlucHV0VmVjdG9yLCBp
bnQgaW5wdXRTdHJpZGUsIGNvbnN0IGZsb2F0KiBsb3dUaHJlc2hvbGRQLCBjb25zdCBmbG9hdCog
aGlnaFRocmVzaG9sZFAsIGZsb2F0KiBvdXRwdXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNp
emVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzKQogewotICAgIGludCBuID0gZnJhbWVzVG9Q
cm9jZXNzOworICAgIGludCBuID0gbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzczsKICAgICBmbG9h
dCBsb3dUaHJlc2hvbGQgPSAqbG93VGhyZXNob2xkUDsKICAgICBmbG9hdCBoaWdoVGhyZXNob2xk
ID0gKmhpZ2hUaHJlc2hvbGRQOwogCiAgICAgLy8gRklYTUU6IE9wdGltaXplIGZvciBTU0UyLgog
I2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKLSAgICBpZiAoKHNvdXJjZVN0cmlkZSA9PSAx
KSAmJiAoZGVzdFN0cmlkZSA9PSAxKSkgeworICAgIGlmICgoaW5wdXRTdHJpZGUgPT0gMSkgJiYg
KG91dHB1dFN0cmlkZSA9PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9IG4gJSA0Owot
ICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFtZXM7CisgICAg
ICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAK
ICAgICAgICAgZmxvYXQzMng0X3QgbG93ID0gdmR1cHFfbl9mMzIobG93VGhyZXNob2xkKTsKICAg
ICAgICAgZmxvYXQzMng0X3QgaGlnaCA9IHZkdXBxX25fZjMyKGhpZ2hUaHJlc2hvbGQpOwotICAg
ICAgICB3aGlsZSAoZGVzdFAgPCBlbmRQKSB7Ci0gICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3Vy
Y2UgPSB2bGQxcV9mMzIoc291cmNlUCk7Ci0gICAgICAgICAgICB2c3QxcV9mMzIoZGVzdFAsIHZt
YXhxX2YzMih2bWlucV9mMzIoc291cmNlLCBoaWdoKSwgbG93KSk7Ci0gICAgICAgICAgICBzb3Vy
Y2VQICs9IDQ7Ci0gICAgICAgICAgICBkZXN0UCArPSA0OworICAgICAgICB3aGlsZSAob3V0cHV0
VmVjdG9yIDwgZW5kUCkgeworICAgICAgICAgICAgZmxvYXQzMng0X3Qgc291cmNlID0gdmxkMXFf
ZjMyKGlucHV0VmVjdG9yKTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRwdXRWZWN0b3IsIHZt
YXhxX2YzMih2bWlucV9mMzIoc291cmNlLCBoaWdoKSwgbG93KSk7CisgICAgICAgICAgICBpbnB1
dFZlY3RvciArPSA0OworICAgICAgICAgICAgb3V0cHV0VmVjdG9yICs9IDQ7CiAgICAgICAgIH0K
ICAgICAgICAgbiA9IHRhaWxGcmFtZXM7CiAgICAgfQogI2VuZGlmCiAgICAgd2hpbGUgKG4tLSkg
ewotICAgICAgICAqZGVzdFAgPSBzdGQ6Om1heChzdGQ6Om1pbigqc291cmNlUCwgaGlnaFRocmVz
aG9sZCksIGxvd1RocmVzaG9sZCk7Ci0gICAgICAgIHNvdXJjZVAgKz0gc291cmNlU3RyaWRlOwot
ICAgICAgICBkZXN0UCArPSBkZXN0U3RyaWRlOworICAgICAgICAqb3V0cHV0VmVjdG9yID0gc3Rk
OjptYXgoc3RkOjptaW4oKmlucHV0VmVjdG9yLCBoaWdoVGhyZXNob2xkKSwgbG93VGhyZXNob2xk
KTsKKyAgICAgICAgaW5wdXRWZWN0b3IgKz0gaW5wdXRTdHJpZGU7CisgICAgICAgIG91dHB1dFZl
Y3RvciArPSBvdXRwdXRTdHJpZGU7CiAgICAgfQogfQogCit2b2lkIGxpbmVhclRvRGVjaWJlbHMo
Y29uc3QgZmxvYXQqIGlucHV0VmVjdG9yLCBpbnQgaW5wdXRTdHJpZGUsIGZsb2F0KiBvdXRwdXRW
ZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNz
KQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vz
czsgKytpLCBpbnB1dFZlY3RvciArPSBpbnB1dFN0cmlkZSwgb3V0cHV0VmVjdG9yICs9IG91dHB1
dFN0cmlkZSkKKyAgICAgICAgKm91dHB1dFZlY3RvciA9IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJU
b0RlY2liZWxzKCppbnB1dFZlY3Rvcik7Cit9CisKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURSkK
IAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vVmVjdG9yTWF0aC5oCmluZGV4IDlmMDBhYjI2OGM4YzIzYWI1ZjViZTJlM2ZhMmFlMmU5ZjM4
NWEwMmYuLjhiOGI3MTk5MTBjYjI4NGE5YTQyZWQzYjc1N2QxMDhmMjkwZWU2MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKQEAgLTMyLDI2ICszMiwyOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgVmVjdG9yTWF0aCB7CiAKIC8vIFZlY3Rv
ciBzY2FsYXIgbXVsdGlwbHkgYW5kIHRoZW4gYWRkLgotdm9pZCB2c21hKGNvbnN0IGZsb2F0KiBz
b3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUsIGZsb2F0KiBkZXN0
UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2c21hKGNv
bnN0IGZsb2F0KiBpbnB1dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBjb25zdCBmbG9hdCogc2Nh
bGUsIGZsb2F0KiBvdXRwdXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNpemVfdCBudW1iZXJP
ZkVsZW1lbnRzVG9Qcm9jZXNzKTsKIAotdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwg
aW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBk
ZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKLXZvaWQgdnNhZGQoY29uc3QgZmxv
YXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsYXIsIGZsb2F0
KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwotdm9pZCB2
YWRkKGNvbnN0IGZsb2F0KiBzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0
KiBzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJp
ZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2c211bChjb25zdCBmbG9hdCogaW5w
dXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogb3V0
cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJv
Y2Vzcyk7Cit2b2lkIHZzYWRkKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvciwgaW50IGlucHV0U3Ry
aWRlLCBjb25zdCBmbG9hdCogc2NhbGFyLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0
U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7Cit2b2lkIHZhZGQoY29u
c3QgZmxvYXQqIGlucHV0VmVjdG9yMSwgaW50IGlucHV0U3RyaWRlMSwgY29uc3QgZmxvYXQqIGlu
cHV0VmVjdG9yMiwgaW50IGlucHV0U3RyaWRlMiwgZmxvYXQqIG91dHB1dFZlY3RvciwgaW50IG91
dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwogCiAvLyBGaW5k
cyB0aGUgbWF4aW11bSBtYWduaXR1ZGUgb2YgYSBmbG9hdCB2ZWN0b3IuCi12b2lkIHZtYXhtZ3Yo
Y29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBtYXhQLCBzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKTsKK3ZvaWQgdm1heG1ndihjb25zdCBmbG9hdCogaW5wdXRWZWN0
b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIG1heGltdW1WYWx1ZSwgc2l6ZV90IG51bWJlck9m
RWxlbWVudHNUb1Byb2Nlc3MpOwogCiAvLyBTdW1zIHRoZSBzcXVhcmVzIG9mIGEgZmxvYXQgdmVj
dG9yJ3MgZWxlbWVudHMuCi12b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNv
dXJjZVN0cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2
c3Zlc3EoY29uc3QgZmxvYXQqIGlucHV0VmVjdG9yLCBpbnQgaW5wdXRTdHJpZGUsIGZsb2F0KiBz
dW0sIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzKTsKIAogLy8gRm9yIGFuIGVsZW1l
bnQtYnktZWxlbWVudCBtdWx0aXBseSBvZiB0d28gZmxvYXQgdmVjdG9ycy4KLXZvaWQgdm11bChj
b25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291
cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKK3ZvaWQgdm11bChjb25zdCBmbG9hdCogaW5wdXRWZWN0
b3IxLCBpbnQgaW5wdXRTdHJpZGUxLCBjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IyLCBpbnQgaW5w
dXRTdHJpZGUyLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3Qg
bnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7CiAKIC8vIE11bHRpcGxpZXMgdHdvIGNvbXBsZXgg
dmVjdG9ycy4KLXZvaWQgenZtdWwoY29uc3QgZmxvYXQqIHJlYWwxUCwgY29uc3QgZmxvYXQqIGlt
YWcxUCwgY29uc3QgZmxvYXQqIHJlYWwyUCwgY29uc3QgZmxvYXQqIGltYWcyUCwgZmxvYXQqIHJl
YWxEZXN0UCwgZmxvYXQqIGltYWdEZXN0UCwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7Cit2b2lk
IHp2bXVsKGNvbnN0IGZsb2F0KiByZWFsVmVjdG9yMSwgY29uc3QgZmxvYXQqIGltYWdWZWN0b3Ix
LCBjb25zdCBmbG9hdCogcmVhbFZlY3RvcjIsIGNvbnN0IGZsb2F0KiBpbWFnVmVjdG9yMiwgZmxv
YXQqIHJlYWxPdXRwdXRWZWN0b3IsIGZsb2F0KiBpbWFnT3V0cHV0VmVjdG9yLCBzaXplX3QgbnVt
YmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7CiAKIC8vIENvcGllcyBlbGVtZW50cyB3aGlsZSBjbGlw
cGluZyB2YWx1ZXMgdG8gdGhlIHRocmVzaG9sZCBpbnB1dHMuCi12b2lkIHZjbGlwKGNvbnN0IGZs
b2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xk
UCwgY29uc3QgZmxvYXQqIGhpZ2hUaHJlc2hvbGRQLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3Ry
aWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKK3ZvaWQgdmNsaXAoY29uc3QgZmxvYXQqIGlu
cHV0VmVjdG9yLCBpbnQgaW5wdXRTdHJpZGUsIGNvbnN0IGZsb2F0KiBsb3dUaHJlc2hvbGRQLCBj
b25zdCBmbG9hdCogaGlnaFRocmVzaG9sZFAsIGZsb2F0KiBvdXRwdXRWZWN0b3IsIGludCBvdXRw
dXRTdHJpZGUsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzKTsKKwordm9pZCBsaW5l
YXJUb0RlY2liZWxzKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBm
bG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVt
ZW50c1RvUHJvY2Vzcyk7CiAKIH0gLy8gbmFtZXNwYWNlIFZlY3Rvck1hdGgKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQx
MDljMzA1YjQ3ZjRjMzg4OGE5ZmFkZDRhOTA5YWMxYmI3ODQwY2EuLmJhYWI5Zjk1MTA1NWY3OWIx
MGQ0NTE2ZjliZjljNjE0YTFlODQ1ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0xMC0w
NSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVmVj
dG9yaXplIGxpbmVhciB0byBkZWNpYmVscyBjb252ZXJzaW9uIGluIFJlYWx0aW1lQW5hbHlzZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzMyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNsaWdodGx5IGlu
Y3JlYXNlIHRoZSBlcnJvciB0aHJlc2hvbGQgaW4gYSBmZXcgV2ViQXVkaW8gdGVzdHMgYmVjYXVz
ZSB0aGUgdmVjdG9yaXphdGlvbgorICAgICAgICBvdXRwdXQgZm9yIGxpbmVhciB0byBkZWNpYmVs
cyBjb252ZXJzaW9uIGlzIG5vdCBxdWl0ZSBpZGVudGljYWwgdG8gb3VyIHByZXZpb3VzIG91dHB1
dAorICAgICAgICAoYWx0aG91Z2ggdmVyeSBjbG9zZSkuCisKKyAgICAgICAgKiB3ZWJhdWRpby9B
bmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZG93bm1peC5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1m
ZnRzaXplLXJlc2V0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVh
bmFseXNlci1mcmVxLWRhdGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5
c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLmh0bWw6CisKIDIwMjAtMTAtMDUgIERpZWdv
IFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gVW5yZXZp
ZXdlZCB0ZXN0IGdhcmRlbmluZy4gTWVyZ2UgY29tbW9uIEdUSyBhbmQgV1BFIGJhc2VsaW5lcyBh
bmQgZW1pdCBuZXcgYmFzZWxpbmVzIGZvciBXUEUgdGVzdHMgYWZ0ZXIgcjI2Nzk2MC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZG93
bm1peC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGlt
ZWFuYWx5c2VyLWRvd25taXgtZXhwZWN0ZWQudHh0CmluZGV4IGIxODdjOTU2ZDdiYmFlMTJkZDhl
ZTNjZDBmYTdkZTdlYjRhYzY3M2YuLjhiNThlY2EzMWU0MjI4MGY3NTZhYWJkOTIwYTMzZWY1OTg1
NGFlNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1l
YW5hbHlzZXItZG93bm1peC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
QW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1kb3dubWl4LWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4
LDcgQEAgUEFTUyBFeGVjdXRpbmcgIjMtY2hhbm5lbCIKIFBBU1MgQXVkaXQgcmVwb3J0CiBQQVNT
ID4gW21vbm9dCiBQQVNTICAgQW5hbHlzZXIgZG93bm1peCBtb25vIHRvIG1vbm8gdGltZSBkYXRh
IGlzIGlkZW50aWNhbCB0byB0aGUgYXJyYXkgWzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEuLi5dLgotUEFTUyAgIEFuYWx5c2VyIGRvd25taXggbW9ubyB0byBtb25vIGZyZXEgZGF0YSBl
cXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2Yg
eyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjYuMzI4M2UtOH0uCitQ
QVNTICAgQW5hbHlzZXIgZG93bm1peCBtb25vIHRvIG1vbm8gZnJlcSBkYXRhIGVxdWFscyBbZXhw
ZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRl
VGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MS4yNjU3ZS03fS4KIFBBU1MgPCBbbW9u
b10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQogUEFTUyA+IFtz
dGVyZW9dCiBQQVNTICAgQW5hbHlzZXIgZG93bm1peCBzdGVyZW8gdG8gbW9ubyB0aW1lIGRhdGEg
aXMgaWRlbnRpY2FsIHRvIHRoZSBhcnJheSBbMi41LDIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIu
NSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNSwyLjUsMi41Li4uXS4KQEAgLTI0LDcgKzI0LDcgQEAg
UEFTUyAgIEFuYWx5c2VyIGRvd25taXggNS4xIHRvIG1vbm8gZnJlcSBkYXRhIGVxdWFscyBbZXhw
ZWN0ZWQgYXJyYXldIHdpdGggYW4gZWwKIFBBU1MgPCBbNS4xXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCiBQQVNTID4gWzMtY2hhbm5lbF0KIFBBU1MgICBBbmFs
eXNlciBkb3dubWl4IDMtY2hhbm5lbCB0byBtb25vIHRpbWUgZGF0YSBpcyBpZGVudGljYWwgdG8g
dGhlIGFycmF5IFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLi4uXS4KLVBBU1MgICBB
bmFseXNlciBkb3dubWl4IDMtY2hhbm5lbCB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVj
dGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRo
cmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjYuMzI4M2UtOH0uCitQQVNTICAgQW5hbHlz
ZXIgZG93bm1peCAzLWNoYW5uZWwgdG8gbW9ubyBmcmVxIGRhdGEgZXF1YWxzIFtleHBlY3RlZCBh
cnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hv
bGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjoxLjI2NTdlLTd9LgogUEFTUyA8IFszLWNoYW5uZWxd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKIFBBU1MgIyBBVURJ
VCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogNSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRv
d25taXguaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlz
ZXItZG93bm1peC5odG1sCmluZGV4IGM0OWM4MmFjNjA5ZTI2NGExYWIxNGNmNGVhY2NjNDU3M2Qz
NTA5YzAuLjg5NGM0NWQyMzJiYTE3MmI1NjZmZjU5MjhhMWQ4NWNlY2Y5YmI0N2YgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZG93bm1p
eC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlz
ZXItZG93bm1peC5odG1sCkBAIC0xOSwxMSArMTksMTEgQEAKICAgICAgIGxldCBhdWRpdCA9IEF1
ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKIAogICAgICAgbGV0IHRlc3RDb25maWdzID0gWwotICAg
ICAgICB7Y2hhbm5lbENvdW50OiAxLCBtZXNzYWdlOiAnbW9ubycsIGZsb2F0UmVsRXJyb3I6IDYu
MzI4M2UtOH0sCisgICAgICAgIHtjaGFubmVsQ291bnQ6IDEsIG1lc3NhZ2U6ICdtb25vJywgZmxv
YXRSZWxFcnJvcjogMS4yNjU3ZS03fSwKICAgICAgICAge2NoYW5uZWxDb3VudDogMiwgbWVzc2Fn
ZTogJ3N0ZXJlbycsIGZsb2F0UmVsRXJyb3I6IDEuMTY4MWUtN30sCiAgICAgICAgIHtjaGFubmVs
Q291bnQ6IDQsIG1lc3NhZ2U6ICdxdWFkJywgZmxvYXRSZWxFcnJvcjogNC45NzkzZS03fSwKICAg
ICAgICAge2NoYW5uZWxDb3VudDogNiwgbWVzc2FnZTogJzUuMScsIGZsb2F0UmVsRXJyb3I6IDIu
MDIxNWUtN30sCi0gICAgICAgIHtjaGFubmVsQ291bnQ6IDMsIG1lc3NhZ2U6ICczLWNoYW5uZWwn
LCBmbG9hdFJlbEVycm9yOiA2LjMyODNlLTh9CisgICAgICAgIHtjaGFubmVsQ291bnQ6IDMsIG1l
c3NhZ2U6ICczLWNoYW5uZWwnLCBmbG9hdFJlbEVycm9yOiAxLjI2NTdlLTd9CiAgICAgICBdOwog
CiAgICAgICAvLyBDcmVhdGUgdGFza3MgZm9yIGVhY2ggZW50cnkgaW4gdGVzdENvbmZpZ3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXIt
ZmZ0c2l6ZS1yZXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNl
ci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0CmluZGV4IDBlMmE4
YzAxNzExNDdlMDVhMGNmZWUxYzk1OGIwOWE2NjM2NDhhYjguLjE4NmMzOTk1ZjhhMTkzMTU0ZTA3
OTFmYjgwMzM5NzQ4OTFhZWEwYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0Fu
YWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1mZnRzaXplLXJl
c2V0LWV4cGVjdGVkLnR4dApAQCAtNSwxMSArNSwxMSBAQCBQQVNTIEV4ZWN1dGluZyAiNTEyLT4y
NTYiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFsxMjgtPjEwMjRdCiBQQVNTICAgVGltZSBk
YXRhIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCi1QQVNT
ICAgTGluZWFyIEZGVCBkYXRhIGFmdGVyIHNldHRpbmcgZmZ0U2l6ZSA9IDEwMjQgZXF1YWxzIFtl
eHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1
dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowLjAwMDAwMTk0NTV9LgorUEFTUyAg
IExpbmVhciBGRlQgZGF0YSBhZnRlciBzZXR0aW5nIGZmdFNpemUgPSAxMDI0IGVxdWFscyBbZXhw
ZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRl
VGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MC4wMDAwMDM2Mjk2fS4KIFBBU1MgPCBb
MTI4LT4xMDI0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCiBQ
QVNTID4gWzUxMi0+MjU2XQogUEFTUyAgIFRpbWUgZGF0YSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgotUEFTUyAgIExpbmVhciBGRlQgZGF0YSBhZnRlciBz
ZXR0aW5nIGZmdFNpemUgPSAyNTYgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVt
ZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhy
ZXNob2xkIjowLjAwMDAwMTg1OTJ9LgorUEFTUyAgIExpbmVhciBGRlQgZGF0YSBhZnRlciBzZXR0
aW5nIGZmdFNpemUgPSAyNTYgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNo
b2xkIjowLjAwMDAwMTg2MTR9LgogUEFTUyA8IFs1MTItPjI1Nl0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklT
SEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1mZnRzaXplLXJl
c2V0Lmh0bWwKaW5kZXggYjgzM2E5NjIzMmViMWNlNDVjNjkzYzc2NzAxZDkxNzFjMTNkMjQ2MC4u
YzNlY2MwYTMzM2RjZTBkNTkzOGMyZWM0OTkyYjgwYzliNjRlMDJmNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1mZnRzaXplLXJlc2V0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNl
ci1mZnRzaXplLXJlc2V0Lmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAgdGVzdEZGVFNp
emUoc2hvdWxkLCB7CiAgICAgICAgICAgaW5pdGlhbEZGVFNpemU6IDEyOCwKICAgICAgICAgICBm
aW5hbEZGVFNpemU6IDEwMjQsCi0gICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IHtyZWxhdGl2ZVRo
cmVzaG9sZDogMS45NDU1ZS02fQorICAgICAgICAgIGVycm9yVGhyZXNob2xkOiB7cmVsYXRpdmVU
aHJlc2hvbGQ6IDMuNjI5NmUtNn0KICAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7
CiAgICAgICB9KTsKIApAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICB0ZXN0RkZUU2l6ZShzaG91
bGQsIHsKICAgICAgICAgICBpbml0aWFsRkZUU2l6ZTogNTEyLAogICAgICAgICAgIGZpbmFsRkZU
U2l6ZTogMjU2LAotICAgICAgICAgIGVycm9yVGhyZXNob2xkOiB7cmVsYXRpdmVUaHJlc2hvbGQ6
IDEuODU5MmUtNn0KKyAgICAgICAgICBlcnJvclRocmVzaG9sZDoge3JlbGF0aXZlVGhyZXNob2xk
OiAxLjg2MTRlLTZ9CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOwogICAgICAg
fSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1l
YW5hbHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0Fu
YWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dAppbmRleCBiODQ0
ZmE0NjNiZDhlNzRlOGZiZmE1MGQwMzY1N2ZiZGJmZmJiNjRmLi40YjJjMjVhZmMyMWMyYThkYjA1
Nzg2MmMyZWUzYTMyY2QwMzcwOWI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
bmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1mcmVxLWRhdGEtZXhw
ZWN0ZWQudHh0CkBAIC02MiwxOSArNjIsMTkgQEAgUEFTUyAgIE9yZGVyOiAxMjogTWF4IEZGVCB2
YWx1ZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gLTMwLgogUEFTUyAgIDQwOTYtcG9pbnQg
Ynl0ZSBGRlQgZXF1YWxzIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLi4uXSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LgogUEFTUyA8IFsxMi1vcmRlciBGRlRdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKIFBBU1MgPiBbMTMtb3JkZXIgRkZUXQotUEFT
UyAgIDgxOTItcG9pbnQgZmxvYXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAw
LC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4u
Ll0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQi
OjAsInJlbGF0aXZlVGhyZXNob2xkIjozLjIxMDZlLTd9LgorUEFTUyAgIDgxOTItcG9pbnQgZmxv
YXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0x
MDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNo
b2xkIjozLjQxOTZlLTd9LgogUEFTUyAgIE9yZGVyOiAxMzogTWluIEZGVCB2YWx1ZSBpcyBsZXNz
IHRoYW4gb3IgZXF1YWwgdG8gLTEwMC4KIFBBU1MgICBPcmRlcjogMTM6IE1heCBGRlQgdmFsdWUg
aXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIC0zMC4KIFBBU1MgICA4MTkyLXBvaW50IGJ5dGUg
RkZUIGVxdWFscyBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4uLl0gd2l0aCBhbiBl
bGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZl
VGhyZXNob2xkIjowfS4KIFBBU1MgPCBbMTMtb3JkZXIgRkZUXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCiBQQVNTID4gWzE0LW9yZGVyIEZGVF0KLVBBU1MgICAx
NjM4NC1wb2ludCBmbG9hdCBGRlQgZXF1YWxzIFstMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEw
MCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLi4uXSB3
aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwi
cmVsYXRpdmVUaHJlc2hvbGQiOjEuMTc1NmUtN30uCitQQVNTICAgMTYzODQtcG9pbnQgZmxvYXQg
RkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAs
LTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xk
IjoxLjYyNTdlLTd9LgogUEFTUyAgIE9yZGVyOiAxNDogTWluIEZGVCB2YWx1ZSBpcyBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gLTEwMC4KIFBBU1MgICBPcmRlcjogMTQ6IE1heCBGRlQgdmFsdWUgaXMg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIC0zMC4KIFBBU1MgICAxNjM4NC1wb2ludCBieXRlIEZG
VCBlcXVhbHMgWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAuLi5dIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uCiBQQVNTIDwgWzE0LW9yZGVyIEZGVF0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgNCBhc3NlcnRpb25zKQogUEFTUyA+IFsxNS1vcmRlciBGRlRdCi1QQVNTICAgMzI3
NjgtcG9pbnQgZmxvYXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAs
LTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJl
bGF0aXZlVGhyZXNob2xkIjoxLjE3NTZlLTd9LgorUEFTUyAgIDMyNzY4LXBvaW50IGZsb2F0IEZG
VCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0x
MDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6
Mi4wODc2ZS03fS4KIFBBU1MgICBPcmRlcjogMTU6IE1pbiBGRlQgdmFsdWUgaXMgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIC0xMDAuCiBQQVNTICAgT3JkZXI6IDE1OiBNYXggRkZUIHZhbHVlIGlzIGdy
ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAtMzAuCiBQQVNTICAgMzI3NjgtcG9pbnQgYnl0ZSBGRlQg
ZXF1YWxzIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLi4uXSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJl
c2hvbGQiOjB9LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVh
bHRpbWVhbmFseXNlci1mcmVxLWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5
c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLmh0bWwKaW5kZXggNDRlNTNmMzRkZGZmMzli
ZGI3ODM4ZTQ4MDQ2OGUxZDAxOTY0N2Q0NS4uNTc5ZmYwOGZhNmRiY2VlNjk3MjUxODcxOTY4ZDVm
MzM4OGRlODE1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVh
bHRpbWVhbmFseXNlci1mcmVxLWRhdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
bmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sCkBAIC01MCw5ICs1MCw5IEBA
CiAgICAgICAgIHtvcmRlcjogMTAsIGZsb2F0UmVsRXJyb3I6IDIuOTc3MWUtNSwgYnl0ZVRocmVz
aG9sZDogMX0sCiAgICAgICAgIHtvcmRlcjogMTEsIGZsb2F0UmVsRXJyb3I6IDEuMzQ1NmUtNX0s
CiAgICAgICAgIHtvcmRlcjogMTIsIGZsb2F0UmVsRXJyb3I6IDQuNjExNmUtN30sCi0gICAgICAg
IHtvcmRlcjogMTMsIGZsb2F0UmVsRXJyb3I6IDMuMjEwNmUtN30sCi0gICAgICAgIHtvcmRlcjog
MTQsIGZsb2F0UmVsRXJyb3I6IDEuMTc1NmUtN30sCi0gICAgICAgIHtvcmRlcjogMTUsIGZsb2F0
UmVsRXJyb3I6IDEuMTc1NmUtN30KKyAgICAgICAge29yZGVyOiAxMywgZmxvYXRSZWxFcnJvcjog
My40MTk2ZS03fSwKKyAgICAgICAge29yZGVyOiAxNCwgZmxvYXRSZWxFcnJvcjogMS42MjU3ZS03
fSwKKyAgICAgICAge29yZGVyOiAxNSwgZmxvYXRSZWxFcnJvcjogMi4wODc2ZS03fQogICAgICAg
XTsKIAogICAgICAgLy8gVHJ1ZSBpZiBhbGwgb2YgdGhlIGJhc2ljIHRlc3RzIHBhc3NlZC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410558</attachid>
            <date>2020-10-05 14:17:50 -0700</date>
            <delta_ts>2020-10-05 15:03:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217322-20201005141750.patch</filename>
            <type>text/plain</type>
            <size>58525</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE2MTIzNmMwMDY1Yjdk
ZjVjODdhOTI5NjU0NTJhYjE0MDgzMTMyMC4uYjJiYTUzMWVmZWFhMmY0OWQ3NTM2NWUxNmI2NDc4
ZWU2YzRkMmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBWZWN0b3JpemUg
bGluZWFyIHRvIGRlY2liZWxzIGNvbnZlcnNpb24gaW4gUmVhbHRpbWVBbmFseXNlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVmVjdG9yaXplIGxpbmVhciB0
byBkZWNpYmVscyBjb252ZXJzaW9uIGluIFJlYWx0aW1lQW5hbHlzZXIgb24gQ29jb2EgcG9ydHMg
Zm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gd2Vi
LWZhY2luZyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Jl
YWx0aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6
Z2V0RmxvYXRGcmVxdWVuY3lEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JN
YXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OmxpbmVhclRvRGVjaWJlbHMp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaDoKKwogMjAyMC0xMC0wNSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdy
YXRpb25dIE1vdmUgRGlzcGxheTo6SW5saW5lQ29udGVudCB0byBMYXlvdXRJbnRlZ3JhdGlvbiBu
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVh
bHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwCmluZGV4IGM0ZGEzZmZmNTc1ZTI0YTVhNWNhOTdmOGZjZWFiMGJmODJm
MjQ2MWYuLjk3NmMwYjJmNGY5MWFkM2RlNTNiOTc2Nzc1OThiYTUxMGY1ZjUwNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNw
cApAQCAtMTg1LDE1ICsxODUsOCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJl
cXVlbmN5RGF0YShGbG9hdDMyQXJyYXkmIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgZG9GRlRBbmFs
eXNpc0lmTmVjZXNzYXJ5KCk7CiAgICAgCiAgICAgLy8gQ29udmVydCBmcm9tIGxpbmVhciBtYWdu
aXR1ZGUgdG8gZmxvYXRpbmctcG9pbnQgZGVjaWJlbHMuCi0gICAgdW5zaWduZWQgc291cmNlTGVu
Z3RoID0gbWFnbml0dWRlQnVmZmVyKCkuc2l6ZSgpOwotICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6
Om1pbihzb3VyY2VMZW5ndGgsIGRlc3RpbmF0aW9uQXJyYXkubGVuZ3RoKCkpOwotICAgIGlmIChs
ZW5ndGggPiAwKSB7Ci0gICAgICAgIGF1dG8qIHNvdXJjZSA9IG1hZ25pdHVkZUJ1ZmZlcigpLmRh
dGEoKTsKLSAgICAgICAgYXV0byogZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbkFycmF5LmRhdGEo
KTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbltpXSA9IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJUb0Rl
Y2liZWxzKHNvdXJjZVtpXSk7Ci0gICAgfQorICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbjxz
aXplX3Q+KG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKSwgZGVzdGluYXRpb25BcnJheS5sZW5ndGgo
KSk7CisgICAgVmVjdG9yTWF0aDo6bGluZWFyVG9EZWNpYmVscyhtYWduaXR1ZGVCdWZmZXIoKS5k
YXRhKCksIDEsIGRlc3RpbmF0aW9uQXJyYXkuZGF0YSgpLCAxLCBsZW5ndGgpOwogfQogCiB2b2lk
IFJlYWx0aW1lQW5hbHlzZXI6OmdldEJ5dGVGcmVxdWVuY3lEYXRhKFVpbnQ4QXJyYXkmIGRlc3Rp
bmF0aW9uQXJyYXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9W
ZWN0b3JNYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
Y3BwCmluZGV4IDRlNGMxNGM3ZGMzOWMzMDkxNzY3NGJkNmEzMGE3ZTk3ZjQ4ZTFmZDcuLjczMzAy
MmVhYTJlOGM5YTIwZmIyMTJmOTNlNGRiMTczYWU3NzU2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX0FVRElPKQogCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJWZWN0b3JNYXRoLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURSkKQEAgLTUwLDk4ICs1MSwxMDUg
QEAgbmFtZXNwYWNlIFZlY3Rvck1hdGggewogI2lmIFVTRShBQ0NFTEVSQVRFKQogLy8gT24gdGhl
IE1hYyB3ZSB1c2UgdGhlIGhpZ2hseSBvcHRpbWl6ZWQgdmVyc2lvbnMgaW4gQWNjZWxlcmF0ZS5m
cmFtZXdvcmsKIAotdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0
cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2c211bChjb25zdCBmbG9hdCogaW5wdXRWZWN0
b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogb3V0cHV0VmVj
dG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykK
IHsKLSAgICB2RFNQX3ZzbXVsKHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwgc2NhbGUsIGRlc3RQLCBk
ZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIHZEU1BfdnNtdWwoaW5wdXRWZWN0b3Is
IGlucHV0U3RyaWRlLCBzY2FsZSwgb3V0cHV0VmVjdG9yLCBvdXRwdXRTdHJpZGUsIG51bWJlck9m
RWxlbWVudHNUb1Byb2Nlc3MpOwogfQogCi12b2lkIHZhZGQoY29uc3QgZmxvYXQqIHNvdXJjZTFQ
LCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgc291cmNlU3Ry
aWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKK3ZvaWQgdmFkZChjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IxLCBpbnQgaW5wdXRTdHJpZGUx
LCBjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IyLCBpbnQgaW5wdXRTdHJpZGUyLCBmbG9hdCogb3V0
cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJv
Y2VzcykKIHsKLSAgICB2RFNQX3ZhZGQoc291cmNlMVAsIHNvdXJjZVN0cmlkZTEsIHNvdXJjZTJQ
LCBzb3VyY2VTdHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAg
ICB2RFNQX3ZhZGQoaW5wdXRWZWN0b3IxLCBpbnB1dFN0cmlkZTEsIGlucHV0VmVjdG9yMiwgaW5w
dXRTdHJpZGUyLCBvdXRwdXRWZWN0b3IsIG91dHB1dFN0cmlkZSwgbnVtYmVyT2ZFbGVtZW50c1Rv
UHJvY2Vzcyk7CiB9CiAKLXZvaWQgdnNhZGQoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3Vy
Y2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsYXIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJp
ZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZzYWRkKGNvbnN0IGZsb2F0KiBpbnB1
dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGFyLCBmbG9hdCogb3V0
cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJv
Y2VzcykKIHsKLSAgICB2RFNQX3ZzYWRkKHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwgc2NhbGFyLCBk
ZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICB2RFNQX3ZzYWRkKGlucHV0
VmVjdG9yLCBpbnB1dFN0cmlkZSwgc2NhbGFyLCBvdXRwdXRWZWN0b3IsIG91dHB1dFN0cmlkZSwg
bnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7CiB9CiAKLXZvaWQgdm11bChjb25zdCBmbG9hdCog
c291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBz
b3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjEsIGludCBpbnB1
dFN0cmlkZTEsIGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjIsIGludCBpbnB1dFN0cmlkZTIsIGZs
b2F0KiBvdXRwdXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNpemVfdCBudW1iZXJPZkVsZW1l
bnRzVG9Qcm9jZXNzKQogewotICAgIHZEU1Bfdm11bChzb3VyY2UxUCwgc291cmNlU3RyaWRlMSwg
c291cmNlMlAsIHNvdXJjZVN0cmlkZTIsIGRlc3RQLCBkZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nl
c3MpOworICAgIHZEU1Bfdm11bChpbnB1dFZlY3RvcjEsIGlucHV0U3RyaWRlMSwgaW5wdXRWZWN0
b3IyLCBpbnB1dFN0cmlkZTIsIG91dHB1dFZlY3Rvciwgb3V0cHV0U3RyaWRlLCBudW1iZXJPZkVs
ZW1lbnRzVG9Qcm9jZXNzKTsKIH0KIAotdm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbDFQLCBj
b25zdCBmbG9hdCogaW1hZzFQLCBjb25zdCBmbG9hdCogcmVhbDJQLCBjb25zdCBmbG9hdCogaW1h
ZzJQLCBmbG9hdCogcmVhbERlc3RQLCBmbG9hdCogaW1hZ0Rlc3RQLCBzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQordm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbFZlY3RvcjEsIGNvbnN0IGZsb2F0
KiBpbWFnVmVjdG9yMSwgY29uc3QgZmxvYXQqIHJlYWxWZWN0b3IyLCBjb25zdCBmbG9hdCogaW1h
ZzJQLCBmbG9hdCogcmVhbE91dHB1dFZlY3RvciwgZmxvYXQqIGltYWdEZXN0UCwgc2l6ZV90IG51
bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7CiAgICAgRFNQU3BsaXRDb21wbGV4IHNjMTsKICAg
ICBEU1BTcGxpdENvbXBsZXggc2MyOwogICAgIERTUFNwbGl0Q29tcGxleCBkZXN0OwotICAgIHNj
MS5yZWFscCA9IGNvbnN0X2Nhc3Q8ZmxvYXQqPihyZWFsMVApOwotICAgIHNjMS5pbWFncCA9IGNv
bnN0X2Nhc3Q8ZmxvYXQqPihpbWFnMVApOwotICAgIHNjMi5yZWFscCA9IGNvbnN0X2Nhc3Q8Zmxv
YXQqPihyZWFsMlApOworICAgIHNjMS5yZWFscCA9IGNvbnN0X2Nhc3Q8ZmxvYXQqPihyZWFsVmVj
dG9yMSk7CisgICAgc2MxLmltYWdwID0gY29uc3RfY2FzdDxmbG9hdCo+KGltYWdWZWN0b3IxKTsK
KyAgICBzYzIucmVhbHAgPSBjb25zdF9jYXN0PGZsb2F0Kj4ocmVhbFZlY3RvcjIpOwogICAgIHNj
Mi5pbWFncCA9IGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbWFnMlApOwotICAgIGRlc3QucmVhbHAgPSBy
ZWFsRGVzdFA7CisgICAgZGVzdC5yZWFscCA9IHJlYWxPdXRwdXRWZWN0b3I7CiAgICAgZGVzdC5p
bWFncCA9IGltYWdEZXN0UDsKLSAgICB2RFNQX3p2bXVsKCZzYzEsIDEsICZzYzIsIDEsICZkZXN0
LCAxLCBmcmFtZXNUb1Byb2Nlc3MsIDEpOworICAgIHZEU1BfenZtdWwoJnNjMSwgMSwgJnNjMiwg
MSwgJmRlc3QsIDEsIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MsIDEpOwogfQogCi12b2lkIHZz
bWEoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBz
Y2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKK3ZvaWQgdnNtYShjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwg
Y29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRl
LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICB2RFNQX3ZzbWEoc291
cmNlUCwgc291cmNlU3RyaWRlLCBzY2FsZSwgZGVzdFAsIGRlc3RTdHJpZGUsIGRlc3RQLCBkZXN0
U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIHZEU1BfdnNtYShpbnB1dFZlY3RvciwgaW5w
dXRTdHJpZGUsIHNjYWxlLCBvdXRwdXRWZWN0b3IsIG91dHB1dFN0cmlkZSwgb3V0cHV0VmVjdG9y
LCBvdXRwdXRTdHJpZGUsIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwogfQogCi12b2lkIHZt
YXhtZ3YoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBtYXhQ
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2bWF4bWd2KGNvbnN0IGZsb2F0KiBpbnB1
dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBmbG9hdCogbWF4aW11bVZhbHVlLCBzaXplX3QgbnVt
YmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICB2RFNQX21heG1ndihzb3VyY2VQLCBzb3Vy
Y2VTdHJpZGUsIG1heFAsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgdkRTUF9tYXhtZ3YoaW5wdXRW
ZWN0b3IsIGlucHV0U3RyaWRlLCBtYXhpbXVtVmFsdWUsIG51bWJlck9mRWxlbWVudHNUb1Byb2Nl
c3MpOwogfQogCi12b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0
cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZzdmVzcShj
b25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIHN1bSwgc2l6
ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgdkRTUF9zdmVzcShjb25zdF9j
YXN0PGZsb2F0Kj4oc291cmNlUCksIHNvdXJjZVN0cmlkZSwgc3VtUCwgZnJhbWVzVG9Qcm9jZXNz
KTsKKyAgICB2RFNQX3N2ZXNxKGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvciksIGlucHV0
U3RyaWRlLCBzdW0sIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwogfQogCi12b2lkIHZjbGlw
KGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogbG93
VGhyZXNob2xkUCwgY29uc3QgZmxvYXQqIGhpZ2hUaHJlc2hvbGRQLCBmbG9hdCogZGVzdFAsIGlu
dCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2Y2xpcChjb25zdCBm
bG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIGxvd1RocmVz
aG9sZFAsIGNvbnN0IGZsb2F0KiBoaWdoVGhyZXNob2xkUCwgZmxvYXQqIG91dHB1dFZlY3Rvciwg
aW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0g
ICAgdkRTUF92Y2xpcChjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlUCksIHNvdXJjZVN0cmlkZSwg
Y29uc3RfY2FzdDxmbG9hdCo+KGxvd1RocmVzaG9sZFApLCBjb25zdF9jYXN0PGZsb2F0Kj4oaGln
aFRocmVzaG9sZFApLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICB2
RFNQX3ZjbGlwKGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvciksIGlucHV0U3RyaWRlLCBj
b25zdF9jYXN0PGZsb2F0Kj4obG93VGhyZXNob2xkUCksIGNvbnN0X2Nhc3Q8ZmxvYXQqPihoaWdo
VGhyZXNob2xkUCksIG91dHB1dFZlY3Rvciwgb3V0cHV0U3RyaWRlLCBudW1iZXJPZkVsZW1lbnRz
VG9Qcm9jZXNzKTsKIH0KKwordm9pZCBsaW5lYXJUb0RlY2liZWxzKGNvbnN0IGZsb2F0KiBpbnB1
dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0
U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKK3sKKyAgICBmbG9hdCBy
ZWZlcmVuY2UgPSAxOworICAgIHZEU1BfdmRiY29uKGlucHV0VmVjdG9yLCBpbnB1dFN0cmlkZSwg
JnJlZmVyZW5jZSwgb3V0cHV0VmVjdG9yLCBvdXRwdXRTdHJpZGUsIG51bWJlck9mRWxlbWVudHNU
b1Byb2Nlc3MsIDEpOworfQorCiAjZWxzZQogCi12b2lkIHZzbWEoY29uc3QgZmxvYXQqIHNvdXJj
ZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBp
bnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgdnNtYShjb25zdCBm
bG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBm
bG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVt
ZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICBpbnQg
biA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAKICNpZiBDUFUoWDg2X1NTRTIpCi0gICAg
aWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsKKyAgICBpZiAo
KGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJpZGUgPT0gMSkpIHsKICAgICAgICAgZmxv
YXQgayA9ICpzY2FsZTsKIAotICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRyZXNzIGlzIG5v
dCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJl
ZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgotICAgICAgICB3aGlsZSAoKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihzb3VyY2VQKSAmIDB4MEYpICYmIG4pIHsKLSAgICAgICAg
ICAgICpkZXN0UCArPSBrICogKnNvdXJjZVA7Ci0gICAgICAgICAgICBzb3VyY2VQKys7Ci0gICAg
ICAgICAgICBkZXN0UCsrOworICAgICAgICAvLyBJZiB0aGUgaW5wdXRWZWN0b3IgYWRkcmVzcyBp
cyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1vc3Qg
dGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KKyAgICAgICAgd2hpbGUgKChy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oaW5wdXRWZWN0b3IpICYgMHgwRikgJiYgbikgewor
ICAgICAgICAgICAgKm91dHB1dFZlY3RvciArPSBrICogKmlucHV0VmVjdG9yOworICAgICAgICAg
ICAgaW5wdXRWZWN0b3IrKzsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvcisrOwogICAgICAgICAg
ICAgbi0tOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gTm93IHRoZSBzb3VyY2VQIGlzIGFsaWdu
ZWQsIHVzZSBTU0UuCisgICAgICAgIC8vIE5vdyB0aGUgaW5wdXRWZWN0b3IgaXMgYWxpZ25lZCwg
dXNlIFNTRS4KICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUgNDsKLSAgICAgICAgY29uc3Qg
ZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOworICAgICAgICBjb25zdCBmbG9h
dCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVzOwogCiAgICAgICAgIF9fbTEy
OCBwU291cmNlOwogICAgICAgICBfX20xMjggZGVzdDsKICAgICAgICAgX19tMTI4IHRlbXA7CiAg
ICAgICAgIF9fbTEyOCBtU2NhbGUgPSBfbW1fc2V0X3BzMShrKTsKIAotICAgICAgICBib29sIGRl
c3RBbGlnbmVkID0gIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGVzdFApICYgMHgwRik7
CisgICAgICAgIGJvb2wgZGVzdEFsaWduZWQgPSAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihvdXRwdXRWZWN0b3IpICYgMHgwRik7CiAKICNkZWZpbmUgU1NFMl9NVUxUX0FERChsb2FkSW5z
dHIsIHN0b3JlSW5zdHIpICAgICAgICBcCi0gICAgICAgICAgICB3aGlsZSAoZGVzdFAgPCBlbmRQ
KSAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgd2hpbGUgKG91dHB1dFZlY3RvciA8
IGVuZFApICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIHBTb3VyY2UgPSBfbW1f
bG9hZF9wcyhzb3VyY2VQKTsgICAgIFwKKyAgICAgICAgICAgICAgICBwU291cmNlID0gX21tX2xv
YWRfcHMoaW5wdXRWZWN0b3IpOyAgICAgXAogICAgICAgICAgICAgICAgIHRlbXAgPSBfbW1fbXVs
X3BzKHBTb3VyY2UsIG1TY2FsZSk7IFwKLSAgICAgICAgICAgICAgICBkZXN0ID0gX21tXyMjbG9h
ZEluc3RyIyNfcHMoZGVzdFApOyBcCisgICAgICAgICAgICAgICAgZGVzdCA9IF9tbV8jI2xvYWRJ
bnN0ciMjX3BzKG91dHB1dFZlY3Rvcik7IFwKICAgICAgICAgICAgICAgICBkZXN0ID0gX21tX2Fk
ZF9wcyhkZXN0LCB0ZW1wKTsgICAgICBcCi0gICAgICAgICAgICAgICAgX21tXyMjc3RvcmVJbnN0
ciMjX3BzKGRlc3RQLCBkZXN0KTsgXAotICAgICAgICAgICAgICAgIHNvdXJjZVAgKz0gNDsgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBkZXN0UCArPSA0OyAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgX21tXyMjc3RvcmVJbnN0ciMjX3Bz
KG91dHB1dFZlY3RvciwgZGVzdCk7IFwKKyAgICAgICAgICAgICAgICBpbnB1dFZlY3RvciArPSA0
OyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG91dHB1dFZlY3RvciAr
PSA0OyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB9CiAKICAgICAgICAg
aWYgKGRlc3RBbGlnbmVkKSAKQEAgLTE1Miw0OSArMTYwLDQ5IEBAIHZvaWQgdnNtYShjb25zdCBm
bG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9h
dCogZGVzCiAgICAgICAgIG4gPSB0YWlsRnJhbWVzOwogICAgIH0KICNlbGlmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKLSAgICBpZiAoKHNvdXJjZVN0cmlkZSA9PSAxKSAmJiAoZGVzdFN0cmlk
ZSA9PSAxKSkgeworICAgIGlmICgoaW5wdXRTdHJpZGUgPT0gMSkgJiYgKG91dHB1dFN0cmlkZSA9
PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9IG4gJSA0OwotICAgICAgICBjb25zdCBm
bG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFtZXM7CisgICAgICAgIGNvbnN0IGZsb2F0
KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAKICAgICAgICAgZmxvYXQz
Mng0X3QgayA9IHZkdXBxX25fZjMyKCpzY2FsZSk7Ci0gICAgICAgIHdoaWxlIChkZXN0UCA8IGVu
ZFApIHsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZSA9IHZsZDFxX2YzMihzb3VyY2VQ
KTsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90IGRlc3QgPSB2bGQxcV9mMzIoZGVzdFApOworICAg
ICAgICB3aGlsZSAob3V0cHV0VmVjdG9yIDwgZW5kUCkgeworICAgICAgICAgICAgZmxvYXQzMng0
X3Qgc291cmNlID0gdmxkMXFfZjMyKGlucHV0VmVjdG9yKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4
NF90IGRlc3QgPSB2bGQxcV9mMzIob3V0cHV0VmVjdG9yKTsKIAogICAgICAgICAgICAgZGVzdCA9
IHZtbGFxX2YzMihkZXN0LCBzb3VyY2UsIGspOwotICAgICAgICAgICAgdnN0MXFfZjMyKGRlc3RQ
LCBkZXN0KTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRwdXRWZWN0b3IsIGRlc3QpOwogCi0g
ICAgICAgICAgICBzb3VyY2VQICs9IDQ7Ci0gICAgICAgICAgICBkZXN0UCArPSA0OworICAgICAg
ICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0Owog
ICAgICAgICB9CiAgICAgICAgIG4gPSB0YWlsRnJhbWVzOwogICAgIH0KICNlbmRpZgogICAgIHdo
aWxlIChuKSB7Ci0gICAgICAgICpkZXN0UCArPSAqc291cmNlUCAqICpzY2FsZTsKLSAgICAgICAg
c291cmNlUCArPSBzb3VyY2VTdHJpZGU7Ci0gICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7Cisg
ICAgICAgICpvdXRwdXRWZWN0b3IgKz0gKmlucHV0VmVjdG9yICogKnNjYWxlOworICAgICAgICBp
bnB1dFZlY3RvciArPSBpbnB1dFN0cmlkZTsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91dHB1
dFN0cmlkZTsKICAgICAgICAgbi0tOwogICAgIH0KIH0KIAotdm9pZCB2c211bChjb25zdCBmbG9h
dCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCog
ZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2c211
bChjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQq
IHNjYWxlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVt
YmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsK
KyAgICBpbnQgbiA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAKICNpZiBDUFUoWDg2X1NT
RTIpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsK
KyAgICBpZiAoKGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJpZGUgPT0gMSkpIHsKICAg
ICAgICAgZmxvYXQgayA9ICpzY2FsZTsKIAotICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRy
ZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQg
bW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgotICAgICAgICB3aGls
ZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pihzb3VyY2VQKSAmIDB4MEYpICYmIG4pIHsKLSAg
ICAgICAgICAgICpkZXN0UCA9IGsgKiAqc291cmNlUDsKLSAgICAgICAgICAgIHNvdXJjZVArKzsK
LSAgICAgICAgICAgIGRlc3RQKys7CisgICAgICAgIC8vIElmIHRoZSBpbnB1dFZlY3RvciBhZGRy
ZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQg
bW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgorICAgICAgICB3aGls
ZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1dFZlY3RvcikgJiAweDBGKSAmJiBuKSB7
CisgICAgICAgICAgICAqb3V0cHV0VmVjdG9yID0gayAqICppbnB1dFZlY3RvcjsKKyAgICAgICAg
ICAgIGlucHV0VmVjdG9yKys7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAg
ICAgIG4tLTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIE5vdyB0aGUgc291cmNlUCBhZGRyZXNz
IGlzIGFsaWduZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBp
bnB1dFZlY3RvciBhZGRyZXNzIGlzIGFsaWduZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KICAg
ICAgICAgaW50IGdyb3VwID0gbiAvIDQ7CiAgICAgICAgIF9fbTEyOCBtU2NhbGUgPSBfbW1fc2V0
X3BzMShrKTsKICAgICAgICAgX19tMTI4KiBwU291cmNlOwpAQCAtMjAyLDE1NSArMjEwLDE1NSBA
QCB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25z
dCBmbG9hdCogc2NhbGUsIGZsb2F0KiBkZQogICAgICAgICBfX20xMjggZGVzdDsKIAogCi0gICAg
ICAgIGlmIChyZWludGVycHJldF9jYXN0PHNpemVfdD4oZGVzdFApICYgMHgwRikgeworICAgICAg
ICBpZiAocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KG91dHB1dFZlY3RvcikgJiAweDBGKSB7CiAg
ICAgICAgICAgICB3aGlsZSAoZ3JvdXAtLSkgewotICAgICAgICAgICAgICAgIHBTb3VyY2UgPSBy
ZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQqPihzb3VyY2VQKSk7Cisg
ICAgICAgICAgICAgICAgcFNvdXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3Rf
Y2FzdDxmbG9hdCo+KGlucHV0VmVjdG9yKSk7CiAgICAgICAgICAgICAgICAgZGVzdCA9IF9tbV9t
dWxfcHMoKnBTb3VyY2UsIG1TY2FsZSk7Ci0gICAgICAgICAgICAgICAgX21tX3N0b3JldV9wcyhk
ZXN0UCwgZGVzdCk7CisgICAgICAgICAgICAgICAgX21tX3N0b3JldV9wcyhvdXRwdXRWZWN0b3Is
IGRlc3QpOwogCi0gICAgICAgICAgICAgICAgc291cmNlUCArPSA0OwotICAgICAgICAgICAgICAg
IGRlc3RQICs9IDQ7CisgICAgICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKKyAgICAgICAg
ICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIHdoaWxlIChncm91cC0tKSB7Ci0gICAgICAgICAgICAgICAgcFNvdXJj
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZVAp
KTsKLSAgICAgICAgICAgICAgICBwRGVzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oZGVz
dFApOworICAgICAgICAgICAgICAgIHBTb3VyY2UgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+
KGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvcikpOworICAgICAgICAgICAgICAgIHBEZXN0
ID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihvdXRwdXRWZWN0b3IpOwogICAgICAgICAgICAg
ICAgICpwRGVzdCA9IF9tbV9tdWxfcHMoKnBTb3VyY2UsIG1TY2FsZSk7CiAKLSAgICAgICAgICAg
ICAgICBzb3VyY2VQICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAg
ICAgICAgICBpbnB1dFZlY3RvciArPSA0OworICAgICAgICAgICAgICAgIG91dHB1dFZlY3RvciAr
PSA0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLy8gTm9uLVNTRSBoYW5k
bGluZyBmb3IgcmVtYWluaW5nIGZyYW1lcyB3aGljaCBpcyBsZXNzIHRoYW4gNC4KICAgICAgICAg
biAlPSA0OwogICAgICAgICB3aGlsZSAobikgewotICAgICAgICAgICAgKmRlc3RQID0gayAqICpz
b3VyY2VQOwotICAgICAgICAgICAgc291cmNlUCsrOwotICAgICAgICAgICAgZGVzdFArKzsKKyAg
ICAgICAgICAgICpvdXRwdXRWZWN0b3IgPSBrICogKmlucHV0VmVjdG9yOworICAgICAgICAgICAg
aW5wdXRWZWN0b3IrKzsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvcisrOwogICAgICAgICAgICAg
bi0tOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsgLy8gSWYgc3RyaWRlcyBhcmUgbm90IDEsIHJv
bGxiYWNrIHRvIG5vcm1hbCBhbGdvcml0aG0uCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJ
Q1MpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsK
KyAgICBpZiAoKGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJpZGUgPT0gMSkpIHsKICAg
ICAgICAgZmxvYXQgayA9ICpzY2FsZTsKICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUgNDsK
LSAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOworICAg
ICAgICBjb25zdCBmbG9hdCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVzOwog
Ci0gICAgICAgIHdoaWxlIChkZXN0UCA8IGVuZFApIHsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90
IHNvdXJjZSA9IHZsZDFxX2YzMihzb3VyY2VQKTsKLSAgICAgICAgICAgIHZzdDFxX2YzMihkZXN0
UCwgdm11bHFfbl9mMzIoc291cmNlLCBrKSk7CisgICAgICAgIHdoaWxlIChvdXRwdXRWZWN0b3Ig
PCBlbmRQKSB7CisgICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3VyY2UgPSB2bGQxcV9mMzIoaW5w
dXRWZWN0b3IpOworICAgICAgICAgICAgdnN0MXFfZjMyKG91dHB1dFZlY3Rvciwgdm11bHFfbl9m
MzIoc291cmNlLCBrKSk7CiAKLSAgICAgICAgICAgIHNvdXJjZVAgKz0gNDsKLSAgICAgICAgICAg
IGRlc3RQICs9IDQ7CisgICAgICAgICAgICBpbnB1dFZlY3RvciArPSA0OworICAgICAgICAgICAg
b3V0cHV0VmVjdG9yICs9IDQ7CiAgICAgICAgIH0KICAgICAgICAgbiA9IHRhaWxGcmFtZXM7CiAg
ICAgfQogI2VuZGlmCiAgICAgZmxvYXQgayA9ICpzY2FsZTsKICAgICB3aGlsZSAobi0tKSB7Ci0g
ICAgICAgICpkZXN0UCA9IGsgKiAqc291cmNlUDsKLSAgICAgICAgc291cmNlUCArPSBzb3VyY2VT
dHJpZGU7Ci0gICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgICAgICpvdXRwdXRWZWN0
b3IgPSBrICogKmlucHV0VmVjdG9yOworICAgICAgICBpbnB1dFZlY3RvciArPSBpbnB1dFN0cmlk
ZTsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91dHB1dFN0cmlkZTsKICAgICB9CiAjaWYgQ1BV
KFg4Nl9TU0UyKQogICAgIH0KICNlbmRpZgogfQogCi12b2lkIHZzYWRkKGNvbnN0IGZsb2F0KiBz
b3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGFyLCBmbG9hdCogZGVz
dFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB2c2FkZChj
b25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNj
YWxhciwgZmxvYXQqIG91dHB1dFZlY3RvciwgaW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJl
ck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7Cisg
ICAgaW50IG4gPSBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzOwogCiAjaWYgQ1BVKFg4Nl9TU0Uy
KQotICAgIGlmIChzb3VyY2VTdHJpZGUgPT0gMSAmJiBkZXN0U3RyaWRlID09IDEpIHsKLSAgICAg
ICAgLy8gSWYgdGhlIHNvdXJjZVAgYWRkcmVzcyBpcyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUg
Zmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1vc3QgdGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQg
c2VwYXJhdGVseS4KLSAgICAgICAgd2hpbGUgKChyZWludGVycHJldF9jYXN0PHNpemVfdD4oc291
cmNlUCkgJiAweDBGKSAmJiBuKSB7Ci0gICAgICAgICAgICAqZGVzdFAgPSAqc291cmNlUCArICpz
Y2FsYXI7Ci0gICAgICAgICAgICBzb3VyY2VQKys7Ci0gICAgICAgICAgICBkZXN0UCsrOworICAg
IGlmIChpbnB1dFN0cmlkZSA9PSAxICYmIG91dHB1dFN0cmlkZSA9PSAxKSB7CisgICAgICAgIC8v
IElmIHRoZSBpbnB1dFZlY3RvciBhZGRyZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBm
aXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBz
ZXBhcmF0ZWx5LgorICAgICAgICB3aGlsZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1
dFZlY3RvcikgJiAweDBGKSAmJiBuKSB7CisgICAgICAgICAgICAqb3V0cHV0VmVjdG9yID0gKmlu
cHV0VmVjdG9yICsgKnNjYWxhcjsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yKys7CisgICAgICAg
ICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsKICAgICAgICAgfQogCi0gICAg
ICAgIC8vIE5vdyB0aGUgc291cmNlUCBhZGRyZXNzIGlzIGFsaWduZWQgYW5kIHN0YXJ0IHRvIGFw
cGx5IFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBpbnB1dFZlY3RvciBhZGRyZXNzIGlzIGFsaWdu
ZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KICAgICAgICAgaW50IGdyb3VwID0gbiAvIDQ7CiAg
ICAgICAgIF9fbTEyOCBtU2NhbGFyID0gX21tX3NldF9wczEoKnNjYWxhcik7CiAgICAgICAgIF9f
bTEyOCogcFNvdXJjZTsKICAgICAgICAgX19tMTI4KiBwRGVzdDsKICAgICAgICAgX19tMTI4IGRl
c3Q7CiAKLSAgICAgICAgYm9vbCBkZXN0QWxpZ25lZCA9ICEocmVpbnRlcnByZXRfY2FzdDxzaXpl
X3Q+KGRlc3RQKSAmIDB4MEYpOworICAgICAgICBib29sIGRlc3RBbGlnbmVkID0gIShyZWludGVy
cHJldF9jYXN0PHNpemVfdD4ob3V0cHV0VmVjdG9yKSAmIDB4MEYpOwogICAgICAgICBpZiAoZGVz
dEFsaWduZWQpIHsgLy8gYWxsIGFsaWduZWQKICAgICAgICAgICAgIHdoaWxlIChncm91cC0tKSB7
Ci0gICAgICAgICAgICAgICAgcFNvdXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29u
c3RfY2FzdDxmbG9hdCo+KHNvdXJjZVApKTsKLSAgICAgICAgICAgICAgICBwRGVzdCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oZGVzdFApOworICAgICAgICAgICAgICAgIHBTb3VyY2UgPSBy
ZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3Rvcikp
OworICAgICAgICAgICAgICAgIHBEZXN0ID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihvdXRw
dXRWZWN0b3IpOwogICAgICAgICAgICAgICAgICpwRGVzdCA9IF9tbV9hZGRfcHMoKnBTb3VyY2Us
IG1TY2FsYXIpOwogCi0gICAgICAgICAgICAgICAgc291cmNlUCArPSA0OwotICAgICAgICAgICAg
ICAgIGRlc3RQICs9IDQ7CisgICAgICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKKyAgICAg
ICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHdoaWxlIChncm91cC0tKSB7Ci0gICAgICAgICAgICAgICAgcFNv
dXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJj
ZVApKTsKKyAgICAgICAgICAgICAgICBwU291cmNlID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgq
Pihjb25zdF9jYXN0PGZsb2F0Kj4oaW5wdXRWZWN0b3IpKTsKICAgICAgICAgICAgICAgICBkZXN0
ID0gX21tX2FkZF9wcygqcFNvdXJjZSwgbVNjYWxhcik7Ci0gICAgICAgICAgICAgICAgX21tX3N0
b3JldV9wcyhkZXN0UCwgZGVzdCk7CisgICAgICAgICAgICAgICAgX21tX3N0b3JldV9wcyhvdXRw
dXRWZWN0b3IsIGRlc3QpOwogCi0gICAgICAgICAgICAgICAgc291cmNlUCArPSA0OwotICAgICAg
ICAgICAgICAgIGRlc3RQICs9IDQ7CisgICAgICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsK
KyAgICAgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCiAgICAgICAgIC8vIE5vbi1TU0UgaGFuZGxpbmcgZm9yIHJlbWFpbmluZyBmcmFtZXMg
d2hpY2ggaXMgbGVzcyB0aGFuIDQuCiAgICAgICAgIG4gJT0gNDsKICAgICAgICAgd2hpbGUgKG4p
IHsKLSAgICAgICAgICAgICpkZXN0UCA9ICpzb3VyY2VQICsgKnNjYWxhcjsKLSAgICAgICAgICAg
IHNvdXJjZVArKzsKLSAgICAgICAgICAgIGRlc3RQKys7CisgICAgICAgICAgICAqb3V0cHV0VmVj
dG9yID0gKmlucHV0VmVjdG9yICsgKnNjYWxhcjsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yKys7
CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7IC8vIGlmIHN0cmlkZXMgYXJlIG5vdCAxLCByb2xsYmFjayB0byBub3Jt
YWwgYWxnb3JpdGhtCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKHNv
dXJjZVN0cmlkZSA9PSAxICYmIGRlc3RTdHJpZGUgPT0gMSkgeworICAgIGlmIChpbnB1dFN0cmlk
ZSA9PSAxICYmIG91dHB1dFN0cmlkZSA9PSAxKSB7CiAgICAgICAgIGludCB0YWlsRnJhbWVzID0g
biAlIDQ7Ci0gICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gZGVzdFAgKyBuIC0gdGFpbEZyYW1l
czsKKyAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBvdXRwdXRWZWN0b3IgKyBuIC0gdGFpbEZy
YW1lczsKICAgICAgICAgZmxvYXQzMng0X3Qgc2NhbGFyVmVjdG9yID0gdmR1cHFfbl9mMzIoKnNj
YWxhcik7CiAKLSAgICAgICAgd2hpbGUgKGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxv
YXQzMng0X3Qgc291cmNlID0gdmxkMXFfZjMyKHNvdXJjZVApOwotICAgICAgICAgICAgdnN0MXFf
ZjMyKGRlc3RQLCB2YWRkcV9mMzIoc291cmNlLCBzY2FsYXJWZWN0b3IpKTsKKyAgICAgICAgd2hp
bGUgKG91dHB1dFZlY3RvciA8IGVuZFApIHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJj
ZSA9IHZsZDFxX2YzMihpbnB1dFZlY3Rvcik7CisgICAgICAgICAgICB2c3QxcV9mMzIob3V0cHV0
VmVjdG9yLCB2YWRkcV9mMzIoc291cmNlLCBzY2FsYXJWZWN0b3IpKTsKIAotICAgICAgICAgICAg
c291cmNlUCArPSA0OwotICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgICAgIGlucHV0
VmVjdG9yICs9IDQ7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgfQog
ICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9CiAjZW5kaWYKICAgICB3aGlsZSAobi0tKSB7
Ci0gICAgICAgICpkZXN0UCA9ICpzb3VyY2VQICsgKnNjYWxhcjsKLSAgICAgICAgc291cmNlUCAr
PSBzb3VyY2VTdHJpZGU7Ci0gICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgICAgICpv
dXRwdXRWZWN0b3IgPSAqaW5wdXRWZWN0b3IgKyAqc2NhbGFyOworICAgICAgICBpbnB1dFZlY3Rv
ciArPSBpbnB1dFN0cmlkZTsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91dHB1dFN0cmlkZTsK
ICAgICB9CiAjaWYgQ1BVKFg4Nl9TU0UyKQogICAgIH0KICNlbmRpZgogfQogCi12b2lkIHZhZGQo
Y29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNv
dXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwg
c2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgdmFkZChjb25zdCBmbG9hdCogaW5wdXRWZWN0
b3IxLCBpbnQgaW5wdXRTdHJpZGUxLCBjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IyLCBpbnQgaW5w
dXRTdHJpZGUyLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3Qg
bnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2Vz
czsKKyAgICBpbnQgbiA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAKICNpZiBDUFUoWDg2
X1NTRTIpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUxID09MSkgJiYgKHNvdXJjZVN0cmlkZTIgPT0g
MSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsKLSAgICAgICAgLy8gSWYgdGhlIHNvdXJjZVAgYWRk
cmVzcyBpcyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0
IG1vc3QgdGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KLSAgICAgICAgd2hp
bGUgKChyZWludGVycHJldF9jYXN0PHNpemVfdD4oc291cmNlMVApICYgMHgwRikgJiYgbikgewot
ICAgICAgICAgICAgKmRlc3RQID0gKnNvdXJjZTFQICsgKnNvdXJjZTJQOwotICAgICAgICAgICAg
c291cmNlMVArKzsKLSAgICAgICAgICAgIHNvdXJjZTJQKys7Ci0gICAgICAgICAgICBkZXN0UCsr
OworICAgIGlmICgoaW5wdXRTdHJpZGUxID09MSkgJiYgKGlucHV0U3RyaWRlMiA9PSAxKSAmJiAo
b3V0cHV0U3RyaWRlID09IDEpKSB7CisgICAgICAgIC8vIElmIHRoZSBpbnB1dFZlY3RvciBhZGRy
ZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQg
bW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgorICAgICAgICB3aGls
ZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1dFZlY3RvcjEpICYgMHgwRikgJiYgbikg
eworICAgICAgICAgICAgKm91dHB1dFZlY3RvciA9ICppbnB1dFZlY3RvcjEgKyAqaW5wdXRWZWN0
b3IyOworICAgICAgICAgICAgaW5wdXRWZWN0b3IxKys7CisgICAgICAgICAgICBpbnB1dFZlY3Rv
cjIrKzsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvcisrOwogICAgICAgICAgICAgbi0tOwogICAg
ICAgICB9CiAKLSAgICAgICAgLy8gTm93IHRoZSBzb3VyY2UxUCBhZGRyZXNzIGlzIGFsaWduZWQg
YW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBpbnB1dFZlY3RvcjEg
YWRkcmVzcyBpcyBhbGlnbmVkIGFuZCBzdGFydCB0byBhcHBseSBTU0UuCiAgICAgICAgIGludCBn
cm91cCA9IG4gLyA0OwogICAgICAgICBfX20xMjgqIHBTb3VyY2UxOwogICAgICAgICBfX20xMjgq
IHBTb3VyY2UyOwpAQCAtMzU4LDEzMSArMzY2LDEzMSBAQCB2b2lkIHZhZGQoY29uc3QgZmxvYXQq
IHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQg
cwogICAgICAgICBfX20xMjggc291cmNlMjsKICAgICAgICAgX19tMTI4IGRlc3Q7CiAKLSAgICAg
ICAgYm9vbCBzb3VyY2UyQWxpZ25lZCA9ICEocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KHNvdXJj
ZTJQKSAmIDB4MEYpOwotICAgICAgICBib29sIGRlc3RBbGlnbmVkID0gIShyZWludGVycHJldF9j
YXN0PHNpemVfdD4oZGVzdFApICYgMHgwRik7CisgICAgICAgIGJvb2wgc291cmNlMkFsaWduZWQg
PSAhKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihpbnB1dFZlY3RvcjIpICYgMHgwRik7CisgICAg
ICAgIGJvb2wgZGVzdEFsaWduZWQgPSAhKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihvdXRwdXRW
ZWN0b3IpICYgMHgwRik7CiAKICAgICAgICAgaWYgKHNvdXJjZTJBbGlnbmVkICYmIGRlc3RBbGln
bmVkKSB7IC8vIGFsbCBhbGlnbmVkCiAgICAgICAgICAgICB3aGlsZSAoZ3JvdXAtLSkgewotICAg
ICAgICAgICAgICAgIHBTb3VyY2UxID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihjb25zdF9j
YXN0PGZsb2F0Kj4oc291cmNlMVApKTsKLSAgICAgICAgICAgICAgICBwU291cmNlMiA9IHJlaW50
ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTJQKSk7Ci0gICAg
ICAgICAgICAgICAgcERlc3QgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGRlc3RQKTsKKyAg
ICAgICAgICAgICAgICBwU291cmNlMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3Rf
Y2FzdDxmbG9hdCo+KGlucHV0VmVjdG9yMSkpOworICAgICAgICAgICAgICAgIHBTb3VyY2UyID0g
cmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oaW5wdXRWZWN0b3Iy
KSk7CisgICAgICAgICAgICAgICAgcERlc3QgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+KG91
dHB1dFZlY3Rvcik7CiAgICAgICAgICAgICAgICAgKnBEZXN0ID0gX21tX2FkZF9wcygqcFNvdXJj
ZTEsICpwU291cmNlMik7CiAKLSAgICAgICAgICAgICAgICBzb3VyY2UxUCArPSA0OwotICAgICAg
ICAgICAgICAgIHNvdXJjZTJQICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAg
ICAgICAgICAgICAgICBpbnB1dFZlY3RvcjEgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1dFZl
Y3RvcjIgKz0gNDsKKyAgICAgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZTJBbGlnbmVkICYmICFkZXN0QWxpZ25l
ZCkgeyAvLyBzb3VyY2UyIGFsaWduZWQgYnV0IGRlc3Qgbm90IGFsaWduZWQgCiAgICAgICAgICAg
ICB3aGlsZSAoZ3JvdXAtLSkgewotICAgICAgICAgICAgICAgIHBTb3VyY2UxID0gcmVpbnRlcnBy
ZXRfY2FzdDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApKTsKLSAgICAgICAg
ICAgICAgICBwU291cmNlMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxm
bG9hdCo+KHNvdXJjZTJQKSk7CisgICAgICAgICAgICAgICAgcFNvdXJjZTEgPSByZWludGVycHJl
dF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQqPihpbnB1dFZlY3RvcjEpKTsKKyAgICAg
ICAgICAgICAgICBwU291cmNlMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2Fz
dDxmbG9hdCo+KGlucHV0VmVjdG9yMikpOwogICAgICAgICAgICAgICAgIGRlc3QgPSBfbW1fYWRk
X3BzKCpwU291cmNlMSwgKnBTb3VyY2UyKTsKLSAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3Bz
KGRlc3RQLCBkZXN0KTsKKyAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3BzKG91dHB1dFZlY3Rv
ciwgZGVzdCk7CiAKLSAgICAgICAgICAgICAgICBzb3VyY2UxUCArPSA0OwotICAgICAgICAgICAg
ICAgIHNvdXJjZTJQICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAg
ICAgICAgICBpbnB1dFZlY3RvcjEgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1dFZlY3RvcjIg
Kz0gNDsKKyAgICAgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0K
IAogICAgICAgICB9IGVsc2UgaWYgKCFzb3VyY2UyQWxpZ25lZCAmJiBkZXN0QWxpZ25lZCkgeyAv
LyBzb3VyY2UyIG5vdCBhbGlnbmVkIGJ1dCBkZXN0IGFsaWduZWQgCiAgICAgICAgICAgICB3aGls
ZSAoZ3JvdXAtLSkgewotICAgICAgICAgICAgICAgIHBTb3VyY2UxID0gcmVpbnRlcnByZXRfY2Fz
dDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApKTsKLSAgICAgICAgICAgICAg
ICBzb3VyY2UyID0gX21tX2xvYWR1X3BzKHNvdXJjZTJQKTsKLSAgICAgICAgICAgICAgICBwRGVz
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4Kj4oZGVzdFApOworICAgICAgICAgICAgICAgIHBT
b3VyY2UxID0gcmVpbnRlcnByZXRfY2FzdDxfX20xMjgqPihjb25zdF9jYXN0PGZsb2F0Kj4oaW5w
dXRWZWN0b3IxKSk7CisgICAgICAgICAgICAgICAgc291cmNlMiA9IF9tbV9sb2FkdV9wcyhpbnB1
dFZlY3RvcjIpOworICAgICAgICAgICAgICAgIHBEZXN0ID0gcmVpbnRlcnByZXRfY2FzdDxfX20x
MjgqPihvdXRwdXRWZWN0b3IpOwogICAgICAgICAgICAgICAgICpwRGVzdCA9IF9tbV9hZGRfcHMo
KnBTb3VyY2UxLCBzb3VyY2UyKTsKIAotICAgICAgICAgICAgICAgIHNvdXJjZTFQICs9IDQ7Ci0g
ICAgICAgICAgICAgICAgc291cmNlMlAgKz0gNDsKLSAgICAgICAgICAgICAgICBkZXN0UCArPSA0
OworICAgICAgICAgICAgICAgIGlucHV0VmVjdG9yMSArPSA0OworICAgICAgICAgICAgICAgIGlu
cHV0VmVjdG9yMiArPSA0OworICAgICAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0OwogICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKCFzb3VyY2UyQWxpZ25lZCAmJiAhZGVzdEFs
aWduZWQpIHsgLy8gYm90aCBzb3VyY2UyIGFuZCBkZXN0IG5vdCBhbGlnbmVkIAogICAgICAgICAg
ICAgd2hpbGUgKGdyb3VwLS0pIHsKLSAgICAgICAgICAgICAgICBwU291cmNlMSA9IHJlaW50ZXJw
cmV0X2Nhc3Q8X19tMTI4Kj4oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTFQKSk7Ci0gICAgICAg
ICAgICAgICAgc291cmNlMiA9IF9tbV9sb2FkdV9wcyhzb3VyY2UyUCk7CisgICAgICAgICAgICAg
ICAgcFNvdXJjZTEgPSByZWludGVycHJldF9jYXN0PF9fbTEyOCo+KGNvbnN0X2Nhc3Q8ZmxvYXQq
PihpbnB1dFZlY3RvcjEpKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UyID0gX21tX2xvYWR1X3Bz
KGlucHV0VmVjdG9yMik7CiAgICAgICAgICAgICAgICAgZGVzdCA9IF9tbV9hZGRfcHMoKnBTb3Vy
Y2UxLCBzb3VyY2UyKTsKLSAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3BzKGRlc3RQLCBkZXN0
KTsKKyAgICAgICAgICAgICAgICBfbW1fc3RvcmV1X3BzKG91dHB1dFZlY3RvciwgZGVzdCk7CiAK
LSAgICAgICAgICAgICAgICBzb3VyY2UxUCArPSA0OwotICAgICAgICAgICAgICAgIHNvdXJjZTJQ
ICs9IDQ7Ci0gICAgICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1
dFZlY3RvcjEgKz0gNDsKKyAgICAgICAgICAgICAgICBpbnB1dFZlY3RvcjIgKz0gNDsKKyAgICAg
ICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CiAgICAgICAgIC8vIE5vbi1TU0UgaGFuZGxpbmcgZm9yIHJlbWFpbmluZyBmcmFtZXMgd2hpY2gg
aXMgbGVzcyB0aGFuIDQuCiAgICAgICAgIG4gJT0gNDsKICAgICAgICAgd2hpbGUgKG4pIHsKLSAg
ICAgICAgICAgICpkZXN0UCA9ICpzb3VyY2UxUCArICpzb3VyY2UyUDsKLSAgICAgICAgICAgIHNv
dXJjZTFQKys7Ci0gICAgICAgICAgICBzb3VyY2UyUCsrOwotICAgICAgICAgICAgZGVzdFArKzsK
KyAgICAgICAgICAgICpvdXRwdXRWZWN0b3IgPSAqaW5wdXRWZWN0b3IxICsgKmlucHV0VmVjdG9y
MjsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yMSsrOworICAgICAgICAgICAgaW5wdXRWZWN0b3Iy
Kys7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IrKzsKICAgICAgICAgICAgIG4tLTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7IC8vIGlmIHN0cmlkZXMgYXJlIG5vdCAxLCByb2xsYmFjayB0byBu
b3JtYWwgYWxnb3JpdGhtCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYg
KChzb3VyY2VTdHJpZGUxID09MSkgJiYgKHNvdXJjZVN0cmlkZTIgPT0gMSkgJiYgKGRlc3RTdHJp
ZGUgPT0gMSkpIHsKKyAgICBpZiAoKGlucHV0U3RyaWRlMSA9PTEpICYmIChpbnB1dFN0cmlkZTIg
PT0gMSkgJiYgKG91dHB1dFN0cmlkZSA9PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9
IG4gJSA0OwotICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFt
ZXM7CisgICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxG
cmFtZXM7CiAKLSAgICAgICAgd2hpbGUgKGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxv
YXQzMng0X3Qgc291cmNlMSA9IHZsZDFxX2YzMihzb3VyY2UxUCk7Ci0gICAgICAgICAgICBmbG9h
dDMyeDRfdCBzb3VyY2UyID0gdmxkMXFfZjMyKHNvdXJjZTJQKTsKLSAgICAgICAgICAgIHZzdDFx
X2YzMihkZXN0UCwgdmFkZHFfZjMyKHNvdXJjZTEsIHNvdXJjZTIpKTsKKyAgICAgICAgd2hpbGUg
KG91dHB1dFZlY3RvciA8IGVuZFApIHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZTEg
PSB2bGQxcV9mMzIoaW5wdXRWZWN0b3IxKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJj
ZTIgPSB2bGQxcV9mMzIoaW5wdXRWZWN0b3IyKTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRw
dXRWZWN0b3IsIHZhZGRxX2YzMihzb3VyY2UxLCBzb3VyY2UyKSk7CiAKLSAgICAgICAgICAgIHNv
dXJjZTFQICs9IDQ7Ci0gICAgICAgICAgICBzb3VyY2UyUCArPSA0OwotICAgICAgICAgICAgZGVz
dFAgKz0gNDsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yMSArPSA0OworICAgICAgICAgICAgaW5w
dXRWZWN0b3IyICs9IDQ7CisgICAgICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAg
fQogICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9CiAjZW5kaWYKICAgICB3aGlsZSAobi0t
KSB7Ci0gICAgICAgICpkZXN0UCA9ICpzb3VyY2UxUCArICpzb3VyY2UyUDsKLSAgICAgICAgc291
cmNlMVAgKz0gc291cmNlU3RyaWRlMTsKLSAgICAgICAgc291cmNlMlAgKz0gc291cmNlU3RyaWRl
MjsKLSAgICAgICAgZGVzdFAgKz0gZGVzdFN0cmlkZTsKKyAgICAgICAgKm91dHB1dFZlY3RvciA9
ICppbnB1dFZlY3RvcjEgKyAqaW5wdXRWZWN0b3IyOworICAgICAgICBpbnB1dFZlY3RvcjEgKz0g
aW5wdXRTdHJpZGUxOworICAgICAgICBpbnB1dFZlY3RvcjIgKz0gaW5wdXRTdHJpZGUyOworICAg
ICAgICBvdXRwdXRWZWN0b3IgKz0gb3V0cHV0U3RyaWRlOwogICAgIH0KICNpZiBDUFUoWDg2X1NT
RTIpCiAgICAgfQogI2VuZGlmCiB9CiAKLXZvaWQgdm11bChjb25zdCBmbG9hdCogc291cmNlMVAs
IGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzb3VyY2VTdHJp
ZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNz
KQordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjEsIGludCBpbnB1dFN0cmlkZTEs
IGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjIsIGludCBpbnB1dFN0cmlkZTIsIGZsb2F0KiBvdXRw
dXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9j
ZXNzKQogewogCi0gICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7CisgICAgaW50IG4gPSBudW1i
ZXJPZkVsZW1lbnRzVG9Qcm9jZXNzOwogCiAjaWYgQ1BVKFg4Nl9TU0UyKQotICAgIGlmICgoc291
cmNlU3RyaWRlMSA9PSAxKSAmJiAoc291cmNlU3RyaWRlMiA9PSAxKSAmJiAoZGVzdFN0cmlkZSA9
PSAxKSkgewotICAgICAgICAvLyBJZiB0aGUgc291cmNlMVAgYWRkcmVzcyBpcyBub3QgMTYtYnl0
ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1vc3QgdGhyZWUpIHNob3Vs
ZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KLSAgICAgICAgd2hpbGUgKChyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oc291cmNlMVApICYgMHgwRikgJiYgbikgewotICAgICAgICAgICAgKmRl
c3RQID0gKnNvdXJjZTFQICogKnNvdXJjZTJQOwotICAgICAgICAgICAgc291cmNlMVArKzsKLSAg
ICAgICAgICAgIHNvdXJjZTJQKys7Ci0gICAgICAgICAgICBkZXN0UCsrOworICAgIGlmICgoaW5w
dXRTdHJpZGUxID09IDEpICYmIChpbnB1dFN0cmlkZTIgPT0gMSkgJiYgKG91dHB1dFN0cmlkZSA9
PSAxKSkgeworICAgICAgICAvLyBJZiB0aGUgaW5wdXRWZWN0b3IxIGFkZHJlc3MgaXMgbm90IDE2
LWJ5dGUgYWxpZ25lZCwgdGhlIGZpcnN0IHNldmVyYWwgZnJhbWVzIChhdCBtb3N0IHRocmVlKSBz
aG91bGQgYmUgcHJvY2Vzc2VkIHNlcGFyYXRlbHkuCisgICAgICAgIHdoaWxlICgocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGlucHV0VmVjdG9yMSkgJiAweDBGKSAmJiBuKSB7CisgICAgICAg
ICAgICAqb3V0cHV0VmVjdG9yID0gKmlucHV0VmVjdG9yMSAqICppbnB1dFZlY3RvcjI7CisgICAg
ICAgICAgICBpbnB1dFZlY3RvcjErKzsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yMisrOworICAg
ICAgICAgICAgb3V0cHV0VmVjdG9yKys7CiAgICAgICAgICAgICBuLS07CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBOb3cgdGhlIHNvdXJjZTFQIGFkZHJlc3MgYWxpZ25lZCBhbmQgc3RhcnQgdG8g
YXBwbHkgU1NFLgorICAgICAgICAvLyBOb3cgdGhlIGlucHV0VmVjdG9yMSBhZGRyZXNzIGFsaWdu
ZWQgYW5kIHN0YXJ0IHRvIGFwcGx5IFNTRS4KICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUg
NDsKLSAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOwor
ICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVz
OwogICAgICAgICBfX20xMjggcFNvdXJjZTE7CiAgICAgICAgIF9fbTEyOCBwU291cmNlMjsKICAg
ICAgICAgX19tMTI4IGRlc3Q7CiAKLSAgICAgICAgYm9vbCBzb3VyY2UyQWxpZ25lZCA9ICEocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHNvdXJjZTJQKSAmIDB4MEYpOwotICAgICAgICBib29s
IGRlc3RBbGlnbmVkID0gIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGVzdFApICYgMHgw
Rik7CisgICAgICAgIGJvb2wgc291cmNlMkFsaWduZWQgPSAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihpbnB1dFZlY3RvcjIpICYgMHgwRik7CisgICAgICAgIGJvb2wgZGVzdEFsaWduZWQg
PSAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvdXRwdXRWZWN0b3IpICYgMHgwRik7CiAK
ICNkZWZpbmUgU1NFMl9NVUxUKGxvYWRJbnN0ciwgc3RvcmVJbnN0cikgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgd2hpbGUgKGRlc3RQIDwgZW5kUCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgICAgICB3aGlsZSAob3V0cHV0VmVjdG9yIDwgZW5kUCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBwU291cmNlMSA9IF9t
bV9sb2FkX3BzKHNvdXJjZTFQKTsgICAgICAgICAgXAotICAgICAgICAgICAgICAgIHBTb3VyY2Uy
ID0gX21tXyMjbG9hZEluc3RyIyNfcHMoc291cmNlMlApOyBcCisgICAgICAgICAgICAgICAgcFNv
dXJjZTEgPSBfbW1fbG9hZF9wcyhpbnB1dFZlY3RvcjEpOyAgICAgICAgICBcCisgICAgICAgICAg
ICAgICAgcFNvdXJjZTIgPSBfbW1fIyNsb2FkSW5zdHIjI19wcyhpbnB1dFZlY3RvcjIpOyBcCiAg
ICAgICAgICAgICAgICAgZGVzdCA9IF9tbV9tdWxfcHMocFNvdXJjZTEsIHBTb3VyY2UyKTsgICAg
IFwKLSAgICAgICAgICAgICAgICBfbW1fIyNzdG9yZUluc3RyIyNfcHMoZGVzdFAsIGRlc3QpOyAg
ICAgICAgXAotICAgICAgICAgICAgICAgIHNvdXJjZTFQICs9IDQ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgc291cmNlMlAgKz0gNDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBkZXN0UCArPSA0OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIF9tbV8jI3N0b3JlSW5zdHIj
I19wcyhvdXRwdXRWZWN0b3IsIGRlc3QpOyAgICAgICAgXAorICAgICAgICAgICAgICAgIGlucHV0
VmVjdG9yMSArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg
ICAgIGlucHV0VmVjdG9yMiArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgICAgICAgICAgfQogCiAgICAgICAgIGlmIChzb3VyY2UyQWxpZ25lZCAmJiBk
ZXN0QWxpZ25lZCkgLy8gQm90aCBhbGlnbmVkLgpAQCAtNDk3LDE4MCArNTA1LDE3OSBAQCB2b2lk
IHZtdWwoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxv
YXQqIHNvdXJjZTJQLCBpbnQgcwogICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9CiAjZWxp
ZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUxID09MSkg
JiYgKHNvdXJjZVN0cmlkZTIgPT0gMSkgJiYgKGRlc3RTdHJpZGUgPT0gMSkpIHsKKyAgICBpZiAo
KGlucHV0U3RyaWRlMSA9PTEpICYmIChpbnB1dFN0cmlkZTIgPT0gMSkgJiYgKG91dHB1dFN0cmlk
ZSA9PSAxKSkgewogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9IG4gJSA0OwotICAgICAgICBjb25z
dCBmbG9hdCogZW5kUCA9IGRlc3RQICsgbiAtIHRhaWxGcmFtZXM7CisgICAgICAgIGNvbnN0IGZs
b2F0KiBlbmRQID0gb3V0cHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAKLSAgICAgICAgd2hp
bGUgKGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxvYXQzMng0X3Qgc291cmNlMSA9IHZs
ZDFxX2YzMihzb3VyY2UxUCk7Ci0gICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3VyY2UyID0gdmxk
MXFfZjMyKHNvdXJjZTJQKTsKLSAgICAgICAgICAgIHZzdDFxX2YzMihkZXN0UCwgdm11bHFfZjMy
KHNvdXJjZTEsIHNvdXJjZTIpKTsKKyAgICAgICAgd2hpbGUgKG91dHB1dFZlY3RvciA8IGVuZFAp
IHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZTEgPSB2bGQxcV9mMzIoaW5wdXRWZWN0
b3IxKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZTIgPSB2bGQxcV9mMzIoaW5wdXRW
ZWN0b3IyKTsKKyAgICAgICAgICAgIHZzdDFxX2YzMihvdXRwdXRWZWN0b3IsIHZtdWxxX2YzMihz
b3VyY2UxLCBzb3VyY2UyKSk7CiAKLSAgICAgICAgICAgIHNvdXJjZTFQICs9IDQ7Ci0gICAgICAg
ICAgICBzb3VyY2UyUCArPSA0OwotICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgICAg
IGlucHV0VmVjdG9yMSArPSA0OworICAgICAgICAgICAgaW5wdXRWZWN0b3IyICs9IDQ7CisgICAg
ICAgICAgICBvdXRwdXRWZWN0b3IgKz0gNDsKICAgICAgICAgfQogICAgICAgICBuID0gdGFpbEZy
YW1lczsKICAgICB9CiAjZW5kaWYKICAgICB3aGlsZSAobikgewotICAgICAgICAqZGVzdFAgPSAq
c291cmNlMVAgKiAqc291cmNlMlA7Ci0gICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7
Ci0gICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlkZTI7Ci0gICAgICAgIGRlc3RQICs9IGRl
c3RTdHJpZGU7CisgICAgICAgICpvdXRwdXRWZWN0b3IgPSAqaW5wdXRWZWN0b3IxICogKmlucHV0
VmVjdG9yMjsKKyAgICAgICAgaW5wdXRWZWN0b3IxICs9IGlucHV0U3RyaWRlMTsKKyAgICAgICAg
aW5wdXRWZWN0b3IyICs9IGlucHV0U3RyaWRlMjsKKyAgICAgICAgb3V0cHV0VmVjdG9yICs9IG91
dHB1dFN0cmlkZTsKICAgICAgICAgbi0tOwogICAgIH0KIH0KIAotdm9pZCB6dm11bChjb25zdCBm
bG9hdCogcmVhbDFQLCBjb25zdCBmbG9hdCogaW1hZzFQLCBjb25zdCBmbG9hdCogcmVhbDJQLCBj
b25zdCBmbG9hdCogaW1hZzJQLCBmbG9hdCogcmVhbERlc3RQLCBmbG9hdCogaW1hZ0Rlc3RQLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCB6dm11bChjb25zdCBmbG9hdCogcmVhbFZlY3Rv
cjEsIGNvbnN0IGZsb2F0KiBpbWFnVmVjdG9yMSwgY29uc3QgZmxvYXQqIHJlYWxWZWN0b3IyLCBj
b25zdCBmbG9hdCogaW1hZzJQLCBmbG9hdCogcmVhbE91dHB1dFZlY3RvciwgZmxvYXQqIGltYWdE
ZXN0UCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7CiAgICAgdW5zaWduZWQg
aSA9IDA7CiAjaWYgQ1BVKFg4Nl9TU0UyKQogICAgIC8vIE9ubHkgdXNlIHRoZSBTU0Ugb3B0aW1p
emF0aW9uIGluIHRoZSB2ZXJ5IGNvbW1vbiBjYXNlIHRoYXQgYWxsIGFkZHJlc3NlcyBhcmUgMTYt
Ynl0ZSBhbGlnbmVkLiAKICAgICAvLyBPdGhlcndpc2UsIGZhbGwgdGhyb3VnaCB0byB0aGUgc2Nh
bGFyIGNvZGUgYmVsb3cuCi0gICAgaWYgKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHJl
YWwxUCkgJiAweDBGKQotICAgICAgICAmJiAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihp
bWFnMVApICYgMHgwRikKLSAgICAgICAgJiYgIShyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
cmVhbDJQKSAmIDB4MEYpCisgICAgaWYgKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHJl
YWxWZWN0b3IxKSAmIDB4MEYpCisgICAgICAgICYmICEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGltYWdWZWN0b3IxKSAmIDB4MEYpCisgICAgICAgICYmICEocmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHJlYWxWZWN0b3IyKSAmIDB4MEYpCiAgICAgICAgICYmICEocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGltYWcyUCkgJiAweDBGKQotICAgICAgICAmJiAhKHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihyZWFsRGVzdFApICYgMHgwRikKKyAgICAgICAgJiYgIShyZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4ocmVhbE91dHB1dFZlY3RvcikgJiAweDBGKQogICAgICAgICAm
JiAhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihpbWFnRGVzdFApICYgMHgwRikpIHsKICAg
ICAgICAgCi0gICAgICAgIHVuc2lnbmVkIGVuZFNpemUgPSBmcmFtZXNUb1Byb2Nlc3MgLSBmcmFt
ZXNUb1Byb2Nlc3MgJSA0OworICAgICAgICB1bnNpZ25lZCBlbmRTaXplID0gbnVtYmVyT2ZFbGVt
ZW50c1RvUHJvY2VzcyAtIG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MgJSA0OwogICAgICAgICB3
aGlsZSAoaSA8IGVuZFNpemUpIHsKLSAgICAgICAgICAgIF9fbTEyOCByZWFsMSA9IF9tbV9sb2Fk
X3BzKHJlYWwxUCArIGkpOwotICAgICAgICAgICAgX19tMTI4IHJlYWwyID0gX21tX2xvYWRfcHMo
cmVhbDJQICsgaSk7Ci0gICAgICAgICAgICBfX20xMjggaW1hZzEgPSBfbW1fbG9hZF9wcyhpbWFn
MVAgKyBpKTsKKyAgICAgICAgICAgIF9fbTEyOCByZWFsMSA9IF9tbV9sb2FkX3BzKHJlYWxWZWN0
b3IxICsgaSk7CisgICAgICAgICAgICBfX20xMjggcmVhbDIgPSBfbW1fbG9hZF9wcyhyZWFsVmVj
dG9yMiArIGkpOworICAgICAgICAgICAgX19tMTI4IGltYWcxID0gX21tX2xvYWRfcHMoaW1hZ1Zl
Y3RvcjEgKyBpKTsKICAgICAgICAgICAgIF9fbTEyOCBpbWFnMiA9IF9tbV9sb2FkX3BzKGltYWcy
UCArIGkpOwogICAgICAgICAgICAgX19tMTI4IHJlYWwgPSBfbW1fbXVsX3BzKHJlYWwxLCByZWFs
Mik7CiAgICAgICAgICAgICByZWFsID0gX21tX3N1Yl9wcyhyZWFsLCBfbW1fbXVsX3BzKGltYWcx
LCBpbWFnMikpOwogICAgICAgICAgICAgX19tMTI4IGltYWcgPSBfbW1fbXVsX3BzKHJlYWwxLCBp
bWFnMik7CiAgICAgICAgICAgICBpbWFnID0gX21tX2FkZF9wcyhpbWFnLCBfbW1fbXVsX3BzKGlt
YWcxLCByZWFsMikpOwotICAgICAgICAgICAgX21tX3N0b3JlX3BzKHJlYWxEZXN0UCArIGksIHJl
YWwpOworICAgICAgICAgICAgX21tX3N0b3JlX3BzKHJlYWxPdXRwdXRWZWN0b3IgKyBpLCByZWFs
KTsKICAgICAgICAgICAgIF9tbV9zdG9yZV9wcyhpbWFnRGVzdFAgKyBpLCBpbWFnKTsKICAgICAg
ICAgICAgIGkgKz0gNDsKICAgICAgICAgfQogICAgIH0KICNlbGlmIEhBVkUoQVJNX05FT05fSU5U
UklOU0lDUykKLSAgICAgICAgdW5zaWduZWQgZW5kU2l6ZSA9IGZyYW1lc1RvUHJvY2VzcyAtIGZy
YW1lc1RvUHJvY2VzcyAlIDQ7CisgICAgICAgIHVuc2lnbmVkIGVuZFNpemUgPSBudW1iZXJPZkVs
ZW1lbnRzVG9Qcm9jZXNzIC0gbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcyAlIDQ7CiAgICAgICAg
IHdoaWxlIChpIDwgZW5kU2l6ZSkgewotICAgICAgICAgICAgZmxvYXQzMng0X3QgcmVhbDEgPSB2
bGQxcV9mMzIocmVhbDFQICsgaSk7Ci0gICAgICAgICAgICBmbG9hdDMyeDRfdCByZWFsMiA9IHZs
ZDFxX2YzMihyZWFsMlAgKyBpKTsKLSAgICAgICAgICAgIGZsb2F0MzJ4NF90IGltYWcxID0gdmxk
MXFfZjMyKGltYWcxUCArIGkpOworICAgICAgICAgICAgZmxvYXQzMng0X3QgcmVhbDEgPSB2bGQx
cV9mMzIocmVhbFZlY3RvcjEgKyBpKTsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHJlYWwyID0g
dmxkMXFfZjMyKHJlYWxWZWN0b3IyICsgaSk7CisgICAgICAgICAgICBmbG9hdDMyeDRfdCBpbWFn
MSA9IHZsZDFxX2YzMihpbWFnVmVjdG9yMSArIGkpOwogICAgICAgICAgICAgZmxvYXQzMng0X3Qg
aW1hZzIgPSB2bGQxcV9mMzIoaW1hZzJQICsgaSk7CiAKICAgICAgICAgICAgIGZsb2F0MzJ4NF90
IHJlYWxSZXN1bHQgPSB2bWxzcV9mMzIodm11bHFfZjMyKHJlYWwxLCByZWFsMiksIGltYWcxLCBp
bWFnMik7CiAgICAgICAgICAgICBmbG9hdDMyeDRfdCBpbWFnUmVzdWx0ID0gdm1sYXFfZjMyKHZt
dWxxX2YzMihyZWFsMSwgaW1hZzIpLCBpbWFnMSwgcmVhbDIpOwogCi0gICAgICAgICAgICB2c3Qx
cV9mMzIocmVhbERlc3RQICsgaSwgcmVhbFJlc3VsdCk7CisgICAgICAgICAgICB2c3QxcV9mMzIo
cmVhbE91dHB1dFZlY3RvciArIGksIHJlYWxSZXN1bHQpOwogICAgICAgICAgICAgdnN0MXFfZjMy
KGltYWdEZXN0UCArIGksIGltYWdSZXN1bHQpOwogCiAgICAgICAgICAgICBpICs9IDQ7CiAgICAg
ICAgIH0KICNlbmRpZgotICAgIGZvciAoOyBpIDwgZnJhbWVzVG9Qcm9jZXNzOyArK2kpIHsKKyAg
ICBmb3IgKDsgaSA8IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7ICsraSkgewogICAgICAgICAv
LyBSZWFkIGFuZCBjb21wdXRlIHJlc3VsdCBiZWZvcmUgc3RvcmluZyB0aGVtLCBpbiBjYXNlIHRo
ZQogICAgICAgICAvLyBkZXN0aW5hdGlvbiBpcyB0aGUgc2FtZSBhcyBvbmUgb2YgdGhlIHNvdXJj
ZXMuCi0gICAgICAgIGZsb2F0IHJlYWxSZXN1bHQgPSByZWFsMVBbaV0gKiByZWFsMlBbaV0gLSBp
bWFnMVBbaV0gKiBpbWFnMlBbaV07Ci0gICAgICAgIGZsb2F0IGltYWdSZXN1bHQgPSByZWFsMVBb
aV0gKiBpbWFnMlBbaV0gKyBpbWFnMVBbaV0gKiByZWFsMlBbaV07CisgICAgICAgIGZsb2F0IHJl
YWxSZXN1bHQgPSByZWFsVmVjdG9yMVtpXSAqIHJlYWxWZWN0b3IyW2ldIC0gaW1hZ1ZlY3RvcjFb
aV0gKiBpbWFnMlBbaV07CisgICAgICAgIGZsb2F0IGltYWdSZXN1bHQgPSByZWFsVmVjdG9yMVtp
XSAqIGltYWcyUFtpXSArIGltYWdWZWN0b3IxW2ldICogcmVhbFZlY3RvcjJbaV07CiAKLSAgICAg
ICAgcmVhbERlc3RQW2ldID0gcmVhbFJlc3VsdDsKKyAgICAgICAgcmVhbE91dHB1dFZlY3Rvcltp
XSA9IHJlYWxSZXN1bHQ7CiAgICAgICAgIGltYWdEZXN0UFtpXSA9IGltYWdSZXN1bHQ7CiAgICAg
fQogfQogCi12b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlk
ZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZzdmVzcShjb25z
dCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIHN1bSwgc2l6ZV90
IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpCiB7Ci0gICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nl
c3M7Ci0gICAgZmxvYXQgc3VtID0gMDsKKyAgICBpbnQgbiA9IG51bWJlck9mRWxlbWVudHNUb1By
b2Nlc3M7CisgICAgKnN1bSA9IDA7CiAKICNpZiBDUFUoWDg2X1NTRTIpCi0gICAgaWYgKHNvdXJj
ZVN0cmlkZSA9PSAxKSB7IAotICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRyZXNzIGlzIG5v
dCAxNi1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJl
ZSkgc2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LiAKLSAgICAgICAgd2hpbGUgKChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oc291cmNlUCkgJiAweDBGKSAmJiBuKSB7IAotICAgICAg
ICAgICAgZmxvYXQgc2FtcGxlID0gKnNvdXJjZVA7IAotICAgICAgICAgICAgc3VtICs9IHNhbXBs
ZSAqIHNhbXBsZTsgCi0gICAgICAgICAgICBzb3VyY2VQKys7IAorICAgIGlmIChpbnB1dFN0cmlk
ZSA9PSAxKSB7CisgICAgICAgIC8vIElmIHRoZSBpbnB1dFZlY3RvciBhZGRyZXNzIGlzIG5vdCAx
Ni1ieXRlIGFsaWduZWQsIHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJlZSkg
c2hvdWxkIGJlIHByb2Nlc3NlZCBzZXBhcmF0ZWx5LgorICAgICAgICB3aGlsZSAoKHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihpbnB1dFZlY3RvcikgJiAweDBGKSAmJiBuKSB7CisgICAgICAg
ICAgICBmbG9hdCBzYW1wbGUgPSAqaW5wdXRWZWN0b3I7CisgICAgICAgICAgICAqc3VtICs9IHNh
bXBsZSAqIHNhbXBsZTsKKyAgICAgICAgICAgIGlucHV0VmVjdG9yKys7CiAgICAgICAgICAgICBu
LS07IAogICAgICAgICB9IAogIAotICAgICAgICAvLyBOb3cgdGhlIHNvdXJjZVAgaXMgYWxpZ25l
ZCwgdXNlIFNTRS4KKyAgICAgICAgLy8gTm93IHRoZSBpbnB1dFZlY3RvciBpcyBhbGlnbmVkLCB1
c2UgU1NFLgogICAgICAgICBpbnQgdGFpbEZyYW1lcyA9IG4gJSA0OyAKLSAgICAgICAgY29uc3Qg
ZmxvYXQqIGVuZFAgPSBzb3VyY2VQICsgbiAtIHRhaWxGcmFtZXM7IAorICAgICAgICBjb25zdCBm
bG9hdCogZW5kUCA9IGlucHV0VmVjdG9yICsgbiAtIHRhaWxGcmFtZXM7CiAgICAgICAgIF9fbTEy
OCBzb3VyY2U7IAogICAgICAgICBfX20xMjggbVN1bSA9IF9tbV9zZXR6ZXJvX3BzKCk7IAogIAot
ICAgICAgICB3aGlsZSAoc291cmNlUCA8IGVuZFApIHsgCi0gICAgICAgICAgICBzb3VyY2UgPSBf
bW1fbG9hZF9wcyhzb3VyY2VQKTsgCisgICAgICAgIHdoaWxlIChpbnB1dFZlY3RvciA8IGVuZFAp
IHsKKyAgICAgICAgICAgIHNvdXJjZSA9IF9tbV9sb2FkX3BzKGlucHV0VmVjdG9yKTsKICAgICAg
ICAgICAgIHNvdXJjZSA9IF9tbV9tdWxfcHMoc291cmNlLCBzb3VyY2UpOyAKICAgICAgICAgICAg
IG1TdW0gPSBfbW1fYWRkX3BzKG1TdW0sIHNvdXJjZSk7IAotICAgICAgICAgICAgc291cmNlUCAr
PSA0OyAKKyAgICAgICAgICAgIGlucHV0VmVjdG9yICs9IDQ7CiAgICAgICAgIH0gCiAgCiAgICAg
ICAgIC8vIFN1bW1hcml6ZSB0aGUgU1NFIHJlc3VsdHMuIAogICAgICAgICBjb25zdCBmbG9hdCog
Z3JvdXBTdW1QID0gcmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KCZtU3VtKTsgCi0gICAgICAgIHN1
bSArPSBncm91cFN1bVBbMF0gKyBncm91cFN1bVBbMV0gKyBncm91cFN1bVBbMl0gKyBncm91cFN1
bVBbM107IAorICAgICAgICAqc3VtICs9IGdyb3VwU3VtUFswXSArIGdyb3VwU3VtUFsxXSArIGdy
b3VwU3VtUFsyXSArIGdyb3VwU3VtUFszXTsKICAKICAgICAgICAgbiA9IHRhaWxGcmFtZXM7IAog
ICAgIH0gCiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKHNvdXJjZVN0
cmlkZSA9PSAxKSB7CisgICAgaWYgKGlucHV0U3RyaWRlID09IDEpIHsKICAgICAgICAgaW50IHRh
aWxGcmFtZXMgPSBuICUgNDsKLSAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBzb3VyY2VQICsg
biAtIHRhaWxGcmFtZXM7CisgICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gaW5wdXRWZWN0b3Ig
KyBuIC0gdGFpbEZyYW1lczsKIAogICAgICAgICBmbG9hdDMyeDRfdCBmb3VyU3VtID0gdmR1cHFf
bl9mMzIoMCk7Ci0gICAgICAgIHdoaWxlIChzb3VyY2VQIDwgZW5kUCkgewotICAgICAgICAgICAg
ZmxvYXQzMng0X3Qgc291cmNlID0gdmxkMXFfZjMyKHNvdXJjZVApOworICAgICAgICB3aGlsZSAo
aW5wdXRWZWN0b3IgPCBlbmRQKSB7CisgICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3VyY2UgPSB2
bGQxcV9mMzIoaW5wdXRWZWN0b3IpOwogICAgICAgICAgICAgZm91clN1bSA9IHZtbGFxX2YzMihm
b3VyU3VtLCBzb3VyY2UsIHNvdXJjZSk7Ci0gICAgICAgICAgICBzb3VyY2VQICs9IDQ7CisgICAg
ICAgICAgICBpbnB1dFZlY3RvciArPSA0OwogICAgICAgICB9CiAgICAgICAgIGZsb2F0MzJ4Ml90
IHR3b1N1bSA9IHZhZGRfZjMyKHZnZXRfbG93X2YzMihmb3VyU3VtKSwgdmdldF9oaWdoX2YzMihm
b3VyU3VtKSk7CiAKICAgICAgICAgZmxvYXQgZ3JvdXBTdW1bMl07CiAgICAgICAgIHZzdDFfZjMy
KGdyb3VwU3VtLCB0d29TdW0pOwotICAgICAgICBzdW0gKz0gZ3JvdXBTdW1bMF0gKyBncm91cFN1
bVsxXTsKKyAgICAgICAgKnN1bSArPSBncm91cFN1bVswXSArIGdyb3VwU3VtWzFdOwogCiAgICAg
ICAgIG4gPSB0YWlsRnJhbWVzOwogICAgIH0KICNlbmRpZgogCiAgICAgd2hpbGUgKG4tLSkgewot
ICAgICAgICBmbG9hdCBzYW1wbGUgPSAqc291cmNlUDsKLSAgICAgICAgc3VtICs9IHNhbXBsZSAq
IHNhbXBsZTsKLSAgICAgICAgc291cmNlUCArPSBzb3VyY2VTdHJpZGU7CisgICAgICAgIGZsb2F0
IHNhbXBsZSA9ICppbnB1dFZlY3RvcjsKKyAgICAgICAgKnN1bSArPSBzYW1wbGUgKiBzYW1wbGU7
CisgICAgICAgIGlucHV0VmVjdG9yICs9IGlucHV0U3RyaWRlOwogICAgIH0KIAotICAgIEFTU0VS
VChzdW1QKTsKLSAgICAqc3VtUCA9IHN1bTsKKyAgICBBU1NFUlQoKnN1bSk7CiB9CiAKLXZvaWQg
dm1heG1ndihjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIG1h
eFAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIHZtYXhtZ3YoY29uc3QgZmxvYXQqIGlu
cHV0VmVjdG9yLCBpbnQgaW5wdXRTdHJpZGUsIGZsb2F0KiBtYXhpbXVtVmFsdWUsIHNpemVfdCBu
dW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzKQogewotICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNz
OworICAgIGludCBuID0gbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzczsKICAgICBmbG9hdCBtYXgg
PSAwOwogCiAjaWYgQ1BVKFg4Nl9TU0UyKQotICAgIGlmIChzb3VyY2VTdHJpZGUgPT0gMSkgewot
ICAgICAgICAvLyBJZiB0aGUgc291cmNlUCBhZGRyZXNzIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQs
IHRoZSBmaXJzdCBzZXZlcmFsIGZyYW1lcyAoYXQgbW9zdCB0aHJlZSkgc2hvdWxkIGJlIHByb2Nl
c3NlZCBzZXBhcmF0ZWx5LgotICAgICAgICB3aGlsZSAoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihzb3VyY2VQKSAmIDB4MEYpICYmIG4pIHsKLSAgICAgICAgICAgIG1heCA9IHN0ZDo6bWF4
KG1heCwgZmFic2YoKnNvdXJjZVApKTsKLSAgICAgICAgICAgIHNvdXJjZVArKzsKKyAgICBpZiAo
aW5wdXRTdHJpZGUgPT0gMSkgeworICAgICAgICAvLyBJZiB0aGUgaW5wdXRWZWN0b3IgYWRkcmVz
cyBpcyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUgZmlyc3Qgc2V2ZXJhbCBmcmFtZXMgKGF0IG1v
c3QgdGhyZWUpIHNob3VsZCBiZSBwcm9jZXNzZWQgc2VwYXJhdGVseS4KKyAgICAgICAgd2hpbGUg
KChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oaW5wdXRWZWN0b3IpICYgMHgwRikgJiYgbikg
eworICAgICAgICAgICAgbWF4ID0gc3RkOjptYXgobWF4LCBmYWJzZigqaW5wdXRWZWN0b3IpKTsK
KyAgICAgICAgICAgIGlucHV0VmVjdG9yKys7CiAgICAgICAgICAgICBuLS07CiAgICAgICAgIH0K
IAotICAgICAgICAvLyBOb3cgdGhlIHNvdXJjZVAgaXMgYWxpZ25lZCwgdXNlIFNTRS4KKyAgICAg
ICAgLy8gTm93IHRoZSBpbnB1dFZlY3RvciBpcyBhbGlnbmVkLCB1c2UgU1NFLgogICAgICAgICBp
bnQgdGFpbEZyYW1lcyA9IG4gJSA0OwotICAgICAgICBjb25zdCBmbG9hdCogZW5kUCA9IHNvdXJj
ZVAgKyBuIC0gdGFpbEZyYW1lczsKKyAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBpbnB1dFZl
Y3RvciArIG4gLSB0YWlsRnJhbWVzOwogICAgICAgICBfX20xMjggc291cmNlOwogICAgICAgICBf
X20xMjggbU1heCA9IF9tbV9zZXR6ZXJvX3BzKCk7CiAgICAgICAgIGludCBtYXNrID0gMHg3RkZG
RkZGRjsKICAgICAgICAgX19tMTI4IG1NYXNrID0gX21tX3NldDFfcHMoKnJlaW50ZXJwcmV0X2Nh
c3Q8ZmxvYXQqPigmbWFzaykpOwogCi0gICAgICAgIHdoaWxlIChzb3VyY2VQIDwgZW5kUCkgewot
ICAgICAgICAgICAgc291cmNlID0gX21tX2xvYWRfcHMoc291cmNlUCk7CisgICAgICAgIHdoaWxl
IChpbnB1dFZlY3RvciA8IGVuZFApIHsKKyAgICAgICAgICAgIHNvdXJjZSA9IF9tbV9sb2FkX3Bz
KGlucHV0VmVjdG9yKTsKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgYWJzb2x1dGUgdmFs
dWUgYnkgYW5kaW5nIHNvdXJjZSB3aXRoIG1hc2ssIHRoZSBzaWduIGJpdCBpcyBzZXQgdG8gMC4K
ICAgICAgICAgICAgIHNvdXJjZSA9IF9tbV9hbmRfcHMoc291cmNlLCBtTWFzayk7CiAgICAgICAg
ICAgICBtTWF4ID0gX21tX21heF9wcyhtTWF4LCBzb3VyY2UpOwotICAgICAgICAgICAgc291cmNl
UCArPSA0OworICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0gNDsKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIEdldCBtYXggZnJvbSB0aGUgU1NFIHJlc3VsdHMuCkBAIC02ODMsMTUgKzY5MCwxNSBA
QCB2b2lkIHZtYXhtZ3YoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZs
b2F0KiBtYXhQLCBzaXplX3QgZnJhbWVzVAogICAgICAgICBuID0gdGFpbEZyYW1lczsKICAgICB9
CiAjZWxpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKHNvdXJjZVN0cmlkZSA9
PSAxKSB7CisgICAgaWYgKGlucHV0U3RyaWRlID09IDEpIHsKICAgICAgICAgaW50IHRhaWxGcmFt
ZXMgPSBuICUgNDsKLSAgICAgICAgY29uc3QgZmxvYXQqIGVuZFAgPSBzb3VyY2VQICsgbiAtIHRh
aWxGcmFtZXM7CisgICAgICAgIGNvbnN0IGZsb2F0KiBlbmRQID0gaW5wdXRWZWN0b3IgKyBuIC0g
dGFpbEZyYW1lczsKIAogICAgICAgICBmbG9hdDMyeDRfdCBmb3VyTWF4ID0gdmR1cHFfbl9mMzIo
MCk7Ci0gICAgICAgIHdoaWxlIChzb3VyY2VQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxvYXQz
Mng0X3Qgc291cmNlID0gdmxkMXFfZjMyKHNvdXJjZVApOworICAgICAgICB3aGlsZSAoaW5wdXRW
ZWN0b3IgPCBlbmRQKSB7CisgICAgICAgICAgICBmbG9hdDMyeDRfdCBzb3VyY2UgPSB2bGQxcV9m
MzIoaW5wdXRWZWN0b3IpOwogICAgICAgICAgICAgZm91ck1heCA9IHZtYXhxX2YzMihmb3VyTWF4
LCB2YWJzcV9mMzIoc291cmNlKSk7Ci0gICAgICAgICAgICBzb3VyY2VQICs9IDQ7CisgICAgICAg
ICAgICBpbnB1dFZlY3RvciArPSA0OwogICAgICAgICB9CiAgICAgICAgIGZsb2F0MzJ4Ml90IHR3
b01heCA9IHZtYXhfZjMyKHZnZXRfbG93X2YzMihmb3VyTWF4KSwgdmdldF9oaWdoX2YzMihmb3Vy
TWF4KSk7CiAKQEAgLTcwNCw0NCArNzExLDUwIEBAIHZvaWQgdm1heG1ndihjb25zdCBmbG9hdCog
c291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIG1heFAsIHNpemVfdCBmcmFtZXNUCiAj
ZW5kaWYKIAogICAgIHdoaWxlIChuLS0pIHsKLSAgICAgICAgbWF4ID0gc3RkOjptYXgobWF4LCBm
YWJzZigqc291cmNlUCkpOwotICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsKKyAgICAg
ICAgbWF4ID0gc3RkOjptYXgobWF4LCBmYWJzZigqaW5wdXRWZWN0b3IpKTsKKyAgICAgICAgaW5w
dXRWZWN0b3IgKz0gaW5wdXRTdHJpZGU7CiAgICAgfQogCi0gICAgQVNTRVJUKG1heFApOwotICAg
ICptYXhQID0gbWF4OworICAgIEFTU0VSVChtYXhpbXVtVmFsdWUpOworICAgICptYXhpbXVtVmFs
dWUgPSBtYXg7CiB9CiAKLXZvaWQgdmNsaXAoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3Vy
Y2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBsb3dUaHJlc2hvbGRQLCBjb25zdCBmbG9hdCogaGlnaFRo
cmVzaG9sZFAsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCit2b2lkIHZjbGlwKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvciwgaW50IGlucHV0U3Ry
aWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xkUCwgY29uc3QgZmxvYXQqIGhpZ2hUaHJlc2hv
bGRQLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVy
T2ZFbGVtZW50c1RvUHJvY2VzcykKIHsKLSAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAg
ICBpbnQgbiA9IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7CiAgICAgZmxvYXQgbG93VGhyZXNo
b2xkID0gKmxvd1RocmVzaG9sZFA7CiAgICAgZmxvYXQgaGlnaFRocmVzaG9sZCA9ICpoaWdoVGhy
ZXNob2xkUDsKIAogICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBmb3IgU1NFMi4KICNpZiBIQVZFKEFS
TV9ORU9OX0lOVFJJTlNJQ1MpCi0gICAgaWYgKChzb3VyY2VTdHJpZGUgPT0gMSkgJiYgKGRlc3RT
dHJpZGUgPT0gMSkpIHsKKyAgICBpZiAoKGlucHV0U3RyaWRlID09IDEpICYmIChvdXRwdXRTdHJp
ZGUgPT0gMSkpIHsKICAgICAgICAgaW50IHRhaWxGcmFtZXMgPSBuICUgNDsKLSAgICAgICAgY29u
c3QgZmxvYXQqIGVuZFAgPSBkZXN0UCArIG4gLSB0YWlsRnJhbWVzOworICAgICAgICBjb25zdCBm
bG9hdCogZW5kUCA9IG91dHB1dFZlY3RvciArIG4gLSB0YWlsRnJhbWVzOwogCiAgICAgICAgIGZs
b2F0MzJ4NF90IGxvdyA9IHZkdXBxX25fZjMyKGxvd1RocmVzaG9sZCk7CiAgICAgICAgIGZsb2F0
MzJ4NF90IGhpZ2ggPSB2ZHVwcV9uX2YzMihoaWdoVGhyZXNob2xkKTsKLSAgICAgICAgd2hpbGUg
KGRlc3RQIDwgZW5kUCkgewotICAgICAgICAgICAgZmxvYXQzMng0X3Qgc291cmNlID0gdmxkMXFf
ZjMyKHNvdXJjZVApOwotICAgICAgICAgICAgdnN0MXFfZjMyKGRlc3RQLCB2bWF4cV9mMzIodm1p
bnFfZjMyKHNvdXJjZSwgaGlnaCksIGxvdykpOwotICAgICAgICAgICAgc291cmNlUCArPSA0Owot
ICAgICAgICAgICAgZGVzdFAgKz0gNDsKKyAgICAgICAgd2hpbGUgKG91dHB1dFZlY3RvciA8IGVu
ZFApIHsKKyAgICAgICAgICAgIGZsb2F0MzJ4NF90IHNvdXJjZSA9IHZsZDFxX2YzMihpbnB1dFZl
Y3Rvcik7CisgICAgICAgICAgICB2c3QxcV9mMzIob3V0cHV0VmVjdG9yLCB2bWF4cV9mMzIodm1p
bnFfZjMyKHNvdXJjZSwgaGlnaCksIGxvdykpOworICAgICAgICAgICAgaW5wdXRWZWN0b3IgKz0g
NDsKKyAgICAgICAgICAgIG91dHB1dFZlY3RvciArPSA0OwogICAgICAgICB9CiAgICAgICAgIG4g
PSB0YWlsRnJhbWVzOwogICAgIH0KICNlbmRpZgogICAgIHdoaWxlIChuLS0pIHsKLSAgICAgICAg
KmRlc3RQID0gc3RkOjptYXgoc3RkOjptaW4oKnNvdXJjZVAsIGhpZ2hUaHJlc2hvbGQpLCBsb3dU
aHJlc2hvbGQpOwotICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsKLSAgICAgICAgZGVz
dFAgKz0gZGVzdFN0cmlkZTsKKyAgICAgICAgKm91dHB1dFZlY3RvciA9IHN0ZDo6bWF4KHN0ZDo6
bWluKCppbnB1dFZlY3RvciwgaGlnaFRocmVzaG9sZCksIGxvd1RocmVzaG9sZCk7CisgICAgICAg
IGlucHV0VmVjdG9yICs9IGlucHV0U3RyaWRlOworICAgICAgICBvdXRwdXRWZWN0b3IgKz0gb3V0
cHV0U3RyaWRlOwogICAgIH0KIH0KIAordm9pZCBsaW5lYXJUb0RlY2liZWxzKGNvbnN0IGZsb2F0
KiBpbnB1dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQg
b3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2VzcykKK3sKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3M7ICsraSwgaW5w
dXRWZWN0b3IgKz0gaW5wdXRTdHJpZGUsIG91dHB1dFZlY3RvciArPSBvdXRwdXRTdHJpZGUpCisg
ICAgICAgICpvdXRwdXRWZWN0b3IgPSBBdWRpb1V0aWxpdGllczo6bGluZWFyVG9EZWNpYmVscygq
aW5wdXRWZWN0b3IpOworfQorCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEUpCiAKIH0gLy8gbmFt
ZXNwYWNlIFZlY3Rvck1hdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1ZlY3Rvck1hdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1h
dGguaAppbmRleCA5ZjAwYWIyNjhjOGMyM2FiNWY1YmUyZTNmYTJhZTJlOWYzODVhMDJmLi44Yjhi
NzE5OTEwY2IyODRhOWE0MmVkM2I3NTdkMTA4ZjI5MGVlNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCkBAIC0zMiwyNiArMzIsMjggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIFZlY3Rvck1hdGggewogCiAvLyBWZWN0b3Igc2NhbGFyIG11
bHRpcGx5IGFuZCB0aGVuIGFkZC4KLXZvaWQgdnNtYShjb25zdCBmbG9hdCogc291cmNlUCwgaW50
IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0
U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKK3ZvaWQgdnNtYShjb25zdCBmbG9hdCog
aW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCog
b3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50c1Rv
UHJvY2Vzcyk7CiAKLXZvaWQgdnNtdWwoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VT
dHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwg
c2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7Ci12b2lkIHZzYWRkKGNvbnN0IGZsb2F0KiBzb3VyY2VQ
LCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGFyLCBmbG9hdCogZGVzdFAsIGlu
dCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKLXZvaWQgdmFkZChjb25zdCBm
bG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAs
IGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKTsKK3ZvaWQgdnNtdWwoY29uc3QgZmxvYXQqIGlucHV0VmVjdG9yLCBp
bnQgaW5wdXRTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIG91dHB1dFZlY3Rvciwg
aW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwordm9p
ZCB2c2FkZChjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgY29uc3Qg
ZmxvYXQqIHNjYWxhciwgZmxvYXQqIG91dHB1dFZlY3RvciwgaW50IG91dHB1dFN0cmlkZSwgc2l6
ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nlc3MpOwordm9pZCB2YWRkKGNvbnN0IGZsb2F0KiBp
bnB1dFZlY3RvcjEsIGludCBpbnB1dFN0cmlkZTEsIGNvbnN0IGZsb2F0KiBpbnB1dFZlY3RvcjIs
IGludCBpbnB1dFN0cmlkZTIsIGZsb2F0KiBvdXRwdXRWZWN0b3IsIGludCBvdXRwdXRTdHJpZGUs
IHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Qcm9jZXNzKTsKIAogLy8gRmluZHMgdGhlIG1heGlt
dW0gbWFnbml0dWRlIG9mIGEgZmxvYXQgdmVjdG9yLgotdm9pZCB2bWF4bWd2KGNvbnN0IGZsb2F0
KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBmbG9hdCogbWF4UCwgc2l6ZV90IGZyYW1lc1Rv
UHJvY2Vzcyk7Cit2b2lkIHZtYXhtZ3YoY29uc3QgZmxvYXQqIGlucHV0VmVjdG9yLCBpbnQgaW5w
dXRTdHJpZGUsIGZsb2F0KiBtYXhpbXVtVmFsdWUsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzVG9Q
cm9jZXNzKTsKIAogLy8gU3VtcyB0aGUgc3F1YXJlcyBvZiBhIGZsb2F0IHZlY3RvcidzIGVsZW1l
bnRzLgotdm9pZCB2c3Zlc3EoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUs
IGZsb2F0KiBzdW1QLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKK3ZvaWQgdnN2ZXNxKGNvbnN0
IGZsb2F0KiBpbnB1dFZlY3RvciwgaW50IGlucHV0U3RyaWRlLCBmbG9hdCogc3VtLCBzaXplX3Qg
bnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7CiAKIC8vIEZvciBhbiBlbGVtZW50LWJ5LWVsZW1l
bnQgbXVsdGlwbHkgb2YgdHdvIGZsb2F0IHZlY3RvcnMuCi12b2lkIHZtdWwoY29uc3QgZmxvYXQq
IHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQg
c291cmNlU3RyaWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1l
c1RvUHJvY2Vzcyk7Cit2b2lkIHZtdWwoY29uc3QgZmxvYXQqIGlucHV0VmVjdG9yMSwgaW50IGlu
cHV0U3RyaWRlMSwgY29uc3QgZmxvYXQqIGlucHV0VmVjdG9yMiwgaW50IGlucHV0U3RyaWRlMiwg
ZmxvYXQqIG91dHB1dFZlY3RvciwgaW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJlck9mRWxl
bWVudHNUb1Byb2Nlc3MpOwogCiAvLyBNdWx0aXBsaWVzIHR3byBjb21wbGV4IHZlY3RvcnMuCi12
b2lkIHp2bXVsKGNvbnN0IGZsb2F0KiByZWFsMVAsIGNvbnN0IGZsb2F0KiBpbWFnMVAsIGNvbnN0
IGZsb2F0KiByZWFsMlAsIGNvbnN0IGZsb2F0KiBpbWFnMlAsIGZsb2F0KiByZWFsRGVzdFAsIGZs
b2F0KiBpbWFnRGVzdFAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB6dm11bChjb25z
dCBmbG9hdCogcmVhbFZlY3RvcjEsIGNvbnN0IGZsb2F0KiBpbWFnVmVjdG9yMSwgY29uc3QgZmxv
YXQqIHJlYWxWZWN0b3IyLCBjb25zdCBmbG9hdCogaW1hZ1ZlY3RvcjIsIGZsb2F0KiByZWFsT3V0
cHV0VmVjdG9yLCBmbG9hdCogaW1hZ091dHB1dFZlY3Rvciwgc2l6ZV90IG51bWJlck9mRWxlbWVu
dHNUb1Byb2Nlc3MpOwogCiAvLyBDb3BpZXMgZWxlbWVudHMgd2hpbGUgY2xpcHBpbmcgdmFsdWVz
IHRvIHRoZSB0aHJlc2hvbGQgaW5wdXRzLgotdm9pZCB2Y2xpcChjb25zdCBmbG9hdCogc291cmNl
UCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIGxvd1RocmVzaG9sZFAsIGNvbnN0IGZs
b2F0KiBoaWdoVGhyZXNob2xkUCwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90
IGZyYW1lc1RvUHJvY2Vzcyk7Cit2b2lkIHZjbGlwKGNvbnN0IGZsb2F0KiBpbnB1dFZlY3Rvciwg
aW50IGlucHV0U3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xkUCwgY29uc3QgZmxvYXQq
IGhpZ2hUaHJlc2hvbGRQLCBmbG9hdCogb3V0cHV0VmVjdG9yLCBpbnQgb3V0cHV0U3RyaWRlLCBz
aXplX3QgbnVtYmVyT2ZFbGVtZW50c1RvUHJvY2Vzcyk7CisKK3ZvaWQgbGluZWFyVG9EZWNpYmVs
cyhjb25zdCBmbG9hdCogaW5wdXRWZWN0b3IsIGludCBpbnB1dFN0cmlkZSwgZmxvYXQqIG91dHB1
dFZlY3RvciwgaW50IG91dHB1dFN0cmlkZSwgc2l6ZV90IG51bWJlck9mRWxlbWVudHNUb1Byb2Nl
c3MpOwogCiB9IC8vIG5hbWVzcGFjZSBWZWN0b3JNYXRoCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MTA5YzMwNWI0N2Y0
YzM4ODhhOWZhZGQ0YTkwOWFjMWJiNzg0MGNhLi5iYWFiOWY5NTEwNTVmNzliMTBkNDUxNmY5YmY5
YzYxNGExZTg0NWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMTAtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFZlY3Rvcml6ZSBsaW5l
YXIgdG8gZGVjaWJlbHMgY29udmVyc2lvbiBpbiBSZWFsdGltZUFuYWx5c2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczMjIKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTbGlnaHRseSBpbmNyZWFzZSB0aGUg
ZXJyb3IgdGhyZXNob2xkIGluIGEgZmV3IFdlYkF1ZGlvIHRlc3RzIGJlY2F1c2UgdGhlIHZlY3Rv
cml6YXRpb24KKyAgICAgICAgb3V0cHV0IGZvciBsaW5lYXIgdG8gZGVjaWJlbHMgY29udmVyc2lv
biBpcyBub3QgcXVpdGUgaWRlbnRpY2FsIHRvIG91ciBwcmV2aW91cyBvdXRwdXQKKyAgICAgICAg
KGFsdGhvdWdoIHZlcnkgY2xvc2UpLgorCisgICAgICAgICogd2ViYXVkaW8vQW5hbHlzZXIvcmVh
bHRpbWVhbmFseXNlci1kb3dubWl4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9B
bmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXguaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNl
dC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJl
cS1kYXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9BbmFseXNlci9yZWFsdGlt
ZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sOgorCiAyMDIwLTEwLTA1ICBEaWVnbyBQaW5vIEdhcmNp
YSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFVucmV2aWV3ZWQgdGVzdCBn
YXJkZW5pbmcuIE1lcmdlIGNvbW1vbiBHVEsgYW5kIFdQRSBiYXNlbGluZXMgYW5kIGVtaXQgbmV3
IGJhc2VsaW5lcyBmb3IgV1BFIHRlc3RzIGFmdGVyIHIyNjc5NjAuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1k
b3dubWl4LWV4cGVjdGVkLnR4dAppbmRleCBiMTg3Yzk1NmQ3YmJhZTEyZGQ4ZWUzY2QwZmE3ZGU3
ZWI0YWM2NzNmLi44YjU4ZWNhMzFlNDIyODBmNzU2YWFiZDkyMGEzM2VmNTk4NTRhZTc3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRv
d25taXgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3Jl
YWx0aW1lYW5hbHlzZXItZG93bm1peC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIFBBU1Mg
RXhlY3V0aW5nICIzLWNoYW5uZWwiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFttb25vXQog
UEFTUyAgIEFuYWx5c2VyIGRvd25taXggbW9ubyB0byBtb25vIHRpbWUgZGF0YSBpcyBpZGVudGlj
YWwgdG8gdGhlIGFycmF5IFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLi4uXS4KLVBB
U1MgICBBbmFseXNlciBkb3dubWl4IG1vbm8gdG8gbW9ubyBmcmVxIGRhdGEgZXF1YWxzIFtleHBl
Y3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVU
aHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjo2LjMyODNlLTh9LgorUEFTUyAgIEFuYWx5
c2VyIGRvd25taXggbW9ubyB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
MCwicmVsYXRpdmVUaHJlc2hvbGQiOjEuMjY1N2UtN30uCiBQQVNTIDwgW21vbm9dIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKIFBBU1MgPiBbc3RlcmVvXQogUEFT
UyAgIEFuYWx5c2VyIGRvd25taXggc3RlcmVvIHRvIG1vbm8gdGltZSBkYXRhIGlzIGlkZW50aWNh
bCB0byB0aGUgYXJyYXkgWzIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNSwyLjUsMi41LDIuNSwy
LjUsMi41LDIuNSwyLjUsMi41LDIuNS4uLl0uCkBAIC0yNCw3ICsyNCw3IEBAIFBBU1MgICBBbmFs
eXNlciBkb3dubWl4IDUuMSB0byBtb25vIGZyZXEgZGF0YSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5
XSB3aXRoIGFuIGVsCiBQQVNTIDwgWzUuMV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MiBhc3NlcnRpb25zKQogUEFTUyA+IFszLWNoYW5uZWxdCiBQQVNTICAgQW5hbHlzZXIgZG93bm1p
eCAzLWNoYW5uZWwgdG8gbW9ubyB0aW1lIGRhdGEgaXMgaWRlbnRpY2FsIHRvIHRoZSBhcnJheSBb
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4uLl0uCi1QQVNTICAgQW5hbHlzZXIgZG93
bm1peCAzLWNoYW5uZWwgdG8gbW9ubyBmcmVxIGRhdGEgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0g
d2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAs
InJlbGF0aXZlVGhyZXNob2xkIjo2LjMyODNlLTh9LgorUEFTUyAgIEFuYWx5c2VyIGRvd25taXgg
My1jaGFubmVsIHRvIG1vbm8gZnJlcSBkYXRhIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGgg
YW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxh
dGl2ZVRocmVzaG9sZCI6MS4yNjU3ZS03fS4KIFBBU1MgPCBbMy1jaGFubmVsXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpCiBQQVNTICMgQVVESVQgVEFTSyBSVU5O
RVIgRklOSVNIRUQ6IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVhbmFseXNlci1kb3dubWl4Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXgu
aHRtbAppbmRleCBjNDljODJhYzYwOWUyNjRhMWFiMTRjZjRlYWNjYzQ1NzNkMzUwOWMwLi44OTRj
NDVkMjMyYmExNzJiNTY2ZmY1OTI4YTFkODVjZWNmOWJiNDdmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXguaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWRvd25taXgu
aHRtbApAQCAtMTksMTEgKzE5LDExIEBACiAgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVU
YXNrUnVubmVyKCk7CiAKICAgICAgIGxldCB0ZXN0Q29uZmlncyA9IFsKLSAgICAgICAge2NoYW5u
ZWxDb3VudDogMSwgbWVzc2FnZTogJ21vbm8nLCBmbG9hdFJlbEVycm9yOiA2LjMyODNlLTh9LAor
ICAgICAgICB7Y2hhbm5lbENvdW50OiAxLCBtZXNzYWdlOiAnbW9ubycsIGZsb2F0UmVsRXJyb3I6
IDEuMjY1N2UtN30sCiAgICAgICAgIHtjaGFubmVsQ291bnQ6IDIsIG1lc3NhZ2U6ICdzdGVyZW8n
LCBmbG9hdFJlbEVycm9yOiAxLjE2ODFlLTd9LAogICAgICAgICB7Y2hhbm5lbENvdW50OiA0LCBt
ZXNzYWdlOiAncXVhZCcsIGZsb2F0UmVsRXJyb3I6IDQuOTc5M2UtN30sCiAgICAgICAgIHtjaGFu
bmVsQ291bnQ6IDYsIG1lc3NhZ2U6ICc1LjEnLCBmbG9hdFJlbEVycm9yOiAyLjAyMTVlLTd9LAot
ICAgICAgICB7Y2hhbm5lbENvdW50OiAzLCBtZXNzYWdlOiAnMy1jaGFubmVsJywgZmxvYXRSZWxF
cnJvcjogNi4zMjgzZS04fQorICAgICAgICB7Y2hhbm5lbENvdW50OiAzLCBtZXNzYWdlOiAnMy1j
aGFubmVsJywgZmxvYXRSZWxFcnJvcjogMS4yNjU3ZS03fQogICAgICAgXTsKIAogICAgICAgLy8g
Q3JlYXRlIHRhc2tzIGZvciBlYWNoIGVudHJ5IGluIHRlc3RDb25maWdzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVz
ZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVhbHRpbWVh
bmFseXNlci1mZnRzaXplLXJlc2V0LWV4cGVjdGVkLnR4dAppbmRleCAwZTJhOGMwMTcxMTQ3ZTA1
YTBjZmVlMWM5NThiMDlhNjYzNjQ4YWI4Li4xODZjMzk5NWY4YTE5MzE1NGUwNzkxZmI4MDMzOTc0
ODkxYWVhMGE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFs
dGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC1leHBlY3Rl
ZC50eHQKQEAgLTUsMTEgKzUsMTEgQEAgUEFTUyBFeGVjdXRpbmcgIjUxMi0+MjU2IgogUEFTUyBB
dWRpdCByZXBvcnQKIFBBU1MgPiBbMTI4LT4xMDI0XQogUEFTUyAgIFRpbWUgZGF0YSBlcXVhbHMg
W2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNv
bHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgotUEFTUyAgIExpbmVhciBG
RlQgZGF0YSBhZnRlciBzZXR0aW5nIGZmdFNpemUgPSAxMDI0IGVxdWFscyBbZXhwZWN0ZWQgYXJy
YXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MC4wMDAwMDE5NDU1fS4KK1BBU1MgICBMaW5lYXIgRkZU
IGRhdGEgYWZ0ZXIgc2V0dGluZyBmZnRTaXplID0gMTAyNCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
MCwicmVsYXRpdmVUaHJlc2hvbGQiOjAuMDAwMDAzNjI5Nn0uCiBQQVNTIDwgWzEyOC0+MTAyNF0g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKQogUEFTUyA+IFs1MTIt
PjI1Nl0KIFBBU1MgICBUaW1lIGRhdGEgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBl
bGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZl
VGhyZXNob2xkIjowfS4KLVBBU1MgICBMaW5lYXIgRkZUIGRhdGEgYWZ0ZXIgc2V0dGluZyBmZnRT
aXplID0gMjU2IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MC4w
MDAwMDE4NTkyfS4KK1BBU1MgICBMaW5lYXIgRkZUIGRhdGEgYWZ0ZXIgc2V0dGluZyBmZnRTaXpl
ID0gMjU2IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVy
YW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MC4wMDAw
MDE4NjE0fS4KIFBBU1MgPCBbNTEyLT4yNTZdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDIgYXNzZXJ0aW9ucykKIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNr
cyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
bmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZmdHNpemUtcmVzZXQuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC5odG1sCmlu
ZGV4IGI4MzNhOTYyMzJlYjFjZTQ1YzY5M2M3NjcwMWQ5MTcxYzEzZDI0NjAuLmMzZWNjMGEzMzNk
Y2UwZDU5MzhjMmVjNDk5MmI4MGM5YjY0ZTAyZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1yZXNldC5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZmZ0c2l6ZS1y
ZXNldC5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIHRlc3RGRlRTaXplKHNob3VsZCwg
ewogICAgICAgICAgIGluaXRpYWxGRlRTaXplOiAxMjgsCiAgICAgICAgICAgZmluYWxGRlRTaXpl
OiAxMDI0LAotICAgICAgICAgIGVycm9yVGhyZXNob2xkOiB7cmVsYXRpdmVUaHJlc2hvbGQ6IDEu
OTQ1NWUtNn0KKyAgICAgICAgICBlcnJvclRocmVzaG9sZDoge3JlbGF0aXZlVGhyZXNob2xkOiAz
LjYyOTZlLTZ9CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOwogICAgICAgfSk7
CiAKQEAgLTMxLDcgKzMxLDcgQEAKICAgICAgICAgdGVzdEZGVFNpemUoc2hvdWxkLCB7CiAgICAg
ICAgICAgaW5pdGlhbEZGVFNpemU6IDUxMiwKICAgICAgICAgICBmaW5hbEZGVFNpemU6IDI1NiwK
LSAgICAgICAgICBlcnJvclRocmVzaG9sZDoge3JlbGF0aXZlVGhyZXNob2xkOiAxLjg1OTJlLTZ9
CisgICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IHtyZWxhdGl2ZVRocmVzaG9sZDogMS44NjE0ZS02
fQogICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKICAgICAgIH0pOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGltZWFuYWx5c2VyLWZy
ZXEtZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFs
dGltZWFuYWx5c2VyLWZyZXEtZGF0YS1leHBlY3RlZC50eHQKaW5kZXggYjg0NGZhNDYzYmQ4ZTc0
ZThmYmZhNTBkMDM2NTdmYmRiZmZiYjY0Zi4uNGIyYzI1YWZjMjFjMmE4ZGIwNTc4NjJjMmVlM2Ez
MmNkMDM3MDliNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVh
bHRpbWVhbmFseXNlci1mcmVxLWRhdGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlzZXItZnJlcS1kYXRhLWV4cGVjdGVkLnR4dApA
QCAtNjIsMTkgKzYyLDE5IEBAIFBBU1MgICBPcmRlcjogMTI6IE1heCBGRlQgdmFsdWUgaXMgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIC0zMC4KIFBBU1MgICA0MDk2LXBvaW50IGJ5dGUgRkZUIGVx
dWFscyBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNo
b2xkIjowfS4KIFBBU1MgPCBbMTItb3JkZXIgRkZUXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCA0IGFzc2VydGlvbnMpCiBQQVNTID4gWzEzLW9yZGVyIEZGVF0KLVBBU1MgICA4MTkyLXBv
aW50IGZsb2F0IEZGVCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAs
LTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4g
ZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2
ZVRocmVzaG9sZCI6My4yMTA2ZS03fS4KK1BBU1MgICA4MTkyLXBvaW50IGZsb2F0IEZGVCBlcXVh
bHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEw
MCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVy
YW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6My40MTk2
ZS03fS4KIFBBU1MgICBPcmRlcjogMTM6IE1pbiBGRlQgdmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIC0xMDAuCiBQQVNTICAgT3JkZXI6IDEzOiBNYXggRkZUIHZhbHVlIGlzIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byAtMzAuCiBQQVNTICAgODE5Mi1wb2ludCBieXRlIEZGVCBlcXVhbHMg
WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6
MH0uCiBQQVNTIDwgWzEzLW9yZGVyIEZGVF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
NCBhc3NlcnRpb25zKQogUEFTUyA+IFsxNC1vcmRlciBGRlRdCi1QQVNTICAgMTYzODQtcG9pbnQg
ZmxvYXQgRkZUIGVxdWFscyBbLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAw
LC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMC4uLl0gd2l0aCBhbiBlbGVt
ZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhy
ZXNob2xkIjoxLjE3NTZlLTd9LgorUEFTUyAgIDE2Mzg0LXBvaW50IGZsb2F0IEZGVCBlcXVhbHMg
Wy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwt
MTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MS42MjU3ZS03
fS4KIFBBU1MgICBPcmRlcjogMTQ6IE1pbiBGRlQgdmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIC0xMDAuCiBQQVNTICAgT3JkZXI6IDE0OiBNYXggRkZUIHZhbHVlIGlzIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byAtMzAuCiBQQVNTICAgMTYzODQtcG9pbnQgYnl0ZSBGRlQgZXF1YWxzIFsw
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9
LgogUEFTUyA8IFsxNC1vcmRlciBGRlRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQg
YXNzZXJ0aW9ucykKIFBBU1MgPiBbMTUtb3JkZXIgRkZUXQotUEFTUyAgIDMyNzY4LXBvaW50IGZs
b2F0IEZGVCBlcXVhbHMgWy0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwt
MTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAuLi5dIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVz
aG9sZCI6MS4xNzU2ZS03fS4KK1BBU1MgICAzMjc2OC1wb2ludCBmbG9hdCBGRlQgZXF1YWxzIFst
MTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEwMCwtMTAwLC0xMDAsLTEw
MCwtMTAwLC0xMDAsLTEwMCwtMTAwLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjIuMDg3NmUtN30u
CiBQQVNTICAgT3JkZXI6IDE1OiBNaW4gRkZUIHZhbHVlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0
byAtMTAwLgogUEFTUyAgIE9yZGVyOiAxNTogTWF4IEZGVCB2YWx1ZSBpcyBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gLTMwLgogUEFTUyAgIDMyNzY4LXBvaW50IGJ5dGUgRkZUIGVxdWFscyBbMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9s
ZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlz
ZXItZnJlcS1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BbmFseXNlci9yZWFsdGlt
ZWFuYWx5c2VyLWZyZXEtZGF0YS5odG1sCmluZGV4IDQ0ZTUzZjM0ZGRmZjM5YmRiNzgzOGU0ODA0
NjhlMWQwMTk2NDdkNDUuLjU3OWZmMDhmYTZkYmNlZTY5NzI1MTg3MTk2OGQ1ZjMzODhkZTgxNTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0FuYWx5c2VyL3JlYWx0aW1lYW5hbHlz
ZXItZnJlcS1kYXRhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQW5hbHlzZXIvcmVh
bHRpbWVhbmFseXNlci1mcmVxLWRhdGEuaHRtbApAQCAtNTAsOSArNTAsOSBAQAogICAgICAgICB7
b3JkZXI6IDEwLCBmbG9hdFJlbEVycm9yOiAyLjk3NzFlLTUsIGJ5dGVUaHJlc2hvbGQ6IDF9LAog
ICAgICAgICB7b3JkZXI6IDExLCBmbG9hdFJlbEVycm9yOiAxLjM0NTZlLTV9LAogICAgICAgICB7
b3JkZXI6IDEyLCBmbG9hdFJlbEVycm9yOiA0LjYxMTZlLTd9LAotICAgICAgICB7b3JkZXI6IDEz
LCBmbG9hdFJlbEVycm9yOiAzLjIxMDZlLTd9LAotICAgICAgICB7b3JkZXI6IDE0LCBmbG9hdFJl
bEVycm9yOiAxLjE3NTZlLTd9LAotICAgICAgICB7b3JkZXI6IDE1LCBmbG9hdFJlbEVycm9yOiAx
LjE3NTZlLTd9CisgICAgICAgIHtvcmRlcjogMTMsIGZsb2F0UmVsRXJyb3I6IDMuNDE5NmUtN30s
CisgICAgICAgIHtvcmRlcjogMTQsIGZsb2F0UmVsRXJyb3I6IDEuNjI1N2UtN30sCisgICAgICAg
IHtvcmRlcjogMTUsIGZsb2F0UmVsRXJyb3I6IDIuMDg3NmUtN30KICAgICAgIF07CiAKICAgICAg
IC8vIFRydWUgaWYgYWxsIG9mIHRoZSBiYXNpYyB0ZXN0cyBwYXNzZWQuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>