<?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>217778</bug_id>
          
          <creation_ts>2020-10-15 13:24:08 -0700</creation_ts>
          <short_desc>Inclusive software: Remove instances of &quot;dumb&quot; from the code</short_desc>
          <delta_ts>2021-01-13 17:29:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698247</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-15 13:24:08 -0700</bug_when>
    <thetext>For inclusive software, we should avoid using the term &quot;dumb&quot; in the source.

The most common one is DumbPtrTraits. There&apos;s also a few in JSC: emitDumbVirtualCall() etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698249</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-15 13:24:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/70349482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700827</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-22 14:05:00 -0700</bug_when>
    <thetext>report-non-inclusive-language should catch this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701556</commentid>
    <comment_count>3</comment_count>
      <attachid>412343</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-26 11:56:55 -0700</bug_when>
    <thetext>Created attachment 412343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701561</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-10-26 12:13:12 -0700</bug_when>
    <thetext>Can I get some clarification as to why we think this is important and what the logic is behind it? I (and perhaps others) actually don&apos;t know, although I have an idea. For example, I don&apos;t know if we should also remove references to &quot;dummy&quot; since &quot;dummy&quot; and &quot;dumb&quot; share the same origin?

I think it would be useful for people entering the project to be able to learn about inclusivity without having to ask someone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701563</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-26 12:18:00 -0700</bug_when>
    <thetext>&quot;Dumb&quot; is clearly a term that refers to someone who is unable to speak.  I&apos;m not sure about &quot;Dummy&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701571</commentid>
    <comment_count>6</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-10-26 12:41:46 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #5)
&gt; &quot;Dumb&quot; is clearly a term that refers to someone who is unable to speak.  I&apos;m
&gt; not sure about &quot;Dummy&quot;

I wouldn&apos;t say clearly since I think only native English speakers (and probably only a subset of them) know about the origin of the word &quot;dumb&quot; or its ties to speaking. As far as I know, &quot;dummy&quot; is/was the noun version of &quot;dumb&quot;, although, its relation to speaking is now considered archaic.

Anyway, I&apos;m not against this change, I just think it&apos;s important to create an easy to find description about which words we allow or not and why. Especially for people contributing that don&apos;t speak English as a first language and may have been taught terminology we&apos;d like to avoid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701580</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-26 13:09:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/r268993</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702618</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-28 20:40:10 -0700</bug_when>
    <thetext>Thank you! This has really bothered me for some time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702620</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-28 20:49:14 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #4)
&gt; Can I get some clarification as to why we think this is important and what
&gt; the logic is behind it? I (and perhaps others) actually don&apos;t know, although
&gt; I have an idea. For example, I don&apos;t know if we should also remove
&gt; references to &quot;dummy&quot; since &quot;dummy&quot; and &quot;dumb&quot; share the same origin?

In general, words like &quot;stupid&quot;, &quot;dumb&quot;, &quot;retard&quot;, etc... are considered hurtful / harmful language for someone with intellectual disabilities and their friends and family.

Your point about dummy is valid though. We should probably use some other term like &quot;mock&quot; or &quot;sample&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719309</commentid>
    <comment_count>10</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-01-13 09:16:47 -0800</bug_when>
    <thetext>By the way, this has broken binary compatibility with open-source builds (because those builds use the system WebInspector.framework).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719345</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-13 10:46:14 -0800</bug_when>
    <thetext>What symbol is missing?  We have added symbol stubs for this before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719502</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-01-13 17:28:42 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; What symbol is missing?  We have added symbol stubs for this before.

The rename of RefPtr&apos;s template type means any function that accepts a RefPtr no longer matches what the caller looks for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719503</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-01-13 17:29:38 -0800</bug_when>
    <thetext>See also: https://bugs.webkit.org/show_bug.cgi?id=216945 and https://bugs.webkit.org/show_bug.cgi?id=215961</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412343</attachid>
            <date>2020-10-26 11:56:55 -0700</date>
            <delta_ts>2020-10-26 12:11:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217778-20201026125651.patch</filename>
            <type>text/plain</type>
            <size>44710</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZjIyMjEyZTE4NWRmNTkyNTE0MjEyMTY4ODM2NzY2MmIwZGEzYmRkLi40YzgzYTE2NzE4MGMwMjJh
