<?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>238430</bug_id>
          
          <creation_ts>2022-03-27 19:09:31 -0700</creation_ts>
          <short_desc>[WebGPU] Implement CommandEncoder::copyTextureToBuffer() according to the spec</short_desc>
          <delta_ts>2022-03-31 21:49:18 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>238428</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>djg</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855476</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-27 19:09:31 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855477</commentid>
    <comment_count>1</comment_count>
      <attachid>455876</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-27 19:11:43 -0700</bug_when>
    <thetext>Created attachment 455876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855724</commentid>
    <comment_count>2</comment_count>
      <attachid>455941</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-28 12:22:21 -0700</bug_when>
    <thetext>Created attachment 455941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856743</commentid>
    <comment_count>3</comment_count>
      <attachid>456217</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 01:45:22 -0700</bug_when>
    <thetext>Created attachment 456217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856744</commentid>
    <comment_count>4</comment_count>
      <attachid>456218</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 01:48:53 -0700</bug_when>
    <thetext>Created attachment 456218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857036</commentid>
    <comment_count>5</comment_count>
      <attachid>456218</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-03-31 16:31:10 -0700</bug_when>
    <thetext>Comment on attachment 456218
Patch

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

&gt; Source/WebGPU/WebGPU/CommandEncoder.mm:359
&gt; +    // &quot;Let srcTextureDesc be source.texture.[[descriptor]].&quot;

This is the first time I&apos;ve seen this style of spec inclusion. Do we normally include quotation marks.

