<?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>223360</bug_id>
          
          <creation_ts>2021-03-17 00:49:36 -0700</creation_ts>
          <short_desc>webgl/2.0.y/conformance2/vertex_arrays/vertex-array-object.html fails</short_desc>
          <delta_ts>2021-09-08 22:28:03 -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>WebGL</component>
          <version>Other</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>222812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1740483</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-17 00:49:36 -0700</bug_when>
    <thetext>webgl/2.0.1/conformance2/vertex_arrays/vertex-array-object.html fails

https://www.khronos.org/registry/webgl/sdk/tests/conformance2/vertex_arrays/vertex-array-object.html?webglVersion=2&amp;quiet=0&amp;quick=1

This test verifies the functionality of the Vertex Array Objects.

On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.


PASS WebGL context exists
Testing binding enum
PASS gl.VERTEX_ARRAY_BINDING is 0x85B5
PASS getError was expected value: NO_ERROR : VERTEX_ARRAY_BINDING query should succeed
PASS Default value of VERTEX_ARRAY_BINDING is null
Testing binding a VAO
PASS gl.getParameter(gl.VERTEX_ARRAY_BINDING) is null
PASS gl.getParameter(gl.VERTEX_ARRAY_BINDING) is expected VAO
PASS gl.getParameter(gl.VERTEX_ARRAY_BINDING) is expected VAO
PASS gl.getParameter(gl.VERTEX_ARRAY_BINDING) is null
PASS getError was expected value: INVALID_OPERATION : binding a deleted vertex array object
PASS gl.getParameter(gl.VERTEX_ARRAY_BINDING) is null
Testing object creation
PASS getError was expected value: NO_ERROR : createVertexArray should not set an error
PASS vao is non-null.
PASS gl.isVertexArray(vao) is false
PASS gl.isVertexArray(vao) is true
PASS gl.isVertexArray(vao) is true
PASS gl.isVertexArray(null) is false
Testing attributes work across bindings
PASS All attributes preserved across bindings
Testing that attribute values are not attached to bindings
PASS Vertex attribute values are not attached to bindings
Testing draws with various VAO bindings
PASS Draw 0 passed pixel test
PASS Draw 1 passed pixel test
PASS Draw 2 passed pixel test
PASS should be green
PASS should be green
Testing using buffers that are deleted when attached to unbound VAOs
PASS should be 255,0,0,255
PASS should be 0,255,0,255
PASS should be 0,0,255,255
PASS should be 0,255,255,255
Testing using buffers that are deleted when attached to bound VAOs
FAIL getError expected: INVALID_OPERATION. Was NO_ERROR : Draw call should fail.
PASS getError was expected value: NO_ERROR : Draw call should not fail.
PASS getError was expected value: NO_ERROR : Draw call should not fail.
PASS getError was expected value: NO_ERROR : Draw call should not fail.
Testing that VAOs don&apos;t effect ARRAY_BUFFER binding.
PASS should be red
PASS should be green
PASS getError was expected value: NO_ERROR : there should be no errors

PASS successfullyParsed is true

TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740577</commentid>
    <comment_count>1</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-17 01:45:44 -0700</bug_when>
    <thetext>At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743207</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-24 00:50:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/75774546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791446</commentid>
    <comment_count>3</comment_count>
      <attachid>437623</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-08 06:47:23 -0700</bug_when>
    <thetext>Created attachment 437623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791460</commentid>
    <comment_count>4</comment_count>
      <attachid>437627</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-08 07:52:16 -0700</bug_when>
    <thetext>Created attachment 437627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791547</commentid>
    <comment_count>5</comment_count>
      <attachid>437627</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-09-08 10:58:58 -0700</bug_when>
    <thetext>Comment on attachment 437627
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        WebGL specific constraint is not checked by ANGLE. Add this check to
&gt; +        WebCore.

Shouldn&apos;t this be in ANGLE when validating against WebGL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791572</commentid>
    <comment_count>6</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-08 12:09:40 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #5)
&gt; Comment on attachment 437627 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437627&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        WebGL specific constraint is not checked by ANGLE. Add this check to
&gt; &gt; +        WebCore.
&gt; 
&gt; Shouldn&apos;t this be in ANGLE when validating against WebGL?

This should be said about 90% of the `validate*` functions.
But you&apos;re right, there&apos;s something special about this logic that I failed to express when writing the ChangeLog. I&apos;ll revise it:

The problem is that when doing the ANGLE side VAO update on buffer delete, WebCore relies on deleting the ANGLE side buffer. This works when the deleted buffer is in only one VAO.

However, when buffer is shared by multiple bindings, the ANGLE side buffer is not deleted until last binding is freed. Thus from ANGLE&apos;s perspective the buffer is in the VAO and the validation passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791573</commentid>
    <comment_count>7</comment_count>
      <attachid>437627</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-08 12:16:06 -0700</bug_when>
    <thetext>Comment on attachment 437627
Patch