YmU5MmM0MGUwMGU3NGM2NzM0NmIzNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMC0xMC0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIEluY2x1c2l2ZSBzb2Z0d2FyZTogUmVtb3ZlIGluc3RhbmNl
cyBvZiAiZHVtYiIgZnJvbSB0aGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNhbGxFdmFsKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6dW5ib3hCb29sZWFuKToKKyAgICAgICAg
KiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFZpcnR1YWxDYWxsKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0RHVtYlZpcnR1YWxDYWxsKTogRGVsZXRlZC4K
KyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgICogaml0L0pJVENhbGwu
Y3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKToKKyAgICAg
ICAgKiBqaXQvSklUQ2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2Fs
bEV2YWxTbG93Q2FzZSk6CisgICAgICAgICogcnVudGltZS9DYWNoZWRUeXBlcy5jcHA6CisgICAg
ICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJp
ZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6UmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+OjpzZXQpOgorICAgICAgICAoSlNDOjpEdW1i
VmFsdWVUcmFpdHM8VW5rbm93bj4+OjpzZXQpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2Fz
bUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6
OmFkZENhbGxJbmRpcmVjdCk6CisgICAgICAgICogd2FzbS9nZW5lcmF0ZVdhc20ucHk6CisgICAg
ICAgIChvcGNvZGVJdGVyYXRvcik6CisKIDIwMjAtMTAtMjQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbRUNNQS00MDJdIEltcGxlbWVudCBJbnRsLkxpc3RG
b3JtYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYWRiMGYxYWU3ZWMzOWFkYzExNjgzOWIzYzZhYWQ2MjIyZDk3MTU0MS4uZDhj
NzZmNmYzNTFiMGJjMTJiMjBjNDA0OTRhMWI5YWZiNDhjMGU4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAyMC0xMC0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEluY2x1c2l2ZSBzb2Z0d2FyZTogUmVtb3ZlIGluc3RhbmNlcyBvZiAiZHVt
YiIgZnJvbSB0aGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3Nzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBpY3Uv
dW5pY29kZS9jYW5pdGVyLmg6CisgICAgICAgICogd3RmL0JhZy5oOgorICAgICAgICAqIHd0Zi9D
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ2FnZWRQdHIuaDoKKyAgICAgICAgKiB3dGYv
Rm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi9OYWtlZFJlZi5oOgorICAgICAgICAqIHd0Zi9SYXdQ
dHJUcmFpdHMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYvd3RmL0R1bWJQdHJUcmFpdHMuaC4K
KyAgICAgICAgKiB3dGYvUmF3VmFsdWVUcmFpdHMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XVEYv
d3RmL0R1bWJWYWx1ZVRyYWl0cy5oLgorICAgICAgICAqIHd0Zi9SZWYuaDoKKyAgICAgICAgKiB3
dGYvUmVmQ291bnRlZEFycmF5Lmg6CisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAq
IHd0Zi9TZW50aW5lbExpbmtlZExpc3QuaDoKKwogMjAyMC0xMC0yNiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGEgV2Vha0hhc2hTZXQgZm9yIERvY3Vt
ZW50OjptX2NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRFbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM4
YTk4Mzk1ZWFlYTFkYWExOTNkZWM3Y2M1OGNiMDI0N2RlOTgyZmMuLjY3MmNjOWUzOTMwZDE0ODA1
NDUwNmFhOTM0ZTgyNmEwMmU2MzlkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
MC0xMC0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIEluY2x1c2l2ZSBzb2Z0d2FyZTogUmVtb3ZlIGluc3RhbmNlcyBvZiAiZHVtYiIgZnJv
bSB0aGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3Nzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZS5oOgorICAgICAgICAqIGRvbS9HQ1JlYWNoYWJsZVJlZi5oOgorICAgICAgICAqIHBh
Z2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlRHJhZyk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6YWRkVG9MaW5lKToKKwogMjAyMC0xMC0yNiAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFZpZGVvIGltbWVkaWF0ZWx5
IGV4aXRzIGZ1bGwgc2NyZWVuIGFuZCBwYXVzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE3NGNjMzc2YzA1MmY5
ZjAxOGVjZDMwNzE2OWNmYWM1YjExODY3NjUuLjgzMGU3NzdkN2FhZmM0ODM3Y2E4NTEzNGZlN2I0
YTYzNjFmNTMxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtODI0LDcgKzgyNCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LmFkZFB0cihUcnVzdGVk
SW1tMzIocmVxdWlyZWRCeXRlcyksIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CiAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6Y2FsbGVlRnJhbWVTbG90KENhbGxG
cmFtZVNsb3Q6OmNhbGxlZSkud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSwgR1BSSW5mbzo6cmVn
VDApOwogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OmNhbGxlZUZyYW1lU2xvdChD
YWxsRnJhbWVTbG90OjpjYWxsZWUpLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSwgR1BSSW5mbzo6cmVn
VDEpOwotICAgICAgICBtX2ppdC5lbWl0RHVtYlZpcnR1YWxDYWxsKHZtKCksIGdsb2JhbE9iamVj
dCwgaW5mbyk7CisgICAgICAgIG1faml0LmVtaXRWaXJ0dWFsQ2FsbCh2bSgpLCBnbG9iYWxPYmpl
Y3QsIGluZm8pOwogICAgICAgICAKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgICAg
IHNldFJlc3VsdEFuZFJlc2V0U3RhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDNjNjM4MTNhZjg0Y2IyOWFjZWY2NWIw
OTY5NGMwOTZlNDBmMmUwZjguLmJhZTZkNGUwMjU1OWVkZWJkYjdiNDcyMThiMWNiOTU4MWQ3MDM4
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxs
KE5vZGUqIG5vZGUpCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHBhcnQgd2hlcmUgd2UgbWVhbnQg
dG8gbWFrZSBhIG5vcm1hbCBjYWxsLiBPb3BzLgogICAgICAgICBtX2ppdC5hZGRQdHIoVHJ1c3Rl
ZEltbTMyKHJlcXVpcmVkQnl0ZXMpLCBKSVRDb21waWxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwogICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmNhbGxlZUZyYW1lU2xvdChDYWxs
RnJhbWVTbG90OjpjYWxsZWUpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgIG1faml0LmVtaXRE
dW1iVmlydHVhbENhbGwodm0oKSwgZ2xvYmFsT2JqZWN0LCBjYWxsTGlua0luZm8pOworICAgICAg
ICBtX2ppdC5lbWl0VmlydHVhbENhbGwodm0oKSwgZ2xvYmFsT2JqZWN0LCBjYWxsTGlua0luZm8p
OwogICAgICAgICAKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIHNldFJlc3Vs
dEFuZFJlc2V0U3RhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAppbmRleCA1ZDMwODdhYjAwNDUxMTU2ODc4MDAxOTY3ZWEwN2Y3MDczMDQwMGZi
Li44NTg4YTVmNGUwNjQ1YzIxN2ViOTQ2ZDZmZjY0OGM0NmU2NzI0MDE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMDYxMCw3ICsxMDYx
MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaml0LmFk
ZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXF1aXJlZEJ5dGVzKSwgQ0NhbGxIZWxw
ZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChD
Q2FsbEhlbHBlcnM6OmNhbGxlZUZyYW1lU2xvdChDYWxsRnJhbWVTbG90OjpjYWxsZWUpLCBHUFJJ
bmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICAgICAgaml0LmVtaXREdW1iVmlydHVhbENhbGwodm0s
IGdsb2JhbE9iamVjdCwgY2FsbExpbmtJbmZvKTsKKyAgICAgICAgICAgICAgICBqaXQuZW1pdFZp
cnR1YWxDYWxsKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxMaW5rSW5mbyk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgIGpp
dC5hZGRQdHIoCkBAIC0xNzk0OCw3ICsxNzk0OCw3IEBAIHByaXZhdGU6CiAgICAgTFZhbHVlIHVu
Ym94Qm9vbGVhbihMVmFsdWUganNWYWx1ZSkKICAgICB7CiAgICAgICAgIC8vIFdlIHdhbnQgdG8g
dXNlIGEgY2FzdCB0aGF0IGd1YXJhbnRlZXMgdGhhdCBCMyBrbm93cyB0aGF0IGV2ZW4gdGhlIGlu
dGVnZXIKLSAgICAgICAgLy8gdmFsdWUgaXMganVzdCAwIG9yIDEuIEJ1dCBmb3Igbm93IHdlIGRv
IGl0IHRoZSBkdW1iIHdheS4KKyAgICAgICAgLy8gdmFsdWUgaXMganVzdCAwIG9yIDEuIEJ1dCBm
b3Igbm93IHdlIGRvIGl0IHRoZSBkaXJlY3Qgd2F5LgogICAgICAgICByZXR1cm4gbV9vdXQubm90
WmVybzY0KG1fb3V0LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KDEpKSk7CiAgICAg
fQogICAgIExWYWx1ZSBib3hCb29sZWFuKExWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TbG90VmlzaXRvci5oCmluZGV4IGMxOTM5YmVkNDRlNDc4MWE1YTA2NWE5ZjRiYjAz
OWViNjNhYjFkM2QuLmUyNjEzNjg1ZTExZTI1NWQzMWYzMGM3ZTUxNWY2NGQ2ODcwZDExMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaApAQCAtOTEsOCArOTEsOCBA
QCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHJhaXRzPiB2b2lk
IGFwcGVuZChjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFQsIFRyYWl0cz4mKTsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+IHZvaWQgYXBwZW5kSGlkZGVuKGNvbnN0IFdy
aXRlQmFycmllckJhc2U8VCwgVHJhaXRzPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJh
dG9yPiB2b2lkIGFwcGVuZChJdGVyYXRvciBiZWdpbiAsIEl0ZXJhdG9yIGVuZCk7Ci0gICAgdm9p
ZCBhcHBlbmRWYWx1ZXMoY29uc3QgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duLCBEdW1iVmFsdWVU
cmFpdHM8VW5rbm93bj4+Kiwgc2l6ZV90IGNvdW50KTsKLSAgICB2b2lkIGFwcGVuZFZhbHVlc0hp
ZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIER1bWJWYWx1ZVRyYWl0czxVbmtu
b3duPj4qLCBzaXplX3QgY291bnQpOworICAgIHZvaWQgYXBwZW5kVmFsdWVzKGNvbnN0IFdyaXRl
QmFycmllckJhc2U8VW5rbm93biwgUmF3VmFsdWVUcmFpdHM8VW5rbm93bj4+Kiwgc2l6ZV90IGNv
dW50KTsKKyAgICB2b2lkIGFwcGVuZFZhbHVlc0hpZGRlbihjb25zdCBXcml0ZUJhcnJpZXJCYXNl
PFVua25vd24sIFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiosIHNpemVfdCBjb3VudCk7CiAgICAg
CiAgICAgLy8gVGhlc2UgZG9uJ3QgcmVxdWlyZSB5b3UgdG8gcHJvdmUgdGhhdCB5b3UgaGF2ZSBh
IFdyaXRlQmFycmllcjw+LiBUaGF0IG1ha2VzIHNlbnNlCiAgICAgLy8gZm9yOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IGIxZTBjNzM1ZjIz
YjY5M2I5MDgzZTY5MmMyMTIwZjRjOTcwZDAzYzIuLjk4NGM0YzYyYWU3NjRiN2YwOWUxODkxOWQy
YmMyODk1MDI4OTRlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6cmVz
dG9yZUNhbGxlZVNhdmVzRnJvbUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcihFbnRyeUZyYQog
I2VuZGlmCiB9CiAKLXZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0RHVtYlZpcnR1YWxDYWxsKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbExpbmtJbmZvKiBpbmZvKQor
dm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRWaXJ0dWFsQ2FsbChWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxMaW5rSW5mbyogaW5mbykKIHsKICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoaW5mbyksIEdQUkluZm86OnJlZ1QyKTsKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIo
Z2xvYmFsT2JqZWN0KSwgR1BSSW5mbzo6cmVnVDMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggNzVlNjRiMzdkNmFlNGNmZDhjYzFmYjcyZDk4MzBk
OGUxMmM5MzcyMi4uZjIxZjZlZDUzY2I1YTZhYzM2NWUwNDE2ZDdjOTMzNTNkYzA5NTZiYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xOTM4LDcg
KzE5MzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGZ1bmN0b3IoVHlwZW9mVHlwZTo6VW5kZWZpbmVk
LCB0cnVlKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBlbWl0RHVtYlZpcnR1YWxDYWxsKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBDYWxsTGlua0luZm8qKTsKKyAgICB2b2lkIGVtaXRWaXJ0dWFsQ2Fs
bChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKik7CiAgICAgCiAgICAgdm9pZCBt
YWtlU3BhY2VPblN0YWNrRm9yQ0NhbGwoKTsKICAgICB2b2lkIHJlY2xhaW1TcGFjZU9uU3RhY2tG
b3JDQ2FsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKaW5kZXggMThkM2I1
ZTNlNDJjYTRiZWE3MWNhZWNiMTJhMjM0NWQ5MzJmZWYyOC4uMzU1NDc4NDI3MTZjYjdmYjUwNjhm
NTcwODQ0ODMyYWE0NWQ2ZDI2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3Bw
CkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKGNv
bnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lzdGVyKSArIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAKICAgICBsb2FkNjQoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKFJl
Z2lzdGVyKSAqIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBD
KSksIHJlZ1QwKTsKLSAgICBlbWl0RHVtYlZpcnR1YWxDYWxsKHZtKCksIG1fY29kZUJsb2NrLT5n
bG9iYWxPYmplY3QoKSwgaW5mbyk7CisgICAgZW1pdFZpcnR1YWxDYWxsKHZtKCksIG1fY29kZUJs
b2NrLT5nbG9iYWxPYmplY3QoKSwgaW5mbyk7CiAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFj
a1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxG
cmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDYWxsMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwCmluZGV4IDM0ZTc3YzllZWVlN2E1MGY3NTE0YTJiNzYyYzQwNDQ0ODAyODAwOTYuLjA1ODI5
ZjY4MTM0OTJiZWZiNjE1ZDIxZmRkMWMzZjliNjQ2MDhmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIEpJVDo6
Y29tcGlsZUNhbGxFdmFsU2xvd0Nhc2UoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0NhcwogICAgIGFkZFB0cihUcnVzdGVkSW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBz
aXplb2YoUmVnaXN0ZXIpICsgc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAogICAgIGVtaXRMb2FkKGNhbGxlZSwgcmVn
VDEsIHJlZ1QwKTsKLSAgICBlbWl0RHVtYlZpcnR1YWxDYWxsKHZtKCksIG1fY29kZUJsb2NrLT5n
bG9iYWxPYmplY3QoKSwgaW5mbyk7CisgICAgZW1pdFZpcnR1YWxDYWxsKHZtKCksIG1fY29kZUJs
b2NrLT5nbG9iYWxPYmplY3QoKSwgaW5mbyk7CiAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFj
a1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxG
cmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVkVHlwZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVk
VHlwZXMuY3BwCmluZGV4IGU0NGMxYTM5Nzk0YjI0YmNkODdhZWYzOThhN2MyODI1N2VmMGM1MmQu
LmZlYjRkNzFhNGQ4MDU3MDVhMDFlODVhYjljMTY3YTI0NDcxZTllOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKQEAgLTUzMyw3ICs1MzMsNyBA
QCBwdHJkaWZmX3QgQ2FjaGVkUHRyT2Zmc2V0czo6b2Zmc2V0T2Zmc2V0KCkKICAgICByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKENhY2hlZFB0cjx2b2lkPiwgbV9vZmZzZXQpOwogfQogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBTb3VyY2UgPSBTb3VyY2VUeXBlPFQ+LCB0eXBlbmFtZSBQ
dHJUcmFpdHMgPSBEdW1iUHRyVHJhaXRzPFNvdXJjZT4+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBTb3VyY2UgPSBTb3VyY2VUeXBlPFQ+LCB0eXBlbmFtZSBQdHJUcmFpdHMgPSBSYXdQ
dHJUcmFpdHM8U291cmNlPj4KIGNsYXNzIENhY2hlZFJlZlB0ciA6IHB1YmxpYyBDYWNoZWRPYmpl
Y3Q8UmVmUHRyPFNvdXJjZSwgUHRyVHJhaXRzPj4gewogcHVibGljOgogICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNvdXJjZSogc3JjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IDYyZjdmODBmYzg0ZThlMjM5MGU5NTdiYjY3
YWIxMTI4YzFhZDVlNmUuLmI1YTliYjkzNjlmNTE2ZDRlMzU5OTQ1NDBkMWE0Zjg5OTFhOTIyNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTc5LDcg
Kzc5LDcgQEAgZW51bSBjbGFzcyBVbmtub3duIHsgfTsKIHRlbXBsYXRlIDxjbGFzcyBULCB0eXBl
bmFtZSBUcmFpdHM+IGNsYXNzIFdyaXRlQmFycmllckJhc2U7CiB0ZW1wbGF0ZTxjbGFzcyBUPgog
dXNpbmcgV3JpdGVCYXJyaWVyVHJhaXRzU2VsZWN0ID0gdHlwZW5hbWUgc3RkOjpjb25kaXRpb25h
bDxzdGQ6OmlzX3NhbWU8VCwgVW5rbm93bj46OnZhbHVlLAotICAgIER1bWJWYWx1ZVRyYWl0czxU
PiwgRHVtYlB0clRyYWl0czxUPgorICAgIFJhd1ZhbHVlVHJhaXRzPFQ+LCBSYXdQdHJUcmFpdHM8
VD4KID46OnR5cGU7CiAKIGVudW0gUHJlZmVycmVkUHJpbWl0aXZlVHlwZSA6IHVpbnQ4X3QgeyBO
b1ByZWZlcmVuY2UsIFByZWZlck51bWJlciwgUHJlZmVyU3RyaW5nIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCmluZGV4IDNkYmJlYjBhZWU3NDE0YTY5
ZmY1OGQ5Mjg5OGZhYTg2MjU5Y2VjZDYuLjRkMTE4MjEwMWU1NDdjNmJiZTdmYjEwZDg1YWM0NjZl
MTJjMDI2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRl
QmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmll
ci5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaW5jbHVkZSAiR0NBc3NlcnRpb25zLmgiCiAjaW5jbHVk
ZSAiSGFuZGxlVHlwZXMuaCIKICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KLSNpbmNsdWRlIDx3dGYv
RHVtYlB0clRyYWl0cy5oPgotI2luY2x1ZGUgPHd0Zi9EdW1iVmFsdWVUcmFpdHMuaD4KKyNpbmNs
dWRlIDx3dGYvUmF3UHRyVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1Jhd1ZhbHVlVHJhaXRzLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogCiB0ZW1wbGF0ZTxjbGFzcyBUPgogdXNpbmcgV3JpdGVCYXJyaWVyVHJhaXRzU2VsZWN0
ID0gdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX3NhbWU8VCwgVW5rbm93bj46OnZh
bHVlLAotICAgIER1bWJWYWx1ZVRyYWl0czxUPiwgRHVtYlB0clRyYWl0czxUPgorICAgIFJhd1Zh
bHVlVHJhaXRzPFQ+LCBSYXdQdHJUcmFpdHM8VD4KID46OnR5cGU7CiAKIHRlbXBsYXRlPGNsYXNz
IFQsIHR5cGVuYW1lIFRyYWl0cyA9IFdyaXRlQmFycmllclRyYWl0c1NlbGVjdDxUPj4gY2xhc3Mg
V3JpdGVCYXJyaWVyQmFzZTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhcigpIHsgVHJhaXRzOjpleGNoYW5nZShtX2NlbGwsIG51bGxwdHIpOyB9CiAKICAgICAvLyBT
bG90IGNhbm5vdCBiZSB1c2VkIHdoZW4gcG9pbnRlcnMgYXJlbid0IHN0b3JlZCBhcy1pcy4KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYXJyaWVyVCwgdHlwZW5hbWUgQmFycmllclRyYWl0cywgc3Rk
OjplbmFibGVfaWZfdDxzdGQ6OmlzX3NhbWU8QmFycmllclRyYWl0cywgRHVtYlB0clRyYWl0czxC
YXJyaWVyVD4+Ojp2YWx1ZSwgdm9pZCo+ID0gbnVsbHB0cj4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCYXJyaWVyVCwgdHlwZW5hbWUgQmFycmllclRyYWl0cywgc3RkOjplbmFibGVfaWZfdDxzdGQ6
OmlzX3NhbWU8QmFycmllclRyYWl0cywgUmF3UHRyVHJhaXRzPEJhcnJpZXJUPj46OnZhbHVlLCB2
b2lkKj4gPSBudWxscHRyPgogICAgIHN0cnVjdCBTbG90SGVscGVyIHsKICAgICAgICAgc3RhdGlj
IEJhcnJpZXJUKiogcmVpbnRlcnByZXQodHlwZW5hbWUgQmFycmllclRyYWl0czo6U3RvcmFnZVR5
cGUqIGNlbGwpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCoqPihjZWxsKTsgfQogICAgIH07
CkBAIC0xNTIsNyArMTUyLDcgQEAgcHJpdmF0ZToKICAgICBTdG9yYWdlVHlwZSBtX2NlbGw7CiB9
OwogCi10ZW1wbGF0ZSA8PiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIER1bWJWYWx1
ZVRyYWl0czxVbmtub3duPj4gewordGVtcGxhdGUgPD4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZTxV
bmtub3duLCBSYXdWYWx1ZVRyYWl0czxVbmtub3duPj4gewogcHVibGljOgogICAgIHZvaWQgc2V0
KFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNWYWx1ZSk7CiAgICAgdm9pZCBzZXRXaXRob3V0
V3JpdGVCYXJyaWVyKEpTVmFsdWUgdmFsdWUpCkBAIC0yMTgsNyArMjE4LDcgQEAgcHVibGljOgog
CiBlbnVtIFVuZGVmaW5lZFdyaXRlQmFycmllclRhZ1R5cGUgeyBVbmRlZmluZWRXcml0ZUJhcnJp
ZXJUYWcgfTsKIHRlbXBsYXRlIDw+Ci1jbGFzcyBXcml0ZUJhcnJpZXI8VW5rbm93biwgRHVtYlZh
bHVlVHJhaXRzPFVua25vd24+PiA6IHB1YmxpYyBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24sIER1
bWJWYWx1ZVRyYWl0czxVbmtub3duPj4geworY2xhc3MgV3JpdGVCYXJyaWVyPFVua25vd24sIFJh
d1ZhbHVlVHJhaXRzPFVua25vd24+PiA6IHB1YmxpYyBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24s
IFJhd1ZhbHVlVHJhaXRzPFVua25vd24+PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgV3JpdGVCYXJyaWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaAppbmRleCA5ZTExMzUxNTA2YjZkZTQy
MjUzY2Q5NWQyMWRhYTQyYWE4NDk3MDk3Li4wZjJlMGE0NTlkODM0OWI4OTBhNDUzZTBlYWM2MmQ3
NDk1NTczMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0
ZUJhcnJpZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3Jp
dGVCYXJyaWVySW5saW5lcy5oCkBAIC01NCw3ICs1NCw3IEBAIGlubGluZSB2b2lkIFdyaXRlQmFy
cmllckJhc2U8VCwgVHJhaXRzPjo6c2V0RWFybHlWYWx1ZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCog
b3duCiAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIob3duZXIsIHN0YXRpY19jYXN0PEpTQ2VsbCo+
KHZhbHVlKSk7CiB9CiAKLWlubGluZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VW5rbm93biwgRHVt
YlZhbHVlVHJhaXRzPFVua25vd24+Pjo6c2V0KFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwg
SlNWYWx1ZSB2YWx1ZSkKK2lubGluZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VW5rbm93biwgUmF3
VmFsdWVUcmFpdHM8VW5rbm93bj4+OjpzZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIEFTU0VSVCghT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgp
IHx8ICFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOwogICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNv
ZGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFp
cklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdl
bmVyYXRvci5jcHAKaW5kZXggYmMxZWM3MmY5NjA4NjA3N2FjODVhN2Y0ZGZmNzNiMjIzN2Q3NjRi
MS4uMDdlN2ZkNTkyODU0N2RlZjdiZDE0NmVjNzg1N2ExYzdmMjI3NzIzNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC0yMjQw
LDcgKzIyNDAsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWdu
ZWQgdGFibGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogICAgICAgICAvLyBGSVhNRTog
d2hlbiB3ZSBoYXZlIHRyYXAgaGFuZGxlcnMsIHdlIGNhbiBqdXN0IGxldCB0aGUgY2FsbCBmYWls
IGJlY2F1c2UgU2lnbmF0dXJlOjppbnZhbGlkSW5kZXggaXMgMC4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzIxMAogICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVv
ZihXYXNtVG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpzaWduYXR1cmVJbmRleCkgPT0gc2l6ZW9m
KHVpbnQ2NF90KSwgIkxvYWQgY29kZWdlbiBhc3N1bWVzIGk2NCIpOwogCi0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIHNlZW1zIGR1bWIgdG8gZG8gdHdvIGNoZWNrcyBqdXN0IGZvciBhIG5pY2VyIGVy
cm9yIG1lc3NhZ2UuCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNlZW1zIHdhc3RlZnVsIHRvIGRv
IHR3byBjaGVja3MganVzdCBmb3IgYSBuaWNlciBlcnJvciBtZXNzYWdlLgogICAgICAgICAvLyBX
ZSBzaG91bGQgbW92ZSBqdXN0IHRvIHVzZSBhIHNpbmdsZSBicmFuY2ggYW5kIHRoZW4gZmlndXJl
IG91dCB3aGF0CiAgICAgICAgIC8vIGVycm9yIHRvIHVzZSBpbiB0aGUgZXhjZXB0aW9uIGhhbmRs
ZXIuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2Fz
bS5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbS5weQppbmRleCBm
MGI2YjU4YmU0ODFkMTk1Zjg2YTc1NzY5M2IzZDUzOTU2MWMxNzZhLi5lNWEwYTIwYTRhNTg2YzIw
MTkxNjcyMGZkZGJjY2FjNjM0ODJmOGI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9nZW5lcmF0ZVdhc20ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
Z2VuZXJhdGVXYXNtLnB5CkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIFdhc206CiAvLyBETyBOTyBF
RElUISAtIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5ICIiIiArIHNjcmlwdE5hbWUKIAogICAg
IGRlZiBvcGNvZGVJdGVyYXRvcihzZWxmLCBmaWx0ZXIsIHJldD1Ob25lKToKLSAgICAgICAgIyBX
ZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSBweXRob24gaXMgZHVtYiBhbmQgd29uJ3QgbGV0IG1l
IHVzZSBzZWxmIGluIHRoZSBsYW1iZGEsIHdoaWNoIGlzIHJpZGljdWxvdXMuCisgICAgICAgICMg
V2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgcHl0aG9uIHdvbid0IGxldCBtZSB1c2Ugc2VsZiBp
biB0aGUgbGFtYmRhLCB3aGljaCBpcyByaWRpY3Vsb3VzLgogICAgICAgICBpZiByZXQgPT0gTm9u
ZToKICAgICAgICAgICAgIHJldCA9IGxhbWJkYSBvcDogeyJuYW1lIjogb3AsICJvcGNvZGUiOiBz
ZWxmLm9wY29kZXNbb3BdfQogICAgICAgICBmb3Igb3AgaW4gc2VsZi5vcGNvZGVzLmtleXMoKToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJmNDI2MmEwMDA5
MWNkNTEzYTE4YWI4MjY1ZTE2MDk3M2JhNjczZTkuLjQ2ZTJhNzdiOGI5ZDRjNTllYzZmOTBjZThl
NmRiYzI3ODJkMjYwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjc2LDcgKzY3Niw3IEBACiAJCUE4QTQ3MzcyMTUxQTgyNUIwMDQxMjNGRiAvKiBWTVRh
Z3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1UYWdzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE5QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNhbGxvd0NU
eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc2FsbG93Q1R5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQUQ2NTNEQTgyMDA2QjZDMjAwRDgyMEQ3IC8q
IER1bWJWYWx1ZVRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEdW1i
VmFsdWVUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUQ2NTNEQTgyMDA2
QjZDMjAwRDgyMEQ3IC8qIFJhd1ZhbHVlVHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJhd1ZhbHVlVHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFEN0M0MzRBMUREMkE0QTcwMDI2ODg4QiAvKiBFeHBlY3RlZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHBlY3RlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBRDg5QjZCNTFFNjQxNTA4MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEODlCNkI2MUU2NDE1MDgwMDkw
NzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC03NTIsNyArNzUyLDcgQEAKIAkJRjcyQkJEQjEwN0ZBNDI0ODg2MTc4QjlFIC8qIFN5
bWJvbEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3ltYm9s
SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMDMyQUQwMjQ2M0U0M0Iw
MDEyRDdDNyAvKiBXVEZDb25maWcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV1RGQ29uZmlnLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUwMzJB
RDEyNDYzRTQzQjAwMTJEN0M3IC8qIFdURkNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXVEZDb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkUw
NUZBRTYxRkRCMjE0MzAwMDkzMjMwIC8qIER1bWJQdHJUcmFpdHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRHVtYlB0clRyYWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGRTA1RkFFNjFGREIyMTQzMDAwOTMyMzAgLyogUmF3UHRyVHJhaXRzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhd1B0clRyYWl0cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRTA1RkFGRTFGRTUwMDc1MDAwOTMyMzAgLyogV1RGQXNzZXJ0aW9u
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXVEZBc3NlcnRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUxRDZEODcyMzc0MDFDRDAwN0E1
QzI2IC8qIFN0YWNrQ2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rh
Y2tDaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTFFMkMzOTIyNDBDMDU0
MDBGNkI3MjkgLyogUHRyVGFnLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFB0clRhZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDE5LDggKzEw
MTksNiBAQAogCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0
LmggKi8sCiAJCQkJQThBNDcyOTcxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuY3BwICovLAogCQkJ
CUE4QTQ3Mjk4MTUxQTgyNUEwMDQxMjNGRiAvKiBkdG9hLmggKi8sCi0JCQkJRkUwNUZBRTYxRkRC
MjE0MzAwMDkzMjMwIC8qIER1bWJQdHJUcmFpdHMuaCAqLywKLQkJCQlBRDY1M0RBODIwMDZCNkMy
MDBEODIwRDcgLyogRHVtYlZhbHVlVHJhaXRzLmggKi8sCiAJCQkJNTMzOEVCQTQyM0FCMDREMTAw
MzgyNjYyIC8qIEVudW1DbGFzc09wZXJhdG9yT3ZlcmxvYWRzLmggKi8sCiAJCQkJMUFFQTg4RTEx
RDZCQkNGNDAwRTVBRDY0IC8qIEVudW1UcmFpdHMuaCAqLywKIAkJCQlBRDdDNDM0QTFERDJBNEE3
MDAyNjg4OEIgLyogRXhwZWN0ZWQuaCAqLywKQEAgLTExOTQsNiArMTE5Miw4IEBACiAJCQkJMEYy
QUM1NjAxRTg5RjcwQzAwMDFFRTNGIC8qIFJhbmdlLmggKi8sCiAJCQkJMEY3MjVDQUIxQzUwNDYx
NjAwQUQ5NDNBIC8qIFJhbmdlU2V0LmggKi8sCiAJCQkJMEY4NzEwNTkxNjY0M0YxOTAwOTBCMEFE
IC8qIFJhd1BvaW50ZXIuaCAqLywKKwkJCQlGRTA1RkFFNjFGREIyMTQzMDAwOTMyMzAgLyogUmF3
UHRyVHJhaXRzLmggKi8sCisJCQkJQUQ2NTNEQTgyMDA2QjZDMjAwRDgyMEQ3IC8qIFJhd1ZhbHVl
VHJhaXRzLmggKi8sCiAJCQkJMEZFQzNDNUMxRjM2OEE5NzAwRjU5QjZDIC8qIFJlYWRXcml0ZUxv
Y2suY3BwICovLAogCQkJCTBGRUMzQzVEMUYzNjhBOTcwMEY1OUI2QyAvKiBSZWFkV3JpdGVMb2Nr
LmggKi8sCiAJCQkJRTMzRDVGODcxRkJFRDY2NzAwQkY2MjVFIC8qIFJlY3Vyc2FibGVMYW1iZGEu
aCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2FuaXRlci5oIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS9jYW5pdGVyLmgKaW5kZXggOWIyMWJhNTJkODk4NTVmZWFmMDI5
MjYzYTlmM2E3YzZhNGE3ZThlNC4uMTU5ZDExNjY2MzFmNzNiNmZlMjRhYTk0NzFlYzg1NjRlOGRi
YTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9jYW5pdGVyLmgKKysrIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9jYW5pdGVyLmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJs
aWM6CiAKICNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogICAgIC8qKgotICAgICAqIER1bWIg
cmVjdXJzaXZlIGltcGxlbWVudGF0aW9uIG9mIHBlcm11dGF0aW9uLgorICAgICAqIFVub3B0aW1p
emVkIHJlY3Vyc2l2ZSBpbXBsZW1lbnRhdGlvbiBvZiBwZXJtdXRhdGlvbi4KICAgICAgKiBUT0RP
OiBvcHRpbWl6ZQogICAgICAqIEBwYXJhbSBzb3VyY2UgICAgIHRoZSBzdHJpbmcgdG8gZmluZCBw
ZXJtdXRhdGlvbnMgZm9yCiAgICAgICogQHBhcmFtIHNraXBaZXJvcyAgZGV0ZXJtaW5lIGlmIHNr
aXAgemVyb3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JhZy5oIGIvU291cmNlL1dURi93
dGYvQmFnLmgKaW5kZXggZDUwNjFhNjA0ZDgzZDgwZjQyMjdlZWRhOGIxZWJmMzI2MDI4OTIzNC4u
N2I5MjJlOGExOTUxZTBjOTgxNTU0ZDY3ZWFjNDA5YzZkNjdmNGNjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQmFnLmgKKysrIGIvU291cmNlL1dURi93dGYvQmFnLmgKQEAgLTI1LDE1ICsy
NSwxNSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9EdW1iUHRyVHJhaXRzLmg+
CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUGFja2VkLmg+CisjaW5jbHVkZSA8d3RmL1Jhd1B0clRyYWl0cy5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKIAogREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoQmFnTm9kZSk7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQYXNzZWRQdHJU
cmFpdHMgPSBEdW1iUHRyVHJhaXRzPFQ+PgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UGFzc2VkUHRyVHJhaXRzID0gUmF3UHRyVHJhaXRzPFQ+PgogY2xhc3MgQmFnTm9kZSB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoQmFnTm9kZSk7CiBw
dWJsaWM6CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB0eXBlbmFtZSBQdHJUcmFpdHM6
OlN0b3JhZ2VUeXBlIG1fbmV4dCB7IG51bGxwdHIgfTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFBhc3NlZFB0clRyYWl0cyA9IER1bWJQdHJUcmFpdHM8VD4+Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQYXNzZWRQdHJUcmFpdHMgPSBSYXdQdHJUcmFpdHM8VD4+
CiBjbGFzcyBCYWcgZmluYWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJhZyk7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDMxNjdhNzhm
MjI1NjBiNjdjZDg5ZDU5ODZjZDkxMzVmOTg0MTgyZmUuLmM4YTRmMzg5MTYyNjhlMWZiNzZiMDYz
MTA3MWM0NGI2ZGZjZjdjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC01OCw4ICs1OCw2IEBA
IHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBEaXNhbGxvd0NUeXBlLmgKICAgICBEb21pbmF0
b3JzLmgKICAgICBEb3VibHlMaW5rZWRMaXN0LmgKLSAgICBEdW1iUHRyVHJhaXRzLmgKLSAgICBE
dW1iVmFsdWVUcmFpdHMuaAogICAgIEVudW1DbGFzc09wZXJhdG9yT3ZlcmxvYWRzLmgKICAgICBF
bnVtVHJhaXRzLmgKICAgICBFeHBlY3RlZC5oCkBAIC0yMDIsNiArMjAwLDggQEAgc2V0KFdURl9Q
VUJMSUNfSEVBREVSUwogICAgIFJhbmdlLmgKICAgICBSYW5nZVNldC5oCiAgICAgUmF3UG9pbnRl
ci5oCisgICAgUmF3UHRyVHJhaXRzLmgKKyAgICBSYXdWYWx1ZVRyYWl0cy5oCiAgICAgUmVhZFdy
aXRlTG9jay5oCiAgICAgUmVjdXJzYWJsZUxhbWJkYS5oCiAgICAgUmVjdXJzaXZlTG9ja0FkYXB0
ZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ2FnZWRQdHIuaCBiL1NvdXJjZS9XVEYv
d3RmL0NhZ2VkUHRyLmgKaW5kZXggOGZjYTYwNWM4NzE1MjVjOWUyNzNiYWI4NjUxMWFkNzMzOTkw
MDlhZi4uN2ZhN2M2NDMyYWVhZTliNTAxM2U3YTdkYzk4YmJmZTQxODA1MjdlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvQ2FnZWRQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DYWdlZFB0
ci5oCkBAIC0yNSw5ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0R1
bWJQdHJUcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
UHRyVGFnLmg+CisjaW5jbHVkZSA8d3RmL1Jhd1B0clRyYWl0cy5oPgogCiAjaW5jbHVkZSA8Y2xp
bWl0cz4KIApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogY29uc3RleHByIGJv
b2wgdGFnQ2FnZWRQdHIgPSB0cnVlOwogCi10ZW1wbGF0ZTxHaWdhY2FnZTo6S2luZCBwYXNzZWRL
aW5kLCB0eXBlbmFtZSBULCBib29sIHNob3VsZFRhZyA9IGZhbHNlLCB0eXBlbmFtZSBQdHJUcmFp
dHMgPSBEdW1iUHRyVHJhaXRzPFQ+PgordGVtcGxhdGU8R2lnYWNhZ2U6OktpbmQgcGFzc2VkS2lu
ZCwgdHlwZW5hbWUgVCwgYm9vbCBzaG91bGRUYWcgPSBmYWxzZSwgdHlwZW5hbWUgUHRyVHJhaXRz
ID0gUmF3UHRyVHJhaXRzPFQ+PgogY2xhc3MgQ2FnZWRQdHIgewogcHVibGljOgogICAgIHN0YXRp
YyBjb25zdGV4cHIgR2lnYWNhZ2U6OktpbmQga2luZCA9IHBhc3NlZEtpbmQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9EdW1iUHRyVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9EdW1iUHRy
VHJhaXRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0NmFjNjdkYWI5ZDlkMTZl
ZmRiM2YyYWNhMTY1NTQ5MjIyNTI4NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvRHVtYlB0clRyYWl0cy5oCisrKyAvZGV2L251
bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxjc3RkaW50PgotI2luY2x1
ZGUgPHV0aWxpdHk+Ci0KLW5hbWVzcGFjZSBXVEYgewotICAgIAotdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLXN0cnVjdCBEdW1iUHRyVHJhaXRzIHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB1c2lu
ZyBSZWJpbmRUcmFpdHMgPSBEdW1iUHRyVHJhaXRzPFU+OwotCi0gICAgdXNpbmcgU3RvcmFnZVR5
cGUgPSBUKjsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci0gICAgc3RhdGljIEFMV0FZU19J
TkxJTkUgVCogZXhjaGFuZ2UoU3RvcmFnZVR5cGUmIHB0ciwgVSYmIG5ld1ZhbHVlKSB7IHJldHVy
biBzdGQ6OmV4Y2hhbmdlKHB0ciwgbmV3VmFsdWUpOyB9Ci0KLSAgICBzdGF0aWMgQUxXQVlTX0lO
TElORSB2b2lkIHN3YXAoU3RvcmFnZVR5cGUmIGEsIFN0b3JhZ2VUeXBlJiBiKSB7IHN0ZDo6c3dh
cChhLCBiKTsgfQotICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFQqIHVud3JhcChjb25zdCBTdG9y
YWdlVHlwZSYgcHRyKSB7IHJldHVybiBwdHI7IH0KLQotICAgIHN0YXRpYyBTdG9yYWdlVHlwZSBo
YXNoVGFibGVEZWxldGVkVmFsdWUoKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8U3RvcmFnZVR5cGU+
KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oLTEpKTsgfQotICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoY29uc3QgU3RvcmFnZVR5cGUmIHB0cikgeyBy
ZXR1cm4gcHRyID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXVEYKLQotdXNpbmcgV1RGOjpEdW1iUHRyVHJhaXRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvRHVtYlZhbHVlVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9EdW1iVmFsdWVUcmFp
dHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdjNTNlOTVmMzk2OTI3OWE5YzU1
OTg3ZmE5MDhhMmNiMWZlYmRiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EdW1iVmFsdWVUcmFpdHMuaAorKysgL2Rldi9udWxs
CkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPGNzdGRpbnQ+Ci0jaW5jbHVkZSA8dXRp
bGl0eT4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3Qg
RHVtYlZhbHVlVHJhaXRzIHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB1c2luZyBSZWJpbmRU
cmFpdHMgPSBEdW1iVmFsdWVUcmFpdHM8VT47Ci0KLSAgICB1c2luZyBTdG9yYWdlVHlwZSA9IFQ7
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgotICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFQg
ZXhjaGFuZ2UoU3RvcmFnZVR5cGUmIHZhbCwgVSYmIG5ld1ZhbHVlKSB7IHJldHVybiBzdGQ6OmV4
Y2hhbmdlKHZhbCwgbmV3VmFsdWUpOyB9Ci0KLSAgICBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lk
IHN3YXAoU3RvcmFnZVR5cGUmIGEsIFN0b3JhZ2VUeXBlJiBiKSB7IHN0ZDo6c3dhcChhLCBiKTsg
fQotICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFQgdW53cmFwKGNvbnN0IFN0b3JhZ2VUeXBlJiB2
YWwpIHsgcmV0dXJuIHZhbDsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdU
Rjo6RHVtYlZhbHVlVHJhaXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5o
IGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDU0YzBmNzJhM2UyNzk5YWVlMmFkNGE2
OTE1M2IwYjcyMDBkNzdiMWMuLmE0NWEzNTRjNDc3ODIwM2RmY2ViMGI5OGUwNTgwODVkOWI4MjYw
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Gb3J3YXJkLmgKQEAgLTU4LDcgKzU4LDYgQEAgc3RydWN0IFZlY3Rvck1hbGxvYzsKIHVz
aW5nIFZlY3Rvck1hbGxvYyA9IEZhc3RNYWxsb2M7CiAjZW5kaWYKIAotdGVtcGxhdGU8dHlwZW5h
bWU+IHN0cnVjdCBEdW1iUHRyVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBEZWZh
dWx0UmVmRGVyZWZUcmFpdHM7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBDb21wbGV0aW9u
SGFuZGxlcjsKQEAgLTY5LDggKzY4LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIE9wdGlv
blNldDsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBPcHRpb25hbDsKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBQYWNrZWQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgPSBhbGlnbm9m
KFQpPiBjbGFzcyBQYWNrZWRBbGlnbmVkUHRyOwotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgPSBEdW1iUHRyVHJhaXRzPFQ+PiBjbGFzcyBSZWY7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSA9IER1bWJQdHJUcmFpdHM8VD4sIHR5cGVuYW1lID0gRGVmYXVsdFJlZkRlcmVmVHJh
aXRzPFQ+PiBjbGFzcyBSZWZQdHI7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IFJhd1B0clRy
YWl0czsKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gUmF3UHRyVHJhaXRzPFQ+PiBj
bGFzcyBSZWY7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IFJhd1B0clRyYWl0czxU
PiwgdHlwZW5hbWUgPSBEZWZhdWx0UmVmRGVyZWZUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJpbmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgU3RyaW5nUGFyc2luZ0J1ZmZlcjsKIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9
IHZvaWQ+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyOwpAQCAtODcsNyArODcsNyBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxTdHJpbmdJbXBsKj47CiB0ZW1wbGF0ZTw+IHN0cnVjdCBE
ZWZhdWx0SGFzaDxVUkw+OwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFj
aXR5PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pj47CiAKLXRl
bXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRHVtYlZhbHVlVHJhaXRzOwordGVtcGxhdGU8dHlwZW5h
bWU+IHN0cnVjdCBSYXdWYWx1ZVRyYWl0czsKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRW51
bVRyYWl0czsKIHRlbXBsYXRlPHR5cGVuYW1lIEUsIEUuLi4+IHN0cnVjdCBFbnVtVmFsdWVzOwog
dGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBIYXNoVHJhaXRzOwpAQCAtMTEwLDggKzExMCw2IEBA
IHVzaW5nIFdURjo6QXRvbVN0cmluZ0ltcGw7CiB1c2luZyBXVEY6OkJpbmFyeVNlbWFwaG9yZTsK
IHVzaW5nIFdURjo6Q1N0cmluZzsKIHVzaW5nIFdURjo6Q29tcGxldGlvbkhhbmRsZXI7Ci11c2lu
ZyBXVEY6OkR1bWJQdHJUcmFpdHM7Ci11c2luZyBXVEY6OkR1bWJWYWx1ZVRyYWl0czsKIHVzaW5n
IFdURjo6RnVuY3Rpb247CiB1c2luZyBXVEY6OkZ1bmN0aW9uRGlzcGF0Y2hlcjsKIHVzaW5nIFdU
Rjo6SGFzaENvdW50ZWRTZXQ7CkBAIC0xMjQsNiArMTIyLDggQEAgdXNpbmcgV1RGOjpPcHRpb25T
ZXQ7CiB1c2luZyBXVEY6Ok9wdGlvbmFsOwogdXNpbmcgV1RGOjpPcmRpbmFsTnVtYmVyOwogdXNp
bmcgV1RGOjpQcmludFN0cmVhbTsKK3VzaW5nIFdURjo6UmF3UHRyVHJhaXRzOwordXNpbmcgV1RG
OjpSYXdWYWx1ZVRyYWl0czsKIHVzaW5nIFdURjo6UmVmOwogdXNpbmcgV1RGOjpSZWZQdHI7CiB1
c2luZyBXVEY6OlNIQTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OYWtlZFJlZi5oIGIv
U291cmNlL1dURi93dGYvTmFrZWRSZWYuaAppbmRleCA5NTA1NGQzNGFkMDNmY2M3NzJlNTE0ZDYy
MWFmMmYxMzE3YzY5MGRmLi4wMzY4MWZiMGVlYzZkMTY1MzQ3NGVlODAxODExY2NhZDJkOTVjZWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9OYWtlZFJlZi5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL05ha2VkUmVmLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlIDx3dGYvRHVtYlB0clRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1Jhd1B0clRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNzUs
NyArNzUsNyBAQCBwdWJsaWM6CiAgICAgVCYgbGVha1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fcHRyKTsKLSAgICAgICAgVCYgcmVzdWx0ID0gKkR1bWJQ
dHJUcmFpdHM8VD46OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKTsKKyAgICAgICAgVCYgcmVzdWx0
ID0gKlJhd1B0clRyYWl0czxUPjo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmF3UHRy
VHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9SYXdQdHJUcmFpdHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDE3
YTcwOGE4Y2EwZWM3ZDY0ZjhjNjRkNDAwYmRjNmU3ZTE2OTQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvUmF3UHRyVHJhaXRzLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHV0aWxpdHk+CisKK25hbWVzcGFjZSBXVEYg
eworICAgIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBSYXdQdHJUcmFpdHMgeworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFU+IHVzaW5nIFJlYmluZFRyYWl0cyA9IFJhd1B0clRyYWl0czxV
PjsKKworICAgIHVzaW5nIFN0b3JhZ2VUeXBlID0gVCo7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPgorICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFQqIGV4Y2hhbmdlKFN0b3JhZ2VUeXBlJiBw
dHIsIFUmJiBuZXdWYWx1ZSkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShwdHIsIG5ld1ZhbHVlKTsg
fQorCisgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBzd2FwKFN0b3JhZ2VUeXBlJiBhLCBT
dG9yYWdlVHlwZSYgYikgeyBzdGQ6OnN3YXAoYSwgYik7IH0KKyAgICBzdGF0aWMgQUxXQVlTX0lO
TElORSBUKiB1bndyYXAoY29uc3QgU3RvcmFnZVR5cGUmIHB0cikgeyByZXR1cm4gcHRyOyB9CisK
KyAgICBzdGF0aWMgU3RvcmFnZVR5cGUgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgeyByZXR1cm4g
Yml0d2lzZV9jYXN0PFN0b3JhZ2VUeXBlPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KC0xKSk7IH0K
KyAgICBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKGNv
bnN0IFN0b3JhZ2VUeXBlJiBwdHIpIHsgcmV0dXJuIHB0ciA9PSBoYXNoVGFibGVEZWxldGVkVmFs
dWUoKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6UmF3UHRyVHJh
aXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmF3VmFsdWVUcmFpdHMuaCBiL1NvdXJj
ZS9XVEYvd3RmL1Jhd1ZhbHVlVHJhaXRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM4YWVmYmQxYzRmZWFkZjU4
MjgwZTE1MzZkOTkxYmIyYjE2ZTFhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1Jhd1ZhbHVlVHJhaXRzLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Y3N0ZGlu
dD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlw
ZW5hbWUgVD4KK3N0cnVjdCBSYXdWYWx1ZVRyYWl0cyB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gdXNpbmcgUmViaW5kVHJhaXRzID0gUmF3VmFsdWVUcmFpdHM8VT47CisKKyAgICB1c2luZyBT
dG9yYWdlVHlwZSA9IFQ7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIFQgZXhjaGFuZ2UoU3RvcmFnZVR5cGUmIHZhbCwgVSYmIG5ld1ZhbHVlKSB7
IHJldHVybiBzdGQ6OmV4Y2hhbmdlKHZhbCwgbmV3VmFsdWUpOyB9CisKKyAgICBzdGF0aWMgQUxX
QVlTX0lOTElORSB2b2lkIHN3YXAoU3RvcmFnZVR5cGUmIGEsIFN0b3JhZ2VUeXBlJiBiKSB7IHN0
ZDo6c3dhcChhLCBiKTsgfQorICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFQgdW53cmFwKGNvbnN0
IFN0b3JhZ2VUeXBlJiB2YWwpIHsgcmV0dXJuIHZhbDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKK3VzaW5nIFdURjo6UmF3VmFsdWVUcmFpdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9SZWYuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZi5oCmluZGV4IGRmYjA1NmU0YjQzNzYzNzFm
Njk3NzQ4N2Q1NDUyM2Q5ZmQ0ZTdjNDkuLjcyNmE0ZTZkZjMzNjdjMGE2NDFiNTAzNTFhZmVkYzAw
ODczZmEwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZi5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1JlZi5oCkBAIC0yNiw5ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0R1bWJQdHJUcmFpdHMuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmF3UHRyVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
IGlubGluZSB2b2lkIGFkb3B0ZWQoY29uc3Qgdm9pZCopIHsgfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBQdHJUcmFpdHM+IGNsYXNzIFJlZjsKLXRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFB0clRyYWl0cyA9IER1bWJQdHJUcmFpdHM8VD4+IFJlZjxULCBQdHJUcmFpdHM+
IGFkb3B0UmVmKFQmKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clRyYWl0cyA9
IFJhd1B0clRyYWl0czxUPj4gUmVmPFQsIFB0clRyYWl0cz4gYWRvcHRSZWYoVCYpOwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUcmFpdHM+CiBjbGFzcyBSZWYgewpAQCAtMjE2LDcg
KzIxNiw3IEBAIGlubGluZSB2b2lkIFJlZjxULCBVPjo6c3dhcChSZWY8WCwgWT4mIG90aGVyKQog
ICAgIFU6OnN3YXAobV9wdHIsIG90aGVyLm1fcHRyKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgWCwgdHlwZW5hbWUgWSwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PCFzdGQ6OmlzX3NhbWU8VSwgRHVtYlB0clRyYWl0czxUPj46OnZhbHVlIHx8ICFz
dGQ6OmlzX3NhbWU8WSwgRHVtYlB0clRyYWl0czxYPj46OnZhbHVlPj4KK3RlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFgsIHR5cGVuYW1lIFksIHR5cGVuYW1lID0gc3Rk
OjplbmFibGVfaWZfdDwhc3RkOjppc19zYW1lPFUsIFJhd1B0clRyYWl0czxUPj46OnZhbHVlIHx8
ICFzdGQ6OmlzX3NhbWU8WSwgUmF3UHRyVHJhaXRzPFg+Pjo6dmFsdWU+PgogaW5saW5lIHZvaWQg
c3dhcChSZWY8VCwgVT4mIGEsIFJlZjxYLCBZPiYgYikKIHsKICAgICBhLnN3YXAoYik7CkBAIC0y
MzUsMTkgKzIzNSwxOSBAQCBpbmxpbmUgUmVmPFQsIFU+IFJlZjxULCBVPjo6cmVwbGFjZShSZWY8
WCwgWT4mJiByZWZlcmVuY2UpCiAgICAgcmV0dXJuIG9sZFJlZmVyZW5jZTsKIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSA9IER1bWJQdHJUcmFpdHM8VD4sIHR5cGVuYW1lIFgs
IHR5cGVuYW1lIFk+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVID0gUmF3UHRyVHJh
aXRzPFQ+LCB0eXBlbmFtZSBYLCB0eXBlbmFtZSBZPgogaW5saW5lIFJlZjxULCBVPiBzdGF0aWNf
cmVmZXJlbmNlX2Nhc3QoUmVmPFgsIFk+JiByZWZlcmVuY2UpCiB7CiAgICAgcmV0dXJuIFJlZjxU
LCBVPihzdGF0aWNfY2FzdDxUJj4ocmVmZXJlbmNlLmdldCgpKSk7CiB9CiAKLXRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFUgPSBEdW1iUHRyVHJhaXRzPFQ+LCB0eXBlbmFtZSBYLCB0eXBl
bmFtZSBZPgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSA9IFJhd1B0clRyYWl0czxU
PiwgdHlwZW5hbWUgWCwgdHlwZW5hbWUgWT4KIGlubGluZSBSZWY8VCwgVT4gc3RhdGljX3JlZmVy
ZW5jZV9jYXN0KFJlZjxYLCBZPiYmIHJlZmVyZW5jZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
c3RhdGljX2Nhc3Q8VCY+KHJlZmVyZW5jZS5sZWFrUmVmKCkpKTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVSA9IER1bWJQdHJUcmFpdHM8VD4sIHR5cGVuYW1lIFgsIHR5cGVu
YW1lIFk+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVID0gUmF3UHRyVHJhaXRzPFQ+
LCB0eXBlbmFtZSBYLCB0eXBlbmFtZSBZPgogaW5saW5lIFJlZjxULCBVPiBzdGF0aWNfcmVmZXJl
bmNlX2Nhc3QoY29uc3QgUmVmPFgsIFk+JiByZWZlcmVuY2UpCiB7CiAgICAgcmV0dXJuIFJlZjxU
LCBVPihzdGF0aWNfY2FzdDxUJj4ocmVmZXJlbmNlLmNvcHlSZWYoKS5nZXQoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUmVmQ291bnRlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9S
ZWZDb3VudGVkQXJyYXkuaAppbmRleCBiNWRkMjhmNjAzZjRmZWFlY2ZmMWRkZTRkODQyNjdiZjc5
ODJhM2Q3Li41NWNhOTgxMzEzOGIyNjIwMTAzNDk5MDdjMjU2OWZlYzJkYjE0YTFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9SZWZDb3VudGVkQXJyYXkuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2luY2x1ZGUgPHd0Zi9EdW1iUHRyVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2Mu
aD4KKyNpbmNsdWRlIDx3dGYvUmF3UHRyVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDUsNyArNDUsNyBAQCBuYW1l
c3BhY2UgV1RGIHsKIAogREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoUmVm
Q291bnRlZEFycmF5KTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHJhaXRz
ID0gRHVtYlB0clRyYWl0czxUPj4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clRy
YWl0cyA9IFJhd1B0clRyYWl0czxUPj4KIGNsYXNzIFJlZkNvdW50ZWRBcnJheSB7CiAgICAgZW51
bSBDb21tb25Db3B5Q29uc3RydWN0b3JUYWcgeyBDb21tb25Db3B5Q29uc3RydWN0b3IgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQ
dHIuaAppbmRleCAwOTIzMmNiY2UyNzdiMWRiYmU1ZjIxNmE1YzhjMjJmNDVjYWFhZGJlLi5lNTBh
MWE4M2FmMTBjMzJiNzVmODljZThmYjU0ZTM2ZTJiYzZmZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtNDQsNyAr
NDQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdFJlZkRlcmVmVHJhaXRz
IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clRyYWl0cywgdHlwZW5h
bWUgUmVmRGVyZWZUcmFpdHM+IGNsYXNzIFJlZlB0cjsKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFB0clRyYWl0cyA9IER1bWJQdHJUcmFpdHM8VD4sIHR5cGVuYW1lIFJlZkRlcmVmVHJh
aXRzID0gRGVmYXVsdFJlZkRlcmVmVHJhaXRzPFQ+PiBSZWZQdHI8VCwgUHRyVHJhaXRzLCBSZWZE
ZXJlZlRyYWl0cz4gYWRvcHRSZWYoVCopOwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHRyVHJhaXRzID0gUmF3UHRyVHJhaXRzPFQ+LCB0eXBlbmFtZSBSZWZEZXJlZlRyYWl0cyA9IERl
ZmF1bHRSZWZEZXJlZlRyYWl0czxUPj4gUmVmUHRyPFQsIFB0clRyYWl0cywgUmVmRGVyZWZUcmFp
dHM+IGFkb3B0UmVmKFQqKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgX1B0clRy
YWl0cywgdHlwZW5hbWUgX1JlZkRlcmVmVHJhaXRzPgogY2xhc3MgUmVmUHRyIHsKQEAgLTE5Myw3
ICsxOTMsNyBAQCBpbmxpbmUgdm9pZCBSZWZQdHI8VCwgVSwgVj46OnN3YXAoUmVmUHRyPFgsIFks
IFo+JiBvKQogICAgIFU6OnN3YXAobV9wdHIsIG8ubV9wdHIpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBYLCB0eXBlbmFtZSBZLCB0
eXBlbmFtZSBaLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfc2FtZTxVLCBE
dW1iUHRyVHJhaXRzPFQ+Pjo6dmFsdWUgfHwgIXN0ZDo6aXNfc2FtZTxZLCBEdW1iUHRyVHJhaXRz
PFg+Pjo6dmFsdWU+PgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgWCwgdHlwZW5hbWUgWSwgdHlwZW5hbWUgWiwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PCFzdGQ6OmlzX3NhbWU8VSwgUmF3UHRyVHJhaXRzPFQ+Pjo6dmFsdWUgfHwgIXN0
ZDo6aXNfc2FtZTxZLCBSYXdQdHJUcmFpdHM8WD4+Ojp2YWx1ZT4+CiBpbmxpbmUgdm9pZCBzd2Fw
KFJlZlB0cjxULCBVLCBWPiYgYSwgUmVmUHRyPFgsIFksIFo+JiBiKQogewogICAgIGEuc3dhcChi
KTsKQEAgLTIzNSw3ICsyMzUsNyBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0
IFJlZlB0cjxYLCBZLCBaPiYgYikKICAgICByZXR1cm4gYSAhPSBiLmdldCgpOyAKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSA9IER1bWJQdHJUcmFpdHM8VD4sIHR5cGVuYW1l
IFYgPSBEZWZhdWx0UmVmRGVyZWZUcmFpdHM8VD4sIHR5cGVuYW1lIFgsIHR5cGVuYW1lIFksIHR5
cGVuYW1lIFo+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVID0gUmF3UHRyVHJhaXRz
PFQ+LCB0eXBlbmFtZSBWID0gRGVmYXVsdFJlZkRlcmVmVHJhaXRzPFQ+LCB0eXBlbmFtZSBYLCB0
eXBlbmFtZSBZLCB0eXBlbmFtZSBaPgogaW5saW5lIFJlZlB0cjxULCBVLCBWPiBzdGF0aWNfcG9p
bnRlcl9jYXN0KGNvbnN0IFJlZlB0cjxYLCBZLCBaPiYgcCkKIHsgCiAgICAgcmV0dXJuIFJlZlB0
cjxULCBVLCBWPihzdGF0aWNfY2FzdDxUKj4ocC5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0LmggYi9Tb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExp
bmtlZExpc3QuaAppbmRleCA3NWI0NjdhMDlmYTA0YzAxMDc3ZDY1Yjc3MDU1YTk2Yjg3ZjJhZTZh
Li40ZjQwZjBlYzA3YTdmYjZjNzVlZGNmMzJjY2RhODdjMGM5OWQ3NWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9T
ZW50aW5lbExpbmtlZExpc3QuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAog
ZW51bSBTZW50aW5lbFRhZyB7IFNlbnRpbmVsIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFBhc3NlZFB0clRyYWl0cyA9IER1bWJQdHJUcmFpdHM8VD4+Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBQYXNzZWRQdHJUcmFpdHMgPSBSYXdQdHJUcmFpdHM8VD4+CiBjbGFz
cyBCYXNpY1Jhd1NlbnRpbmVsTm9kZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaAppbmRl
eCAwZjc3OGQzZjIyNGRjZjA1Y2RjODk5YTIxNDIxOTNlOWYzMDk0Mzk1Li5mZDJlMDBhOGQ3MzVj
ZGUwOWNjZjhkODA3MDg3OTU0M2I1YTQ2NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTI4Miw3ICsyODIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQXVkaW9Ob2RlQ29ubmVjdGlvblJlZkRlcmVmVHJhaXRzIHsKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+Ci11c2luZyBBdWRpb0Nvbm5lY3Rpb25SZWZQdHIgPSBSZWZQdHI8
VCwgRHVtYlB0clRyYWl0czxUPiwgQXVkaW9Ob2RlQ29ubmVjdGlvblJlZkRlcmVmVHJhaXRzPFQ+
PjsKK3VzaW5nIEF1ZGlvQ29ubmVjdGlvblJlZlB0ciA9IFJlZlB0cjxULCBSYXdQdHJUcmFpdHM8
VD4sIEF1ZGlvTm9kZUNvbm5lY3Rpb25SZWZEZXJlZlRyYWl0czxUPj47CiAKIFN0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb05vZGU6Ok5vZGVUeXBlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0dDUmVhY2hhYmxlUmVmLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vR0NSZWFjaGFibGVSZWYuaAppbmRleCBmNjA3YzdmNjYyMTg1ZGVkZDkwMzY3NDgwY2Y5NDU4
OWY2ZjFjZGMzLi4zMDkwM2ZjMjk1ZjRkMmYyN2NhMGE1NTZkZGRhM2E3YzRiYTliNmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vR0NSZWFjaGFibGVSZWYuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vR0NSZWFjaGFibGVSZWYuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9EdW1iUHRyVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hDb3VudGVkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Jhd1B0clRyYWl0cy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IDQ3NTg4NzY0MWYyMDg2YTExNDM5ODVlZjhiNjQyYmFmNDMwNDZk
NDUuLjhjZTQzMTIwMDEzOTYxNGRiYWRlMzExZmJkMWM4ZTBlMWQ1YTgxMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM5MTEsNyArMzkxMSw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2
ZW50LCBDaGVja0RyCiAgICAgICAgICAgICBzb3VyY2VPcGVyYXRpb25NYXNrID0gZHJhZ1N0YXRl
KCkuZGF0YVRyYW5zZmVyLT5zb3VyY2VPcGVyYXRpb25NYXNrKCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIC8vIFl1Y2ssIGEgZHJhZ2dlZEltYWdlOm1vdmVUbzogbWVzc2FnZSBjYW4gYmUg
ZmlyZWQgYXMgYSByZXN1bHQgb2Yga2lja2luZyBvZmYgdGhlCi0gICAgICAgICAgICAvLyBkcmFn
IHdpdGggZHJhZ0ltYWdlISBCZWNhdXNlIG9mIHRoYXQgZHVtYiByZWVudHJhbmN5LCB3ZSBtYXkg
dGhpbmsgd2UndmUgbm90CisgICAgICAgICAgICAvLyBkcmFnIHdpdGggZHJhZ0ltYWdlISBCZWNh
dXNlIG9mIHRoYXQgcmVlbnRyYW5jeSwgd2UgbWF5IHRoaW5rIHdlJ3ZlIG5vdAogICAgICAgICAg
ICAgLy8gc3RhcnRlZCB0aGUgZHJhZyB3aGVuIHRoYXQgaGFwcGVucy4gU28gd2UgaGF2ZSB0byBh
c3N1bWUgaXQncyBzdGFydGVkIGJlZm9yZSB3ZSBraWNrIGl0IG9mZi4KICAgICAgICAgICAgIGRy
YWdTdGF0ZSgpLmRhdGFUcmFuc2Zlci0+c2V0RHJhZ0hhc1N0YXJ0ZWQoKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IDFhN2JiN2Ni
MmFjODRjZjBjMTZjMmI5ODZlNzcwOTA2OWFjYTc5MzcuLjRlYmQ2NGNlYjBjYmM4ZWUzMTUxZDQw
OGNiZjNkNTFhMDk4ODUxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRvTGlu
ZShJbmxpbmVCb3gqIGNoaWxkKQogICAgICAgICAgICAgICAgIHNob3VsZENsZWFyRGVzY2VuZGFu
dHNIYXZlU2FtZUxpbmVIZWlnaHRBbmRCYXNlbGluZSA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAoY2hpbGQtPnJlbmRlcmVyKCkuaXNMaW5lQnJlYWsoKSkgewotICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGR1bWIuIFdlIG9ubHkgdHVybiBvZmYgYmVj
YXVzZSBjdXJyZW50IGxheW91dCB0ZXN0IHJlc3VsdHMgZXhwZWN0IHRoZSA8YnI+IHRvIGJlIDAt
aGVpZ2h0IG9uIHRoZSBiYXNlbGluZS4KKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBp
c24ndCBpZGVhbC4gV2Ugb25seSB0dXJuIG9mZiBiZWNhdXNlIGN1cnJlbnQgbGF5b3V0IHRlc3Qg
cmVzdWx0cyBleHBlY3QgdGhlIDxicj4gdG8gYmUgMC1oZWlnaHQgb24gdGhlIGJhc2VsaW5lLgog
ICAgICAgICAgICAgICAgIC8vIE90aGVyIHRoYW4gbWFraW5nIGEgemlsbGlvbiB0ZXN0cyBoYXZl
IHRvIHJlZ2VuZXJhdGUgcmVzdWx0cywgdGhlcmUncyBubyByZWFzb24gdG8gZGl0Y2ggdGhlIG9w
dGltaXphdGlvbiBoZXJlLgogICAgICAgICAgICAgICAgIHNob3VsZENsZWFyRGVzY2VuZGFudHNI
YXZlU2FtZUxpbmVIZWlnaHRBbmRCYXNlbGluZSA9IGNoaWxkLT5yZW5kZXJlcigpLmlzQlIoKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7Cg==
</data>
<flag name="review"
          id="428772"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>