The style I&apos;ve seen is a link at the top of the function, and then the comments are simply copied in (with the spec items numbers, if needed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857144</commentid>
    <comment_count>6</comment_count>
      <attachid>456218</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 21:45:32 -0700</bug_when>
    <thetext>Comment on attachment 456218
Patch

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

&gt;&gt; Source/WebGPU/WebGPU/CommandEncoder.mm:359
&gt;&gt; +    // &quot;Let srcTextureDesc be source.texture.[[descriptor]].&quot;
&gt; 
&gt; This is the first time I&apos;ve seen this style of spec inclusion. Do we normally include quotation marks.
&gt; 
&gt; The style I&apos;ve seen is a link at the top of the function, and then the comments are simply copied in (with the spec items numbers, if needed)

Without quotation marks, how do you know what&apos;s a quote and what isn&apos;t?

You&apos;re not the first one to complain about this style, so maybe I should just get rid of all these kinds of comments altogether. I seem to be the only one that thinks they&apos;re valuable. I&apos;ll do it in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857145</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 21:48:22 -0700</bug_when>
    <thetext>Committed r292199 (249102@trunk): &lt;https://commits.webkit.org/249102@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857146</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-31 21:49:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/91144781&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455876</attachid>
            <date>2022-03-27 19:11:43 -0700</date>
            <delta_ts>2022-03-28 12:22:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15918</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDEzZGQyOTY0MjY2MzE4YWM4NTdlNjQzN2Q5MTQ2ZTBkNjBmYTQwMjkKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTWFyIDI3
IDE5OjExOjE5IDIwMjIgLTA3MDAKCiAgICBQYXJ0IDQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGYwOThkYTY3ZmU2
NS4uYzczYzVmMzkwMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAzLTI3ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gSW1wbGVtZW50IENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKCkgYWNjb3Jk
aW5nIHRvIHRoZSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLgorICAgICAgICBJdCByZS11c2VzIG1hbnkgb2Yg
dGhlIGhlbHBlciBmdW5jdGlvbnMgYWRkZWQgaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQyOC4gVGhlcmUgYXJlIGxpbmtzIGFuZCBxdW90ZXMg
ZnJvbQorICAgICAgICB0aGUgc3BlYyB3aGVyZSBhcHByb3ByaWF0ZS4KKworICAgICAgICAqIFdl
YkdQVS9Db21tYW5kRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6dmFsaWRhdGVDb3B5VGV4
dHVyZVRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmNvcHlUZXh0
dXJlVG9CdWZmZXIpOgorICAgICAgICAqIFdlYkdQVS9UZXh0dXJlLmg6CisgICAgICAgICogV2Vi
R1BVL1RleHR1cmUubW06CisgICAgICAgIChXZWJHUFU6OlRleHR1cmU6OmlzVmFsaWRJbWFnZUNv
cHlTb3VyY2UpOgorCiAyMDIyLTAzLTI3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gSW1wbGVtZW50IENvbW1hbmRFbmNvZGVyOjpj
b3B5QnVmZmVyVG9UZXh0dXJlKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0NvbW1hbmRFbmNvZGVyLm1tCmluZGV4IDRiMzEzY2IzZjE2OC4uNmM5ZTc0NmExOGM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQorKysgYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAtMzU0LDExICszNTQsMTg3
IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoY29uc3QgV0dQVUlt
YWdlQ29weUJ1ZmZlciYgc291cmNlLCBjb25zCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCB2YWxp
ZGF0ZUNvcHlUZXh0dXJlVG9CdWZmZXIoY29uc3QgV0dQVUltYWdlQ29weVRleHR1cmUmIHNvdXJj
ZSwgY29uc3QgV0dQVUltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24sIGNvbnN0IFdHUFVFeHRl
bnQzRCYgY29weVNpemUpCit7CisgICAgLy8gIkxldCBzcmNUZXh0dXJlRGVzYyBiZSBzb3VyY2Uu
dGV4dHVyZS5bW2Rlc2NyaXB0b3JdXS4iCisgICAgY29uc3QgYXV0byYgc3JjVGV4dHVyZURlc2Mg
PSBmcm9tQVBJKHNvdXJjZS50ZXh0dXJlKS5kZXNjcmlwdG9yKCk7CisKKyAgICAvLyAidmFsaWRh
dGluZyBHUFVJbWFnZUNvcHlUZXh0dXJlKHNvdXJjZSwgY29weVNpemUpIHJldHVybnMgdHJ1ZS4i
CisgICAgaWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUltYWdlQ29weVRleHR1cmUoc291cmNlLCBjb3B5
U2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vICJzcmNUZXh0dXJlRGVzYy51
c2FnZSBjb250YWlucyBDT1BZX1NSQy4iCisgICAgaWYgKCEoc3JjVGV4dHVyZURlc2MudXNhZ2Ug
JiBXR1BVQnVmZmVyVXNhZ2VfQ29weVNyYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vICJzcmNUZXh0dXJlRGVzYy5zYW1wbGVDb3VudCBpcyAxLiIKKyAgICBpZiAoc3JjVGV4dHVy
ZURlc2Muc2FtcGxlQ291bnQgIT0gMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8g
IkxldCBhc3BlY3RTcGVjaWZpY0Zvcm1hdCA9IGRzdFRleHR1cmVEZXNjLmZvcm1hdC4iCisgICAg
V0dQVVRleHR1cmVGb3JtYXQgYXNwZWN0U3BlY2lmaWNGb3JtYXQgPSBzcmNUZXh0dXJlRGVzYy5m
b3JtYXQ7CisKKyAgICAvLyAiSWYgc3JjVGV4dHVyZURlc2MuZm9ybWF0IGlzIGEgZGVwdGgtc3Rl
bmNpbCBmb3JtYXQ6IgorICAgIGlmIChUZXh0dXJlOjppc0RlcHRoT3JTdGVuY2lsRm9ybWF0KHNy
Y1RleHR1cmVEZXNjLmZvcm1hdCkpIHsKKyAgICAgICAgLy8gInNvdXJjZS5hc3BlY3QgbXVzdCBy
ZWZlciB0byBhIHNpbmdsZSBhc3BlY3Qgb2Ygc3JjVGV4dHVyZURlc2MuZm9ybWF0IgorICAgICAg
ICBpZiAoIVRleHR1cmU6OnJlZmVyc1RvU2luZ2xlQXNwZWN0KHNyY1RleHR1cmVEZXNjLmZvcm1h
dCwgc291cmNlLmFzcGVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
Ly8gImFuZCB0aGF0IGFzcGVjdCBtdXN0IGJlIGEgdmFsaWQgaW1hZ2UgY29weSBzb3VyY2UgYWNj
b3JkaW5nIHRvIMKnIDI1LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgICAgICBpZiAo
IVRleHR1cmU6OmlzVmFsaWRJbWFnZUNvcHlTb3VyY2Uoc3JjVGV4dHVyZURlc2MuZm9ybWF0LCBz
b3VyY2UuYXNwZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyAi
U2V0IGFzcGVjdFNwZWNpZmljRm9ybWF0IHRvIHRoZSBhc3BlY3Qtc3BlY2lmaWMgZm9ybWF0IGFj
Y29yZGluZyB0byDCp+KArzI1LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgICAgICBh
c3BlY3RTcGVjaWZpY0Zvcm1hdCA9IFRleHR1cmU6OmFzcGVjdFNwZWNpZmljRm9ybWF0KHNyY1Rl
eHR1cmVEZXNjLmZvcm1hdCwgc291cmNlLmFzcGVjdCk7CisgICAgfQorCisgICAgLy8gInZhbGlk
YXRpbmcgR1BVSW1hZ2VDb3B5QnVmZmVyKGRlc3RpbmF0aW9uKSByZXR1cm5zIHRydWUuIgorICAg
IGlmICghdmFsaWRhdGVJbWFnZUNvcHlCdWZmZXIoZGVzdGluYXRpb24pKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAvLyAiZGVzdGluYXRpb24uYnVmZmVyLltbdXNhZ2VdXSBjb250YWlu
cyBDT1BZX0RTVC4iCisgICAgaWYgKCEoZnJvbUFQSShkZXN0aW5hdGlvbi5idWZmZXIpLnVzYWdl
KCkgJiBXR1BVQnVmZmVyVXNhZ2VfQ29weURzdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vICJ2YWxpZGF0aW5nIHRleHR1cmUgY29weSByYW5nZShzb3VyY2UsIGNvcHlTaXplKSBy
ZXR1cm5zIHRydWUuIgorICAgIGlmICghVGV4dHVyZTo6dmFsaWRhdGVUZXh0dXJlQ29weVJhbmdl
KHNvdXJjZSwgY29weVNpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAiSWYg
c3JjVGV4dHVyZURlc2MuZm9ybWF0IGlzIG5vdCBhIGRlcHRoLW9yLXN0ZW5jaWwgZm9ybWF0OiIK
KyAgICBpZiAoIVRleHR1cmU6OmlzRGVwdGhPclN0ZW5jaWxGb3JtYXQoc3JjVGV4dHVyZURlc2Mu
Zm9ybWF0KSkgeworICAgICAgICAvLyAiZGVzdGluYXRpb24ub2Zmc2V0IGlzIGEgbXVsdGlwbGUg
b2YgdGhlIHRleGVsIGJsb2NrIHNpemUgb2Ygc3JjVGV4dHVyZURlc2MuZm9ybWF0LiIKKyAgICAg
ICAgYXV0byB0ZXhlbEJsb2NrU2l6ZSA9IFRleHR1cmU6OnRleGVsQmxvY2tTaXplKHNyY1RleHR1
cmVEZXNjLmZvcm1hdCk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbi5sYXlvdXQub2Zmc2V0ICUg
dGV4ZWxCbG9ja1NpemUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
Ly8gIklmIHNyY1RleHR1cmVEZXNjLmZvcm1hdCBpcyBhIGRlcHRoLW9yLXN0ZW5jaWwgZm9ybWF0
OiIKKyAgICBpZiAoVGV4dHVyZTo6aXNEZXB0aE9yU3RlbmNpbEZvcm1hdChzcmNUZXh0dXJlRGVz
Yy5mb3JtYXQpKSB7CisgICAgICAgIC8vICJkZXN0aW5hdGlvbi5vZmZzZXQgaXMgYSBtdWx0aXBs
ZSBvZiA0LiIKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLmxheW91dC5vZmZzZXQgJSA0KQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vICJ2YWxpZGF0aW5nIGxpbmVh
ciB0ZXh0dXJlIGRhdGEoZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uLmJ1ZmZlci5bW3NpemVdXSwg
YXNwZWN0U3BlY2lmaWNGb3JtYXQsIGNvcHlTaXplKSBzdWNjZWVkcy4iCisgICAgaWYgKCFUZXh0
dXJlOjp2YWxpZGF0ZUxpbmVhclRleHR1cmVEYXRhKGRlc3RpbmF0aW9uLmxheW91dCwgZnJvbUFQ
SShkZXN0aW5hdGlvbi5idWZmZXIpLnNpemUoKSwgYXNwZWN0U3BlY2lmaWNGb3JtYXQsIGNvcHlT
aXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoY29uc3QgV0dQVUltYWdlQ29w
eVRleHR1cmUmIHNvdXJjZSwgY29uc3QgV0dQVUltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24s
IGNvbnN0IFdHUFVFeHRlbnQzRCYgY29weVNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJj
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oY29w
eVNpemUpOworICAgIGlmIChzb3VyY2UubmV4dEluQ2hhaW4gfHwgZGVzdGluYXRpb24ubmV4dElu
Q2hhaW4gfHwgZGVzdGluYXRpb24ubGF5b3V0Lm5leHRJbkNoYWluKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1Y29tbWFu
ZGVuY29kZXItY29weXRleHR1cmV0b2J1ZmZlcgorCisgICAgLy8gIlByZXBhcmUgdGhlIGVuY29k
ZXIgc3RhdGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYgKCFw
cmVwYXJlVGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJJZiBh
bnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIKKyAgICBpZiAo
IXZhbGlkYXRlQ29weVRleHR1cmVUb0J1ZmZlcihzb3VyY2UsIGRlc3RpbmF0aW9uLCBjb3B5U2l6
ZSkpIHsKKyAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4i
CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24g
ZmFpbHVyZS4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVuc3VyZUJsaXRDb21t
YW5kRW5jb2RlcigpOworCisgICAgTlNVSW50ZWdlciBkZXN0aW5hdGlvbkJ5dGVzUGVyUm93ID0g
ZGVzdGluYXRpb24ubGF5b3V0LmJ5dGVzUGVyUm93OworCisgICAgLy8gRklYTUU6IFVzZSBjaGVj
a2VkIGFyaXRobWV0aWMKKyAgICBOU1VJbnRlZ2VyIGRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFnZSA9
IGRlc3RpbmF0aW9uLmxheW91dC5yb3dzUGVySW1hZ2UgKiBkZXN0aW5hdGlvbi5sYXlvdXQuYnl0
ZXNQZXJSb3c7CisKKyAgICBNVExCbGl0T3B0aW9uIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9u
ZTsKKyAgICBzd2l0Y2ggKHNvdXJjZS5hc3BlY3QpIHsKKyAgICBjYXNlIFdHUFVUZXh0dXJlQXNw
ZWN0X0FsbDoKKyAgICAgICAgb3B0aW9ucyA9IE1UTEJsaXRPcHRpb25Ob25lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdHUFVUZXh0dXJlQXNwZWN0X1N0ZW5jaWxPbmx5OgorICAgICAgICBv
cHRpb25zID0gTVRMQmxpdE9wdGlvblN0ZW5jaWxGcm9tRGVwdGhTdGVuY2lsOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdHUFVUZXh0dXJlQXNwZWN0X0RlcHRoT25seToKKyAgICAgICAgb3B0
aW9ucyA9IE1UTEJsaXRPcHRpb25EZXB0aEZyb21EZXB0aFN0ZW5jaWw7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRm9yY2UzMjoKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gbG9naWNhbFNpemUgPSBmcm9tQVBJKHNvdXJjZS50ZXh0dXJlKS5s
b2dpY2FsVGV4dHVyZVN1YnJlc291cmNlRXh0ZW50KHNvdXJjZS5taXBMZXZlbCk7CisgICAgYXV0
byB3aWR0aEZvck1ldGFsID0gc3RkOjptaW4oY29weVNpemUud2lkdGgsIGxvZ2ljYWxTaXplLndp
ZHRoKTsKKyAgICBhdXRvIGhlaWdodEZvck1ldGFsID0gc3RkOjptaW4oY29weVNpemUuaGVpZ2h0
LCBsb2dpY2FsU2l6ZS5oZWlnaHQpOworICAgIGF1dG8gZGVwdGhGb3JNZXRhbCA9IHN0ZDo6bWlu
KGNvcHlTaXplLmRlcHRoT3JBcnJheUxheWVycywgbG9naWNhbFNpemUuZGVwdGhPckFycmF5TGF5
ZXJzKTsKKworICAgIGF1dG8mIHNvdXJjZURlc2NyaXB0b3IgPSBmcm9tQVBJKHNvdXJjZS50ZXh0
dXJlKS5kZXNjcmlwdG9yKCk7CisgICAgc3dpdGNoIChzb3VyY2VEZXNjcmlwdG9yLmRpbWVuc2lv
bikgeworICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgLy8gaHR0
cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxpdGNvbW1h
bmRlbmNvZGVyLzE0MDA3NTYtY29weWZyb210ZXh0dXJlP2xhbmd1YWdlPW9iamMKKyAgICAgICAg
Ly8gIldoZW4geW91IGNvcHkgdG8gYSAxRCB0ZXh0dXJlLCBoZWlnaHQgYW5kIGRlcHRoIG11c3Qg
YmUgMS4iCisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRoRm9yTWV0
YWwsIDEsIDEpOworICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IE1UTE9yaWdpbk1ha2Uoc291
cmNlLm9yaWdpbi54LCAxLCAxKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBsYXllciA9IDA7IGxh
eWVyIDwgY29weVNpemUuZGVwdGhPckFycmF5TGF5ZXJzOyArK2xheWVyKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogVXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgIE5TVUludGVn
ZXIgZGVzdGluYXRpb25PZmZzZXQgPSBkZXN0aW5hdGlvbi5sYXlvdXQub2Zmc2V0ICsgbGF5ZXIg
KiBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2U7CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHNvdXJj
ZVNsaWNlID0gc291cmNlLm9yaWdpbi56ICsgbGF5ZXI7CisgICAgICAgICAgICBbbV9ibGl0Q29t
bWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbVRleHR1cmU6ZnJvbUFQSShzb3Vy
Y2UudGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAgc291cmNlU2xpY2U6c291cmNl
U2xpY2UKKyAgICAgICAgICAgICAgICBzb3VyY2VMZXZlbDpzb3VyY2UubWlwTGV2ZWwKKyAgICAg
ICAgICAgICAgICBzb3VyY2VPcmlnaW46c291cmNlT3JpZ2luCisgICAgICAgICAgICAgICAgc291
cmNlU2l6ZTpzb3VyY2VTaXplCisgICAgICAgICAgICAgICAgdG9CdWZmZXI6ZnJvbUFQSShkZXN0
aW5hdGlvbi5idWZmZXIpLmJ1ZmZlcigpCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25PZmZz
ZXQ6ZGVzdGluYXRpb25PZmZzZXQKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5dGVzUGVy
Um93OmRlc3RpbmF0aW9uQnl0ZXNQZXJSb3cKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5
dGVzUGVySW1hZ2U6ZGVzdGluYXRpb25CeXRlc1BlckltYWdlCisgICAgICAgICAgICAgICAgb3B0
aW9uczpvcHRpb25zXTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZURpbWVuc2lvbl8yRDogeworICAgICAgICAvLyBodHRwczovL2RldmVsb3Bl
ci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9tZXRhbC9tdGxibGl0Y29tbWFuZGVuY29kZXIvMTQw
MDc1Ni1jb3B5ZnJvbXRleHR1cmU/bGFuZ3VhZ2U9b2JqYworICAgICAgICAvLyAiV2hlbiB5b3Ug
Y29weSB0byBhIDJEIHRleHR1cmUsIGRlcHRoIG11c3QgYmUgMS4iCisgICAgICAgIGF1dG8gc291
cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRoRm9yTWV0YWwsIGhlaWdodEZvck1ldGFsLCAxKTsK
KyAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBNVExPcmlnaW5NYWtlKHNvdXJjZS5vcmlnaW4u
eCwgc291cmNlLm9yaWdpbi55LCAxKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBsYXllciA9IDA7
IGxheWVyIDwgY29weVNpemUuZGVwdGhPckFycmF5TGF5ZXJzOyArK2xheWVyKSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogVXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgIE5TVUlu
dGVnZXIgZGVzdGluYXRpb25PZmZzZXQgPSBkZXN0aW5hdGlvbi5sYXlvdXQub2Zmc2V0ICsgbGF5
ZXIgKiBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2U7CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHNv
dXJjZVNsaWNlID0gc291cmNlLm9yaWdpbi56ICsgbGF5ZXI7CisgICAgICAgICAgICBbbV9ibGl0
Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbVRleHR1cmU6ZnJvbUFQSShz
b3VyY2UudGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAgc291cmNlU2xpY2U6c291
cmNlU2xpY2UKKyAgICAgICAgICAgICAgICBzb3VyY2VMZXZlbDpzb3VyY2UubWlwTGV2ZWwKKyAg
ICAgICAgICAgICAgICBzb3VyY2VPcmlnaW46c291cmNlT3JpZ2luCisgICAgICAgICAgICAgICAg
c291cmNlU2l6ZTpzb3VyY2VTaXplCisgICAgICAgICAgICAgICAgdG9CdWZmZXI6ZnJvbUFQSShk
ZXN0aW5hdGlvbi5idWZmZXIpLmJ1ZmZlcigpCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25P
ZmZzZXQ6ZGVzdGluYXRpb25PZmZzZXQKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5dGVz
UGVyUm93OmRlc3RpbmF0aW9uQnl0ZXNQZXJSb3cKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlv
bkJ5dGVzUGVySW1hZ2U6ZGVzdGluYXRpb25CeXRlc1BlckltYWdlCisgICAgICAgICAgICAgICAg
b3B0aW9uczpvcHRpb25zXTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl8zRDogeworICAgICAgICBhdXRvIHNvdXJjZVNpemUg
PSBNVExTaXplTWFrZSh3aWR0aEZvck1ldGFsLCBoZWlnaHRGb3JNZXRhbCwgZGVwdGhGb3JNZXRh
bCk7CisgICAgICAgIGF1dG8gc291cmNlT3JpZ2luID0gTVRMT3JpZ2luTWFrZShzb3VyY2Uub3Jp
Z2luLngsIHNvdXJjZS5vcmlnaW4ueSwgc291cmNlLm9yaWdpbi56KTsKKyAgICAgICAgTlNVSW50
ZWdlciBkZXN0aW5hdGlvbk9mZnNldCA9IGRlc3RpbmF0aW9uLmxheW91dC5vZmZzZXQ7CisgICAg
ICAgICAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbVRl
eHR1cmU6ZnJvbUFQSShzb3VyY2UudGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAg
c291cmNlU2xpY2U6MAorICAgICAgICAgICAgICAgIHNvdXJjZUxldmVsOnNvdXJjZS5taXBMZXZl
bAorICAgICAgICAgICAgICAgIHNvdXJjZU9yaWdpbjpzb3VyY2VPcmlnaW4KKyAgICAgICAgICAg
ICAgICBzb3VyY2VTaXplOnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b0J1ZmZlcjpmcm9t
QVBJKGRlc3RpbmF0aW9uLmJ1ZmZlcikuYnVmZmVyKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvbk9mZnNldDpkZXN0aW5hdGlvbk9mZnNldAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9u
Qnl0ZXNQZXJSb3c6ZGVzdGluYXRpb25CeXRlc1BlclJvdworICAgICAgICAgICAgICAgIGRlc3Rp
bmF0aW9uQnl0ZXNQZXJJbWFnZTpkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAg
ICAgICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBX
R1BVVGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICByZXR1cm47CisgICAgfQogfQog
CiB2b2lkIENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZShjb25zdCBXR1BVSW1h
Z2VDb3B5VGV4dHVyZSYgc291cmNlLCBjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGlu
YXRpb24sIGNvbnN0IFdHUFVFeHRlbnQzRCYgY29weVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9UZXh0dXJlLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgK
aW5kZXggMGU0ZTJiYWYwYjM4Li45MmUwNzYwNTc3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL1RleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgK
QEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlSW1hZ2VD
b3B5VGV4dHVyZShjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYsIGNvbnN0IFdHUFVFeHRlbnQz
RCYpOwogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShjb25zdCBXR1BV
SW1hZ2VDb3B5VGV4dHVyZSYsIGNvbnN0IFdHUFVFeHRlbnQzRCYpOwogICAgIHN0YXRpYyBib29s
IHJlZmVyc1RvU2luZ2xlQXNwZWN0KFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVVGV4dHVyZUFzcGVj
dCk7CisgICAgc3RhdGljIGJvb2wgaXNWYWxpZEltYWdlQ29weVNvdXJjZShXR1BVVGV4dHVyZUZv
cm1hdCwgV0dQVVRleHR1cmVBc3BlY3QpOwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRJbWFnZUNv
cHlEZXN0aW5hdGlvbihXR1BVVGV4dHVyZUZvcm1hdCwgV0dQVVRleHR1cmVBc3BlY3QpOwogICAg
IHN0YXRpYyBib29sIHZhbGlkYXRlTGluZWFyVGV4dHVyZURhdGEoY29uc3QgV0dQVVRleHR1cmVE
YXRhTGF5b3V0JiwgdWludDY0X3QsIFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVRXh0ZW50M0QpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvVGV4dHVyZS5tbQppbmRleCBhNWRkMDYyZjU4MTQuLjY5ZDAxM2I4MjU3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5tbQorKysgYi9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tCkBAIC0yNDI5LDYgKzI0MjksMTE5IEBAIGJvb2wgVGV4
dHVyZTo6cmVmZXJzVG9TaW5nbGVBc3BlY3QoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0LCBXR1BV
VGV4dHVyZUFzcGVjdCBhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVGV4dHVyZTo6aXNW
YWxpZEltYWdlQ29weVNvdXJjZShXR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQsIFdHUFVUZXh0dXJl
QXNwZWN0IGFzcGVjdCkKK3sKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2Vi
LyNkZXB0aC1mb3JtYXRzCisKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfVW5kZWZpbmVkOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjhVbm9y
bToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4U25vcm06CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9SOFVpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNpbnQ6Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMTZVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUjE2U2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1IxNkZsb2F0OgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkc4VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9SRzhTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHOFVpbnQ6CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzhTaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfUjMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMzJVaW50OgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfUjMyU2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X1JHMTZVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkcxNlNpbnQ6CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzE2RmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9SR0JBOFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQThVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBOFNub3JtOgorICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfUkdCQThVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQThT
aW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkdSQThVbm9ybToKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X0JHUkE4VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfUkdCMTBBMlVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkcxMUIxMFVmbG9h
dDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQjlFNVVmbG9hdDoKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X1JHMzJGbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JH
MzJVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkczMlNpbnQ6CisgICAgY2FzZSBX
R1BVVGV4dHVyZUZvcm1hdF9SR0JBMTZVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRf
UkdCQTE2U2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkExNkZsb2F0OgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQTMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9SR0JBMzJVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQTMyU2lu
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1N0ZW5jaWw4OgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRGVwdGgxNlVub3JtOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X0RlcHRoMjRQbHVzOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDI0UGx1c1N0ZW5jaWw4OgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfRGVwdGgyNFVub3JtU3RlbmNpbDg6CisgICAgICAgIHJldHVybiBhc3Bl
Y3QgPT0gV0dQVVRleHR1cmVBc3BlY3RfU3RlbmNpbE9ubHk7CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9EZXB0aDMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDMy
RmxvYXRTdGVuY2lsODoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9CQzFSR0JBVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzFSR0JB
VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkMyUkdCQVVub3JtOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkMyUkdCQVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVU
ZXh0dXJlRm9ybWF0X0JDM1JHQkFVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JD
M1JHQkFVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzRSVW5vcm06Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzRSU25vcm06CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9CQzVSR1Vub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkM1UkdTbm9y
bToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDNkhSR0JVZmxvYXQ6CisgICAgY2FzZSBX
R1BVVGV4dHVyZUZvcm1hdF9CQzZIUkdCRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9CQzdSR0JBVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzdSR0JBVW5vcm1T
cmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRDMlJHQjhVbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0I4VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRVRDMlJHQjhBMVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRD
MlJHQjhBMVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0JBOFVu
b3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRDMlJHQkE4VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRUFDUjExVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9FQUNSMTFTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VBQ1JHMTFV
bm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VBQ1JHMTFTbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM0eDRVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9y
bWF0X0FTVEM0eDRVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNXg0
VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNXg0VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzV4NVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfQVNUQzV4NVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FT
VEM2eDVVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM2eDVVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNng2VW5vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDNng2VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfQVNUQzh4NVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzh4NVVub3Jt
U3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM4eDZVbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM4eDZVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9BU1RDOHg4VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDOHg4
VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDVVbm9ybToKKyAg
ICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHg1VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfQVNUQzEweDZVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X0FTVEMxMHg2VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDhV
bm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHg4VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDEwVW5vcm06CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9BU1RDMTB4MTBVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9BU1RDMTJ4MTBVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMFVu
b3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEyVW5vcm1TcmdiOgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfRm9yY2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIGJvb2wgVGV4dHVyZTo6aXNWYWxpZElt
YWdlQ29weURlc3RpbmF0aW9uKFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCwgV0dQVVRleHR1cmVB
c3BlY3QgYXNwZWN0KQogewogICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIv
I2RlcHRoLWZvcm1hdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455941</attachid>
            <date>2022-03-28 12:22:21 -0700</date>
            <delta_ts>2022-03-31 01:45:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15975</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ4Mjk4NDg4ZWI5MmEzNTEwNzY0NWVmOTBkOGQ2ZTlkMDA1YjQ5NjcKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWFyIDI4
IDExOjU0OjA4IDIwMjIgLTA3MDAKCiAgICBQYXJ0IDQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IDNhMzU1OGJjZGIy
NS4uYWJkNDMyZGIzNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAzLTI4ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gSW1wbGVtZW50IENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKCkgYWNjb3Jk
aW5nIHRvIHRoZSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVm
ZmVyKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLgorICAgICAgICBJdCByZS11c2VzIG1hbnkgb2Yg
dGhlIGhlbHBlciBmdW5jdGlvbnMgYWRkZWQgaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQyOC4gVGhlcmUgYXJlIGxpbmtzIGFuZCBxdW90ZXMg
ZnJvbQorICAgICAgICB0aGUgc3BlYyB3aGVyZSBhcHByb3ByaWF0ZS4KKworICAgICAgICAqIFdl
YkdQVS9Db21tYW5kRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6dmFsaWRhdGVDb3B5VGV4
dHVyZVRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmNvcHlUZXh0
dXJlVG9CdWZmZXIpOgorICAgICAgICAqIFdlYkdQVS9UZXh0dXJlLmg6CisgICAgICAgICogV2Vi
R1BVL1RleHR1cmUubW06CisgICAgICAgIChXZWJHUFU6OlRleHR1cmU6OmlzVmFsaWRJbWFnZUNv
cHlTb3VyY2UpOgorCiAyMDIyLTAzLTI4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gSW1wbGVtZW50IENvbW1hbmRFbmNvZGVyOjpj
b3B5QnVmZmVyVG9UZXh0dXJlKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0NvbW1hbmRFbmNvZGVyLm1tCmluZGV4IGUxMjYzYWRkMGFkMC4uMGYzNDFlNjczNzI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQorKysgYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAtMzU0LDExICszNTQsMTg3
IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoY29uc3QgV0dQVUlt
YWdlQ29weUJ1ZmZlciYgc291cmNlLCBjb25zCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCB2YWxp
ZGF0ZUNvcHlUZXh0dXJlVG9CdWZmZXIoY29uc3QgV0dQVUltYWdlQ29weVRleHR1cmUmIHNvdXJj
ZSwgY29uc3QgV0dQVUltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24sIGNvbnN0IFdHUFVFeHRl
bnQzRCYgY29weVNpemUpCit7CisgICAgLy8gIkxldCBzcmNUZXh0dXJlRGVzYyBiZSBzb3VyY2Uu
dGV4dHVyZS5bW2Rlc2NyaXB0b3JdXS4iCisgICAgY29uc3QgYXV0byYgc3JjVGV4dHVyZURlc2Mg
PSBmcm9tQVBJKHNvdXJjZS50ZXh0dXJlKS5kZXNjcmlwdG9yKCk7CisKKyAgICAvLyAidmFsaWRh
dGluZyBHUFVJbWFnZUNvcHlUZXh0dXJlKHNvdXJjZSwgY29weVNpemUpIHJldHVybnMgdHJ1ZS4i
CisgICAgaWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUltYWdlQ29weVRleHR1cmUoc291cmNlLCBjb3B5
U2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vICJzcmNUZXh0dXJlRGVzYy51
c2FnZSBjb250YWlucyBDT1BZX1NSQy4iCisgICAgaWYgKCEoc3JjVGV4dHVyZURlc2MudXNhZ2Ug
JiBXR1BVQnVmZmVyVXNhZ2VfQ29weVNyYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vICJzcmNUZXh0dXJlRGVzYy5zYW1wbGVDb3VudCBpcyAxLiIKKyAgICBpZiAoc3JjVGV4dHVy
ZURlc2Muc2FtcGxlQ291bnQgIT0gMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8g
IkxldCBhc3BlY3RTcGVjaWZpY0Zvcm1hdCA9IGRzdFRleHR1cmVEZXNjLmZvcm1hdC4iCisgICAg
V0dQVVRleHR1cmVGb3JtYXQgYXNwZWN0U3BlY2lmaWNGb3JtYXQgPSBzcmNUZXh0dXJlRGVzYy5m
b3JtYXQ7CisKKyAgICAvLyAiSWYgc3JjVGV4dHVyZURlc2MuZm9ybWF0IGlzIGEgZGVwdGgtc3Rl
bmNpbCBmb3JtYXQ6IgorICAgIGlmIChUZXh0dXJlOjppc0RlcHRoT3JTdGVuY2lsRm9ybWF0KHNy
Y1RleHR1cmVEZXNjLmZvcm1hdCkpIHsKKyAgICAgICAgLy8gInNvdXJjZS5hc3BlY3QgbXVzdCBy
ZWZlciB0byBhIHNpbmdsZSBhc3BlY3Qgb2Ygc3JjVGV4dHVyZURlc2MuZm9ybWF0IgorICAgICAg
ICBpZiAoIVRleHR1cmU6OnJlZmVyc1RvU2luZ2xlQXNwZWN0KHNyY1RleHR1cmVEZXNjLmZvcm1h
dCwgc291cmNlLmFzcGVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
Ly8gImFuZCB0aGF0IGFzcGVjdCBtdXN0IGJlIGEgdmFsaWQgaW1hZ2UgY29weSBzb3VyY2UgYWNj
b3JkaW5nIHRvIMKnIDI1LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgICAgICBpZiAo
IVRleHR1cmU6OmlzVmFsaWRJbWFnZUNvcHlTb3VyY2Uoc3JjVGV4dHVyZURlc2MuZm9ybWF0LCBz
b3VyY2UuYXNwZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyAi
U2V0IGFzcGVjdFNwZWNpZmljRm9ybWF0IHRvIHRoZSBhc3BlY3Qtc3BlY2lmaWMgZm9ybWF0IGFj
Y29yZGluZyB0byDCp+KArzI1LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgICAgICBh
c3BlY3RTcGVjaWZpY0Zvcm1hdCA9IFRleHR1cmU6OmFzcGVjdFNwZWNpZmljRm9ybWF0KHNyY1Rl
eHR1cmVEZXNjLmZvcm1hdCwgc291cmNlLmFzcGVjdCk7CisgICAgfQorCisgICAgLy8gInZhbGlk
YXRpbmcgR1BVSW1hZ2VDb3B5QnVmZmVyKGRlc3RpbmF0aW9uKSByZXR1cm5zIHRydWUuIgorICAg
IGlmICghdmFsaWRhdGVJbWFnZUNvcHlCdWZmZXIoZGVzdGluYXRpb24pKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAvLyAiZGVzdGluYXRpb24uYnVmZmVyLltbdXNhZ2VdXSBjb250YWlu
cyBDT1BZX0RTVC4iCisgICAgaWYgKCEoZnJvbUFQSShkZXN0aW5hdGlvbi5idWZmZXIpLnVzYWdl
KCkgJiBXR1BVQnVmZmVyVXNhZ2VfQ29weURzdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vICJ2YWxpZGF0aW5nIHRleHR1cmUgY29weSByYW5nZShzb3VyY2UsIGNvcHlTaXplKSBy
ZXR1cm5zIHRydWUuIgorICAgIGlmICghVGV4dHVyZTo6dmFsaWRhdGVUZXh0dXJlQ29weVJhbmdl
KHNvdXJjZSwgY29weVNpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAiSWYg
c3JjVGV4dHVyZURlc2MuZm9ybWF0IGlzIG5vdCBhIGRlcHRoLW9yLXN0ZW5jaWwgZm9ybWF0OiIK
KyAgICBpZiAoIVRleHR1cmU6OmlzRGVwdGhPclN0ZW5jaWxGb3JtYXQoc3JjVGV4dHVyZURlc2Mu
Zm9ybWF0KSkgeworICAgICAgICAvLyAiZGVzdGluYXRpb24ub2Zmc2V0IGlzIGEgbXVsdGlwbGUg
b2YgdGhlIHRleGVsIGJsb2NrIHNpemUgb2Ygc3JjVGV4dHVyZURlc2MuZm9ybWF0LiIKKyAgICAg
ICAgYXV0byB0ZXhlbEJsb2NrU2l6ZSA9IFRleHR1cmU6OnRleGVsQmxvY2tTaXplKHNyY1RleHR1
cmVEZXNjLmZvcm1hdCk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbi5sYXlvdXQub2Zmc2V0ICUg
dGV4ZWxCbG9ja1NpemUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
Ly8gIklmIHNyY1RleHR1cmVEZXNjLmZvcm1hdCBpcyBhIGRlcHRoLW9yLXN0ZW5jaWwgZm9ybWF0
OiIKKyAgICBpZiAoVGV4dHVyZTo6aXNEZXB0aE9yU3RlbmNpbEZvcm1hdChzcmNUZXh0dXJlRGVz
Yy5mb3JtYXQpKSB7CisgICAgICAgIC8vICJkZXN0aW5hdGlvbi5vZmZzZXQgaXMgYSBtdWx0aXBs
ZSBvZiA0LiIKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLmxheW91dC5vZmZzZXQgJSA0KQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vICJ2YWxpZGF0aW5nIGxpbmVh
ciB0ZXh0dXJlIGRhdGEoZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uLmJ1ZmZlci5bW3NpemVdXSwg
YXNwZWN0U3BlY2lmaWNGb3JtYXQsIGNvcHlTaXplKSBzdWNjZWVkcy4iCisgICAgaWYgKCFUZXh0
dXJlOjp2YWxpZGF0ZUxpbmVhclRleHR1cmVEYXRhKGRlc3RpbmF0aW9uLmxheW91dCwgZnJvbUFQ
SShkZXN0aW5hdGlvbi5idWZmZXIpLnNpemUoKSwgYXNwZWN0U3BlY2lmaWNGb3JtYXQsIGNvcHlT
aXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoY29uc3QgV0dQVUltYWdlQ29w
eVRleHR1cmUmIHNvdXJjZSwgY29uc3QgV0dQVUltYWdlQ29weUJ1ZmZlciYgZGVzdGluYXRpb24s
IGNvbnN0IFdHUFVFeHRlbnQzRCYgY29weVNpemUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHNvdXJj
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oY29w
eVNpemUpOworICAgIGlmIChzb3VyY2UubmV4dEluQ2hhaW4gfHwgZGVzdGluYXRpb24ubmV4dElu
Q2hhaW4gfHwgZGVzdGluYXRpb24ubGF5b3V0Lm5leHRJbkNoYWluKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkb20tZ3B1Y29tbWFu
ZGVuY29kZXItY29weXRleHR1cmV0b2J1ZmZlcgorCisgICAgLy8gIlByZXBhcmUgdGhlIGVuY29k
ZXIgc3RhdGUgb2YgdGhpcy4gSWYgaXQgcmV0dXJucyBmYWxzZSwgc3RvcC4iCisgICAgaWYgKCFw
cmVwYXJlVGhlRW5jb2RlclN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vICJJZiBh
bnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIKKyAgICBpZiAo
IXZhbGlkYXRlQ29weVRleHR1cmVUb0J1ZmZlcihzb3VyY2UsIGRlc3RpbmF0aW9uLCBjb3B5U2l6
ZSkpIHsKKyAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4i
CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24g
ZmFpbHVyZS4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVuc3VyZUJsaXRDb21t
YW5kRW5jb2RlcigpOworCisgICAgTlNVSW50ZWdlciBkZXN0aW5hdGlvbkJ5dGVzUGVyUm93ID0g
ZGVzdGluYXRpb24ubGF5b3V0LmJ5dGVzUGVyUm93OworCisgICAgLy8gRklYTUU6IFVzZSBjaGVj
a2VkIGFyaXRobWV0aWMKKyAgICBOU1VJbnRlZ2VyIGRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFnZSA9
IGRlc3RpbmF0aW9uLmxheW91dC5yb3dzUGVySW1hZ2UgKiBkZXN0aW5hdGlvbi5sYXlvdXQuYnl0
ZXNQZXJSb3c7CisKKyAgICBNVExCbGl0T3B0aW9uIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9u
ZTsKKyAgICBzd2l0Y2ggKHNvdXJjZS5hc3BlY3QpIHsKKyAgICBjYXNlIFdHUFVUZXh0dXJlQXNw
ZWN0X0FsbDoKKyAgICAgICAgb3B0aW9ucyA9IE1UTEJsaXRPcHRpb25Ob25lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdHUFVUZXh0dXJlQXNwZWN0X1N0ZW5jaWxPbmx5OgorICAgICAgICBv
cHRpb25zID0gTVRMQmxpdE9wdGlvblN0ZW5jaWxGcm9tRGVwdGhTdGVuY2lsOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdHUFVUZXh0dXJlQXNwZWN0X0RlcHRoT25seToKKyAgICAgICAgb3B0
aW9ucyA9IE1UTEJsaXRPcHRpb25EZXB0aEZyb21EZXB0aFN0ZW5jaWw7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRm9yY2UzMjoKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gbG9naWNhbFNpemUgPSBmcm9tQVBJKHNvdXJjZS50ZXh0dXJlKS5s
b2dpY2FsVGV4dHVyZVN1YnJlc291cmNlRXh0ZW50KHNvdXJjZS5taXBMZXZlbCk7CisgICAgYXV0
byB3aWR0aEZvck1ldGFsID0gc3RkOjptaW4oY29weVNpemUud2lkdGgsIGxvZ2ljYWxTaXplLndp
ZHRoKTsKKyAgICBhdXRvIGhlaWdodEZvck1ldGFsID0gc3RkOjptaW4oY29weVNpemUuaGVpZ2h0
LCBsb2dpY2FsU2l6ZS5oZWlnaHQpOworICAgIGF1dG8gZGVwdGhGb3JNZXRhbCA9IHN0ZDo6bWlu
KGNvcHlTaXplLmRlcHRoT3JBcnJheUxheWVycywgbG9naWNhbFNpemUuZGVwdGhPckFycmF5TGF5
ZXJzKTsKKworICAgIGF1dG8mIHNvdXJjZURlc2NyaXB0b3IgPSBmcm9tQVBJKHNvdXJjZS50ZXh0
dXJlKS5kZXNjcmlwdG9yKCk7CisgICAgc3dpdGNoIChzb3VyY2VEZXNjcmlwdG9yLmRpbWVuc2lv
bikgeworICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgLy8gaHR0
cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxpdGNvbW1h
bmRlbmNvZGVyLzE0MDA3NTYtY29weWZyb210ZXh0dXJlP2xhbmd1YWdlPW9iamMKKyAgICAgICAg
Ly8gIldoZW4geW91IGNvcHkgdG8gYSAxRCB0ZXh0dXJlLCBoZWlnaHQgYW5kIGRlcHRoIG11c3Qg
YmUgMS4iCisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRoRm9yTWV0
YWwsIDEsIDEpOworICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IE1UTE9yaWdpbk1ha2Uoc291
cmNlLm9yaWdpbi54LCAxLCAxKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBsYXllciA9IDA7IGxh
eWVyIDwgY29weVNpemUuZGVwdGhPckFycmF5TGF5ZXJzOyArK2xheWVyKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogVXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgIGF1dG8gZGVz
dGluYXRpb25PZmZzZXQgPSBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihkZXN0aW5hdGlvbi5sYXlv
dXQub2Zmc2V0ICsgbGF5ZXIgKiBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UpOworICAgICAgICAg
ICAgTlNVSW50ZWdlciBzb3VyY2VTbGljZSA9IHNvdXJjZS5vcmlnaW4ueiArIGxheWVyOworICAg
ICAgICAgICAgW21fYmxpdENvbW1hbmRFbmNvZGVyCisgICAgICAgICAgICAgICAgY29weUZyb21U
ZXh0dXJlOmZyb21BUEkoc291cmNlLnRleHR1cmUpLnRleHR1cmUoKQorICAgICAgICAgICAgICAg
IHNvdXJjZVNsaWNlOnNvdXJjZVNsaWNlCisgICAgICAgICAgICAgICAgc291cmNlTGV2ZWw6c291
cmNlLm1pcExldmVsCisgICAgICAgICAgICAgICAgc291cmNlT3JpZ2luOnNvdXJjZU9yaWdpbgor
ICAgICAgICAgICAgICAgIHNvdXJjZVNpemU6c291cmNlU2l6ZQorICAgICAgICAgICAgICAgIHRv
QnVmZmVyOmZyb21BUEkoZGVzdGluYXRpb24uYnVmZmVyKS5idWZmZXIoKQorICAgICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uT2Zmc2V0OmRlc3RpbmF0aW9uT2Zmc2V0CisgICAgICAgICAgICAgICAg
ZGVzdGluYXRpb25CeXRlc1BlclJvdzpkZXN0aW5hdGlvbkJ5dGVzUGVyUm93CisgICAgICAgICAg
ICAgICAgZGVzdGluYXRpb25CeXRlc1BlckltYWdlOmRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFnZQor
ICAgICAgICAgICAgICAgIG9wdGlvbnM6b3B0aW9uc107CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMkQ6IHsKKyAgICAgICAg
Ly8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxp
dGNvbW1hbmRlbmNvZGVyLzE0MDA3NTYtY29weWZyb210ZXh0dXJlP2xhbmd1YWdlPW9iamMKKyAg
ICAgICAgLy8gIldoZW4geW91IGNvcHkgdG8gYSAyRCB0ZXh0dXJlLCBkZXB0aCBtdXN0IGJlIDEu
IgorICAgICAgICBhdXRvIHNvdXJjZVNpemUgPSBNVExTaXplTWFrZSh3aWR0aEZvck1ldGFsLCBo
ZWlnaHRGb3JNZXRhbCwgMSk7CisgICAgICAgIGF1dG8gc291cmNlT3JpZ2luID0gTVRMT3JpZ2lu
TWFrZShzb3VyY2Uub3JpZ2luLngsIHNvdXJjZS5vcmlnaW4ueSwgMSk7CisgICAgICAgIGZvciAo
dWludDMyX3QgbGF5ZXIgPSAwOyBsYXllciA8IGNvcHlTaXplLmRlcHRoT3JBcnJheUxheWVyczsg
KytsYXllcikgeworICAgICAgICAgICAgLy8gRklYTUU6IFVzZSBjaGVja2VkIGFyaXRobWV0aWMu
CisgICAgICAgICAgICBhdXRvIGRlc3RpbmF0aW9uT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8TlNVSW50
ZWdlcj4oZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNldCArIGxheWVyICogZGVzdGluYXRpb25CeXRl
c1BlckltYWdlKTsKKyAgICAgICAgICAgIE5TVUludGVnZXIgc291cmNlU2xpY2UgPSBzb3VyY2Uu
b3JpZ2luLnogKyBsYXllcjsKKyAgICAgICAgICAgIFttX2JsaXRDb21tYW5kRW5jb2RlcgorICAg
ICAgICAgICAgICAgIGNvcHlGcm9tVGV4dHVyZTpmcm9tQVBJKHNvdXJjZS50ZXh0dXJlKS50ZXh0
dXJlKCkKKyAgICAgICAgICAgICAgICBzb3VyY2VTbGljZTpzb3VyY2VTbGljZQorICAgICAgICAg
ICAgICAgIHNvdXJjZUxldmVsOnNvdXJjZS5taXBMZXZlbAorICAgICAgICAgICAgICAgIHNvdXJj
ZU9yaWdpbjpzb3VyY2VPcmlnaW4KKyAgICAgICAgICAgICAgICBzb3VyY2VTaXplOnNvdXJjZVNp
emUKKyAgICAgICAgICAgICAgICB0b0J1ZmZlcjpmcm9tQVBJKGRlc3RpbmF0aW9uLmJ1ZmZlciku
YnVmZmVyKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbk9mZnNldDpkZXN0aW5hdGlvbk9m
ZnNldAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQnl0ZXNQZXJSb3c6ZGVzdGluYXRpb25C
eXRlc1BlclJvdworICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFnZTpkZXN0
aW5hdGlvbkJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFdHUFVUZXh0dXJlRGlt
ZW5zaW9uXzNEOiB7CisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRo
Rm9yTWV0YWwsIGhlaWdodEZvck1ldGFsLCBkZXB0aEZvck1ldGFsKTsKKyAgICAgICAgYXV0byBz
b3VyY2VPcmlnaW4gPSBNVExPcmlnaW5NYWtlKHNvdXJjZS5vcmlnaW4ueCwgc291cmNlLm9yaWdp
bi55LCBzb3VyY2Uub3JpZ2luLnopOworICAgICAgICBhdXRvIGRlc3RpbmF0aW9uT2Zmc2V0ID0g
c3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNldCk7CisgICAg
ICAgICAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbVRl
eHR1cmU6ZnJvbUFQSShzb3VyY2UudGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAg
c291cmNlU2xpY2U6MAorICAgICAgICAgICAgICAgIHNvdXJjZUxldmVsOnNvdXJjZS5taXBMZXZl
bAorICAgICAgICAgICAgICAgIHNvdXJjZU9yaWdpbjpzb3VyY2VPcmlnaW4KKyAgICAgICAgICAg
ICAgICBzb3VyY2VTaXplOnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b0J1ZmZlcjpmcm9t
QVBJKGRlc3RpbmF0aW9uLmJ1ZmZlcikuYnVmZmVyKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvbk9mZnNldDpkZXN0aW5hdGlvbk9mZnNldAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9u
Qnl0ZXNQZXJSb3c6ZGVzdGluYXRpb25CeXRlc1BlclJvdworICAgICAgICAgICAgICAgIGRlc3Rp
bmF0aW9uQnl0ZXNQZXJJbWFnZTpkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAg
ICAgICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBX
R1BVVGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICByZXR1cm47CisgICAgfQogfQog
CiB2b2lkIENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZShjb25zdCBXR1BVSW1h
Z2VDb3B5VGV4dHVyZSYgc291cmNlLCBjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGlu
YXRpb24sIGNvbnN0IFdHUFVFeHRlbnQzRCYgY29weVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9UZXh0dXJlLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgK
aW5kZXggMGU0ZTJiYWYwYjM4Li45MmUwNzYwNTc3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL1RleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgK
QEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlSW1hZ2VD
b3B5VGV4dHVyZShjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYsIGNvbnN0IFdHUFVFeHRlbnQz
RCYpOwogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShjb25zdCBXR1BV
SW1hZ2VDb3B5VGV4dHVyZSYsIGNvbnN0IFdHUFVFeHRlbnQzRCYpOwogICAgIHN0YXRpYyBib29s
IHJlZmVyc1RvU2luZ2xlQXNwZWN0KFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVVGV4dHVyZUFzcGVj
dCk7CisgICAgc3RhdGljIGJvb2wgaXNWYWxpZEltYWdlQ29weVNvdXJjZShXR1BVVGV4dHVyZUZv
cm1hdCwgV0dQVVRleHR1cmVBc3BlY3QpOwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRJbWFnZUNv
cHlEZXN0aW5hdGlvbihXR1BVVGV4dHVyZUZvcm1hdCwgV0dQVVRleHR1cmVBc3BlY3QpOwogICAg
IHN0YXRpYyBib29sIHZhbGlkYXRlTGluZWFyVGV4dHVyZURhdGEoY29uc3QgV0dQVVRleHR1cmVE
YXRhTGF5b3V0JiwgdWludDY0X3QsIFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVRXh0ZW50M0QpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvVGV4dHVyZS5tbQppbmRleCBhN2UwYTZjMmIxYWQuLjFlMzgyZjg1N2FlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5tbQorKysgYi9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tCkBAIC0yNDI0LDYgKzI0MjQsMTE5IEBAIGJvb2wgVGV4
dHVyZTo6cmVmZXJzVG9TaW5nbGVBc3BlY3QoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0LCBXR1BV
VGV4dHVyZUFzcGVjdCBhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVGV4dHVyZTo6aXNW
YWxpZEltYWdlQ29weVNvdXJjZShXR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQsIFdHUFVUZXh0dXJl
QXNwZWN0IGFzcGVjdCkKK3sKKyAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2Vi
LyNkZXB0aC1mb3JtYXRzCisKKyAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfVW5kZWZpbmVkOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjhVbm9y
bToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4U25vcm06CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9SOFVpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNpbnQ6Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMTZVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUjE2U2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1IxNkZsb2F0OgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkc4VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9SRzhTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHOFVpbnQ6CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzhTaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfUjMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMzJVaW50OgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfUjMyU2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X1JHMTZVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkcxNlNpbnQ6CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzE2RmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9SR0JBOFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQThVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBOFNub3JtOgorICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfUkdCQThVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQThT
aW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkdSQThVbm9ybToKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X0JHUkE4VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfUkdCMTBBMlVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkcxMUIxMFVmbG9h
dDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQjlFNVVmbG9hdDoKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X1JHMzJGbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JH
MzJVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkczMlNpbnQ6CisgICAgY2FzZSBX
R1BVVGV4dHVyZUZvcm1hdF9SR0JBMTZVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRf
UkdCQTE2U2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkExNkZsb2F0OgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQTMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9SR0JBMzJVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQTMyU2lu
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1N0ZW5jaWw4OgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRGVwdGgxNlVub3JtOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X0RlcHRoMjRQbHVzOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDI0UGx1c1N0ZW5jaWw4OgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfRGVwdGgyNFVub3JtU3RlbmNpbDg6CisgICAgICAgIHJldHVybiBhc3Bl
Y3QgPT0gV0dQVVRleHR1cmVBc3BlY3RfU3RlbmNpbE9ubHk7CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9EZXB0aDMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDMy
RmxvYXRTdGVuY2lsODoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9CQzFSR0JBVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzFSR0JB
VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkMyUkdCQVVub3JtOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkMyUkdCQVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVU
ZXh0dXJlRm9ybWF0X0JDM1JHQkFVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JD
M1JHQkFVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzRSVW5vcm06Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzRSU25vcm06CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9CQzVSR1Vub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkM1UkdTbm9y
bToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDNkhSR0JVZmxvYXQ6CisgICAgY2FzZSBX
R1BVVGV4dHVyZUZvcm1hdF9CQzZIUkdCRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9CQzdSR0JBVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzdSR0JBVW5vcm1T
cmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRDMlJHQjhVbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0I4VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRVRDMlJHQjhBMVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRD
MlJHQjhBMVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0JBOFVu
b3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRDMlJHQkE4VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRUFDUjExVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9FQUNSMTFTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VBQ1JHMTFV
bm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VBQ1JHMTFTbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM0eDRVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9y
bWF0X0FTVEM0eDRVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNXg0
VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNXg0VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzV4NVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfQVNUQzV4NVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FT
VEM2eDVVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM2eDVVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNng2VW5vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDNng2VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfQVNUQzh4NVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzh4NVVub3Jt
U3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM4eDZVbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM4eDZVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9BU1RDOHg4VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDOHg4
VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDVVbm9ybToKKyAg
ICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHg1VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfQVNUQzEweDZVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X0FTVEMxMHg2VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDhV
bm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHg4VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDEwVW5vcm06CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9BU1RDMTB4MTBVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9BU1RDMTJ4MTBVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMFVu
b3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEyVW5vcm1TcmdiOgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfRm9yY2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIGJvb2wgVGV4dHVyZTo6aXNWYWxpZElt
YWdlQ29weURlc3RpbmF0aW9uKFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCwgV0dQVVRleHR1cmVB
c3BlY3QgYXNwZWN0KQogewogICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIv
I2RlcHRoLWZvcm1hdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456217</attachid>
            <date>2022-03-31 01:45:22 -0700</date>
            <delta_ts>2022-03-31 02:04:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238430-20220331014521.patch</filename>
            <type>text/plain</type>
            <size>16079</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGY1NDU3N2MyZGJkZTI3ZmI2
ZDc0MmQ0NDE5MDAzNTA1ZDIzYzUzM2UuLmQ3Zjk4ZThhZmMyNjc3ZTBhZTdhMDE4OWEwZDYwY2Ey
OGFkYzEwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDMtMzEgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBs
ZW1lbnQgQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoKSBhY2NvcmRpbmcgdG8g
dGhlIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzg0MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGltcGxlbWVudHMgQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoKSBh
Y2NvcmRpbmcgdG8gdGhlIHNwZWMuCisgICAgICAgIEl0IHJlLXVzZXMgbWFueSBvZiB0aGUgaGVs
cGVyIGZ1bmN0aW9ucyBhZGRlZCBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NDI4LiBUaGVyZSBhcmUgbGlua3MgYW5kIHF1b3RlcyBmcm9tCisg
ICAgICAgIHRoZSBzcGVjIHdoZXJlIGFwcHJvcHJpYXRlLgorCisgICAgICAgICogV2ViR1BVL0Nv
bW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjp2YWxpZGF0ZUNvcHlUZXh0dXJlVG9C
dWZmZXIpOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb0J1
ZmZlcik6CisgICAgICAgICogV2ViR1BVL1RleHR1cmUuaDoKKyAgICAgICAgKiBXZWJHUFUvVGV4
dHVyZS5tbToKKyAgICAgICAgKFdlYkdQVTo6VGV4dHVyZTo6aXNWYWxpZEltYWdlQ29weVNvdXJj
ZSk6CisKIDIwMjItMDMtMzEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZm
ZXJUb1RleHR1cmUoKSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29t
bWFuZEVuY29kZXIubW0KaW5kZXggMmNlYzBiNDIwNDY3M2QwY2QzYTg0Y2NlOTBhNWE2ODUyZDgz
Nzk0Ni4uMmIwMjAzNzBhM2E4NmZlMGUwMGM5Nzc2ZmE4Y2Q5MDJkYjQ3YWRkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KQEAgLTM1NCwxMSArMzU0LDE4NyBAQCB2b2lk
IENvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKGNvbnN0IFdHUFVJbWFnZUNvcHlC
dWZmZXImIHNvdXJjZSwgY29ucwogICAgIH0KIH0KIAorc3RhdGljIGJvb2wgdmFsaWRhdGVDb3B5
VGV4dHVyZVRvQnVmZmVyKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsIGNvbnN0
IFdHUFVJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9uLCBjb25zdCBXR1BVRXh0ZW50M0QmIGNv
cHlTaXplKQoreworICAgIC8vICJMZXQgc3JjVGV4dHVyZURlc2MgYmUgc291cmNlLnRleHR1cmUu
W1tkZXNjcmlwdG9yXV0uIgorICAgIGNvbnN0IGF1dG8mIHNyY1RleHR1cmVEZXNjID0gZnJvbUFQ
SShzb3VyY2UudGV4dHVyZSkuZGVzY3JpcHRvcigpOworCisgICAgLy8gInZhbGlkYXRpbmcgR1BV
SW1hZ2VDb3B5VGV4dHVyZShzb3VyY2UsIGNvcHlTaXplKSByZXR1cm5zIHRydWUuIgorICAgIGlm
ICghVGV4dHVyZTo6dmFsaWRhdGVJbWFnZUNvcHlUZXh0dXJlKHNvdXJjZSwgY29weVNpemUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAic3JjVGV4dHVyZURlc2MudXNhZ2UgY29u
dGFpbnMgQ09QWV9TUkMuIgorICAgIGlmICghKHNyY1RleHR1cmVEZXNjLnVzYWdlICYgV0dQVUJ1
ZmZlclVzYWdlX0NvcHlTcmMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAic3Jj
VGV4dHVyZURlc2Muc2FtcGxlQ291bnQgaXMgMS4iCisgICAgaWYgKHNyY1RleHR1cmVEZXNjLnNh
bXBsZUNvdW50ICE9IDEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vICJMZXQgYXNw
ZWN0U3BlY2lmaWNGb3JtYXQgPSBkc3RUZXh0dXJlRGVzYy5mb3JtYXQuIgorICAgIFdHUFVUZXh0
dXJlRm9ybWF0IGFzcGVjdFNwZWNpZmljRm9ybWF0ID0gc3JjVGV4dHVyZURlc2MuZm9ybWF0Owor
CisgICAgLy8gIklmIHNyY1RleHR1cmVEZXNjLmZvcm1hdCBpcyBhIGRlcHRoLXN0ZW5jaWwgZm9y
bWF0OiIKKyAgICBpZiAoVGV4dHVyZTo6aXNEZXB0aE9yU3RlbmNpbEZvcm1hdChzcmNUZXh0dXJl
RGVzYy5mb3JtYXQpKSB7CisgICAgICAgIC8vICJzb3VyY2UuYXNwZWN0IG11c3QgcmVmZXIgdG8g
YSBzaW5nbGUgYXNwZWN0IG9mIHNyY1RleHR1cmVEZXNjLmZvcm1hdCIKKyAgICAgICAgaWYgKCFU
ZXh0dXJlOjpyZWZlcnNUb1NpbmdsZUFzcGVjdChzcmNUZXh0dXJlRGVzYy5mb3JtYXQsIHNvdXJj
ZS5hc3BlY3QpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vICJhbmQg
dGhhdCBhc3BlY3QgbXVzdCBiZSBhIHZhbGlkIGltYWdlIGNvcHkgc291cmNlIGFjY29yZGluZyB0
byDCpyAyNS4xLjIgRGVwdGgtc3RlbmNpbCBmb3JtYXRzLiIKKyAgICAgICAgaWYgKCFUZXh0dXJl
Ojppc1ZhbGlkSW1hZ2VDb3B5U291cmNlKHNyY1RleHR1cmVEZXNjLmZvcm1hdCwgc291cmNlLmFz
cGVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gIlNldCBhc3Bl
Y3RTcGVjaWZpY0Zvcm1hdCB0byB0aGUgYXNwZWN0LXNwZWNpZmljIGZvcm1hdCBhY2NvcmRpbmcg
dG8gwqfigK8yNS4xLjIgRGVwdGgtc3RlbmNpbCBmb3JtYXRzLiIKKyAgICAgICAgYXNwZWN0U3Bl
Y2lmaWNGb3JtYXQgPSBUZXh0dXJlOjphc3BlY3RTcGVjaWZpY0Zvcm1hdChzcmNUZXh0dXJlRGVz
Yy5mb3JtYXQsIHNvdXJjZS5hc3BlY3QpOworICAgIH0KKworICAgIC8vICJ2YWxpZGF0aW5nIEdQ
VUltYWdlQ29weUJ1ZmZlcihkZXN0aW5hdGlvbikgcmV0dXJucyB0cnVlLiIKKyAgICBpZiAoIXZh
bGlkYXRlSW1hZ2VDb3B5QnVmZmVyKGRlc3RpbmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgLy8gImRlc3RpbmF0aW9uLmJ1ZmZlci5bW3VzYWdlXV0gY29udGFpbnMgQ09QWV9E
U1QuIgorICAgIGlmICghKGZyb21BUEkoZGVzdGluYXRpb24uYnVmZmVyKS51c2FnZSgpICYgV0dQ
VUJ1ZmZlclVzYWdlX0NvcHlEc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAi
dmFsaWRhdGluZyB0ZXh0dXJlIGNvcHkgcmFuZ2Uoc291cmNlLCBjb3B5U2l6ZSkgcmV0dXJucyB0
cnVlLiIKKyAgICBpZiAoIVRleHR1cmU6OnZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShzb3VyY2Us
IGNvcHlTaXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIklmIHNyY1RleHR1
cmVEZXNjLmZvcm1hdCBpcyBub3QgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAgaWYg
KCFUZXh0dXJlOjppc0RlcHRoT3JTdGVuY2lsRm9ybWF0KHNyY1RleHR1cmVEZXNjLmZvcm1hdCkp
IHsKKyAgICAgICAgLy8gImRlc3RpbmF0aW9uLm9mZnNldCBpcyBhIG11bHRpcGxlIG9mIHRoZSB0
ZXhlbCBibG9jayBzaXplIG9mIHNyY1RleHR1cmVEZXNjLmZvcm1hdC4iCisgICAgICAgIGF1dG8g
dGV4ZWxCbG9ja1NpemUgPSBUZXh0dXJlOjp0ZXhlbEJsb2NrU2l6ZShzcmNUZXh0dXJlRGVzYy5m
b3JtYXQpOworICAgICAgICBpZiAoZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNldCAlIHRleGVsQmxv
Y2tTaXplKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vICJJZiBz
cmNUZXh0dXJlRGVzYy5mb3JtYXQgaXMgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAg
aWYgKFRleHR1cmU6OmlzRGVwdGhPclN0ZW5jaWxGb3JtYXQoc3JjVGV4dHVyZURlc2MuZm9ybWF0
KSkgeworICAgICAgICAvLyAiZGVzdGluYXRpb24ub2Zmc2V0IGlzIGEgbXVsdGlwbGUgb2YgNC4i
CisgICAgICAgIGlmIChkZXN0aW5hdGlvbi5sYXlvdXQub2Zmc2V0ICUgNCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyAidmFsaWRhdGluZyBsaW5lYXIgdGV4dHVy
ZSBkYXRhKGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbi5idWZmZXIuW1tzaXplXV0sIGFzcGVjdFNw
ZWNpZmljRm9ybWF0LCBjb3B5U2l6ZSkgc3VjY2VlZHMuIgorICAgIGlmICghVGV4dHVyZTo6dmFs
aWRhdGVMaW5lYXJUZXh0dXJlRGF0YShkZXN0aW5hdGlvbi5sYXlvdXQsIGZyb21BUEkoZGVzdGlu
YXRpb24uYnVmZmVyKS5zaXplKCksIGFzcGVjdFNwZWNpZmljRm9ybWF0LCBjb3B5U2l6ZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIENvbW1h
bmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJl
JiBzb3VyY2UsIGNvbnN0IFdHUFVJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9uLCBjb25zdCBX
R1BVRXh0ZW50M0QmIGNvcHlTaXplKQogewotICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsK
KyAgICBpZiAoc291cmNlLm5leHRJbkNoYWluIHx8IGRlc3RpbmF0aW9uLm5leHRJbkNoYWluIHx8
IGRlc3RpbmF0aW9uLmxheW91dC5uZXh0SW5DaGFpbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdwdWNvbW1hbmRlbmNvZGVy
LWNvcHl0ZXh0dXJldG9idWZmZXIKKworICAgIC8vICJQcmVwYXJlIHRoZSBlbmNvZGVyIHN0YXRl
IG9mIHRoaXMuIElmIGl0IHJldHVybnMgZmFsc2UsIHN0b3AuIgorICAgIGlmICghcHJlcGFyZVRo
ZUVuY29kZXJTdGF0ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyAiSWYgYW55IG9mIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCisgICAgaWYgKCF2YWxpZGF0
ZUNvcHlUZXh0dXJlVG9CdWZmZXIoc291cmNlLCBkZXN0aW5hdGlvbiwgY29weVNpemUpKSB7Cisg
ICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgorICAgICAg
ICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbnN1cmVCbGl0Q29tbWFuZEVuY29k
ZXIoKTsKKworICAgIE5TVUludGVnZXIgZGVzdGluYXRpb25CeXRlc1BlclJvdyA9IGRlc3RpbmF0
aW9uLmxheW91dC5ieXRlc1BlclJvdzsKKworICAgIC8vIEZJWE1FOiBVc2UgY2hlY2tlZCBhcml0
aG1ldGljCisgICAgTlNVSW50ZWdlciBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UgPSBkZXN0aW5h
dGlvbi5sYXlvdXQucm93c1BlckltYWdlICogZGVzdGluYXRpb24ubGF5b3V0LmJ5dGVzUGVyUm93
OworCisgICAgTVRMQmxpdE9wdGlvbiBvcHRpb25zID0gTVRMQmxpdE9wdGlvbk5vbmU7CisgICAg
c3dpdGNoIChzb3VyY2UuYXNwZWN0KSB7CisgICAgY2FzZSBXR1BVVGV4dHVyZUFzcGVjdF9BbGw6
CisgICAgICAgIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9uZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUFzcGVjdF9TdGVuY2lsT25seToKKyAgICAgICAgb3B0aW9ucyA9
IE1UTEJsaXRPcHRpb25TdGVuY2lsRnJvbURlcHRoU3RlbmNpbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUFzcGVjdF9EZXB0aE9ubHk6CisgICAgICAgIG9wdGlvbnMgPSBN
VExCbGl0T3B0aW9uRGVwdGhGcm9tRGVwdGhTdGVuY2lsOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdHUFVUZXh0dXJlQXNwZWN0X0ZvcmNlMzI6CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIGxvZ2ljYWxTaXplID0gZnJvbUFQSShzb3VyY2UudGV4dHVyZSkubG9naWNhbFRl
eHR1cmVTdWJyZXNvdXJjZUV4dGVudChzb3VyY2UubWlwTGV2ZWwpOworICAgIGF1dG8gd2lkdGhG
b3JNZXRhbCA9IHN0ZDo6bWluKGNvcHlTaXplLndpZHRoLCBsb2dpY2FsU2l6ZS53aWR0aCk7Cisg
ICAgYXV0byBoZWlnaHRGb3JNZXRhbCA9IHN0ZDo6bWluKGNvcHlTaXplLmhlaWdodCwgbG9naWNh
bFNpemUuaGVpZ2h0KTsKKyAgICBhdXRvIGRlcHRoRm9yTWV0YWwgPSBzdGQ6Om1pbihjb3B5U2l6
ZS5kZXB0aE9yQXJyYXlMYXllcnMsIGxvZ2ljYWxTaXplLmRlcHRoT3JBcnJheUxheWVycyk7CisK
KyAgICBhdXRvJiBzb3VyY2VEZXNjcmlwdG9yID0gZnJvbUFQSShzb3VyY2UudGV4dHVyZSkuZGVz
Y3JpcHRvcigpOworICAgIHN3aXRjaCAoc291cmNlRGVzY3JpcHRvci5kaW1lbnNpb24pIHsKKyAg
ICBjYXNlIFdHUFVUZXh0dXJlRGltZW5zaW9uXzFEOiB7CisgICAgICAgIC8vIGh0dHBzOi8vZGV2
ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL21ldGFsL210bGJsaXRjb21tYW5kZW5jb2Rl
ci8xNDAwNzU2LWNvcHlmcm9tdGV4dHVyZT9sYW5ndWFnZT1vYmpjCisgICAgICAgIC8vICJXaGVu
IHlvdSBjb3B5IHRvIGEgMUQgdGV4dHVyZSwgaGVpZ2h0IGFuZCBkZXB0aCBtdXN0IGJlIDEuIgor
ICAgICAgICBhdXRvIHNvdXJjZVNpemUgPSBNVExTaXplTWFrZSh3aWR0aEZvck1ldGFsLCAxLCAx
KTsKKyAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBNVExPcmlnaW5NYWtlKHNvdXJjZS5vcmln
aW4ueCwgMSwgMSk7CisgICAgICAgIGZvciAodWludDMyX3QgbGF5ZXIgPSAwOyBsYXllciA8IGNv
cHlTaXplLmRlcHRoT3JBcnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgLy8gRklY
TUU6IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisgICAgICAgICAgICBhdXRvIGRlc3RpbmF0aW9u
T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNl
dCArIGxheWVyICogZGVzdGluYXRpb25CeXRlc1BlckltYWdlKTsKKyAgICAgICAgICAgIE5TVUlu
dGVnZXIgc291cmNlU2xpY2UgPSBzb3VyY2Uub3JpZ2luLnogKyBsYXllcjsKKyAgICAgICAgICAg
IFttX2JsaXRDb21tYW5kRW5jb2RlcgorICAgICAgICAgICAgICAgIGNvcHlGcm9tVGV4dHVyZTpm
cm9tQVBJKHNvdXJjZS50ZXh0dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgICAgICBzb3VyY2VT
bGljZTpzb3VyY2VTbGljZQorICAgICAgICAgICAgICAgIHNvdXJjZUxldmVsOnNvdXJjZS5taXBM
ZXZlbAorICAgICAgICAgICAgICAgIHNvdXJjZU9yaWdpbjpzb3VyY2VPcmlnaW4KKyAgICAgICAg
ICAgICAgICBzb3VyY2VTaXplOnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b0J1ZmZlcjpm
cm9tQVBJKGRlc3RpbmF0aW9uLmJ1ZmZlcikuYnVmZmVyKCkKKyAgICAgICAgICAgICAgICBkZXN0
aW5hdGlvbk9mZnNldDpkZXN0aW5hdGlvbk9mZnNldAorICAgICAgICAgICAgICAgIGRlc3RpbmF0
aW9uQnl0ZXNQZXJSb3c6ZGVzdGluYXRpb25CeXRlc1BlclJvdworICAgICAgICAgICAgICAgIGRl
c3RpbmF0aW9uQnl0ZXNQZXJJbWFnZTpkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UKKyAgICAgICAg
ICAgICAgICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIFdHUFVUZXh0dXJlRGltZW5zaW9uXzJEOiB7CisgICAgICAgIC8vIGh0dHBz
Oi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL21ldGFsL210bGJsaXRjb21tYW5k
ZW5jb2Rlci8xNDAwNzU2LWNvcHlmcm9tdGV4dHVyZT9sYW5ndWFnZT1vYmpjCisgICAgICAgIC8v
ICJXaGVuIHlvdSBjb3B5IHRvIGEgMkQgdGV4dHVyZSwgZGVwdGggbXVzdCBiZSAxLiIKKyAgICAg
ICAgYXV0byBzb3VyY2VTaXplID0gTVRMU2l6ZU1ha2Uod2lkdGhGb3JNZXRhbCwgaGVpZ2h0Rm9y
TWV0YWwsIDEpOworICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IE1UTE9yaWdpbk1ha2Uoc291
cmNlLm9yaWdpbi54LCBzb3VyY2Uub3JpZ2luLnksIDEpOworICAgICAgICBmb3IgKHVpbnQzMl90
IGxheWVyID0gMDsgbGF5ZXIgPCBjb3B5U2l6ZS5kZXB0aE9yQXJyYXlMYXllcnM7ICsrbGF5ZXIp
IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBVc2UgY2hlY2tlZCBhcml0aG1ldGljLgorICAgICAg
ICAgICAgYXV0byBkZXN0aW5hdGlvbk9mZnNldCA9IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGRl
c3RpbmF0aW9uLmxheW91dC5vZmZzZXQgKyBsYXllciAqIGRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFn
ZSk7CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHNvdXJjZVNsaWNlID0gc291cmNlLm9yaWdpbi56
ICsgbGF5ZXI7CisgICAgICAgICAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAg
ICAgICBjb3B5RnJvbVRleHR1cmU6ZnJvbUFQSShzb3VyY2UudGV4dHVyZSkudGV4dHVyZSgpCisg
ICAgICAgICAgICAgICAgc291cmNlU2xpY2U6c291cmNlU2xpY2UKKyAgICAgICAgICAgICAgICBz
b3VyY2VMZXZlbDpzb3VyY2UubWlwTGV2ZWwKKyAgICAgICAgICAgICAgICBzb3VyY2VPcmlnaW46
c291cmNlT3JpZ2luCisgICAgICAgICAgICAgICAgc291cmNlU2l6ZTpzb3VyY2VTaXplCisgICAg
ICAgICAgICAgICAgdG9CdWZmZXI6ZnJvbUFQSShkZXN0aW5hdGlvbi5idWZmZXIpLmJ1ZmZlcigp
CisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25PZmZzZXQ6ZGVzdGluYXRpb25PZmZzZXQKKyAg
ICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5dGVzUGVyUm93OmRlc3RpbmF0aW9uQnl0ZXNQZXJS
b3cKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2U6ZGVzdGluYXRpb25C
eXRlc1BlckltYWdlCisgICAgICAgICAgICAgICAgb3B0aW9uczpvcHRpb25zXTsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl8z
RDogeworICAgICAgICBhdXRvIHNvdXJjZVNpemUgPSBNVExTaXplTWFrZSh3aWR0aEZvck1ldGFs
LCBoZWlnaHRGb3JNZXRhbCwgZGVwdGhGb3JNZXRhbCk7CisgICAgICAgIGF1dG8gc291cmNlT3Jp
Z2luID0gTVRMT3JpZ2luTWFrZShzb3VyY2Uub3JpZ2luLngsIHNvdXJjZS5vcmlnaW4ueSwgc291
cmNlLm9yaWdpbi56KTsKKyAgICAgICAgYXV0byBkZXN0aW5hdGlvbk9mZnNldCA9IHN0YXRpY19j
YXN0PE5TVUludGVnZXI+KGRlc3RpbmF0aW9uLmxheW91dC5vZmZzZXQpOworICAgICAgICAgICAg
W21fYmxpdENvbW1hbmRFbmNvZGVyCisgICAgICAgICAgICAgICAgY29weUZyb21UZXh0dXJlOmZy
b21BUEkoc291cmNlLnRleHR1cmUpLnRleHR1cmUoKQorICAgICAgICAgICAgICAgIHNvdXJjZVNs
aWNlOjAKKyAgICAgICAgICAgICAgICBzb3VyY2VMZXZlbDpzb3VyY2UubWlwTGV2ZWwKKyAgICAg
ICAgICAgICAgICBzb3VyY2VPcmlnaW46c291cmNlT3JpZ2luCisgICAgICAgICAgICAgICAgc291
cmNlU2l6ZTpzb3VyY2VTaXplCisgICAgICAgICAgICAgICAgdG9CdWZmZXI6ZnJvbUFQSShkZXN0
aW5hdGlvbi5idWZmZXIpLmJ1ZmZlcigpCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25PZmZz
ZXQ6ZGVzdGluYXRpb25PZmZzZXQKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5dGVzUGVy
Um93OmRlc3RpbmF0aW9uQnl0ZXNQZXJSb3cKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ5
dGVzUGVySW1hZ2U6ZGVzdGluYXRpb25CeXRlc1BlckltYWdlCisgICAgICAgICAgICAgICAgb3B0
aW9uczpvcHRpb25zXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgV0dQVVRleHR1
cmVEaW1lbnNpb25fRm9yY2UzMjoKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogdm9pZCBD
b21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoY29uc3QgV0dQVUltYWdlQ29weVRl
eHR1cmUmIHNvdXJjZSwgY29uc3QgV0dQVUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLCBj
b25zdCBXR1BVRXh0ZW50M0QmIGNvcHlTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvVGV4dHVyZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5oCmluZGV4IGMx
ZjlmMGViMjUyNjRmN2M3ZWZjNDM0NGE0NzcwMjI1ZGRhZjU2YjEuLjZlNWVlNDczMmVkNThhYjIw
NTRhN2U4YmU1NzQwMDVkODk5ZDhmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1RleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgKQEAgLTY0LDYg
KzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlSW1hZ2VDb3B5VGV4dHVy
ZShjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYsIGNvbnN0IFdHUFVFeHRlbnQzRCYpOwogICAg
IHN0YXRpYyBib29sIHZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShjb25zdCBXR1BVSW1hZ2VDb3B5
VGV4dHVyZSYsIGNvbnN0IFdHUFVFeHRlbnQzRCYpOwogICAgIHN0YXRpYyBib29sIHJlZmVyc1Rv
U2luZ2xlQXNwZWN0KFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVVGV4dHVyZUFzcGVjdCk7CisgICAg
c3RhdGljIGJvb2wgaXNWYWxpZEltYWdlQ29weVNvdXJjZShXR1BVVGV4dHVyZUZvcm1hdCwgV0dQ
VVRleHR1cmVBc3BlY3QpOwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRJbWFnZUNvcHlEZXN0aW5h
dGlvbihXR1BVVGV4dHVyZUZvcm1hdCwgV0dQVVRleHR1cmVBc3BlY3QpOwogICAgIHN0YXRpYyBi
b29sIHZhbGlkYXRlTGluZWFyVGV4dHVyZURhdGEoY29uc3QgV0dQVVRleHR1cmVEYXRhTGF5b3V0
JiwgdWludDY0X3QsIFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVRXh0ZW50M0QpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvVGV4dHVyZS5tbQppbmRleCBmM2IwZmQ5YzA4NDQ4Y2YwN2ZiYzUyYTYwZTc1YmRmMGZiNjRj
NWE5Li4yYWY5YjAzYzE2MDM4YWMzZDVkMTE4NjQwM2E5NDNhZmEzYWY0NWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL1RleHR1cmUubW0KQEAgLTI0MjQsNiArMjQyNCwxMTkgQEAgYm9vbCBUZXh0dXJlOjpyZWZl
cnNUb1NpbmdsZUFzcGVjdChXR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQsIFdHUFVUZXh0dXJlQXNw
ZWN0IGEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUZXh0dXJlOjppc1ZhbGlkSW1hZ2VD
b3B5U291cmNlKFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCwgV0dQVVRleHR1cmVBc3BlY3QgYXNw
ZWN0KQoreworICAgIC8vIGh0dHBzOi8vZ3B1d2ViLmdpdGh1Yi5pby9ncHV3ZWIvI2RlcHRoLWZv
cm1hdHMKKworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9VbmRlZmluZWQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFVub3JtOgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfUjhTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X1I4VWludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4U2ludDoKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X1IxNlVpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMTZT
aW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjE2RmxvYXQ6CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9SRzhVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHOFNu
b3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkc4VWludDoKKyAgICBjYXNlIFdHUFVU
ZXh0dXJlRm9ybWF0X1JHOFNpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMzJGbG9h
dDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1IzMlVpbnQ6CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9SMzJTaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkcxNlVpbnQ6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzE2U2ludDoKKyAgICBjYXNlIFdHUFVUZXh0
dXJlRm9ybWF0X1JHMTZGbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkE4VW5v
cm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBOFVub3JtU3JnYjoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X1JHQkE4U25vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9SR0JBOFVpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBOFNpbnQ6CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CR1JBOFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfQkdSQThVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0IxMEEy
VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzExQjEwVWZsb2F0OgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCOUU1VWZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUkczMkZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkczMlVpbnQ6Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzMyU2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJl
Rm9ybWF0X1JHQkExNlVpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBMTZTaW50
OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQTE2RmxvYXQ6CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9SR0JBMzJGbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JH
QkEzMlVpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBMzJTaW50OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2Ug
V0dQVVRleHR1cmVGb3JtYXRfU3RlbmNpbDg6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9E
ZXB0aDE2VW5vcm06CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfRGVwdGgyNFBsdXM6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIFdHUFVU
ZXh0dXJlRm9ybWF0X0RlcHRoMjRQbHVzU3RlbmNpbDg6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9EZXB0aDI0VW5vcm1TdGVuY2lsODoKKyAgICAgICAgcmV0dXJuIGFzcGVjdCA9PSBXR1BV
VGV4dHVyZUFzcGVjdF9TdGVuY2lsT25seTsKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0Rl
cHRoMzJGbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0RlcHRoMzJGbG9hdFN0ZW5j
aWw4OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JD
MVJHQkFVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDMVJHQkFVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzJSR0JBVW5vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9CQzJSR0JBVW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfQkMzUkdCQVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkMzUkdCQVVub3Jt
U3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDNFJVbm9ybToKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X0JDNFJTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JD
NVJHVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzVSR1Nub3JtOgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfQkM2SFJHQlVmbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJl
Rm9ybWF0X0JDNkhSR0JGbG9hdDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDN1JHQkFV
bm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDN1JHQkFVbm9ybVNyZ2I6CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9FVEMyUkdCOFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRVRDMlJHQjhVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9F
VEMyUkdCOEExVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9FVEMyUkdCOEExVW5v
cm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRVRDMlJHQkE4VW5vcm06CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9FVEMyUkdCQThVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9FQUNSMTFVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VB
Q1IxMVNub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRUFDUkcxMVVub3JtOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRUFDUkcxMVNub3JtOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfQVNUQzR4NFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzR4
NFVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM1eDRVbm9ybToKKyAg
ICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM1eDRVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDNXg1VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9B
U1RDNXg1VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzZ4NVVub3Jt
OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzZ4NVVub3JtU3JnYjoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM2eDZVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9y
bWF0X0FTVEM2eDZVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDOHg1
VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDOHg1VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzh4NlVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfQVNUQzh4NlVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FT
VEM4eDhVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM4eDhVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTB4NVVub3JtOgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfQVNUQzEweDVVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9BU1RDMTB4NlVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDZV
bm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTB4OFVub3JtOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEweDhVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDMTB4MTBVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X0FTVEMxMHgxMFVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngx
MFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEwVW5vcm1TcmdiOgor
ICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEyVW5vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTJVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9Gb3JjZTMyOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KK30KKwogYm9vbCBUZXh0dXJlOjppc1ZhbGlkSW1hZ2VDb3B5RGVz
dGluYXRpb24oV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0LCBXR1BVVGV4dHVyZUFzcGVjdCBhc3Bl
Y3QpCiB7CiAgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZGVwdGgtZm9y
bWF0cwo=
</data>
<flag name="commit-queue"
          id="484452"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456218</attachid>
            <date>2022-03-31 01:48:53 -0700</date>
            <delta_ts>2022-03-31 16:31:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238430-20220331014852.patch</filename>
            <type>text/plain</type>
            <size>16084</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGY1NDU3N2MyZGJkZTI3ZmI2
ZDc0MmQ0NDE5MDAzNTA1ZDIzYzUzM2UuLmQ3Zjk4ZThhZmMyNjc3ZTBhZTdhMDE4OWEwZDYwY2Ey
OGFkYzEwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDMtMzEgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBs
ZW1lbnQgQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoKSBhY2NvcmRpbmcgdG8g
dGhlIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzg0MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGltcGxlbWVudHMgQ29tbWFuZEVuY29kZXI6OmNvcHlUZXh0dXJlVG9CdWZmZXIoKSBh
Y2NvcmRpbmcgdG8gdGhlIHNwZWMuCisgICAgICAgIEl0IHJlLXVzZXMgbWFueSBvZiB0aGUgaGVs
cGVyIGZ1bmN0aW9ucyBhZGRlZCBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NDI4LiBUaGVyZSBhcmUgbGlua3MgYW5kIHF1b3RlcyBmcm9tCisg
ICAgICAgIHRoZSBzcGVjIHdoZXJlIGFwcHJvcHJpYXRlLgorCisgICAgICAgICogV2ViR1BVL0Nv
bW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjp2YWxpZGF0ZUNvcHlUZXh0dXJlVG9C
dWZmZXIpOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb0J1
ZmZlcik6CisgICAgICAgICogV2ViR1BVL1RleHR1cmUuaDoKKyAgICAgICAgKiBXZWJHUFUvVGV4
dHVyZS5tbToKKyAgICAgICAgKFdlYkdQVTo6VGV4dHVyZTo6aXNWYWxpZEltYWdlQ29weVNvdXJj
ZSk6CisKIDIwMjItMDMtMzEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2ViR1BVXSBJbXBsZW1lbnQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZm
ZXJUb1RleHR1cmUoKSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29t
bWFuZEVuY29kZXIubW0KaW5kZXggMmNlYzBiNDIwNDY3M2QwY2QzYTg0Y2NlOTBhNWE2ODUyZDgz
Nzk0Ni4uZDEwZGI1ODdkNzFiYjdjOTk0MDA1ZmUwM2VkYmQ1MzRhNGViNWEwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KQEAgLTM1NCwxMSArMzU0LDE4NyBAQCB2b2lk
IENvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKGNvbnN0IFdHUFVJbWFnZUNvcHlC
dWZmZXImIHNvdXJjZSwgY29ucwogICAgIH0KIH0KIAorc3RhdGljIGJvb2wgdmFsaWRhdGVDb3B5
VGV4dHVyZVRvQnVmZmVyKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsIGNvbnN0
IFdHUFVJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9uLCBjb25zdCBXR1BVRXh0ZW50M0QmIGNv
cHlTaXplKQoreworICAgIC8vICJMZXQgc3JjVGV4dHVyZURlc2MgYmUgc291cmNlLnRleHR1cmUu
W1tkZXNjcmlwdG9yXV0uIgorICAgIGNvbnN0IGF1dG8mIHNyY1RleHR1cmVEZXNjID0gZnJvbUFQ
SShzb3VyY2UudGV4dHVyZSkuZGVzY3JpcHRvcigpOworCisgICAgLy8gInZhbGlkYXRpbmcgR1BV
SW1hZ2VDb3B5VGV4dHVyZShzb3VyY2UsIGNvcHlTaXplKSByZXR1cm5zIHRydWUuIgorICAgIGlm
ICghVGV4dHVyZTo6dmFsaWRhdGVJbWFnZUNvcHlUZXh0dXJlKHNvdXJjZSwgY29weVNpemUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAic3JjVGV4dHVyZURlc2MudXNhZ2UgY29u
dGFpbnMgQ09QWV9TUkMuIgorICAgIGlmICghKHNyY1RleHR1cmVEZXNjLnVzYWdlICYgV0dQVUJ1
ZmZlclVzYWdlX0NvcHlTcmMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAic3Jj
VGV4dHVyZURlc2Muc2FtcGxlQ291bnQgaXMgMS4iCisgICAgaWYgKHNyY1RleHR1cmVEZXNjLnNh
bXBsZUNvdW50ICE9IDEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vICJMZXQgYXNw
ZWN0U3BlY2lmaWNGb3JtYXQgPSBkc3RUZXh0dXJlRGVzYy5mb3JtYXQuIgorICAgIFdHUFVUZXh0
dXJlRm9ybWF0IGFzcGVjdFNwZWNpZmljRm9ybWF0ID0gc3JjVGV4dHVyZURlc2MuZm9ybWF0Owor
CisgICAgLy8gIklmIHNyY1RleHR1cmVEZXNjLmZvcm1hdCBpcyBhIGRlcHRoLXN0ZW5jaWwgZm9y
bWF0OiIKKyAgICBpZiAoVGV4dHVyZTo6aXNEZXB0aE9yU3RlbmNpbEZvcm1hdChzcmNUZXh0dXJl
RGVzYy5mb3JtYXQpKSB7CisgICAgICAgIC8vICJzb3VyY2UuYXNwZWN0IG11c3QgcmVmZXIgdG8g
YSBzaW5nbGUgYXNwZWN0IG9mIHNyY1RleHR1cmVEZXNjLmZvcm1hdCIKKyAgICAgICAgaWYgKCFU
ZXh0dXJlOjpyZWZlcnNUb1NpbmdsZUFzcGVjdChzcmNUZXh0dXJlRGVzYy5mb3JtYXQsIHNvdXJj
ZS5hc3BlY3QpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vICJhbmQg
dGhhdCBhc3BlY3QgbXVzdCBiZSBhIHZhbGlkIGltYWdlIGNvcHkgc291cmNlIGFjY29yZGluZyB0
byDCpyAyNS4xLjIgRGVwdGgtc3RlbmNpbCBmb3JtYXRzLiIKKyAgICAgICAgaWYgKCFUZXh0dXJl
Ojppc1ZhbGlkSW1hZ2VDb3B5U291cmNlKHNyY1RleHR1cmVEZXNjLmZvcm1hdCwgc291cmNlLmFz
cGVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gIlNldCBhc3Bl
Y3RTcGVjaWZpY0Zvcm1hdCB0byB0aGUgYXNwZWN0LXNwZWNpZmljIGZvcm1hdCBhY2NvcmRpbmcg
dG8gwqfigK8yNS4xLjIgRGVwdGgtc3RlbmNpbCBmb3JtYXRzLiIKKyAgICAgICAgYXNwZWN0U3Bl
Y2lmaWNGb3JtYXQgPSBUZXh0dXJlOjphc3BlY3RTcGVjaWZpY0Zvcm1hdChzcmNUZXh0dXJlRGVz
Yy5mb3JtYXQsIHNvdXJjZS5hc3BlY3QpOworICAgIH0KKworICAgIC8vICJ2YWxpZGF0aW5nIEdQ
VUltYWdlQ29weUJ1ZmZlcihkZXN0aW5hdGlvbikgcmV0dXJucyB0cnVlLiIKKyAgICBpZiAoIXZh
bGlkYXRlSW1hZ2VDb3B5QnVmZmVyKGRlc3RpbmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgLy8gImRlc3RpbmF0aW9uLmJ1ZmZlci5bW3VzYWdlXV0gY29udGFpbnMgQ09QWV9E
U1QuIgorICAgIGlmICghKGZyb21BUEkoZGVzdGluYXRpb24uYnVmZmVyKS51c2FnZSgpICYgV0dQ
VUJ1ZmZlclVzYWdlX0NvcHlEc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAi
dmFsaWRhdGluZyB0ZXh0dXJlIGNvcHkgcmFuZ2Uoc291cmNlLCBjb3B5U2l6ZSkgcmV0dXJucyB0
cnVlLiIKKyAgICBpZiAoIVRleHR1cmU6OnZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShzb3VyY2Us
IGNvcHlTaXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIklmIHNyY1RleHR1
cmVEZXNjLmZvcm1hdCBpcyBub3QgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAgaWYg
KCFUZXh0dXJlOjppc0RlcHRoT3JTdGVuY2lsRm9ybWF0KHNyY1RleHR1cmVEZXNjLmZvcm1hdCkp
IHsKKyAgICAgICAgLy8gImRlc3RpbmF0aW9uLm9mZnNldCBpcyBhIG11bHRpcGxlIG9mIHRoZSB0
ZXhlbCBibG9jayBzaXplIG9mIHNyY1RleHR1cmVEZXNjLmZvcm1hdC4iCisgICAgICAgIGF1dG8g
dGV4ZWxCbG9ja1NpemUgPSBUZXh0dXJlOjp0ZXhlbEJsb2NrU2l6ZShzcmNUZXh0dXJlRGVzYy5m
b3JtYXQpOworICAgICAgICBpZiAoZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNldCAlIHRleGVsQmxv
Y2tTaXplKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vICJJZiBz
cmNUZXh0dXJlRGVzYy5mb3JtYXQgaXMgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAg
aWYgKFRleHR1cmU6OmlzRGVwdGhPclN0ZW5jaWxGb3JtYXQoc3JjVGV4dHVyZURlc2MuZm9ybWF0
KSkgeworICAgICAgICAvLyAiZGVzdGluYXRpb24ub2Zmc2V0IGlzIGEgbXVsdGlwbGUgb2YgNC4i
CisgICAgICAgIGlmIChkZXN0aW5hdGlvbi5sYXlvdXQub2Zmc2V0ICUgNCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyAidmFsaWRhdGluZyBsaW5lYXIgdGV4dHVy
ZSBkYXRhKGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbi5idWZmZXIuW1tzaXplXV0sIGFzcGVjdFNw
ZWNpZmljRm9ybWF0LCBjb3B5U2l6ZSkgc3VjY2VlZHMuIgorICAgIGlmICghVGV4dHVyZTo6dmFs
aWRhdGVMaW5lYXJUZXh0dXJlRGF0YShkZXN0aW5hdGlvbi5sYXlvdXQsIGZyb21BUEkoZGVzdGlu
YXRpb24uYnVmZmVyKS5zaXplKCksIGFzcGVjdFNwZWNpZmljRm9ybWF0LCBjb3B5U2l6ZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIENvbW1h
bmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVyKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJl
JiBzb3VyY2UsIGNvbnN0IFdHUFVJbWFnZUNvcHlCdWZmZXImIGRlc3RpbmF0aW9uLCBjb25zdCBX
R1BVRXh0ZW50M0QmIGNvcHlTaXplKQogewotICAgIFVOVVNFRF9QQVJBTShzb3VyY2UpOwotICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGNvcHlTaXplKTsK
KyAgICBpZiAoc291cmNlLm5leHRJbkNoYWluIHx8IGRlc3RpbmF0aW9uLm5leHRJbkNoYWluIHx8
IGRlc3RpbmF0aW9uLmxheW91dC5uZXh0SW5DaGFpbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZG9tLWdwdWNvbW1hbmRlbmNvZGVy
LWNvcHl0ZXh0dXJldG9idWZmZXIKKworICAgIC8vICJQcmVwYXJlIHRoZSBlbmNvZGVyIHN0YXRl
IG9mIHRoaXMuIElmIGl0IHJldHVybnMgZmFsc2UsIHN0b3AuIgorICAgIGlmICghcHJlcGFyZVRo
ZUVuY29kZXJTdGF0ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyAiSWYgYW55IG9mIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCisgICAgaWYgKCF2YWxpZGF0
ZUNvcHlUZXh0dXJlVG9CdWZmZXIoc291cmNlLCBkZXN0aW5hdGlvbiwgY29weVNpemUpKSB7Cisg
ICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgorICAgICAg
ICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbnN1cmVCbGl0Q29tbWFuZEVuY29k
ZXIoKTsKKworICAgIE5TVUludGVnZXIgZGVzdGluYXRpb25CeXRlc1BlclJvdyA9IGRlc3RpbmF0
aW9uLmxheW91dC5ieXRlc1BlclJvdzsKKworICAgIC8vIEZJWE1FOiBVc2UgY2hlY2tlZCBhcml0
aG1ldGljCisgICAgTlNVSW50ZWdlciBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UgPSBkZXN0aW5h
dGlvbi5sYXlvdXQucm93c1BlckltYWdlICogZGVzdGluYXRpb24ubGF5b3V0LmJ5dGVzUGVyUm93
OworCisgICAgTVRMQmxpdE9wdGlvbiBvcHRpb25zID0gTVRMQmxpdE9wdGlvbk5vbmU7CisgICAg
c3dpdGNoIChzb3VyY2UuYXNwZWN0KSB7CisgICAgY2FzZSBXR1BVVGV4dHVyZUFzcGVjdF9BbGw6
CisgICAgICAgIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9uZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUFzcGVjdF9TdGVuY2lsT25seToKKyAgICAgICAgb3B0aW9ucyA9
IE1UTEJsaXRPcHRpb25TdGVuY2lsRnJvbURlcHRoU3RlbmNpbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUFzcGVjdF9EZXB0aE9ubHk6CisgICAgICAgIG9wdGlvbnMgPSBN
VExCbGl0T3B0aW9uRGVwdGhGcm9tRGVwdGhTdGVuY2lsOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdHUFVUZXh0dXJlQXNwZWN0X0ZvcmNlMzI6CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIGxvZ2ljYWxTaXplID0gZnJvbUFQSShzb3VyY2UudGV4dHVyZSkubG9naWNhbE1p
cGxldmVsU3BlY2lmaWNUZXh0dXJlRXh0ZW50KHNvdXJjZS5taXBMZXZlbCk7CisgICAgYXV0byB3
aWR0aEZvck1ldGFsID0gc3RkOjptaW4oY29weVNpemUud2lkdGgsIGxvZ2ljYWxTaXplLndpZHRo
KTsKKyAgICBhdXRvIGhlaWdodEZvck1ldGFsID0gc3RkOjptaW4oY29weVNpemUuaGVpZ2h0LCBs
b2dpY2FsU2l6ZS5oZWlnaHQpOworICAgIGF1dG8gZGVwdGhGb3JNZXRhbCA9IHN0ZDo6bWluKGNv
cHlTaXplLmRlcHRoT3JBcnJheUxheWVycywgbG9naWNhbFNpemUuZGVwdGhPckFycmF5TGF5ZXJz
KTsKKworICAgIGF1dG8mIHNvdXJjZURlc2NyaXB0b3IgPSBmcm9tQVBJKHNvdXJjZS50ZXh0dXJl
KS5kZXNjcmlwdG9yKCk7CisgICAgc3dpdGNoIChzb3VyY2VEZXNjcmlwdG9yLmRpbWVuc2lvbikg
eworICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgLy8gaHR0cHM6
Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxpdGNvbW1hbmRl
bmNvZGVyLzE0MDA3NTYtY29weWZyb210ZXh0dXJlP2xhbmd1YWdlPW9iamMKKyAgICAgICAgLy8g
IldoZW4geW91IGNvcHkgdG8gYSAxRCB0ZXh0dXJlLCBoZWlnaHQgYW5kIGRlcHRoIG11c3QgYmUg
MS4iCisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRoRm9yTWV0YWws
IDEsIDEpOworICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IE1UTE9yaWdpbk1ha2Uoc291cmNl
Lm9yaWdpbi54LCAxLCAxKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBsYXllciA9IDA7IGxheWVy
IDwgY29weVNpemUuZGVwdGhPckFycmF5TGF5ZXJzOyArK2xheWVyKSB7CisgICAgICAgICAgICAv
LyBGSVhNRTogVXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgIGF1dG8gZGVzdGlu
YXRpb25PZmZzZXQgPSBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihkZXN0aW5hdGlvbi5sYXlvdXQu
b2Zmc2V0ICsgbGF5ZXIgKiBkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UpOworICAgICAgICAgICAg
TlNVSW50ZWdlciBzb3VyY2VTbGljZSA9IHNvdXJjZS5vcmlnaW4ueiArIGxheWVyOworICAgICAg
ICAgICAgW21fYmxpdENvbW1hbmRFbmNvZGVyCisgICAgICAgICAgICAgICAgY29weUZyb21UZXh0
dXJlOmZyb21BUEkoc291cmNlLnRleHR1cmUpLnRleHR1cmUoKQorICAgICAgICAgICAgICAgIHNv
dXJjZVNsaWNlOnNvdXJjZVNsaWNlCisgICAgICAgICAgICAgICAgc291cmNlTGV2ZWw6c291cmNl
Lm1pcExldmVsCisgICAgICAgICAgICAgICAgc291cmNlT3JpZ2luOnNvdXJjZU9yaWdpbgorICAg
ICAgICAgICAgICAgIHNvdXJjZVNpemU6c291cmNlU2l6ZQorICAgICAgICAgICAgICAgIHRvQnVm
ZmVyOmZyb21BUEkoZGVzdGluYXRpb24uYnVmZmVyKS5idWZmZXIoKQorICAgICAgICAgICAgICAg
IGRlc3RpbmF0aW9uT2Zmc2V0OmRlc3RpbmF0aW9uT2Zmc2V0CisgICAgICAgICAgICAgICAgZGVz
dGluYXRpb25CeXRlc1BlclJvdzpkZXN0aW5hdGlvbkJ5dGVzUGVyUm93CisgICAgICAgICAgICAg
ICAgZGVzdGluYXRpb25CeXRlc1BlckltYWdlOmRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFnZQorICAg
ICAgICAgICAgICAgIG9wdGlvbnM6b3B0aW9uc107CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMkQ6IHsKKyAgICAgICAgLy8g
aHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxpdGNv
bW1hbmRlbmNvZGVyLzE0MDA3NTYtY29weWZyb210ZXh0dXJlP2xhbmd1YWdlPW9iamMKKyAgICAg
ICAgLy8gIldoZW4geW91IGNvcHkgdG8gYSAyRCB0ZXh0dXJlLCBkZXB0aCBtdXN0IGJlIDEuIgor
ICAgICAgICBhdXRvIHNvdXJjZVNpemUgPSBNVExTaXplTWFrZSh3aWR0aEZvck1ldGFsLCBoZWln
aHRGb3JNZXRhbCwgMSk7CisgICAgICAgIGF1dG8gc291cmNlT3JpZ2luID0gTVRMT3JpZ2luTWFr
ZShzb3VyY2Uub3JpZ2luLngsIHNvdXJjZS5vcmlnaW4ueSwgMSk7CisgICAgICAgIGZvciAodWlu
dDMyX3QgbGF5ZXIgPSAwOyBsYXllciA8IGNvcHlTaXplLmRlcHRoT3JBcnJheUxheWVyczsgKyts
YXllcikgeworICAgICAgICAgICAgLy8gRklYTUU6IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisg
ICAgICAgICAgICBhdXRvIGRlc3RpbmF0aW9uT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8TlNVSW50ZWdl
cj4oZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNldCArIGxheWVyICogZGVzdGluYXRpb25CeXRlc1Bl
ckltYWdlKTsKKyAgICAgICAgICAgIE5TVUludGVnZXIgc291cmNlU2xpY2UgPSBzb3VyY2Uub3Jp
Z2luLnogKyBsYXllcjsKKyAgICAgICAgICAgIFttX2JsaXRDb21tYW5kRW5jb2RlcgorICAgICAg
ICAgICAgICAgIGNvcHlGcm9tVGV4dHVyZTpmcm9tQVBJKHNvdXJjZS50ZXh0dXJlKS50ZXh0dXJl
KCkKKyAgICAgICAgICAgICAgICBzb3VyY2VTbGljZTpzb3VyY2VTbGljZQorICAgICAgICAgICAg
ICAgIHNvdXJjZUxldmVsOnNvdXJjZS5taXBMZXZlbAorICAgICAgICAgICAgICAgIHNvdXJjZU9y
aWdpbjpzb3VyY2VPcmlnaW4KKyAgICAgICAgICAgICAgICBzb3VyY2VTaXplOnNvdXJjZVNpemUK
KyAgICAgICAgICAgICAgICB0b0J1ZmZlcjpmcm9tQVBJKGRlc3RpbmF0aW9uLmJ1ZmZlcikuYnVm
ZmVyKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbk9mZnNldDpkZXN0aW5hdGlvbk9mZnNl
dAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQnl0ZXNQZXJSb3c6ZGVzdGluYXRpb25CeXRl
c1BlclJvdworICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQnl0ZXNQZXJJbWFnZTpkZXN0aW5h
dGlvbkJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFdHUFVUZXh0dXJlRGltZW5z
aW9uXzNEOiB7CisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRoRm9y
TWV0YWwsIGhlaWdodEZvck1ldGFsLCBkZXB0aEZvck1ldGFsKTsKKyAgICAgICAgYXV0byBzb3Vy
Y2VPcmlnaW4gPSBNVExPcmlnaW5NYWtlKHNvdXJjZS5vcmlnaW4ueCwgc291cmNlLm9yaWdpbi55
LCBzb3VyY2Uub3JpZ2luLnopOworICAgICAgICBhdXRvIGRlc3RpbmF0aW9uT2Zmc2V0ID0gc3Rh
dGljX2Nhc3Q8TlNVSW50ZWdlcj4oZGVzdGluYXRpb24ubGF5b3V0Lm9mZnNldCk7CisgICAgICAg
ICAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbVRleHR1
cmU6ZnJvbUFQSShzb3VyY2UudGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAgc291
cmNlU2xpY2U6MAorICAgICAgICAgICAgICAgIHNvdXJjZUxldmVsOnNvdXJjZS5taXBMZXZlbAor
ICAgICAgICAgICAgICAgIHNvdXJjZU9yaWdpbjpzb3VyY2VPcmlnaW4KKyAgICAgICAgICAgICAg
ICBzb3VyY2VTaXplOnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b0J1ZmZlcjpmcm9tQVBJ
KGRlc3RpbmF0aW9uLmJ1ZmZlcikuYnVmZmVyKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlv
bk9mZnNldDpkZXN0aW5hdGlvbk9mZnNldAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uQnl0
ZXNQZXJSb3c6ZGVzdGluYXRpb25CeXRlc1BlclJvdworICAgICAgICAgICAgICAgIGRlc3RpbmF0
aW9uQnl0ZXNQZXJJbWFnZTpkZXN0aW5hdGlvbkJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAgICAg
ICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBXR1BV
VGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICByZXR1cm47CisgICAgfQogfQogCiB2
b2lkIENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZShjb25zdCBXR1BVSW1hZ2VD
b3B5VGV4dHVyZSYgc291cmNlLCBjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRp
b24sIGNvbnN0IFdHUFVFeHRlbnQzRCYgY29weVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9UZXh0dXJlLmggYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmgKaW5k
ZXggYzFmOWYwZWIyNTI2NGY3YzdlZmM0MzQ0YTQ3NzAyMjVkZGFmNTZiMS4uNmU1ZWU0NzMyZWQ1
OGFiMjA1NGE3ZThiZTU3NDAwNWQ4OTlkOGY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvVGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUuaApAQCAt
NjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVJbWFnZUNvcHlU
ZXh0dXJlKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiwgY29uc3QgV0dQVUV4dGVudDNEJik7
CiAgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVUZXh0dXJlQ29weVJhbmdlKGNvbnN0IFdHUFVJbWFn
ZUNvcHlUZXh0dXJlJiwgY29uc3QgV0dQVUV4dGVudDNEJik7CiAgICAgc3RhdGljIGJvb2wgcmVm
ZXJzVG9TaW5nbGVBc3BlY3QoV0dQVVRleHR1cmVGb3JtYXQsIFdHUFVUZXh0dXJlQXNwZWN0KTsK
KyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSW1hZ2VDb3B5U291cmNlKFdHUFVUZXh0dXJlRm9ybWF0
LCBXR1BVVGV4dHVyZUFzcGVjdCk7CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZEltYWdlQ29weURl
c3RpbmF0aW9uKFdHUFVUZXh0dXJlRm9ybWF0LCBXR1BVVGV4dHVyZUFzcGVjdCk7CiAgICAgc3Rh
dGljIGJvb2wgdmFsaWRhdGVMaW5lYXJUZXh0dXJlRGF0YShjb25zdCBXR1BVVGV4dHVyZURhdGFM
YXlvdXQmLCB1aW50NjRfdCwgV0dQVVRleHR1cmVGb3JtYXQsIFdHUFVFeHRlbnQzRCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUubW0gYi9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9UZXh0dXJlLm1tCmluZGV4IGYzYjBmZDljMDg0NDhjZjA3ZmJjNTJhNjBlNzViZGYw
ZmI2NGM1YTkuLjJhZjliMDNjMTYwMzhhYzNkNWQxMTg2NDAzYTk0M2FmYTNhZjQ1ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUubW0KKysrIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvVGV4dHVyZS5tbQpAQCAtMjQyNCw2ICsyNDI0LDExOSBAQCBib29sIFRleHR1cmU6
OnJlZmVyc1RvU2luZ2xlQXNwZWN0KFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCwgV0dQVVRleHR1
cmVBc3BlY3QgYQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFRleHR1cmU6OmlzVmFsaWRJ
bWFnZUNvcHlTb3VyY2UoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0LCBXR1BVVGV4dHVyZUFzcGVj
dCBhc3BlY3QpCit7CisgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZGVw
dGgtZm9ybWF0cworCisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIFdHUFVUZXh0dXJl
Rm9ybWF0X1VuZGVmaW5lZDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4VW5vcm06Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUjhVaW50OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjhTaW50OgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfUjE2VWludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X1IxNlNpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SMTZGbG9hdDoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X1JHOFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRf
Ukc4U25vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzhVaW50OgorICAgIGNhc2Ug
V0dQVVRleHR1cmVGb3JtYXRfUkc4U2ludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1Iz
MkZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjMyVWludDoKKyAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X1IzMlNpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzE2
VWludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHMTZTaW50OgorICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfUkcxNkZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdC
QThVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkE4VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQThTbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJl
Rm9ybWF0X1JHQkE4VWludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkE4U2ludDoK
KyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JHUkE4VW5vcm06CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9CR1JBOFVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JH
QjEwQTJVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHMTFCMTBVZmxvYXQ6Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0I5RTVVZmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9SRzMyRmxvYXQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SRzMyVWlu
dDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHMzJTaW50OgorICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfUkdCQTE2VWludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkEx
NlNpbnQ6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SR0JBMTZGbG9hdDoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X1JHQkEzMkZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfUkdCQTMyVWludDoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkEzMlNpbnQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9TdGVuY2lsODoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9y
bWF0X0RlcHRoMTZVbm9ybToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9EZXB0aDI0UGx1czoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2Ug
V0dQVVRleHR1cmVGb3JtYXRfRGVwdGgyNFBsdXNTdGVuY2lsODoKKyAgICBjYXNlIFdHUFVUZXh0
dXJlRm9ybWF0X0RlcHRoMjRVbm9ybVN0ZW5jaWw4OgorICAgICAgICByZXR1cm4gYXNwZWN0ID09
IFdHUFVUZXh0dXJlQXNwZWN0X1N0ZW5jaWxPbmx5OworICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfRGVwdGgzMkZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRGVwdGgzMkZsb2F0
U3RlbmNpbDg6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfQkMxUkdCQVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkMxUkdCQVVub3Jt
U3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDMlJHQkFVbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0JDMlJHQkFVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9CQzNSR0JBVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzNSR0JB
VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkM0UlVub3JtOgorICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfQkM0UlNub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfQkM1UkdVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDNVJHU25vcm06Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9CQzZIUkdCVWZsb2F0OgorICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfQkM2SFJHQkZsb2F0OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkM3
UkdCQVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQkM3UkdCQVVub3JtU3JnYjoK
KyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0I4VW5vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9FVEMyUkdCOFVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9y
bWF0X0VUQzJSR0I4QTFVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0I4
QTFVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9FVEMyUkdCQThVbm9ybToK
KyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0VUQzJSR0JBOFVub3JtU3JnYjoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0VBQ1IxMVVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfRUFDUjExU25vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9FQUNSRzExVW5vcm06
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9FQUNSRzExU25vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDNHg0VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9B
U1RDNHg0VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzV4NFVub3Jt
OgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzV4NFVub3JtU3JnYjoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM1eDVVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9y
bWF0X0FTVEM1eDVVbm9ybVNyZ2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNng1
VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDNng1VW5vcm1TcmdiOgorICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzZ4NlVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfQVNUQzZ4NlVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FT
VEM4eDVVbm9ybToKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEM4eDVVbm9ybVNyZ2I6
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDOHg2VW5vcm06CisgICAgY2FzZSBXR1BV
VGV4dHVyZUZvcm1hdF9BU1RDOHg2VW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfQVNUQzh4OFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzh4OFVub3Jt
U3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHg1VW5vcm06CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTB4NVVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0
dXJlRm9ybWF0X0FTVEMxMHg2VW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RD
MTB4NlVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHg4VW5vcm06
CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTB4OFVub3JtU3JnYjoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMHgxMFVub3JtOgorICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfQVNUQzEweDEwVW5vcm1TcmdiOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNU
QzEyeDEwVW5vcm06CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTBVbm9ybVNy
Z2I6CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTJVbm9ybToKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtU3JnYjoKKyAgICBjYXNlIFdHUFVUZXh0
dXJlRm9ybWF0X0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiBib29sIFRleHR1cmU6OmlzVmFsaWRJbWFnZUNv
cHlEZXN0aW5hdGlvbihXR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQsIFdHUFVUZXh0dXJlQXNwZWN0
IGFzcGVjdCkKIHsKICAgICAvLyBodHRwczovL2dwdXdlYi5naXRodWIuaW8vZ3B1d2ViLyNkZXB0
aC1mb3JtYXRzCg==
</data>
<flag name="review"
          id="484449"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="484547"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>