Great; yes, this validation was most easily implemented in the browser&apos;s code rather than down in ANGLE due to the object lifetimes and the needed caching. (All objects bound into the WebGL context have to have mirrors at the C++ level; this includes vertex array objects.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791594</commentid>
    <comment_count>8</comment_count>
      <attachid>437659</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-08 13:08:41 -0700</bug_when>
    <thetext>Created attachment 437659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791764</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-08 22:28:01 -0700</bug_when>
    <thetext>Committed r282192 (241479@main): &lt;https://commits.webkit.org/241479@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437659.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437623</attachid>
            <date>2021-09-08 06:47:23 -0700</date>
            <delta_ts>2021-09-08 07:52:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223360-20210908164721.patch</filename>
            <type>text/plain</type>
            <size>23336</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmNTA3NDgzZTIxYzZk
ZmU4MjBlNDU5YjRjMzJjNjMzNjhiMjBlYy4uODIxZTk3OTNmZmM0OTZjOTYzYzExM2NhZTY2YmEy
MDVhYjIxN2ExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA5LTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5LW9iamVjdC5odG1sIGZhaWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzNjAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1Nzc0NTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGV0aW5nIGEgYnVmZmVyIHdpbGwgcmVtb3Zl
IHRoZSBidWZmZXIgZnJvbSBjdXJyZW50bHkgYWN0aXZlCisgICAgICAgIHZlcnRleCBhcnJheSBi
dWZmZXIgYmluZGluZ3MuIFRoaXMgd29ya2VkLgorICAgICAgICBEcmF3aW5nIHdpdGggYSB2ZXJ0
ZXggYXJyYXkgb2JqZWN0IHRoYXQgaGFzIGVuYWJsZWQgaW5kZXhlcworICAgICAgICBidXQgbWlz
c2luZyBidWZmZXJzIGZvciB0aG9zZSBpbmRleGVzIHNob3VsZCBmYWlsLiBUaGlzCisgICAgICAg
IFdlYkdMIHNwZWNpZmljIGNvbnN0cmFpbnQgaXMgbm90IGNoZWNrZWQgYnkgQU5HTEUuIEFkZCB0
aGlzIGNoZWNrIHRvCisgICAgICAgIFdlYkNvcmUuCisKKyAgICAgICAgRml4ZWQgdGVzdHM6Cisg
ICAgICAgIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvb2VzLXZlcnRleC1hcnJh
eS1vYmplY3QuaHRtbAorICAgICAgICB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdmVydGV4X2Fy
cmF5cy92ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkcmF3UmFuZ2VFbGVtZW50cyk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNhYmxlVmVydGV4
QXR0cmliQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dmFsaWRhdGVWZXJ0ZXhBcnJheU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2lu
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRW
ZXJ0ZXhBdHRyaWIwKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmRyYXdBcnJheXNJbnN0YW5jZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzSW5zdGFuY2VkKToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpz
ZXRWZXJ0ZXhBdHRyaWJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjp1cGRhdGVWZXJ0ZXhBdHRyaWIwKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjphcmVBbGxFbmFibGVkQXR0cmliQnVmZmVyc0Jv
dW5kKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OmdldFZlcnRl
eEF0dHJpYlN0YXRlKToKKyAgICAgICAgTWFrZSBWZXJ0ZXhBdHRyaWJTdGF0ZSYgYSBjb25zdCBz
byB0aGF0IHdlIGNhbiBtYWludGFpbiBjb25maWRlbmNlCisgICAgICAgIHRoYXQgdGhlIGNhY2hl
ZCB2YWx1ZSBvZiAiYWxsIGVuYWJsZWQgYXR0cmliIGJ1ZmZlcnMgYXJlIGJvdW5kIgorICAgICAg
ICBpcyBtYWludGFpbmVkLCBlLmcuIHRoYXQgdGhlIGNhbGxlcnMgY2Fubm90IG1vZGlmeSBlbmFi
bGVkIG9yIGJvdW5kCisgICAgICAgIGJ1ZmZlciBzdGF0dXMuCisKIDIwMjEtMDktMDcgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8yLjAueS9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbmVnYXRpdmVzdGF0ZWFwaS5odG1sIGdldF9mcmFtZWJ1ZmZl
cl9hdHRhY2htZW50X3BhcmFtZXRlciBmYWlscyBvbiBNZXRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA4Njhk
ZmUyMTBiMTkxMzdlNjgyMDI2MTZjZTVlOTFjNDQxYzFmMDNjLi45MjE2ZDdmMzM0ZmE1ZDZmYTgw
MTlhODJiZTk4Mjg3MjZhZWIyNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjIxLDYgKzIyMSwxMCBAQCBs
b25nIGxvbmcgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50NjRQYXJhbWV0ZXIoR0NHTGVu
dW0gcG5hbWUpCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRl
eEFycmF5T2JqZWN0cygpCiB7CisjaWYgIVVTRShBTkdMRSkKKyAgICBpZiAoIWlzR0xFUzJDb21w
bGlhbnQoKSkKKyAgICAgICAgaW5pdFZlcnRleEF0dHJpYjAoKTsKKyNlbmRpZgogICAgIG1fZGVm
YXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0
aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpUeXBlOjpEZWZhdWx0KTsKICAgICBhZGRDb250
ZXh0T2JqZWN0KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAjaWYgVVNFKE9QRU5HTF9F
UykKQEAgLTIyOCwxMCArMjMyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0
aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkKICNlbHNlCiAgICAgYmluZFZlcnRleEFycmF5KG51
bGxwdHIpOyAvLyBUaGUgZGVmYXVsdCBWQU8gd2FzIHJlbW92ZWQgaW4gT3BlbkdMIDMuMyBidXQg
bm90IGZyb20gV2ViR0wgMjsgYmluZCB0aGUgZGVmYXVsdCBmb3IgV2ViR0wgdG8gdXNlLgogI2Vu
ZGlmCi0jaWYgIVVTRShBTkdMRSkKLSAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAg
ICAgaW5pdFZlcnRleEF0dHJpYjAoKTsKLSNlbmRpZgorCiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6aW5pdGlhbGl6ZVNoYWRlckV4dGVuc2lvbnMoKQpAQCAtMTc5Myw3ICsxNzk0
LDggQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkcmF3UmFuZ2VFbGVtZW50cyhHQ0dM
ZW51bSBtb2RlLCBHQ0dMdWludCBzdGFydCwgR0MKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQogICAgICAgICByZXR1cm47Ci0KKyAgICBpZiAoIXZhbGlkYXRlVmVydGV4QXJy
YXlPYmplY3QoImRyYXdSYW5nZUVsZW1lbnRzIikpCisgICAgICAgIHJldHVybjsKICAgICBtX2Nv
bnRleHQtPmRyYXdSYW5nZUVsZW1lbnRzKG1vZGUsIHN0YXJ0LCBlbmQsIGNvdW50LCB0eXBlLCBv
ZmZzZXQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0YTUyNzY2MDNmYjllMTZmZjBiMmJkOWFjY2I0NTM2
ODBkNWE2NDQ5Li43MDMxOGRjZGQ0MzRiYzg5MGUzODZjZjM2ODhmOWJmNzI3Mjc4YzhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTEyNCwxMyArMTI0LDEzIEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcywgUmVmPEdyYXBoaWNzQ29uCiAKIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkK
IHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlwZTo6RGVm
YXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Qp
OwotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2Jq
ZWN0OwogI2lmICFVU0UoQU5HTEUpCiAgICAgaWYgKCFpc0dMRVMyQ29tcGxpYW50KCkpCiAgICAg
ICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CiAjZW5kaWYKKyAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJh
eU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29udGV4dE9iamVj
dCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9i
amVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogfQogCiBXZWJHTEV4dGVuc2lvbiog
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcAppbmRleCA2NDY3ZDI2YTQ0MjQ2Mzc4Y2NiNjc0MjQ2MmExYTZiNjJhZThm
YjQ1Li4zNTcxNDBhMmJlOTUyOGViODBmNzlhYWNjNjAzOTk0YmI2MmMwOTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcApAQCAtMjMzOCwxMCArMjMzOCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDR0x1aW50IGluZGV4KQogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgImRpc2Fi
bGVWZXJ0ZXhBdHRyaWJBcnJheSIsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLQotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpWZXJ0ZXhBdHRy
aWJTdGF0ZSYgc3RhdGUgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJp
YlN0YXRlKGluZGV4KTsKLSAgICBzdGF0ZS5lbmFibGVkID0gZmFsc2U7Ci0KKyAgICBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPnNldFZlcnRleEF0dHJpYkVuYWJsZWQoaW5kZXgsIGZhbHNlKTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGlmIChpbmRleCA+IDAgfHwgaXNHTEVTMkNvbXBsaWFudCgp
KQogI2VuZGlmCkBAIC0yMzYwLDYgKzIzNTcsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp2YWxpZGF0ZU5QT1RUZXh0dXJlTGV2ZWwoR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2kK
IH0KICNlbmRpZgogCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlVmVy
dGV4QXJyYXlPYmplY3QoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQoreworICAgIGlmICghbV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5hcmVBbGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kKCkp
IHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
T1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyBidWZmZXIgaXMgYm91bmQgdG8gZW5hYmxlZCBh
dHRyaWJ1dGUiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUVsZW1lbnRB
cnJheVNpemUoR0NHTHNpemVpIGNvdW50LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRyIG9mZnNl
dCkKIHsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IGVsZW1lbnRBcnJheUJ1ZmZlciA9IG1fYm91
bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCk7CkBAIC0yNzAxLDYg
KzI3MDcsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJheXMoR0NH
TGVudW0gbW9kZSwgR0NHTGludCBmaXJzdCwgR0NHTHNpegogICAgIGlmICghdmFsaWRhdGVEcmF3
QXJyYXlzKCJkcmF3QXJyYXlzIiwgbW9kZSwgZmlyc3QsIGNvdW50LCAwKSkKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCisgICAgaWYgKCF2YWxpZGF0ZVZlcnRleEFycmF5T2JqZWN0KCJkcmF3QXJy
YXlzIikpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtICYmIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhpcywgKm1f
Y3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47CkBAIC0yNzY0LDYgKzI3NzIsOCBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyhHQ0dMZW51bSBtb2Rl
LCBHQ0dMc2l6ZWkgY291bnQsIEdDRwogICAgIGlmICghdmFsaWRhdGVEcmF3RWxlbWVudHMoImRy
YXdFbGVtZW50cyIsIG1vZGUsIGNvdW50LCB0eXBlLCBvZmZzZXQsIG51bUVsZW1lbnRzLCAwKSkK
ICAgICAgICAgcmV0dXJuOwogI2VuZGlmCisgICAgaWYgKCF2YWxpZGF0ZVZlcnRleEFycmF5T2Jq
ZWN0KCJkcmF3RWxlbWVudHMiKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fY3VycmVu
dFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2Fi
bGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4MzIs
MTAgKzI4NDIsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KEdDR0x1aW50IGluZGV4KQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgImVuYWJsZVZlcnRleEF0dHJpYkFycmF5
IiwgImluZGV4IG91dCBvZiByYW5nZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZlcnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1f
Ym91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0cmliU3RhdGUoaW5kZXgpOwotICAg
IHN0YXRlLmVuYWJsZWQgPSB0cnVlOwotCisgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5z
ZXRWZXJ0ZXhBdHRyaWJFbmFibGVkKGluZGV4LCB0cnVlKTsKICAgICBtX2NvbnRleHQtPmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KGluZGV4KTsKIH0KIApAQCAtNjMzNSw3ICs2MzQyLDYgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDR0x1aW50
IGluZGV4LCBHQ0dMaW50IHNpemUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBHQ0dMc2l6
ZWkgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAqIHR5cGVTaXplOwotCiAgICAgbV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShsb2NrZXIsIGluZGV4LCBieXRlc1Bl
ckVsZW1lbnQsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0NH
TGludHB0cj4ob2Zmc2V0KSwgZmFsc2UsIG1fYm91bmRBcnJheUJ1ZmZlci5nZXQoKSk7CiAgICAg
bV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKGluZGV4LCBzaXplLCB0eXBlLCBub3JtYWxp
emVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9mZnNldCkpOwogfQpAQCAtNzUz
MywxMyArNzUzOSwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0
dHJpYmZ2SW1wbChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDRwogI2lmICFVU0UoQU5HTEUp
CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRWZXJ0ZXhBdHRyaWIwKCkKIHsK
LSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6VmVydGV4QXR0cmliU3RhdGUmIHN0YXRl
ID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgwKTsKLSAg
ICAKICAgICBtX3ZlcnRleEF0dHJpYjBCdWZmZXIgPSBjcmVhdGVCdWZmZXIoKTsKICAgICBtX2Nv
bnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0R0w6OkFSUkFZX0JVRkZFUiwgbV92ZXJ0
ZXhBdHRyaWIwQnVmZmVyLT5vYmplY3QoKSk7CiAgICAgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdy
YXBoaWNzQ29udGV4dEdMOjpBUlJBWV9CVUZGRVIsIDAsIEdyYXBoaWNzQ29udGV4dEdMOjpEWU5B
TUlDX0RSQVcpOwogICAgIG1fY29udGV4dC0+dmVydGV4QXR0cmliUG9pbnRlcigwLCA0LCBHcmFw
aGljc0NvbnRleHRHTDo6RkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICBzdGF0ZS5idWZmZXJCaW5k
aW5nID0gbV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOwogICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcihH
cmFwaGljc0NvbnRleHRHTDo6QVJSQVlfQlVGRkVSLCAwKTsKICAgICBtX2NvbnRleHQtPmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KDApOwogICAgIG1fdmVydGV4QXR0cmliMEJ1ZmZlclNpemUgPSAw
OwpAQCAtNzkzMiw2ICs3OTM1LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
cmF3QXJyYXlzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xpbnQgZmlyc3QKICAgICBpZiAo
IXZhbGlkYXRlRHJhd0FycmF5cygiZHJhd0FycmF5c0luc3RhbmNlZCIsIG1vZGUsIGZpcnN0LCBj
b3VudCwgcHJpbWNvdW50KSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vICFVU0UoQU5HTEUp
CisgICAgaWYgKCF2YWxpZGF0ZVZlcnRleEFycmF5T2JqZWN0KCJkcmF3QXJyYXlzSW5zdGFuY2Vk
IikpCisgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVy
RHJhd09yQ2xlYXIpOwogCkBAIC03OTcxLDYgKzc5NzYsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRyYXdFbGVtZW50c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dMc2l6
ZWkgYwogICAgIGlmICghdmFsaWRhdGVEcmF3RWxlbWVudHMoImRyYXdFbGVtZW50c0luc3RhbmNl
ZCIsIG1vZGUsIGNvdW50LCB0eXBlLCBvZmZzZXQsIG51bUVsZW1lbnRzLCBwcmltY291bnQpKQog
ICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKKyAgICBpZiAoIXZhbGlkYXRl
VmVydGV4QXJyYXlPYmplY3QoImRyYXdFbGVtZW50c0luc3RhbmNlZCIpKQorICAgICAgICByZXR1
cm47CiAKICAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFyKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oCmluZGV4IDRkOTM0ZGQ5MjFkODc2MmNiMGZlNzBjNDQ0YzgwMjY5N2NmOTVmOGQu
LmVjN2E5ZTViMWFjZmU0YTRhMzViZmIyMmNlOGNiMTc5NmU0NTQyOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgK
QEAgLTUxMiw2ICs1MTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCB2YWxpZGF0ZURyYXdFbGVt
ZW50cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIG1vZGUsIEdDR0xzaXplaSBj
b3VudCwgR0NHTGVudW0gdHlwZSwgbG9uZyBsb25nIG9mZnNldCwgdW5zaWduZWQmIG51bUVsZW1l
bnRzLCBHQ0dMc2l6ZWkgcHJpbWNvdW50KTsKICAgICBib29sIHZhbGlkYXRlTlBPVFRleHR1cmVM
ZXZlbChHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xpbnQgbGV2ZWwsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiAjZW5kaWYKKyAgICBib29sIHZhbGlkYXRlVmVydGV4
QXJyYXlPYmplY3QoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKTsKIAogICAgIC8vIEFkZHMgYSBj
b21wcmVzc2VkIHRleHR1cmUgZm9ybWF0LgogICAgIHZvaWQgYWRkQ29tcHJlc3NlZFRleHR1cmVG
b3JtYXQoR0NHTGVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4IDFlZDA1ZTliZjJiNjY4Yzhl
NGE0ZTIzNDZjZDQwNzU5ZmE1NDAyNzUuLjMyYmUwZWE3NWJkZmJhMWM1ZTQzZTM4YzNkY2I1NzFh
NzgxNTc3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTM5LDYgKzM5LDkgQEAgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UKICAgICAsIG1fdHlwZSh0eXBlKQogewogICAgIG1fdmVydGV4QXR0cmli
U3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsKKyNpZiAhVVNFKEFO
R0xFKQorICAgIHVwZGF0ZVZlcnRleEF0dHJpYjAoKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoY29uc3QgQWJzdHJh
Y3RMb2NrZXImIGxvY2tlciwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKQEAgLTUwLDI0ICs1MywzNiBA
QCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIo
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvYwogICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIg
PSBidWZmZXI7CiAgICAgCiB9Cit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRW
ZXJ0ZXhBdHRyaWJFbmFibGVkKGludCBpbmRleCwgYm9vbCBmbGFnKQoreworICAgIGF1dG8mIHN0
YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CisgICAgaWYgKHN0YXRlLmVuYWJsZWQg
PT0gZmxhZykKKyAgICAgICAgcmV0dXJuOworICAgIHN0YXRlLmVuYWJsZWQgPSBmbGFnOworICAg
IGlmICghc3RhdGUudmFsaWRhdGVCaW5kaW5nKCkpCisgICAgICAgIG1fYWxsRW5hYmxlZEF0dHJp
YkJ1ZmZlcnNCb3VuZENhY2hlID0gZmFsc2U7CisgICAgZWxzZQorICAgICAgICBtX2FsbEVuYWJs
ZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZS5yZXNldCgpOworfQogCiB2b2lkIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShjb25zdCBBYnN0cmFjdExvY2tl
ciYgbG9ja2VyLCBHQ0dMdWludCBpbmRleCwgR0NHTHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0NH
TGludCBzaXplLCBHQ0dMZW51bSB0eXBlLCBHQ0dMYm9vbGVhbiBub3JtYWxpemVkLCBHQ0dMc2l6
ZWkgc3RyaWRlLCBHQ0dMaW50cHRyIG9mZnNldCwgYm9vbCBpc0ludGVnZXIsIFdlYkdMQnVmZmVy
KiBidWZmZXIpCiB7Ci0gICAgR0NHTHNpemVpIHZhbGlkYXRlZFN0cmlkZSA9IHN0cmlkZSA/IHN0
cmlkZSA6IGJ5dGVzUGVyRWxlbWVudDsKLSAgICAKICAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4
QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIAorICAgIGJvb2wgYmluZGluZ1dhc1ZhbGlkID0gc3Rh
dGUudmFsaWRhdGVCaW5kaW5nKCk7CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgYnVmZmVyLT5v
bkF0dGFjaGVkKCk7CiAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcpCiAgICAgICAgIHN0YXRl
LmJ1ZmZlckJpbmRpbmctPm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0KCktPmdyYXBoaWNzQ29u
dGV4dEdMKCkpOwotICAgIAogICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBidWZmZXI7CisgICAg
aWYgKCFzdGF0ZS52YWxpZGF0ZUJpbmRpbmcoKSkKKyAgICAgICAgbV9hbGxFbmFibGVkQXR0cmli
QnVmZmVyc0JvdW5kQ2FjaGUgPSBmYWxzZTsKKyAgICBlbHNlIGlmICghYmluZGluZ1dhc1ZhbGlk
KQorICAgICAgICBtX2FsbEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZS5yZXNldCgpOwog
ICAgIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCA9IGJ5dGVzUGVyRWxlbWVudDsKICAgICBzdGF0ZS5z
aXplID0gc2l6ZTsKICAgICBzdGF0ZS50eXBlID0gdHlwZTsKICAgICBzdGF0ZS5ub3JtYWxpemVk
ID0gbm9ybWFsaXplZDsKLSAgICBzdGF0ZS5zdHJpZGUgPSB2YWxpZGF0ZWRTdHJpZGU7CisgICAg
c3RhdGUuc3RyaWRlID0gc3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIHN0
YXRlLm9yaWdpbmFsU3RyaWRlID0gc3RyaWRlOwogICAgIHN0YXRlLm9mZnNldCA9IG9mZnNldDsK
ICAgICBzdGF0ZS5pc0ludGVnZXIgPSBpc0ludGVnZXI7CkBAIC04MCwyOCArOTUsMzcgQEAgdm9p
ZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdlYkcKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9
IG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92ZXJ0
ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fdmVy
dGV4QXR0cmliU3RhdGVbaV07CisgICAgZm9yIChhdXRvJiBzdGF0ZSA6IG1fdmVydGV4QXR0cmli
U3RhdGUpIHsKICAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcgPT0gJmJ1ZmZlcikgewog
ICAgICAgICAgICAgYnVmZmVyLm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0KCktPmdyYXBoaWNz
Q29udGV4dEdMKCkpOwotICAgICAgICAgICAgCisgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5k
aW5nID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghc3RhdGUudmFsaWRhdGVCaW5kaW5nKCkp
CisgICAgICAgICAgICAgICAgbV9hbGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kQ2FjaGUgPSBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KICNpZiAhVVNFKEFOR0xFKQotICAgICAgICAgICAgaWYg
KCFpICYmICFjb250ZXh0KCktPmlzR0xFUzJDb21wbGlhbnQoKSkgewotICAgICAgICAgICAgICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBjb250ZXh0KCktPm1fdmVydGV4QXR0cmliMEJ1ZmZlcjsK
LSAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nLT5vbkF0dGFjaGVkKCk7Ci0gICAg
ICAgICAgICAgICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gMDsKLSAgICAgICAgICAgICAgICBz
dGF0ZS5zaXplID0gNDsKLSAgICAgICAgICAgICAgICBzdGF0ZS50eXBlID0gR3JhcGhpY3NDb250
ZXh0R0w6OkZMT0FUOwotICAgICAgICAgICAgICAgIHN0YXRlLm5vcm1hbGl6ZWQgPSBmYWxzZTsK
LSAgICAgICAgICAgICAgICBzdGF0ZS5zdHJpZGUgPSAxNjsKLSAgICAgICAgICAgICAgICBzdGF0
ZS5vcmlnaW5hbFN0cmlkZSA9IDA7Ci0gICAgICAgICAgICAgICAgc3RhdGUub2Zmc2V0ID0gMDsK
LSAgICAgICAgICAgIH0gZWxzZQorICAgIHVwZGF0ZVZlcnRleEF0dHJpYjAoKTsKICNlbmRpZgot
ICAgICAgICAgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwotICAgICAgICB9
Cit9CisKKyNpZiAhVVNFKEFOR0xFKQordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6
dXBkYXRlVmVydGV4QXR0cmliMCgpCit7CisgICAgYXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJp
YlN0YXRlWzBdOworICAgIGlmICghc3RhdGUuYnVmZmVyQmluZGluZyAmJiAhY29udGV4dCgpLT5p
c0dMRVMyQ29tcGxpYW50KCkpIHsKKyAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IGNvbnRl
eHQoKS0+bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOworICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5n
LT5vbkF0dGFjaGVkKCk7CisgICAgICAgIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCA9IDA7CisgICAg
ICAgIHN0YXRlLnNpemUgPSA0OworICAgICAgICBzdGF0ZS50eXBlID0gR3JhcGhpY3NDb250ZXh0
R0w6OkZMT0FUOworICAgICAgICBzdGF0ZS5ub3JtYWxpemVkID0gZmFsc2U7CisgICAgICAgIHN0
YXRlLnN0cmlkZSA9IDE2OworICAgICAgICBzdGF0ZS5vcmlnaW5hbFN0cmlkZSA9IDA7CisgICAg
ICAgIHN0YXRlLm9mZnNldCA9IDA7CisgICAgICAgIG1fYWxsRW5hYmxlZEF0dHJpYkJ1ZmZlcnNC
b3VuZENhY2hlLnJlc2V0KCk7CiAgICAgfQogfQorI2VuZGlmCiAKIHZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYkRpdmlzb3IoR0NHTHVpbnQgaW5kZXgsIEdD
R0x1aW50IGRpdmlzb3IpCiB7CkBAIC0xMTUsNiArMTM5LDIwIEBAIHZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGNvbnN0IEFic3RyYWN0TG9j
a2VyJiwKICAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHN0YXRlLmJ1ZmZlckJpbmRpbmcu
Z2V0KCkpOwogfQogCitib29sIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjphcmVBbGxFbmFi
bGVkQXR0cmliQnVmZmVyc0JvdW5kKCkKK3sKKyAgICBpZiAoIW1fYWxsRW5hYmxlZEF0dHJpYkJ1
ZmZlcnNCb3VuZENhY2hlKSB7CisgICAgICAgIG1fYWxsRW5hYmxlZEF0dHJpYkJ1ZmZlcnNCb3Vu
ZENhY2hlID0gWyZdIHsKKyAgICAgICAgICAgIGZvciAoYXV0byBjb25zdCYgc3RhdGUgOiBtX3Zl
cnRleEF0dHJpYlN0YXRlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdGF0ZS52YWxpZGF0ZUJp
bmRpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0oKTsKKyAgICB9CisgICAgcmV0
dXJuICptX2FsbEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZTsKK30KKwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggNDA3NDIxNzlkODk2ODBhMDk1
MjYyZmIxODljNmMwOWM0M2U3ZGEzYy4uYzYxMzhiYmU2NWU3ZDM5MDRmZmE2MzU1ZTZjY2M2YzU3
NzhjODQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0R0wuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldl
YkdMQ29udGV4dE9iamVjdC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIEFic3RyYWN0U2xvdFZpc2l0b3I7CkBAIC03MSw3ICs3Miw4IEBAIHB1YmxpYzoK
ICAgICBXZWJHTEJ1ZmZlciogZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4g
bV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0RWxlbWVudEFy
cmF5QnVmZmVyKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBXZWJHTEJ1ZmZlciopOwogCi0g
ICAgVmVydGV4QXR0cmliU3RhdGUmIGdldFZlcnRleEF0dHJpYlN0YXRlKGludCBpbmRleCkgeyBy
ZXR1cm4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07IH0KKyAgICB2b2lkIHNldFZlcnRleEF0
dHJpYkVuYWJsZWQoaW50IGluZGV4LCBib29sIGZsYWcpOworICAgIGNvbnN0IFZlcnRleEF0dHJp
YlN0YXRlJiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVydGV4
QXR0cmliU3RhdGVbaW5kZXhdOyB9CiAgICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShjb25z
dCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR0NHTHVpbnQsIEdDR0xzaXplaSwgR0NHTGludCwgR0NH
TGVudW0sIEdDR0xib29sZWFuLCBHQ0dMc2l6ZWksIEdDR0xpbnRwdHIsIGJvb2wsIFdlYkdMQnVm
ZmVyKik7CiAgICAgdm9pZCB1bmJpbmRCdWZmZXIoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYs
IFdlYkdMQnVmZmVyJik7CiAKQEAgLTc5LDE0ICs4MSwxOSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBKU0M6
OkFic3RyYWN0U2xvdFZpc2l0b3ImKTsKIAorICAgIGJvb2wgYXJlQWxsRW5hYmxlZEF0dHJpYkJ1
ZmZlcnNCb3VuZCgpOwogcHJvdGVjdGVkOgogICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVj
dEltcGwoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdMKiwgUGxh
dGZvcm1HTE9iamVjdCkgb3ZlcnJpZGUgPSAwOworI2lmICFVU0UoQU5HTEUpCisgICAgdm9pZCB1
cGRhdGVWZXJ0ZXhBdHRyaWIwKCk7CisjZW5kaWYKIAogICAgIFR5cGUgbV90eXBlOwogICAgIGJv
b2wgbV9oYXNFdmVyQmVlbkJvdW5kIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+
IG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXI7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYlN0YXRl
PiBtX3ZlcnRleEF0dHJpYlN0YXRlOworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9hbGxFbmFi
bGVkQXR0cmliQnVmZmVyc0JvdW5kQ2FjaGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMjkwM2MxOGM1MjYwNTNiNTgzZGEwZTFiZDYyNDE2NTQzZDlhNjEzYS4uNDc1YWY3
YzMzMGE4N2JjYzQxY2E5NjUwNDdjMWUyMjhjMDI4MmExMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDIxLTA5LTA4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5
LW9iamVjdC5odG1sIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjMzNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1Nzc0NTQ2PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Qgd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5LW9iamVjdC5odG1s
IGV4cGxpY2l0bHkKKyAgICAgICAgdW50aWwgMi4wLnkgc3VpdGUgaXMgcnVuIGJ5IGRlZmF1bHQu
IFNhbWUgZm9yIDEuMC54LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9kcmF3RWxlbWVudHMtZW1wdHktdmVydGV4LWRhdGEtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3ZlcnRleEF0dHJpYlBvaW50ZXIt
d2l0aC1iYWQtb2Zmc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgQWRkIGNvbnNvbGUgbG9ncyBm
b3IgdGhlIGFkZGVkIGVycm9ycy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
Rm9yIGNvbnNpc3RlbmN5LCByZW1vdmUgYWxsIHNraXBzIGZvciB2ZXJ0ZXgtYXJyYXktb2JqZWN0
IHRlc3RzLgorICAgICAgICBUaGV5IHNob3VsZCBub3cgd29yay4KKwogMjAyMS0wOS0wNyAgRXJp
YyBIdXRjaGlzb24gIDxlaHV0Y2hpc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQmlnU3VyIHdr
MiBEZWJ1ZyB4ODZdIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsveC1mcmFtZS1vcHRpb25z
Lmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODNiOWE4NGM3
NmY2OTdiMzQ2MTNkZTliM2M3NDc0OGI3NTcwNjk3Ny4uNzBiZjA1ZDk3Y2JiNzliNWI0NzAxNjUx
MDM0MjcxYWY3ZGNhMzE2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNjkxLDYgKzM2OTEsOCBA
QCB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1sIFsg
UGFzcyBdCiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3RleHR1cmUtY29y
bmVyLWNhc2UtdmlkZW9zLmh0bWwgWyBQYXNzIF0KIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2ds
c2wvbWlzYy9mcmFnY29sb3ItZnJhZ2RhdGEtaW52YXJpYW50Lmh0bWwgWyBQYXNzIF0KIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnN0YW50cy1hbmQtcHJvcGVydGllcy0yLmh0
bWwgWyBQYXNzIF0KK3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi92ZXJ0ZXhfYXJyYXlzL3ZlcnRl
eC1hcnJheS1vYmplY3QuaHRtbCBbIFBhc3MgXQord2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvZXh0
ZW5zaW9ucy9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sIFsgUGFzcyBdCiAKICMgV2ViR0wg
MS4wLjMgYW5kIDIuMC4wIHRlc3RzIHdoZXJlIGJlaGF2aW9yIGlzIG9ic29sZXRlIGFuZCBXZWJL
aXQgY29udGFpbnMgaW1wbGVtZW50YXRpb24KICMgYW5kIHRlc3RzIGZvciB0aGUgbmV3IGJlaGF2
aW9yLiBTaG91bGQgYmUgcmVtb3ZlZCBvbmNlIDEuMC4zIGFuZCAyLjAuMCBhcmUgcmV0aXJlZC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdFbGVtZW50cy1l
bXB0eS12ZXJ0ZXgtZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9kcmF3RWxlbWVudHMtZW1wdHktdmVydGV4LWRhdGEtZXhwZWN0ZWQudHh0CmluZGV4IDI4
OWU3ZmQ2NDgyM2Y5MDI2ZTRlNzY0Yjg2NGFlNmNlZTBhOTMzNTMuLmNkMzY0Mjg3ZmU1NDhjODBi
NzVmYmIzNzk0YTI4MGRhYTQ3ZTAxYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2RyYXdFbGVtZW50cy1lbXB0eS12ZXJ0ZXgtZGF0YS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd0VsZW1lbnRzLWVtcHR5LXZlcnRl
eC1kYXRhLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFdlYkdM
OiBJTlZBTElEX09QRVJBVElPTjogZHJhd0VsZW1lbnRzOiBubyBidWZmZXIgaXMgYm91bmQgdG8g
ZW5hYmxlZCBhdHRyaWJ1dGUKIFBBU1M6IFVuYWJsZSB0byBkcmF3IHdpdGggaW52YWxpZCB2ZXJ0
ZXhBdHRyaWJBcnJheTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L3ZlcnRleEF0dHJpYlBvaW50ZXItd2l0aC1iYWQtb2Zmc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3ZlcnRleEF0dHJpYlBvaW50ZXItd2l0aC1iYWQtb2Zm
c2V0LWV4cGVjdGVkLnR4dAppbmRleCAzMGM0M2EyZDYyOGM4YzEwYjNhNDY1ZmQ2M2Q1ZmYzY2Rk
M2JhNjRkLi4wNWJjNzU4ZDY0YjdkNWRkZDhlNzQ4MTA0MGYyZmE2MmU2ZjQyY2E1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC92ZXJ0ZXhBdHRyaWJQb2ludGVyLXdp
dGgtYmFkLW9mZnNldC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvdmVydGV4QXR0cmliUG9pbnRlci13aXRoLWJhZC1vZmZzZXQtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsNCBAQAogQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9WQUxVRTogdmVy
dGV4QXR0cmliUG9pbnRlcjogYmFkIG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9PUEVSQVRJT046IGRyYXdBcnJheXM6IG5vIGJ1ZmZlciBpcyBib3VuZCB0byBlbmFibGVk
IGF0dHJpYnV0ZQogUEFTUzogdmVydGV4QXR0cmliUG9pbnRlciBzaG91bGQgaGF2ZSBhbiBlcnJv
ci4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkYjE0
YjNkODkzYjc3YmFlYWQwYmEzNDExZTQxZjg5MzVlY2E2YjU4Li5hYmQ3ZDk5ODg3ZDA5YjI1OTll
NDg3Y2ZiYjMxYzkxODZlN2VkNTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzIwMSw3ICszMjAxLDYgQEAgd2Via2l0Lm9yZy9iLzIwNzg1OCB3ZWJn
bC93ZWJnbC1ib3JkZXIuaHRtbCBbIFBhc3MgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8yMDc4NTggd2ViZ2wvd2ViZ2wtYm94LXNoYWRvdy5odG1sIFsgUGFzcyBGYWls
dXJlIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNzg1OCBmYXN0L2NhbnZhcy93
ZWJnbC91bmluaXRpYWxpemVkLXRlc3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvMjA3ODU4IGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWZsb2F0LWxpbmVhci5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDc4NTggZmFzdC9jYW52YXMvd2ViZ2wv
b2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvMjA3ODU4IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtdmlkZW8uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA3ODU4IHdlYmds
LzEuMC4zL2NvbmZvcm1hbmNlL2NvbnRleHQvY29udGV4dC1sb3N0LXJlc3RvcmVkLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNzg1OCB3ZWJnbC8xLjAuMy9jb25mb3JtYW5j
ZS9nbHNsL21pc2Mvc2hhZGVyLXN0cnVjdC1zY29wZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2E0YTE2NmJiZjY3
YzAzN2I3MDBiNzkzODcwZTZmM2ExZDEyN2JjNS4uNjAzNjI2NGZlMTA0YjIwMGI4NjZmMzU3ZGUz
NTZmNTEzZDUwZDUyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTQwNCw5ICs0MDQsNiBAQCB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucyBbIFNraXAgXQogIyBTZW5kaW5nIHRoZSBtb3VzZSBkb3duIGV2ZW50IHRvIHRoZSBzY3Jv
bGxiYXIgc3RhcnRzIGEgbmVzdGVkIHJ1biBsb29wIHdoaWNoIGNhdXNlcyBhIGhhbmcuCiBmYXN0
L2V2ZW50cy9tb3VzZWRvd24taW4tc3ViZnJhbWUtc2Nyb2xsYmFyLmh0bWwgWyBTa2lwIF0KIAot
d2Via2l0Lm9yZy9iLzk2ODI4IGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2Jq
ZWN0Lmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi85NjgyOCB3ZWJnbC8xLjAuMy9jb25mb3Jt
YW5jZS9leHRlbnNpb25zL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBTa2lwIF0KLQog
aHR0cC90ZXN0cy9taXNjL3dpbGxDYWNoZVJlc3BvbnNlLWRlbGVnYXRlLWNhbGxiYWNrLmh0bWwg
WyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC1ub3Bhc3N3
b3JkLmh0bWwgWyBGYWlsdXJlIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437627</attachid>
            <date>2021-09-08 07:52:16 -0700</date>
            <delta_ts>2021-09-08 13:08:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223360-20210908175214.patch</filename>
            <type>text/plain</type>
            <size>23831</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBkNmU1NDY3ZDlkMjIz
N2NlMDY4Nzc5ZTc4MzAyYzI2OTc1YWEyMy4uNTRhZDA4NTU2MzQ3ZjkwOGM0Yjc5MzE2ODQ5Njli
YzE4Zjc4ZDdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA5LTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5LW9iamVjdC5odG1sIGZhaWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzNjAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1Nzc0NTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGV0aW5nIGEgYnVmZmVyIHdpbGwgcmVtb3Zl
IHRoZSBidWZmZXIgZnJvbSBjdXJyZW50bHkgYWN0aXZlCisgICAgICAgIHZlcnRleCBhcnJheSBi
dWZmZXIgYmluZGluZ3MuIFRoaXMgd29ya2VkLgorICAgICAgICBEcmF3aW5nIHdpdGggYSB2ZXJ0
ZXggYXJyYXkgb2JqZWN0IHRoYXQgaGFzIGVuYWJsZWQgaW5kZXhlcworICAgICAgICBidXQgbWlz
c2luZyBidWZmZXJzIGZvciB0aG9zZSBpbmRleGVzIHNob3VsZCBmYWlsLiBUaGlzCisgICAgICAg
IFdlYkdMIHNwZWNpZmljIGNvbnN0cmFpbnQgaXMgbm90IGNoZWNrZWQgYnkgQU5HTEUuIEFkZCB0
aGlzIGNoZWNrIHRvCisgICAgICAgIFdlYkNvcmUuCisKKyAgICAgICAgRml4ZWQgdGVzdHM6Cisg
ICAgICAgIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvb2VzLXZlcnRleC1hcnJh
eS1vYmplY3QuaHRtbAorICAgICAgICB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdmVydGV4X2Fy
cmF5cy92ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkcmF3UmFuZ2VFbGVtZW50cyk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNhYmxlVmVydGV4
QXR0cmliQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dmFsaWRhdGVWZXJ0ZXhBcnJheU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2lu
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRW
ZXJ0ZXhBdHRyaWIwKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmRyYXdBcnJheXNJbnN0YW5jZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzSW5zdGFuY2VkKToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpz
ZXRWZXJ0ZXhBdHRyaWJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjp1cGRhdGVWZXJ0ZXhBdHRyaWIwKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjphcmVBbGxFbmFibGVkQXR0cmliQnVmZmVyc0Jv
dW5kKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OmdldFZlcnRl
eEF0dHJpYlN0YXRlKToKKyAgICAgICAgTWFrZSBWZXJ0ZXhBdHRyaWJTdGF0ZSYgYSBjb25zdCBz
byB0aGF0IHdlIGNhbiBtYWludGFpbiBjb25maWRlbmNlCisgICAgICAgIHRoYXQgdGhlIGNhY2hl
ZCB2YWx1ZSBvZiAiYWxsIGVuYWJsZWQgYXR0cmliIGJ1ZmZlcnMgYXJlIGJvdW5kIgorICAgICAg
ICBpcyBtYWludGFpbmVkLCBlLmcuIHRoYXQgdGhlIGNhbGxlcnMgY2Fubm90IG1vZGlmeSBlbmFi
bGVkIG9yIGJvdW5kCisgICAgICAgIGJ1ZmZlciBzdGF0dXMuCisKIDIwMjEtMDktMDggIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRkIHN1cHBv
cnQgZm9yIGlubGluZSBib3ggaW5rIG92ZXJmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGJkZGIzMGExYTU1
YWJhMWU2NTZlMGM2MzdlZTY2NjRhNTYwN2EyZWMuLjQ3ZGZiN2MxYWU1NjQxZGVkODY3YTIyNmFl
ODczOWRkZmNjMDFjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yMjMsNiArMjIzLDEwIEBAIGxvbmcgbG9u
ZyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnQ2NFBhcmFtZXRlcihHQ0dMZW51bSBwbmFt
ZSkKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlP
YmplY3RzKCkKIHsKKyNpZiAhVVNFKEFOR0xFKQorICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgp
KQorICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOworI2VuZGlmCiAgICAgbV9kZWZhdWx0VmVy
dGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdl
YkdMVmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OkRlZmF1bHQpOwogICAgIGFkZENvbnRleHRPYmpl
Y3QoKm1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKICNpZiBVU0UoT1BFTkdMX0VTKQpAQCAt
MjMwLDEwICsyMzQsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVW
ZXJ0ZXhBcnJheU9iamVjdHMoKQogI2Vsc2UKICAgICBiaW5kVmVydGV4QXJyYXkobnVsbHB0cik7
IC8vIFRoZSBkZWZhdWx0IFZBTyB3YXMgcmVtb3ZlZCBpbiBPcGVuR0wgMy4zIGJ1dCBub3QgZnJv
bSBXZWJHTCAyOyBiaW5kIHRoZSBkZWZhdWx0IGZvciBXZWJHTCB0byB1c2UuCiAjZW5kaWYKLSNp
ZiAhVVNFKEFOR0xFKQotICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpKQotICAgICAgICBpbml0
VmVydGV4QXR0cmliMCgpOwotI2VuZGlmCisKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojppbml0aWFsaXplU2hhZGVyRXh0ZW5zaW9ucygpCkBAIC0xNzk1LDcgKzE3OTYsOCBAQCB2
b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRyYXdSYW5nZUVsZW1lbnRzKEdDR0xlbnVtIG1v
ZGUsIEdDR0x1aW50IHN0YXJ0LCBHQwogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkpCiAgICAgICAgIHJldHVybjsKLQorICAgIGlmICghdmFsaWRhdGVWZXJ0ZXhBcnJheU9iamVj
dCgiZHJhd1JhbmdlRWxlbWVudHMiKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+
ZHJhd1JhbmdlRWxlbWVudHMobW9kZSwgc3RhcnQsIGVuZCwgY291bnQsIHR5cGUsIG9mZnNldCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCmluZGV4IDRhNTI3NjYwM2ZiOWUxNmZmMGIyYmQ5YWNjYjQ1MzY4MGQ1YTY0
NDkuLjcwMzE4ZGNkZDQzNGJjODkwZTM4NmNmMzY4OGY5YmY3MjcyNzhjOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApA
QCAtMTI0LDEzICsxMjQsMTMgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQoQ2FudmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhcGhpY3NDb24KIAogdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMoKQogewotICAg
IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6
Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsK
LSAgICBhZGRDb250ZXh0T2JqZWN0KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7Ci0gICAg
bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAj
aWYgIVVTRShBTkdMRSkKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5p
dFZlcnRleEF0dHJpYjAoKTsKICNlbmRpZgorICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2JqZWN0KCptX2Rl
ZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0g
bV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiB9CiAKIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwCmluZGV4IDY0NjdkMjZhNDQyNDYzNzhjY2I2NzQyNDYyYTFhNmI2MmFlOGZiNDUuLjM1
NzE0MGEyYmU5NTI4ZWI4MGY3OWFhY2M2MDM5OTRiYjYyYzA5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CkBAIC0yMzM4LDEwICsyMzM4LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
aXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0NHTHVpbnQgaW5kZXgpCiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCAiZGlzYWJsZVZlcnRl
eEF0dHJpYkFycmF5IiwgImluZGV4IG91dCBvZiByYW5nZSIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotCi0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZlcnRleEF0dHJpYlN0YXRl
JiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0cmliU3RhdGUo
aW5kZXgpOwotICAgIHN0YXRlLmVuYWJsZWQgPSBmYWxzZTsKLQorICAgIG1fYm91bmRWZXJ0ZXhB
cnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliRW5hYmxlZChpbmRleCwgZmFsc2UpOwogI2lmICFV
U0UoQU5HTEUpCiAgICAgaWYgKGluZGV4ID4gMCB8fCBpc0dMRVMyQ29tcGxpYW50KCkpCiAjZW5k
aWYKQEAgLTIzNjAsNiArMjM1NywxNSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZhbGlkYXRlTlBPVFRleHR1cmVMZXZlbChHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaQogfQogI2Vu
ZGlmCiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVWZXJ0ZXhBcnJh
eU9iamVjdChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpCit7CisgICAgaWYgKCFtX2JvdW5kVmVy
dGV4QXJyYXlPYmplY3QtPmFyZUFsbEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmQoKSkgeworICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJ
T04sIGZ1bmN0aW9uTmFtZSwgIm5vIGJ1ZmZlciBpcyBib3VuZCB0byBlbmFibGVkIGF0dHJpYnV0
ZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
CiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlRWxlbWVudEFycmF5U2l6
ZShHQ0dMc2l6ZWkgY291bnQsIEdDR0xlbnVtIHR5cGUsIEdDR0xpbnRwdHIgb2Zmc2V0KQogewog
ICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gZWxlbWVudEFycmF5QnVmZmVyID0gbV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKTsKQEAgLTI3MDEsNiArMjcwNyw4
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0FycmF5cyhHQ0dMZW51bSBt
b2RlLCBHQ0dMaW50IGZpcnN0LCBHQ0dMc2l6CiAgICAgaWYgKCF2YWxpZGF0ZURyYXdBcnJheXMo
ImRyYXdBcnJheXMiLCBtb2RlLCBmaXJzdCwgY291bnQsIDApKQogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKKyAgICBpZiAoIXZhbGlkYXRlVmVydGV4QXJyYXlPYmplY3QoImRyYXdBcnJheXMiKSkK
KyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fY3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3JhbURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50
UHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKQEAgLTI3NjQsNiArMjc3Miw4IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0VsZW1lbnRzKEdDR0xlbnVtIG1vZGUsIEdDR0xz
aXplaSBjb3VudCwgR0NHCiAgICAgaWYgKCF2YWxpZGF0ZURyYXdFbGVtZW50cygiZHJhd0VsZW1l
bnRzIiwgbW9kZSwgY291bnQsIHR5cGUsIG9mZnNldCwgbnVtRWxlbWVudHMsIDApKQogICAgICAg
ICByZXR1cm47CiAjZW5kaWYKKyAgICBpZiAoIXZhbGlkYXRlVmVydGV4QXJyYXlPYmplY3QoImRy
YXdFbGVtZW50cyIpKQorICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9jdXJyZW50UHJvZ3Jh
bSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzV2ViR0xQcm9ncmFtRGlzYWJsZWQoKnRo
aXMsICptX2N1cnJlbnRQcm9ncmFtKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjgzMiwxMCArMjg0
Miw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoR0NHTHVpbnQgaW5kZXgpCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCAiZW5hYmxlVmVydGV4QXR0cmliQXJyYXkiLCAiaW5k
ZXggb3V0IG9mIHJhbmdlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6VmVydGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbmRleCk7Ci0gICAgc3RhdGUu
ZW5hYmxlZCA9IHRydWU7Ci0KKyAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnNldFZlcnRl
eEF0dHJpYkVuYWJsZWQoaW5kZXgsIHRydWUpOwogICAgIG1fY29udGV4dC0+ZW5hYmxlVmVydGV4
QXR0cmliQXJyYXkoaW5kZXgpOwogfQogCkBAIC02MzM1LDcgKzYzNDIsNiBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0NHTHVpbnQgaW5kZXgs
IEdDR0xpbnQgc2l6ZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEdDR0xzaXplaSBieXRl
c1BlckVsZW1lbnQgPSBzaXplICogdHlwZVNpemU7Ci0KICAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnNldFZlcnRleEF0dHJpYlN0YXRlKGxvY2tlciwgaW5kZXgsIGJ5dGVzUGVyRWxlbWVu
dCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0aWNfY2FzdDxHQ0dMaW50cHRy
PihvZmZzZXQpLCBmYWxzZSwgbV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKICAgICBtX2NvbnRl
eHQtPnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0
cmlkZSwgc3RhdGljX2Nhc3Q8R0NHTGludHB0cj4ob2Zmc2V0KSk7CiB9CkBAIC03NTMzLDEzICs3
NTM5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliZnZJ
bXBsKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHCiAjaWYgIVVTRShBTkdMRSkKIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aW5pdFZlcnRleEF0dHJpYjAoKQogewotICAgIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX2Jv
dW5kVmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKDApOwotICAgIAogICAg
IG1fdmVydGV4QXR0cmliMEJ1ZmZlciA9IGNyZWF0ZUJ1ZmZlcigpOwogICAgIG1fY29udGV4dC0+
YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHRHTDo6QVJSQVlfQlVGRkVSLCBtX3ZlcnRleEF0dHJp
YjBCdWZmZXItPm9iamVjdCgpKTsKICAgICBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhpY3ND
b250ZXh0R0w6OkFSUkFZX0JVRkZFUiwgMCwgR3JhcGhpY3NDb250ZXh0R0w6OkRZTkFNSUNfRFJB
Vyk7CiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDQsIEdyYXBoaWNzQ29u
dGV4dEdMOjpGTE9BVCwgZmFsc2UsIDAsIDApOwotICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBt
X3ZlcnRleEF0dHJpYjBCdWZmZXI7CiAgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNz
Q29udGV4dEdMOjpBUlJBWV9CVUZGRVIsIDApOwogICAgIG1fY29udGV4dC0+ZW5hYmxlVmVydGV4
QXR0cmliQXJyYXkoMCk7CiAgICAgbV92ZXJ0ZXhBdHRyaWIwQnVmZmVyU2l6ZSA9IDA7CkBAIC03
OTMyLDYgKzc5MzUsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJh
eXNJbnN0YW5jZWQoR0NHTGVudW0gbW9kZSwgR0NHTGludCBmaXJzdAogICAgIGlmICghdmFsaWRh
dGVEcmF3QXJyYXlzKCJkcmF3QXJyYXlzSW5zdGFuY2VkIiwgbW9kZSwgZmlyc3QsIGNvdW50LCBw
cmltY291bnQpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKKyAgICBp
ZiAoIXZhbGlkYXRlVmVydGV4QXJyYXlPYmplY3QoImRyYXdBcnJheXNJbnN0YW5jZWQiKSkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoQ2xlYXJDYWxsZXJEcmF3T3JD
bGVhcik7CiAKQEAgLTc5NzEsNiArNzk3Niw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xzaXplaSBjCiAg
ICAgaWYgKCF2YWxpZGF0ZURyYXdFbGVtZW50cygiZHJhd0VsZW1lbnRzSW5zdGFuY2VkIiwgbW9k
ZSwgY291bnQsIHR5cGUsIG9mZnNldCwgbnVtRWxlbWVudHMsIHByaW1jb3VudCkpCiAgICAgICAg
IHJldHVybjsKICNlbmRpZiAvLyAhVVNFKEFOR0xFKQorICAgIGlmICghdmFsaWRhdGVWZXJ0ZXhB
cnJheU9iamVjdCgiZHJhd0VsZW1lbnRzSW5zdGFuY2VkIikpCisgICAgICAgIHJldHVybjsKIAog
ICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2FsbGVyRHJhd09yQ2xlYXIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgKaW5kZXggNGQ5MzRkZDkyMWQ4NzYyY2IwZmU3MGM0NDRjODAyNjk3Y2Y5NWY4ZC4uZWM3YTll
NWIxYWNmZTRhNGEzNWJmYjIyY2U4Y2IxNzk2ZTQ1NDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNTEy
LDYgKzUxMiw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIHZhbGlkYXRlRHJhd0VsZW1lbnRzKGNv
bnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVudW0gbW9kZSwgR0NHTHNpemVpIGNvdW50LCBH
Q0dMZW51bSB0eXBlLCBsb25nIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCYgbnVtRWxlbWVudHMsIEdD
R0xzaXplaSBwcmltY291bnQpOwogICAgIGJvb2wgdmFsaWRhdGVOUE9UVGV4dHVyZUxldmVsKEdD
R0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBsZXZlbCwgY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lKTsKICNlbmRpZgorICAgIGJvb2wgdmFsaWRhdGVWZXJ0ZXhBcnJheU9i
amVjdChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpOwogCiAgICAgLy8gQWRkcyBhIGNvbXByZXNz
ZWQgdGV4dHVyZSBmb3JtYXQuCiAgICAgdm9pZCBhZGRDb21wcmVzc2VkVGV4dHVyZUZvcm1hdChH
Q0dMZW51bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKaW5kZXggMWVkMDVlOWJmMmI2NjhjOGU0YTRlMjM0
NmNkNDA3NTlmYTU0MDI3NS4uMzJiZTBlYTc1YmRmYmExYzVlNDNlMzhjM2RjYjU3MWE3ODE1Nzdl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAtMzksNiArMzksOSBAQCBXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZQogICAgICwgbV90eXBlKHR5cGUpCiB7CiAgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5y
ZXNpemUoY29udGV4dC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworI2lmICFVU0UoQU5HTEUpCisg
ICAgdXBkYXRlVmVydGV4QXR0cmliMCgpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihjb25zdCBBYnN0cmFjdExvY2tl
ciYgbG9ja2VyLCBXZWJHTEJ1ZmZlciogYnVmZmVyKQpAQCAtNTAsMjQgKzUzLDM2IEBAIHZvaWQg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihjb25zdCBB
YnN0cmFjdExvY2tlciYgbG9jCiAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9IGJ1ZmZl
cjsKICAgICAKIH0KK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0
dHJpYkVuYWJsZWQoaW50IGluZGV4LCBib29sIGZsYWcpCit7CisgICAgYXV0byYgc3RhdGUgPSBt
X3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XTsKKyAgICBpZiAoc3RhdGUuZW5hYmxlZCA9PSBmbGFn
KQorICAgICAgICByZXR1cm47CisgICAgc3RhdGUuZW5hYmxlZCA9IGZsYWc7CisgICAgaWYgKCFz
dGF0ZS52YWxpZGF0ZUJpbmRpbmcoKSkKKyAgICAgICAgbV9hbGxFbmFibGVkQXR0cmliQnVmZmVy
c0JvdW5kQ2FjaGUgPSBmYWxzZTsKKyAgICBlbHNlCisgICAgICAgIG1fYWxsRW5hYmxlZEF0dHJp
YkJ1ZmZlcnNCb3VuZENhY2hlLnJlc2V0KCk7Cit9CiAKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2Nr
ZXIsIEdDR0x1aW50IGluZGV4LCBHQ0dMc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQ0dMaW50IHNp
emUsIEdDR0xlbnVtIHR5cGUsIEdDR0xib29sZWFuIG5vcm1hbGl6ZWQsIEdDR0xzaXplaSBzdHJp
ZGUsIEdDR0xpbnRwdHIgb2Zmc2V0LCBib29sIGlzSW50ZWdlciwgV2ViR0xCdWZmZXIqIGJ1ZmZl
cikKIHsKLSAgICBHQ0dMc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0gc3RyaWRlID8gc3RyaWRlIDog
Ynl0ZXNQZXJFbGVtZW50OwotICAgIAogICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJT
dGF0ZVtpbmRleF07Ci0gICAgCisgICAgYm9vbCBiaW5kaW5nV2FzVmFsaWQgPSBzdGF0ZS52YWxp
ZGF0ZUJpbmRpbmcoKTsKICAgICBpZiAoYnVmZmVyKQogICAgICAgICBidWZmZXItPm9uQXR0YWNo
ZWQoKTsKICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVy
QmluZGluZy0+b25EZXRhY2hlZChsb2NrZXIsIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0R0wo
KSk7Ci0gICAgCiAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IGJ1ZmZlcjsKKyAgICBpZiAoIXN0
YXRlLnZhbGlkYXRlQmluZGluZygpKQorICAgICAgICBtX2FsbEVuYWJsZWRBdHRyaWJCdWZmZXJz
Qm91bmRDYWNoZSA9IGZhbHNlOworICAgIGVsc2UgaWYgKCFiaW5kaW5nV2FzVmFsaWQpCisgICAg
ICAgIG1fYWxsRW5hYmxlZEF0dHJpYkJ1ZmZlcnNCb3VuZENhY2hlLnJlc2V0KCk7CiAgICAgc3Rh
dGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50OwogICAgIHN0YXRlLnNpemUgPSBz
aXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwogICAgIHN0YXRlLm5vcm1hbGl6ZWQgPSBub3Jt
YWxpemVkOwotICAgIHN0YXRlLnN0cmlkZSA9IHZhbGlkYXRlZFN0cmlkZTsKKyAgICBzdGF0ZS5z
dHJpZGUgPSBzdHJpZGUgPyBzdHJpZGUgOiBieXRlc1BlckVsZW1lbnQ7CiAgICAgc3RhdGUub3Jp
Z2luYWxTdHJpZGUgPSBzdHJpZGU7CiAgICAgc3RhdGUub2Zmc2V0ID0gb2Zmc2V0OwogICAgIHN0
YXRlLmlzSW50ZWdlciA9IGlzSW50ZWdlcjsKQEAgLTgwLDI4ICs5NSwzNyBAQCB2b2lkIFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoY29uc3QgQWJzdHJhY3RMb2NrZXIm
IGxvY2tlciwgV2ViRwogICAgICAgICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gbnVsbHB0
cjsKICAgICB9CiAgICAgCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZlcnRleEF0dHJp
YlN0YXRlLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0ZXhBdHRy
aWJTdGF0ZVtpXTsKKyAgICBmb3IgKGF1dG8mIHN0YXRlIDogbV92ZXJ0ZXhBdHRyaWJTdGF0ZSkg
ewogICAgICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSAmYnVmZmVyKSB7CiAgICAgICAg
ICAgICBidWZmZXIub25EZXRhY2hlZChsb2NrZXIsIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0
R0woKSk7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOworICAgICAgICAgICAgaWYgKCFzdGF0ZS52YWxpZGF0ZUJpbmRpbmcoKSkKKyAgICAg
ICAgICAgICAgICBtX2FsbEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZSA9IGZhbHNlOwor
ICAgICAgICB9CisgICAgfQogI2lmICFVU0UoQU5HTEUpCi0gICAgICAgICAgICBpZiAoIWkgJiYg
IWNvbnRleHQoKS0+aXNHTEVTMkNvbXBsaWFudCgpKSB7Ci0gICAgICAgICAgICAgICAgc3RhdGUu
YnVmZmVyQmluZGluZyA9IGNvbnRleHQoKS0+bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOwotICAgICAg
ICAgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmctPm9uQXR0YWNoZWQoKTsKLSAgICAgICAgICAg
ICAgICBzdGF0ZS5ieXRlc1BlckVsZW1lbnQgPSAwOwotICAgICAgICAgICAgICAgIHN0YXRlLnNp
emUgPSA0OwotICAgICAgICAgICAgICAgIHN0YXRlLnR5cGUgPSBHcmFwaGljc0NvbnRleHRHTDo6
RkxPQVQ7Ci0gICAgICAgICAgICAgICAgc3RhdGUubm9ybWFsaXplZCA9IGZhbHNlOwotICAgICAg
ICAgICAgICAgIHN0YXRlLnN0cmlkZSA9IDE2OwotICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdp
bmFsU3RyaWRlID0gMDsKLSAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwotICAgICAg
ICAgICAgfSBlbHNlCisgICAgdXBkYXRlVmVydGV4QXR0cmliMCgpOwogI2VuZGlmCi0gICAgICAg
ICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7Ci0gICAgICAgIH0KK30KKwor
I2lmICFVU0UoQU5HTEUpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1cGRhdGVW
ZXJ0ZXhBdHRyaWIwKCkKK3sKKyAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVb
MF07CisgICAgaWYgKCFzdGF0ZS5idWZmZXJCaW5kaW5nICYmICFjb250ZXh0KCktPmlzR0xFUzJD
b21wbGlhbnQoKSkgeworICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5t
X3ZlcnRleEF0dHJpYjBCdWZmZXI7CisgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmctPm9uQXR0
YWNoZWQoKTsKKyAgICAgICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gMDsKKyAgICAgICAgc3Rh
dGUuc2l6ZSA9IDQ7CisgICAgICAgIHN0YXRlLnR5cGUgPSBHcmFwaGljc0NvbnRleHRHTDo6RkxP
QVQ7CisgICAgICAgIHN0YXRlLm5vcm1hbGl6ZWQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGUuc3Ry
aWRlID0gMTY7CisgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRlID0gMDsKKyAgICAgICAgc3Rh
dGUub2Zmc2V0ID0gMDsKKyAgICAgICAgbV9hbGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kQ2Fj
aGUucmVzZXQoKTsKICAgICB9CiB9CisjZW5kaWYKIAogdm9pZCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQg
ZGl2aXNvcikKIHsKQEAgLTExNSw2ICsxMzksMjAgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZTo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImLAog
ICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qoc3RhdGUuYnVmZmVyQmluZGluZy5nZXQoKSk7
CiB9CiAKK2Jvb2wgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OmFyZUFsbEVuYWJsZWRBdHRy
aWJCdWZmZXJzQm91bmQoKQoreworICAgIGlmICghbV9hbGxFbmFibGVkQXR0cmliQnVmZmVyc0Jv
dW5kQ2FjaGUpIHsKKyAgICAgICAgbV9hbGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kQ2FjaGUg
PSBbJl0geworICAgICAgICAgICAgZm9yIChhdXRvIGNvbnN0JiBzdGF0ZSA6IG1fdmVydGV4QXR0
cmliU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLnZhbGlkYXRlQmluZGluZygp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSgpOworICAgIH0KKyAgICByZXR1cm4gKm1f
YWxsRW5hYmxlZEF0dHJpYkJ1ZmZlcnNCb3VuZENhY2hlOworfQorCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAppbmRleCA0MDc0MjE3OWQ4OTY4MGEwOTUyNjJmYjE4
OWM2YzA5YzQzZTdkYTNjLi5jNjEzOGJiZTY1ZTdkMzkwNGZmYTYzNTVlNmNjYzZjNTc3OGM4NDA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRHTC5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0T2JqZWN0LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgQWJzdHJhY3RTbG90VmlzaXRvcjsKQEAgLTcxLDcgKzcyLDggQEAgcHVibGljOgogICAgIFdl
YkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2JvdW5k
RWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRFbGVtZW50QXJyYXlCdWZm
ZXIoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIFdlYkdMQnVmZmVyKik7CiAKLSAgICBWZXJ0
ZXhBdHRyaWJTdGF0ZSYgZ2V0VmVydGV4QXR0cmliU3RhdGUoaW50IGluZGV4KSB7IHJldHVybiBt
X3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XTsgfQorICAgIHZvaWQgc2V0VmVydGV4QXR0cmliRW5h
YmxlZChpbnQgaW5kZXgsIGJvb2wgZmxhZyk7CisgICAgY29uc3QgVmVydGV4QXR0cmliU3RhdGUm
IGdldFZlcnRleEF0dHJpYlN0YXRlKGludCBpbmRleCkgeyByZXR1cm4gbV92ZXJ0ZXhBdHRyaWJT
dGF0ZVtpbmRleF07IH0KICAgICB2b2lkIHNldFZlcnRleEF0dHJpYlN0YXRlKGNvbnN0IFdURjo6
QWJzdHJhY3RMb2NrZXImLCBHQ0dMdWludCwgR0NHTHNpemVpLCBHQ0dMaW50LCBHQ0dMZW51bSwg
R0NHTGJvb2xlYW4sIEdDR0xzaXplaSwgR0NHTGludHB0ciwgYm9vbCwgV2ViR0xCdWZmZXIqKTsK
ICAgICB2b2lkIHVuYmluZEJ1ZmZlcihjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgV2ViR0xC
dWZmZXImKTsKIApAQCAtNzksMTQgKzgxLDE5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkTWVt
YmVyc1RvT3BhcXVlUm9vdHMoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIEpTQzo6QWJzdHJh
Y3RTbG90VmlzaXRvciYpOwogCisgICAgYm9vbCBhcmVBbGxFbmFibGVkQXR0cmliQnVmZmVyc0Jv
dW5kKCk7CiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOwogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChj
b25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdM
T2JqZWN0KSBvdmVycmlkZSA9IDA7CisjaWYgIVVTRShBTkdMRSkKKyAgICB2b2lkIHVwZGF0ZVZl
cnRleEF0dHJpYjAoKTsKKyNlbmRpZgogCiAgICAgVHlwZSBtX3R5cGU7CiAgICAgYm9vbCBtX2hh
c0V2ZXJCZWVuQm91bmQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gbV9ib3Vu
ZEVsZW1lbnRBcnJheUJ1ZmZlcjsKICAgICBWZWN0b3I8VmVydGV4QXR0cmliU3RhdGU+IG1fdmVy
dGV4QXR0cmliU3RhdGU7CisgICAgc3RkOjpvcHRpb25hbDxib29sPiBtX2FsbEVuYWJsZWRBdHRy
aWJCdWZmZXJzQm91bmRDYWNoZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAyMGY4Yzc0MmVmOTgzNjg1MmEwNmI3OGY0YjkwYTBkOGU4YThmMjFhLi5lMmZkMDMyYWRiMTYx
OTU5ODg3ZDczZmMyMzZlNDFmOThjNzg4ZDRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEt
MDktMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICB3
ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdmVydGV4X2FycmF5cy92ZXJ0ZXgtYXJyYXktb2JqZWN0
Lmh0bWwgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMzM2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU3NzQ1NDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvdmVydGV4X2FycmF5cy92ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgZXhwbGlj
aXRseQorICAgICAgICB1bnRpbCAyLjAueSBzdWl0ZSBpcyBydW4gYnkgZGVmYXVsdC4gU2FtZSBm
b3IgMS4wLnguCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2RyYXdFbGVtZW50cy1lbXB0eS12ZXJ0ZXgtZGF0YS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdmVydGV4QXR0cmliUG9pbnRlci13aXRoLWJh
ZC1vZmZzZXQtZXhwZWN0ZWQudHh0OgorICAgICAgICBBZGQgY29uc29sZSBsb2dzIGZvciB0aGUg
YWRkZWQgZXJyb3JzLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBGb3IgY29u
c2lzdGVuY3ksIHJlbW92ZSBhbGwgc2tpcHMgZm9yIHZlcnRleC1hcnJheS1vYmplY3QgdGVzdHMu
CisgICAgICAgIFRoZXkgc2hvdWxkIG5vdyB3b3JrLgorCiAyMDIxLTA5LTA4ICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbY3NzLXBvc2l0aW9uLXN0
aWNreV0gU3RpY2t5IGNvbnN0cmFpbnRzIGFyZSBjYWxjdWxhdGVkIGluY29ycmVjdGx5IHdoZW4g
c2Nyb2xsaW5nIGNvbnRhaW5lciBoYXMgcGFkZGluZyBhbmQgYm9yZGVycwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMzM5ZDdkNzk0OWJjZDdhMDg0ODc1Yzc0M2FiMDEzODUzNTM0NGE0ZC4uNjM4NWZj
NzJjOWIwNmRlMzJjNTA0NDhkMGQ0NDQ0NjA1MjEzZTQwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zNjg5LDYgKzM2ODksOCBAQCB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9nbHNsL2J1Z3MvY2hh
cmFjdGVyLXNldC5odG1sIFsgUGFzcyBdCiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL3RleHR1cmUtY29ybmVyLWNhc2UtdmlkZW9zLmh0bWwgWyBQYXNzIF0KIHdlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9mcmFnY29sb3ItZnJhZ2RhdGEtaW52YXJpYW50Lmh0
bWwgWyBQYXNzIF0KIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnN0YW50cy1h
bmQtcHJvcGVydGllcy0yLmh0bWwgWyBQYXNzIF0KK3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi92
ZXJ0ZXhfYXJyYXlzL3ZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIFBhc3MgXQord2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sIFsg
UGFzcyBdCiAKICMgV2ViR0wgMS4wLjMgYW5kIDIuMC4wIHRlc3RzIHdoZXJlIGJlaGF2aW9yIGlz
IG9ic29sZXRlIGFuZCBXZWJLaXQgY29udGFpbnMgaW1wbGVtZW50YXRpb24KICMgYW5kIHRlc3Rz
IGZvciB0aGUgbmV3IGJlaGF2aW9yLiBTaG91bGQgYmUgcmVtb3ZlZCBvbmNlIDEuMC4zIGFuZCAy
LjAuMCBhcmUgcmV0aXJlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2RyYXdFbGVtZW50cy1lbXB0eS12ZXJ0ZXgtZGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3RWxlbWVudHMtZW1wdHktdmVydGV4LWRhdGEtZXhw
ZWN0ZWQudHh0CmluZGV4IDI4OWU3ZmQ2NDgyM2Y5MDI2ZTRlNzY0Yjg2NGFlNmNlZTBhOTMzNTMu
LmNkMzY0Mjg3ZmU1NDhjODBiNzVmYmIzNzk0YTI4MGRhYTQ3ZTAxYmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdFbGVtZW50cy1lbXB0eS12ZXJ0ZXgtZGF0
YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd0Vs
ZW1lbnRzLWVtcHR5LXZlcnRleC1kYXRhLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACitDT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogZHJhd0VsZW1lbnRzOiBubyBi
dWZmZXIgaXMgYm91bmQgdG8gZW5hYmxlZCBhdHRyaWJ1dGUKIFBBU1M6IFVuYWJsZSB0byBkcmF3
IHdpdGggaW52YWxpZCB2ZXJ0ZXhBdHRyaWJBcnJheTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3ZlcnRleEF0dHJpYlBvaW50ZXItd2l0aC1iYWQtb2Zmc2V0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3ZlcnRleEF0dHJpYlBv
aW50ZXItd2l0aC1iYWQtb2Zmc2V0LWV4cGVjdGVkLnR4dAppbmRleCAzMGM0M2EyZDYyOGM4YzEw
YjNhNDY1ZmQ2M2Q1ZmYzY2RkM2JhNjRkLi4wNWJjNzU4ZDY0YjdkNWRkZDhlNzQ4MTA0MGYyZmE2
MmU2ZjQyY2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC92ZXJ0
ZXhBdHRyaWJQb2ludGVyLXdpdGgtYmFkLW9mZnNldC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdmVydGV4QXR0cmliUG9pbnRlci13aXRoLWJhZC1vZmZz
ZXQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAogQ09OU09MRSBNRVNTQUdFOiBXZWJHTDog
SU5WQUxJRF9WQUxVRTogdmVydGV4QXR0cmliUG9pbnRlcjogYmFkIG9mZnNldAorQ09OU09MRSBN
RVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IGRyYXdBcnJheXM6IG5vIGJ1ZmZlciBp
cyBib3VuZCB0byBlbmFibGVkIGF0dHJpYnV0ZQogUEFTUzogdmVydGV4QXR0cmliUG9pbnRlciBz
aG91bGQgaGF2ZSBhbiBlcnJvci4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvd2ViZ2wtZHJhd2FycmF5cy1jcmFzaC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWRyYXdhcnJheXMtY3Jhc2gtMi1leHBlY3RlZC50
eHQKaW5kZXggZTY2YmRkMzBkNzY2OTBkZTVjYTAyODQ1NDEyZTY1NzVkYTY3NDc0NS4uNGYxNjkw
MjgyNDRkMzk1MGFiNGE5ZjNmZDcwYTRlNDE0NTgzMTcwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtZHJhd2FycmF5cy1jcmFzaC0yLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1kcmF3YXJyYXlzLWNy
YXNoLTItZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9PUEVSQVRJT046IGRyYXdBcnJheXM6IG5vIGJ1ZmZlciBpcyBib3VuZCB0byBl
bmFibGVkIGF0dHJpYnV0ZQogUEFTUy4gWW91IGRpZG4ndCBjcmFzaC4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkYjE0YjNkODkzYjc3YmFlYWQwYmEz
NDExZTQxZjg5MzVlY2E2YjU4Li5hYmQ3ZDk5ODg3ZDA5YjI1OTllNDg3Y2ZiYjMxYzkxODZlN2Vk
NTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIw
MSw3ICszMjAxLDYgQEAgd2Via2l0Lm9yZy9iLzIwNzg1OCB3ZWJnbC93ZWJnbC1ib3JkZXIuaHRt
bCBbIFBhc3MgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDc4NTgg
d2ViZ2wvd2ViZ2wtYm94LXNoYWRvdy5odG1sIFsgUGFzcyBGYWlsdXJlIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzIwNzg1OCBmYXN0L2NhbnZhcy93ZWJnbC91bmluaXRpYWxpemVk
LXRlc3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA3ODU4IGZhc3QvY2Fu
dmFzL3dlYmdsL29lcy10ZXh0dXJlLWZsb2F0LWxpbmVhci5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8yMDc4NTggZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1v
YmplY3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA3ODU4IGZhc3QvY2Fu
dmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA3ODU4IHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNl
L2NvbnRleHQvY29udGV4dC1sb3N0LXJlc3RvcmVkLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzIwNzg1OCB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9nbHNsL21pc2Mvc2hhZGVy
LXN0cnVjdC1zY29wZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2E0YTE2NmJiZjY3YzAzN2I3MDBiNzkzODcwZTZm
M2ExZDEyN2JjNS4uNjAzNjI2NGZlMTA0YjIwMGI4NjZmMzU3ZGUzNTZmNTEzZDUwZDUyMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQwNCw5ICs0MDQs
NiBAQCB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucyBbIFNraXAgXQogIyBT
ZW5kaW5nIHRoZSBtb3VzZSBkb3duIGV2ZW50IHRvIHRoZSBzY3JvbGxiYXIgc3RhcnRzIGEgbmVz
dGVkIHJ1biBsb29wIHdoaWNoIGNhdXNlcyBhIGhhbmcuCiBmYXN0L2V2ZW50cy9tb3VzZWRvd24t
aW4tc3ViZnJhbWUtc2Nyb2xsYmFyLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzk2ODI4
IGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBTa2lwIF0K
LXdlYmtpdC5vcmcvYi85NjgyOCB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9leHRlbnNpb25zL29l
cy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBTa2lwIF0KLQogaHR0cC90ZXN0cy9taXNjL3dp
bGxDYWNoZVJlc3BvbnNlLWRlbGVnYXRlLWNhbGxiYWNrLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC1ub3Bhc3N3b3JkLmh0bWwgWyBGYWlsdXJl
IF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437659</attachid>
            <date>2021-09-08 13:08:41 -0700</date>
            <delta_ts>2021-09-08 22:28:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223360-20210908230839.patch</filename>
            <type>text/plain</type>
            <size>24013</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBkNmU1NDY3ZDlkMjIz
N2NlMDY4Nzc5ZTc4MzAyYzI2OTc1YWEyMy4uMTM4YWZiODc3NjQwNTdiMTZlZjNhOTk2YWNjNjg1
MzZmZDEwMTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTA5LTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5LW9iamVjdC5odG1sIGZhaWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMzNjAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1Nzc0NTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IERlYW4gSmFja3Nvbi4KKworICAgICAgICBEZWxldGluZyBhIGJ1ZmZlciB3aWxsIHJlbW92ZSB0
aGUgYnVmZmVyIGZyb20gY3VycmVudGx5IGFjdGl2ZQorICAgICAgICB2ZXJ0ZXggYXJyYXkgYnVm
ZmVyIGJpbmRpbmdzLiBUaGlzIHdvcmtlZC4KKyAgICAgICAgRHJhd2luZyB3aXRoIGEgdmVydGV4
IGFycmF5IG9iamVjdCB0aGF0IGhhcyBlbmFibGVkIGluZGV4ZXMKKyAgICAgICAgYnV0IG1pc3Np
bmcgYnVmZmVycyBmb3IgdGhvc2UgaW5kZXhlcyBzaG91bGQgZmFpbC4gVGhpcworICAgICAgICBX
ZWJHTCBzcGVjaWZpYyBjb25zdHJhaW50IGlzIGNoZWNrZWQgYnkgQU5HTEUuIEhvd2V2ZXIsIFdl
YkNvcmUKKyAgICAgICAgcmVsaWVzIG9uIGJ1ZmZlciBkZWxldGlvbiB0byB1cGRhdGUgdGhlIEFO
R0xFIFZBTy4gVGhlIGRlbGV0aW9uCisgICAgICAgIGRvZXMgbm90IGhhcHBlbiBkdWUgdG8gdGhl
IGJ1ZmZlcnMgaW4gdGhlIHRlc3QgYmVpbmcgYm91bmQgdG8KKyAgICAgICAgbXVsdGlwbGUgVkFP
cy4KKyAgICAgICAgQWRkIHRoaXMgY2hlY2sgYWxzbyB0byBXZWJDb3JlLgorCisgICAgICAgIEZp
eGVkIHRlc3RzOgorICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9leHRlbnNpb25zL29l
cy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5LW9iamVjdC5odG1sCisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZHJhd1JhbmdlRWxlbWVu
dHMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhB
cnJheU9iamVjdHMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlVmVydGV4QXJyYXlPYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZHJhd0FycmF5cyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkcmF3RWxlbWVudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVy
dGV4QXR0cmliUG9pbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjppbml0VmVydGV4QXR0cmliMCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpkcmF3QXJyYXlzSW5zdGFuY2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50c0luc3RhbmNlZCk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0
VmVydGV4QXR0cmliRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dXBkYXRlVmVydGV4QXR0cmliMCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6YXJlQWxsRW5hYmxlZEF0
dHJpYkJ1ZmZlcnNCb3VuZCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpnZXRWZXJ0ZXhBdHRyaWJTdGF0ZSk6CisgICAgICAgIE1ha2UgVmVydGV4QXR0cmliU3Rh
dGUmIGEgY29uc3Qgc28gdGhhdCB3ZSBjYW4gbWFpbnRhaW4gY29uZmlkZW5jZQorICAgICAgICB0
aGF0IHRoZSBjYWNoZWQgdmFsdWUgb2YgImFsbCBlbmFibGVkIGF0dHJpYiBidWZmZXJzIGFyZSBi
b3VuZCIKKyAgICAgICAgaXMgbWFpbnRhaW5lZCwgZS5nLiB0aGF0IHRoZSBjYWxsZXJzIGNhbm5v
dCBtb2RpZnkgZW5hYmxlZCBvciBib3VuZAorICAgICAgICBidWZmZXIgc3RhdHVzLgorCiAyMDIx
LTA5LTA4ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJ
RkNdIEFkZCBzdXBwb3J0IGZvciBpbmxpbmUgYm94IGluayBvdmVyZmxvdwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRl
eCBiZGRiMzBhMWE1NWFiYTFlNjU2ZTBjNjM3ZWU2NjY0YTU2MDdhMmVjLi40N2RmYjdjMWFlNTY0
MWRlZDg2N2EyMjZhZTg3MzlkZGZjYzAxY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjIzLDYgKzIyMywx
MCBAQCBsb25nIGxvbmcgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50NjRQYXJhbWV0ZXIo
R0NHTGVudW0gcG5hbWUpCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6
ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7CisjaWYgIVVTRShBTkdMRSkKKyAgICBpZiAoIWlzR0xF
UzJDb21wbGlhbnQoKSkKKyAgICAgICAgaW5pdFZlcnRleEF0dHJpYjAoKTsKKyNlbmRpZgogICAg
IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3Jl
YXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpUeXBlOjpEZWZhdWx0KTsKICAgICBh
ZGRDb250ZXh0T2JqZWN0KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAjaWYgVVNFKE9Q
RU5HTF9FUykKQEAgLTIzMCwxMCArMjM0LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkKICNlbHNlCiAgICAgYmluZFZlcnRleEFy
cmF5KG51bGxwdHIpOyAvLyBUaGUgZGVmYXVsdCBWQU8gd2FzIHJlbW92ZWQgaW4gT3BlbkdMIDMu
MyBidXQgbm90IGZyb20gV2ViR0wgMjsgYmluZCB0aGUgZGVmYXVsdCBmb3IgV2ViR0wgdG8gdXNl
LgogI2VuZGlmCi0jaWYgIVVTRShBTkdMRSkKLSAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkK
LSAgICAgICAgaW5pdFZlcnRleEF0dHJpYjAoKTsKLSNlbmRpZgorCiB9CiAKIHZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVNoYWRlckV4dGVuc2lvbnMoKQpAQCAtMTc5NSw3
ICsxNzk2LDggQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkcmF3UmFuZ2VFbGVtZW50
cyhHQ0dMZW51bSBtb2RlLCBHQ0dMdWludCBzdGFydCwgR0MKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47Ci0KKyAgICBpZiAoIXZhbGlkYXRlVmVy
dGV4QXJyYXlPYmplY3QoImRyYXdSYW5nZUVsZW1lbnRzIikpCisgICAgICAgIHJldHVybjsKICAg
ICBtX2NvbnRleHQtPmRyYXdSYW5nZUVsZW1lbnRzKG1vZGUsIHN0YXJ0LCBlbmQsIGNvdW50LCB0
eXBlLCBvZmZzZXQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0YTUyNzY2MDNmYjllMTZmZjBiMmJkOWFj
Y2I0NTM2ODBkNWE2NDQ5Li43MDMxOGRjZGQ0MzRiYzg5MGUzODZjZjM2ODhmOWJmNzI3Mjc4Yzhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAKQEAgLTEyNCwxMyArMTI0LDEzIEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcywgUmVmPEdyYXBoaWNzQ29u
CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmpl
Y3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlw
ZTo6RGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdCgqbV9kZWZhdWx0VmVydGV4QXJyYXlP
YmplY3QpOwotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0OwogI2lmICFVU0UoQU5HTEUpCiAgICAgaWYgKCFpc0dMRVMyQ29tcGxpYW50KCkp
CiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CiAjZW5kaWYKKyAgICBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29udGV4
dE9iamVjdCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOworICAgIG1fYm91bmRWZXJ0ZXhB
cnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogfQogCiBXZWJHTEV4dGVu
c2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBu
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA2NDY3ZDI2YTQ0MjQ2Mzc4Y2NiNjc0MjQ2MmExYTZi
NjJhZThmYjQ1Li4zNTcxNDBhMmJlOTUyOGViODBmNzlhYWNjNjAzOTk0YmI2MmMwOTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcApAQCAtMjMzOCwxMCArMjMzOCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDR0x1aW50IGluZGV4KQogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwg
ImRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSIsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLQotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpWZXJ0
ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRl
eEF0dHJpYlN0YXRlKGluZGV4KTsKLSAgICBzdGF0ZS5lbmFibGVkID0gZmFsc2U7Ci0KKyAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnNldFZlcnRleEF0dHJpYkVuYWJsZWQoaW5kZXgsIGZh
bHNlKTsKICNpZiAhVVNFKEFOR0xFKQogICAgIGlmIChpbmRleCA+IDAgfHwgaXNHTEVTMkNvbXBs
aWFudCgpKQogI2VuZGlmCkBAIC0yMzYwLDYgKzIzNTcsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp2YWxpZGF0ZU5QT1RUZXh0dXJlTGV2ZWwoR0NHTHNpemVpIHdpZHRoLCBH
Q0dMc2kKIH0KICNlbmRpZgogCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlk
YXRlVmVydGV4QXJyYXlPYmplY3QoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQoreworICAgIGlm
ICghbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5hcmVBbGxFbmFibGVkQXR0cmliQnVmZmVyc0Jv
dW5kKCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklO
VkFMSURfT1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyBidWZmZXIgaXMgYm91bmQgdG8gZW5h
YmxlZCBhdHRyaWJ1dGUiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUVs
ZW1lbnRBcnJheVNpemUoR0NHTHNpemVpIGNvdW50LCBHQ0dMZW51bSB0eXBlLCBHQ0dMaW50cHRy
IG9mZnNldCkKIHsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IGVsZW1lbnRBcnJheUJ1ZmZlciA9
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCk7CkBAIC0y
NzAxLDYgKzI3MDcsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdBcnJh
eXMoR0NHTGVudW0gbW9kZSwgR0NHTGludCBmaXJzdCwgR0NHTHNpegogICAgIGlmICghdmFsaWRh
dGVEcmF3QXJyYXlzKCJkcmF3QXJyYXlzIiwgbW9kZSwgZmlyc3QsIGNvdW50LCAwKSkKICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmCisgICAgaWYgKCF2YWxpZGF0ZVZlcnRleEFycmF5T2JqZWN0KCJk
cmF3QXJyYXlzIikpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2N1cnJlbnRQcm9ncmFt
ICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNXZWJHTFByb2dyYW1EaXNhYmxlZCgqdGhp
cywgKm1fY3VycmVudFByb2dyYW0pKQogICAgICAgICByZXR1cm47CkBAIC0yNzY0LDYgKzI3NzIs
OCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50cyhHQ0dMZW51
bSBtb2RlLCBHQ0dMc2l6ZWkgY291bnQsIEdDRwogICAgIGlmICghdmFsaWRhdGVEcmF3RWxlbWVu
dHMoImRyYXdFbGVtZW50cyIsIG1vZGUsIGNvdW50LCB0eXBlLCBvZmZzZXQsIG51bUVsZW1lbnRz
LCAwKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCisgICAgaWYgKCF2YWxpZGF0ZVZlcnRleEFy
cmF5T2JqZWN0KCJkcmF3RWxlbWVudHMiKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1f
Y3VycmVudFByb2dyYW0gJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1dlYkdMUHJvZ3Jh
bURpc2FibGVkKCp0aGlzLCAqbV9jdXJyZW50UHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKQEAg
LTI4MzIsMTAgKzI4NDIsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KEdDR0x1aW50IGluZGV4KQogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgImVuYWJsZVZlcnRleEF0dHJp
YkFycmF5IiwgImluZGV4IG91dCBvZiByYW5nZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0cmliU3RhdGUoaW5kZXgp
OwotICAgIHN0YXRlLmVuYWJsZWQgPSB0cnVlOwotCisgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0LT5zZXRWZXJ0ZXhBdHRyaWJFbmFibGVkKGluZGV4LCB0cnVlKTsKICAgICBtX2NvbnRleHQt
PmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGluZGV4KTsKIH0KIApAQCAtNjMzNSw3ICs2MzQyLDYg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdD
R0x1aW50IGluZGV4LCBHQ0dMaW50IHNpemUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBH
Q0dMc2l6ZWkgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAqIHR5cGVTaXplOwotCiAgICAgbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShsb2NrZXIsIGluZGV4LCBi
eXRlc1BlckVsZW1lbnQsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nh
c3Q8R0NHTGludHB0cj4ob2Zmc2V0KSwgZmFsc2UsIG1fYm91bmRBcnJheUJ1ZmZlci5nZXQoKSk7
CiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKGluZGV4LCBzaXplLCB0eXBlLCBu
b3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9mZnNldCkpOwogfQpA
QCAtNzUzMywxMyArNzUzOSwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZl
cnRleEF0dHJpYmZ2SW1wbChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDRwogI2lmICFVU0Uo
QU5HTEUpCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRWZXJ0ZXhBdHRyaWIw
KCkKIHsKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6VmVydGV4QXR0cmliU3RhdGUm
IHN0YXRlID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgw
KTsKLSAgICAKICAgICBtX3ZlcnRleEF0dHJpYjBCdWZmZXIgPSBjcmVhdGVCdWZmZXIoKTsKICAg
ICBtX2NvbnRleHQtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0R0w6OkFSUkFZX0JVRkZFUiwg
bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyLT5vYmplY3QoKSk7CiAgICAgbV9jb250ZXh0LT5idWZmZXJE
YXRhKEdyYXBoaWNzQ29udGV4dEdMOjpBUlJBWV9CVUZGRVIsIDAsIEdyYXBoaWNzQ29udGV4dEdM
OjpEWU5BTUlDX0RSQVcpOwogICAgIG1fY29udGV4dC0+dmVydGV4QXR0cmliUG9pbnRlcigwLCA0
LCBHcmFwaGljc0NvbnRleHRHTDo6RkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICBzdGF0ZS5idWZm
ZXJCaW5kaW5nID0gbV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOwogICAgIG1fY29udGV4dC0+YmluZEJ1
ZmZlcihHcmFwaGljc0NvbnRleHRHTDo6QVJSQVlfQlVGRkVSLCAwKTsKICAgICBtX2NvbnRleHQt
PmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwogICAgIG1fdmVydGV4QXR0cmliMEJ1ZmZlclNp
emUgPSAwOwpAQCAtNzkzMiw2ICs3OTM1LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpkcmF3QXJyYXlzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xpbnQgZmlyc3QKICAg
ICBpZiAoIXZhbGlkYXRlRHJhd0FycmF5cygiZHJhd0FycmF5c0luc3RhbmNlZCIsIG1vZGUsIGZp
cnN0LCBjb3VudCwgcHJpbWNvdW50KSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vICFVU0Uo
QU5HTEUpCisgICAgaWYgKCF2YWxpZGF0ZVZlcnRleEFycmF5T2JqZWN0KCJkcmF3QXJyYXlzSW5z
dGFuY2VkIikpCisgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFy
Q2FsbGVyRHJhd09yQ2xlYXIpOwogCkBAIC03OTcxLDYgKzc5NzYsOCBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRyYXdFbGVtZW50c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBH
Q0dMc2l6ZWkgYwogICAgIGlmICghdmFsaWRhdGVEcmF3RWxlbWVudHMoImRyYXdFbGVtZW50c0lu
c3RhbmNlZCIsIG1vZGUsIGNvdW50LCB0eXBlLCBvZmZzZXQsIG51bUVsZW1lbnRzLCBwcmltY291
bnQpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKKyAgICBpZiAoIXZh
bGlkYXRlVmVydGV4QXJyYXlPYmplY3QoImRyYXdFbGVtZW50c0luc3RhbmNlZCIpKQorICAgICAg
ICByZXR1cm47CiAKICAgICBjbGVhcklmQ29tcG9zaXRlZChDbGVhckNhbGxlckRyYXdPckNsZWFy
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5oCmluZGV4IDRkOTM0ZGQ5MjFkODc2MmNiMGZlNzBjNDQ0YzgwMjY5N2Nm
OTVmOGQuLmVjN2E5ZTViMWFjZmU0YTRhMzViZmIyMmNlOGNiMTc5NmU0NTQyOWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgKQEAgLTUxMiw2ICs1MTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCB2YWxpZGF0ZURy
YXdFbGVtZW50cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIG1vZGUsIEdDR0xz
aXplaSBjb3VudCwgR0NHTGVudW0gdHlwZSwgbG9uZyBsb25nIG9mZnNldCwgdW5zaWduZWQmIG51
bUVsZW1lbnRzLCBHQ0dMc2l6ZWkgcHJpbWNvdW50KTsKICAgICBib29sIHZhbGlkYXRlTlBPVFRl
eHR1cmVMZXZlbChHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xpbnQgbGV2
ZWwsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiAjZW5kaWYKKyAgICBib29sIHZhbGlkYXRl
VmVydGV4QXJyYXlPYmplY3QoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKTsKIAogICAgIC8vIEFk
ZHMgYSBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0LgogICAgIHZvaWQgYWRkQ29tcHJlc3NlZFRl
eHR1cmVGb3JtYXQoR0NHTGVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4IDFlZDA1ZTliZjJi
NjY4YzhlNGE0ZTIzNDZjZDQwNzU5ZmE1NDAyNzUuLjMyYmUwZWE3NWJkZmJhMWM1ZTQzZTM4YzNk
Y2I1NzFhNzgxNTc3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTM5LDYgKzM5LDkgQEAgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UKICAgICAsIG1fdHlwZSh0eXBlKQogewogICAgIG1fdmVydGV4
QXR0cmliU3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsKKyNpZiAh
VVNFKEFOR0xFKQorICAgIHVwZGF0ZVZlcnRleEF0dHJpYjAoKTsKKyNlbmRpZgogfQogCiB2b2lk
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoY29uc3Qg
QWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKQEAgLTUwLDI0ICs1
MywzNiBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlC
dWZmZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvYwogICAgIG1fYm91bmRFbGVtZW50QXJyYXlC
dWZmZXIgPSBidWZmZXI7CiAgICAgCiB9Cit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
OjpzZXRWZXJ0ZXhBdHRyaWJFbmFibGVkKGludCBpbmRleCwgYm9vbCBmbGFnKQoreworICAgIGF1
dG8mIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CisgICAgaWYgKHN0YXRlLmVu
YWJsZWQgPT0gZmxhZykKKyAgICAgICAgcmV0dXJuOworICAgIHN0YXRlLmVuYWJsZWQgPSBmbGFn
OworICAgIGlmICghc3RhdGUudmFsaWRhdGVCaW5kaW5nKCkpCisgICAgICAgIG1fYWxsRW5hYmxl
ZEF0dHJpYkJ1ZmZlcnNCb3VuZENhY2hlID0gZmFsc2U7CisgICAgZWxzZQorICAgICAgICBtX2Fs
bEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZS5yZXNldCgpOworfQogCiB2b2lkIFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShjb25zdCBBYnN0cmFj
dExvY2tlciYgbG9ja2VyLCBHQ0dMdWludCBpbmRleCwgR0NHTHNpemVpIGJ5dGVzUGVyRWxlbWVu
dCwgR0NHTGludCBzaXplLCBHQ0dMZW51bSB0eXBlLCBHQ0dMYm9vbGVhbiBub3JtYWxpemVkLCBH
Q0dMc2l6ZWkgc3RyaWRlLCBHQ0dMaW50cHRyIG9mZnNldCwgYm9vbCBpc0ludGVnZXIsIFdlYkdM
QnVmZmVyKiBidWZmZXIpCiB7Ci0gICAgR0NHTHNpemVpIHZhbGlkYXRlZFN0cmlkZSA9IHN0cmlk
ZSA/IHN0cmlkZSA6IGJ5dGVzUGVyRWxlbWVudDsKLSAgICAKICAgICBhdXRvJiBzdGF0ZSA9IG1f
dmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIAorICAgIGJvb2wgYmluZGluZ1dhc1ZhbGlk
ID0gc3RhdGUudmFsaWRhdGVCaW5kaW5nKCk7CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgYnVm
ZmVyLT5vbkF0dGFjaGVkKCk7CiAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcpCiAgICAgICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmctPm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0KCktPmdyYXBo
aWNzQ29udGV4dEdMKCkpOwotICAgIAogICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBidWZmZXI7
CisgICAgaWYgKCFzdGF0ZS52YWxpZGF0ZUJpbmRpbmcoKSkKKyAgICAgICAgbV9hbGxFbmFibGVk
QXR0cmliQnVmZmVyc0JvdW5kQ2FjaGUgPSBmYWxzZTsKKyAgICBlbHNlIGlmICghYmluZGluZ1dh
c1ZhbGlkKQorICAgICAgICBtX2FsbEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZS5yZXNl
dCgpOwogICAgIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCA9IGJ5dGVzUGVyRWxlbWVudDsKICAgICBz
dGF0ZS5zaXplID0gc2l6ZTsKICAgICBzdGF0ZS50eXBlID0gdHlwZTsKICAgICBzdGF0ZS5ub3Jt
YWxpemVkID0gbm9ybWFsaXplZDsKLSAgICBzdGF0ZS5zdHJpZGUgPSB2YWxpZGF0ZWRTdHJpZGU7
CisgICAgc3RhdGUuc3RyaWRlID0gc3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJFbGVtZW50Owog
ICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRlID0gc3RyaWRlOwogICAgIHN0YXRlLm9mZnNldCA9IG9m
ZnNldDsKICAgICBzdGF0ZS5pc0ludGVnZXIgPSBpc0ludGVnZXI7CkBAIC04MCwyOCArOTUsMzcg
QEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdlYkcKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1
ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBhdXRvJiBzdGF0ZSA9
IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgZm9yIChhdXRvJiBzdGF0ZSA6IG1fdmVydGV4
QXR0cmliU3RhdGUpIHsKICAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcgPT0gJmJ1ZmZl
cikgewogICAgICAgICAgICAgYnVmZmVyLm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0KCktPmdy
YXBoaWNzQ29udGV4dEdMKCkpOwotICAgICAgICAgICAgCisgICAgICAgICAgICBzdGF0ZS5idWZm
ZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghc3RhdGUudmFsaWRhdGVCaW5k
aW5nKCkpCisgICAgICAgICAgICAgICAgbV9hbGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kQ2Fj
aGUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KICNpZiAhVVNFKEFOR0xFKQotICAgICAgICAg
ICAgaWYgKCFpICYmICFjb250ZXh0KCktPmlzR0xFUzJDb21wbGlhbnQoKSkgewotICAgICAgICAg
ICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBjb250ZXh0KCktPm1fdmVydGV4QXR0cmliMEJ1
ZmZlcjsKLSAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nLT5vbkF0dGFjaGVkKCk7
Ci0gICAgICAgICAgICAgICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gMDsKLSAgICAgICAgICAg
ICAgICBzdGF0ZS5zaXplID0gNDsKLSAgICAgICAgICAgICAgICBzdGF0ZS50eXBlID0gR3JhcGhp
Y3NDb250ZXh0R0w6OkZMT0FUOwotICAgICAgICAgICAgICAgIHN0YXRlLm5vcm1hbGl6ZWQgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICBzdGF0ZS5zdHJpZGUgPSAxNjsKLSAgICAgICAgICAgICAg
ICBzdGF0ZS5vcmlnaW5hbFN0cmlkZSA9IDA7Ci0gICAgICAgICAgICAgICAgc3RhdGUub2Zmc2V0
ID0gMDsKLSAgICAgICAgICAgIH0gZWxzZQorICAgIHVwZGF0ZVZlcnRleEF0dHJpYjAoKTsKICNl
bmRpZgotICAgICAgICAgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwotICAg
ICAgICB9Cit9CisKKyNpZiAhVVNFKEFOR0xFKQordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZTo6dXBkYXRlVmVydGV4QXR0cmliMCgpCit7CisgICAgYXV0byYgc3RhdGUgPSBtX3ZlcnRl
eEF0dHJpYlN0YXRlWzBdOworICAgIGlmICghc3RhdGUuYnVmZmVyQmluZGluZyAmJiAhY29udGV4
dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkpIHsKKyAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9
IGNvbnRleHQoKS0+bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOworICAgICAgICBzdGF0ZS5idWZmZXJC
aW5kaW5nLT5vbkF0dGFjaGVkKCk7CisgICAgICAgIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCA9IDA7
CisgICAgICAgIHN0YXRlLnNpemUgPSA0OworICAgICAgICBzdGF0ZS50eXBlID0gR3JhcGhpY3ND
b250ZXh0R0w6OkZMT0FUOworICAgICAgICBzdGF0ZS5ub3JtYWxpemVkID0gZmFsc2U7CisgICAg
ICAgIHN0YXRlLnN0cmlkZSA9IDE2OworICAgICAgICBzdGF0ZS5vcmlnaW5hbFN0cmlkZSA9IDA7
CisgICAgICAgIHN0YXRlLm9mZnNldCA9IDA7CisgICAgICAgIG1fYWxsRW5hYmxlZEF0dHJpYkJ1
ZmZlcnNCb3VuZENhY2hlLnJlc2V0KCk7CiAgICAgfQogfQorI2VuZGlmCiAKIHZvaWQgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYkRpdmlzb3IoR0NHTHVpbnQgaW5k
ZXgsIEdDR0x1aW50IGRpdmlzb3IpCiB7CkBAIC0xMTUsNiArMTM5LDIwIEBAIHZvaWQgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiwKICAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHN0YXRlLmJ1ZmZlckJp
bmRpbmcuZ2V0KCkpOwogfQogCitib29sIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjphcmVB
bGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kKCkKK3sKKyAgICBpZiAoIW1fYWxsRW5hYmxlZEF0
dHJpYkJ1ZmZlcnNCb3VuZENhY2hlKSB7CisgICAgICAgIG1fYWxsRW5hYmxlZEF0dHJpYkJ1ZmZl
cnNCb3VuZENhY2hlID0gWyZdIHsKKyAgICAgICAgICAgIGZvciAoYXV0byBjb25zdCYgc3RhdGUg
OiBtX3ZlcnRleEF0dHJpYlN0YXRlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdGF0ZS52YWxp
ZGF0ZUJpbmRpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0oKTsKKyAgICB9Cisg
ICAgcmV0dXJuICptX2FsbEVuYWJsZWRBdHRyaWJCdWZmZXJzQm91bmRDYWNoZTsKK30KKwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggNDA3NDIxNzlkODk2
ODBhMDk1MjYyZmIxODljNmMwOWM0M2U3ZGEzYy4uYzYxMzhiYmU2NWU3ZDM5MDRmZmE2MzU1ZTZj
Y2M2YzU3NzhjODQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0R0wuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1
ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgorI2luY2x1ZGUgPG9wdGlvbmFsPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEFic3RyYWN0U2xvdFZpc2l0b3I7CkBAIC03MSw3ICs3Miw4IEBAIHB1
YmxpYzoKICAgICBXZWJHTEJ1ZmZlciogZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0RWxl
bWVudEFycmF5QnVmZmVyKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBXZWJHTEJ1ZmZlciop
OwogCi0gICAgVmVydGV4QXR0cmliU3RhdGUmIGdldFZlcnRleEF0dHJpYlN0YXRlKGludCBpbmRl
eCkgeyByZXR1cm4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07IH0KKyAgICB2b2lkIHNldFZl
cnRleEF0dHJpYkVuYWJsZWQoaW50IGluZGV4LCBib29sIGZsYWcpOworICAgIGNvbnN0IFZlcnRl
eEF0dHJpYlN0YXRlJiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1f
dmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOyB9CiAgICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0
ZShjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR0NHTHVpbnQsIEdDR0xzaXplaSwgR0NHTGlu
dCwgR0NHTGVudW0sIEdDR0xib29sZWFuLCBHQ0dMc2l6ZWksIEdDR0xpbnRwdHIsIGJvb2wsIFdl
YkdMQnVmZmVyKik7CiAgICAgdm9pZCB1bmJpbmRCdWZmZXIoY29uc3QgV1RGOjpBYnN0cmFjdExv
Y2tlciYsIFdlYkdMQnVmZmVyJik7CiAKQEAgLTc5LDE0ICs4MSwxOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXIm
LCBKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImKTsKIAorICAgIGJvb2wgYXJlQWxsRW5hYmxlZEF0
dHJpYkJ1ZmZlcnNCb3VuZCgpOwogcHJvdGVjdGVkOgogICAgIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0
ZU9iamVjdEltcGwoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdM
KiwgUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGUgPSAwOworI2lmICFVU0UoQU5HTEUpCisgICAg
dm9pZCB1cGRhdGVWZXJ0ZXhBdHRyaWIwKCk7CisjZW5kaWYKIAogICAgIFR5cGUgbV90eXBlOwog
ICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViR0xC
dWZmZXI+IG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXI7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJp
YlN0YXRlPiBtX3ZlcnRleEF0dHJpYlN0YXRlOworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9h
bGxFbmFibGVkQXR0cmliQnVmZmVyc0JvdW5kQ2FjaGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjBmOGM3NDJlZjk4MzY4NTJhMDZiNzhmNGI5MGEwZDhlOGE4ZjIxYS4u
YTdhYTZkYjhhODg4MjkxODM0NjRmNGEzODYzMDRkNjRhNDM3NjRkMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDIxLTA5LTA4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+
CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4
LWFycmF5LW9iamVjdC5odG1sIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjMzNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1Nzc0NTQ2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBUZXN0IHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi92ZXJ0ZXhfYXJyYXlzL3ZlcnRleC1hcnJheS1vYmplY3Qu
aHRtbCBleHBsaWNpdGx5CisgICAgICAgIHVudGlsIDIuMC55IHN1aXRlIGlzIHJ1biBieSBkZWZh
dWx0LiBTYW1lIGZvciAxLjAueC4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZHJhd0VsZW1lbnRzLWVtcHR5LXZlcnRleC1kYXRhLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC92ZXJ0ZXhBdHRyaWJQb2lu
dGVyLXdpdGgtYmFkLW9mZnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgIEFkZCBjb25zb2xlIGxv
Z3MgZm9yIHRoZSBhZGRlZCBlcnJvcnMuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgIEZvciBjb25zaXN0ZW5jeSwgcmVtb3ZlIGFsbCBza2lwcyBmb3IgdmVydGV4LWFycmF5LW9i
amVjdCB0ZXN0cy4KKyAgICAgICAgVGhleSBzaG91bGQgbm93IHdvcmsuCisKIDIwMjEtMDktMDgg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtjc3Mt
cG9zaXRpb24tc3RpY2t5XSBTdGlja3kgY29uc3RyYWludHMgYXJlIGNhbGN1bGF0ZWQgaW5jb3Jy
ZWN0bHkgd2hlbiBzY3JvbGxpbmcgY29udGFpbmVyIGhhcyBwYWRkaW5nIGFuZCBib3JkZXJzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAzMzlkN2Q3OTQ5YmNkN2EwODQ4NzVjNzQzYWIwMTM4NTM1MzQ0
YTRkLi42Mzg1ZmM3MmM5YjA2ZGUzMmM1MDQ0OGQwZDQ0NDQ2MDUyMTNlNDAwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTM2ODksNiArMzY4OSw4IEBAIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2ds
c2wvYnVncy9jaGFyYWN0ZXItc2V0Lmh0bWwgWyBQYXNzIF0KIHdlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2MvdGV4dHVyZS1jb3JuZXItY2FzZS12aWRlb3MuaHRtbCBbIFBhc3Mg
XQogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZ2xzbC9taXNjL2ZyYWdjb2xvci1mcmFnZGF0YS1p
bnZhcmlhbnQuaHRtbCBbIFBhc3MgXQogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2NvbnRleHQv
Y29uc3RhbnRzLWFuZC1wcm9wZXJ0aWVzLTIuaHRtbCBbIFBhc3MgXQord2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFycmF5LW9iamVjdC5odG1sIFsgUGFzcyBd
Cit3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9leHRlbnNpb25zL29lcy12ZXJ0ZXgtYXJyYXktb2Jq
ZWN0Lmh0bWwgWyBQYXNzIF0KIAogIyBXZWJHTCAxLjAuMyBhbmQgMi4wLjAgdGVzdHMgd2hlcmUg
YmVoYXZpb3IgaXMgb2Jzb2xldGUgYW5kIFdlYktpdCBjb250YWlucyBpbXBsZW1lbnRhdGlvbgog
IyBhbmQgdGVzdHMgZm9yIHRoZSBuZXcgYmVoYXZpb3IuIFNob3VsZCBiZSByZW1vdmVkIG9uY2Ug
MS4wLjMgYW5kIDIuMC4wIGFyZSByZXRpcmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvZHJhd0VsZW1lbnRzLWVtcHR5LXZlcnRleC1kYXRhLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXdFbGVtZW50cy1lbXB0eS12ZXJ0
ZXgtZGF0YS1leHBlY3RlZC50eHQKaW5kZXggMjg5ZTdmZDY0ODIzZjkwMjZlNGU3NjRiODY0YWU2
Y2VlMGE5MzM1My4uY2QzNjQyODdmZTU0OGM4MGI3NWZiYjM3OTRhMjgwZGFhNDdlMDFiZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhd0VsZW1lbnRzLWVtcHR5
LXZlcnRleC1kYXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9kcmF3RWxlbWVudHMtZW1wdHktdmVydGV4LWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0xICsx
LDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiBkcmF3RWxl
bWVudHM6IG5vIGJ1ZmZlciBpcyBib3VuZCB0byBlbmFibGVkIGF0dHJpYnV0ZQogUEFTUzogVW5h
YmxlIHRvIGRyYXcgd2l0aCBpbnZhbGlkIHZlcnRleEF0dHJpYkFycmF5MApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdmVydGV4QXR0cmliUG9pbnRlci13aXRoLWJh
ZC1vZmZzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdmVy
dGV4QXR0cmliUG9pbnRlci13aXRoLWJhZC1vZmZzZXQtZXhwZWN0ZWQudHh0CmluZGV4IDMwYzQz
YTJkNjI4YzhjMTBiM2E0NjVmZDYzZDVmZjNjZGQzYmE2NGQuLjA1YmM3NThkNjRiN2Q1ZGRkOGU3
NDgxMDQwZjJmYTYyZTZmNDJjYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3ZlcnRleEF0dHJpYlBvaW50ZXItd2l0aC1iYWQtb2Zmc2V0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC92ZXJ0ZXhBdHRyaWJQb2ludGVyLXdp
dGgtYmFkLW9mZnNldC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiBDT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBiYWQgb2Zmc2V0
CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogZHJhd0FycmF5czog
bm8gYnVmZmVyIGlzIGJvdW5kIHRvIGVuYWJsZWQgYXR0cmlidXRlCiBQQVNTOiB2ZXJ0ZXhBdHRy
aWJQb2ludGVyIHNob3VsZCBoYXZlIGFuIGVycm9yLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1kcmF3YXJyYXlzLWNyYXNoLTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtZHJhd2FycmF5cy1jcmFzaC0y
LWV4cGVjdGVkLnR4dAppbmRleCBlNjZiZGQzMGQ3NjY5MGRlNWNhMDI4NDU0MTJlNjU3NWRhNjc0
NzQ1Li40ZjE2OTAyODI0NGQzOTUwYWI0YTlmM2ZkNzBhNGU0MTQ1ODMxNzA1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1kcmF3YXJyYXlzLWNyYXNoLTIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWRy
YXdhcnJheXMtY3Jhc2gtMi1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwzIEBACitDT05TT0xFIE1F
U1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogZHJhd0FycmF5czogbm8gYnVmZmVyIGlz
IGJvdW5kIHRvIGVuYWJsZWQgYXR0cmlidXRlCiBQQVNTLiBZb3UgZGlkbid0IGNyYXNoLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRiMTRiM2Q4OTNi
NzdiYWVhZDBiYTM0MTFlNDFmODkzNWVjYTZiNTguLmFiZDdkOTk4ODdkMDliMjU5OWU0ODdjZmJi
MzFjOTE4NmU3ZWQ1OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zMjAxLDcgKzMyMDEsNiBAQCB3ZWJraXQub3JnL2IvMjA3ODU4IHdlYmdsL3dlYmds
LWJvcmRlci5odG1sIFsgUGFzcyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzIwNzg1OCB3ZWJnbC93ZWJnbC1ib3gtc2hhZG93Lmh0bWwgWyBQYXNzIEZhaWx1cmUgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA3ODU4IGZhc3QvY2FudmFzL3dlYmdsL3Vu
aW5pdGlhbGl6ZWQtdGVzdC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDc4
NTggZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtZmxvYXQtbGluZWFyLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIwNzg1OCBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVy
dGV4LWFycmF5LW9iamVjdC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDc4
NTggZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRl
by5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDc4NTggd2ViZ2wvMS4wLjMv
Y29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWxvc3QtcmVzdG9yZWQuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMjA3ODU4IHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL2dsc2wv
bWlzYy9zaGFkZXItc3RydWN0LXNjb3BlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzYTRhMTY2YmJmNjdjMDM3Yjcw
MGI3OTM4NzBlNmYzYTFkMTI3YmM1Li42MDM2MjY0ZmUxMDRiMjAwYjg2NmYzNTdkZTM1NmY1MTNk
NTBkNTIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDA0LDkgKzQwNCw2IEBAIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zIFsg
U2tpcCBdCiAjIFNlbmRpbmcgdGhlIG1vdXNlIGRvd24gZXZlbnQgdG8gdGhlIHNjcm9sbGJhciBz
dGFydHMgYSBuZXN0ZWQgcnVuIGxvb3Agd2hpY2ggY2F1c2VzIGEgaGFuZy4KIGZhc3QvZXZlbnRz
L21vdXNlZG93bi1pbi1zdWJmcmFtZS1zY3JvbGxiYXIuaHRtbCBbIFNraXAgXQogCi13ZWJraXQu
b3JnL2IvOTY4MjggZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRt
bCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzk2ODI4IHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL2V4
dGVuc2lvbnMvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIFNraXAgXQotCiBodHRwL3Rl
c3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2suaHRtbCBbIEZhaWx1
cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLW5vcGFzc3dvcmQuaHRt
bCBbIEZhaWx1cmUgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>