<?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>39216</bug_id>
          
          <creation_ts>2010-05-17 07:01:39 -0700</creation_ts>
          <short_desc>Hook Chromium&apos;s WebIndexedDatabaseImpl up to IndexedDatabaseImpl</short_desc>
          <delta_ts>2010-05-19 03:19: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>226748</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-17 07:01:39 -0700</bug_when>
    <thetext>find . | grep CMake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226749</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-17 07:03:13 -0700</bug_when>
    <thetext>Oops...user error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226751</commentid>
    <comment_count>2</comment_count>
      <attachid>56239</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-17 07:12:33 -0700</bug_when>
    <thetext>Created attachment 56239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226762</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-17 07:49:08 -0700</bug_when>
    <thetext>Attachment 56239 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2269238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226775</commentid>
    <comment_count>4</comment_count>
      <attachid>56245</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-17 08:47:33 -0700</bug_when>
    <thetext>Created attachment 56245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226794</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-17 09:55:07 -0700</bug_when>
    <thetext>+ Darin since it is mostly WebKit API changes (though I think any Chromium reviewer could look at it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226796</commentid>
    <comment_count>6</comment_count>
      <attachid>56245</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-05-17 10:05:33 -0700</bug_when>
    <thetext>Comment on attachment 56245
Patch

&gt; -    virtual void open(const String&amp; name, const String&amp; description, bool modifyDatabase, PassRefPtr&lt;IDBCallbacks&gt;, Frame*, ExceptionCode&amp;);
&gt; +    virtual void open(const String&amp; name, const String&amp; description, bool modifyDatabase, PassRefPtr&lt;IDBCallbacks&gt;, const String&amp; origin, Frame*, ExceptionCode&amp;);

Here and a bunch of other places, you&apos;re passing around the origin as a String/WebString. It probably makes more sense to use SecurityOrigin/WebSecurityOrigin.

That was the main thing I saw, but I&apos;m not terribly confident on my understanding of the Chromium API layering and organization, so fishd&apos;s opinion will be appreciated. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227228</commentid>
    <comment_count>7</comment_count>
      <attachid>56349</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-18 03:25:13 -0700</bug_when>
    <thetext>Created attachment 56349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227230</commentid>
    <comment_count>8</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-18 03:29:08 -0700</bug_when>
    <thetext>Nate: Fixed the issues you raised.

FishD: Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227251</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-18 04:25:02 -0700</bug_when>
    <thetext>Attachment 56349 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2293260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227254</commentid>
    <comment_count>10</comment_count>
      <attachid>56360</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-18 04:28:31 -0700</bug_when>
    <thetext>Created attachment 56360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227307</commentid>
    <comment_count>11</comment_count>
      <attachid>56360</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-18 08:04:39 -0700</bug_when>
    <thetext>Comment on attachment 56360
Patch

WebKit/chromium/src/WebIndexedDatabaseImpl.cpp:63
 +      
nit: extraneous new line

WebKit/chromium/src/WebIDBDatabaseImpl.cpp:51
 +  
nit: extraneous new line

WebKit/chromium/src/WebIDBCallbacksImpl.h:61
 +  
nit: extraneous new line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227757</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-19 03:04:53 -0700</bug_when>
    <thetext>Committed r59755: &lt;http://trac.webkit.org/changeset/59755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227760</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 03:19:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59755 might have broken Chromium Win Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56239</attachid>
            <date>2010-05-17 07:12:33 -0700</date>
            <delta_ts>2010-05-17 08:47:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39216-20100517151230.patch</filename>
            <type>text/plain</type>
            <size>26778</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmE4NzRlZGQyYjYyZjZlNDJkMWU4MTRlNTI1NzRhODFmYzUzZjQ0NC4uODY2YjIwYzVkY2I4ZDM5
ZDdmNjQ0NTI3OTgyMWVlZDJlNGEwYmE4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29rIENocm9taXVtJ3MgV2ViSW5kZXhlZERhdGFi
YXNlSW1wbCB1cCB0byBJbmRleGVkRGF0YWJhc2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTIxNgorCisgICAgICAgIEFsbCBvZiB0aGVzZSBm
dW5jdGlvbnMgYXJlIHN1cHBvc2VkIHRvIGJlIHBhc3NpbmcgYXJvdW5kIHRoZSBvcmlnaW4gc2lu
Y2UKKyAgICAgICAgdGhlIGNhbGxlciBvZiBJbmRleGVkRGF0YWJhc2VJbXBsIG1pZ2h0IG5vdCBi
ZSBhYmxlIHRvIHBhc3MgaW4gYSBGcmFtZSoKKyAgICAgICAgb2JqZWN0LiAgSSB0cmllZCB0byBm
aXggdGhpcyBpbiBhbiBlYWxpZXIgcGF0Y2gsIGJ1dCBvYnZpb3VzbHkgbWVzc2VkIHVwLgorCisg
ICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSBiZWNhdXNlIENocm9taXVtIHdhcyBlbXVsYXRpbmcg
dGhlIG9sZCBiZWhhdmlvciBiZWZvcmUKKyAgICAgICAgZXZlbiB0aG91Z2ggdGhlIGNvZGUgd2Fz
bid0IHByb3Blcmx5IGhvb2tlZCB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlLmg6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
OjpvcGVuKToKKwogMjAxMC0wNS0xNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgRG8gbm90IGluY2x1ZGUgdGhlIGluZGV4ZWQgZGF0YWJhc2UgaGVhZGVycyBpZiB0
aGUgZmVhdHVyZSBpcyBub3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2UuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaAppbmRleCAxZTQzNzgx
N2EzNzk2MjNiNTJiNGU1NDcyN2EyNjQ5NWI4YzQwMzBkLi5jZTAwNzVkZjc4YjRhNGZiMWMwMWFk
NDk2OWI5NzE4M2M4NTc0ZjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERh
dGFiYXNlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleGVkRGF0YWJhc2U+
IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWREYXRhYmFzZSgpIHsgfQogCi0gICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1l
KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2Us
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIEZyYW1lKiwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCBiMzA1MWM5MjYzYmYzMTRhYjcx
Njk1OWIwZjY2MmFlODBlY2FiNTc3Li5lMmE5NzRhZTZkMDBmZTRhNGMzZTI5YjQzMTk1ODBjMmEx
MTg0YWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5j
cHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCkBAIC01MCwx
MiArNTAsMTMgQEAgSW5kZXhlZERhdGFiYXNlSW1wbDo6fkluZGV4ZWREYXRhYmFzZUltcGwoKQog
ewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKQordm9p
ZCBJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcywgY29uc3QgU3RyaW5nJiBvcmlnaW4sIEZyYW1lKiwgRXhjZXB0aW9u
Q29kZSYpCiB7CiAgICAgLy8gRklYTUU6IFdyaXRlIGZvciByZWFsei4KICAgICBVTlVTRURfUEFS
QU0obmFtZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKICAgICBVTlVTRURfUEFS
QU0obW9kaWZ5RGF0YWJhc2UpOworICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOwogICAgIGNhbGxi
YWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoMCwgIk5vdCBpbXBsZW1lbnRl
ZCIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUlt
cGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggNzNlZGY2
YjEzMjA5Yzk1ZGVlNTE5YTg5Yjc4M2ZmNjU0NzFkNzllMS4uMzY1YWM2ZjJiNzY1MTZkNTUyOTQy
OTBlZGMxNjJiZjY0NzUzZGYxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZUltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5o
CkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleGVk
RGF0YWJhc2VJbXBsPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JbmRleGVkRGF0YWJhc2VJbXBs
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlm
eURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBJbmRleGVkRGF0YWJh
c2VJbXBsKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAKaW5k
ZXggMjIxMGE4ZDBlNjc0YWVhNmZmOWU4OGJlYjVjZjQ0MDI1ZDNkNjg2ZC4uYTZjYzdjMzY3YmMw
ODRhNmNmN2FlNjI4YzFlMTM3OTcyOWQzMDRmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdl
L0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmNwcApAQCAtMjksMTEgKzI5LDEzIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNs
dWRlICJJbmRleGVkRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTU0LDcgKzU2LDcgQEAgSW5kZXhlZERh
dGFiYXNlUmVxdWVzdDo6fkluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKQogUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgRXhjZXB0aW9u
Q29kZSYgZXhjZXB0aW9uKQogewogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURC
UmVxdWVzdDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIG1fdGhpcyk7Ci0gICAgbV9pbmRl
eGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCByZXF1
ZXN0LCBtX2ZyYW1lLCBleGNlcHRpb24pOworICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5h
bWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlEYXRhYmFzZSwgcmVxdWVzdCwgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbV9mcmFtZSwgZXhjZXB0aW9uKTsK
ICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNmVmYzhlNWE5ZDQ4NGQ3
ODYwYTRhODUzYzdhODYzMmFkOWRmZTQ2My4uODM1Zjk3MmY3OTlkMzYxMjE4MDJmNmU3YzEwMjJm
OGI0ZDE5ZmQ3MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDUtMTcgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9vayBDaHJvbWl1bSdzIFdlYkluZGV4ZWREYXRh
YmFzZUltcGwgdXAgdG8gSW5kZXhlZERhdGFiYXNlSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyMTYKKworICAgICAgICBXZWJfX19fSW1wbCBp
cyBmb3IgcmUtZW50ZXJpbmcgdGhlIFdlYktpdCBsYXllciBmcm9tIHRoZSBicm93c2VyIGxheWVy
LgorICAgICAgICBUaHVzIHRoZSBwcmV2aW91cyBJREJDYWxsYmFja3NQcm94eSB3YXMgbWlzLW5h
bWVkIChhbmQgc2hvdWxkIGhhdmUgYmVlbgorICAgICAgICBXZWJJREJDYWxsYmFja3NJbXBsKS4g
IFRoaXMgcGF0Y2ggcmVuYW1lcyBpdCBhbmQgdGhlbiBpbXBsZW1lbnRzIHRoZQorICAgICAgICBw
cm9wZXIgcHJveHkgKHdoaWNoIGlzIGZvciBnb2luZyBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0KS4K
KworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaW1wbGVtZW50cyB0aGUgZ2x1ZSBiZXR3ZWVuIFdl
YkluZGV4ZWREYXRhYmFzZUltcGwgYW5kCisgICAgICAgIEluZGV4ZWREYXRhYmFzZUltcGwuCisK
KyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNhbGxiYWNrc1Byb3h5OjpJREJDYWxsYmFja3NQcm94eSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25FcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaDoKKyAgICAgICAgKiBzcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlUHJveHk6Om9wZW4pOgorICAgICAgICAq
IHNyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJJREJDYWxsYmFja3NJbXBs
OjpXZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQkNhbGxiYWNr
c0ltcGw6On5XZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQkNh
bGxiYWNrc0ltcGw6Om9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCQ2FsbGJhY2tz
SW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJhc2VJbXBsKToK
KyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIHNy
Yy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5kZXhl
ZERhdGFiYXNlSW1wbDo6V2ViSW5kZXhlZERhdGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJbmRleGVk
RGF0YWJhc2VJbXBsLmg6CisKIDIwMTAtMDUtMTYgIE1pa2UgQmVsc2hlICA8bWJlbHNoZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAppbmRleCA4YWM1YTkwN2Y3MWU0OWYyYzA5NWI3Mjg3MDc1OGEyZmI0ODU3Njg2Li4yYTg3
ZDllMzJjMGVlMGY1YzZiMjBiYjRkNTFmZDQxZTkxZDA3NjliIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAt
MzQzLDcgKzM0MywxMSBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViR3JhcGhpY3NDb250ZXh0
M0REZWZhdWx0SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkhpc3RvcnlJdGVtLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQQm9keS5jcHAnLAorICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFi
YXNlRXJyb3IuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5j
cHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViSW1hZ2VDRy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SW1hZ2VEZWNvZGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZVNraWEuY3Bw
JywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggMDM0NmI1
OGRhNzM2ZWVmZDRkNTdjMWU1NjhlYmE0OGZiZjAzM2IwMy4uMmJkZjE0MGU1ZTY0ZGM5ZTI0ZTgz
NDBjZWExZWU0ZDk3YTY5ZjMyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQ
cm94eS5jcHAKQEAgLTI5LDExICsyOSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCiAKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNp
bmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5o
IgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNl
LmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCkBA
IC00MSw3ICs0MCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUlEQkNhbGxiYWNrc1By
b3h5OjpJREJDYWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorUGFzc1JlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0
ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAg
cmV0dXJuIG5ldyBJREJDYWxsYmFja3NQcm94eShjYWxsYmFja3MpOworfQorCitJREJDYWxsYmFj
a3NQcm94eTo6SURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzKQogICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogewogfQpAQCAt
NTAsMjEgKzU0LDIxIEBAIElEQkNhbGxiYWNrc1Byb3h5Ojp+SURCQ2FsbGJhY2tzUHJveHkoKQog
ewogfQogCi12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9yKGNvbnN0IFdlYktpdDo6V2Vi
SURCRGF0YWJhc2VFcnJvciYgZXJyb3IpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9y
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gaWRiRGF0YWJhc2VFcnJvcikKIHsKLSAgICBt
X2NhbGxiYWNrcy0+b25FcnJvcihlcnJvcik7CisgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZUVycm9yKGlkYkRhdGFiYXNlRXJyb3IpKTsKICAgICBtX2NhbGxi
YWNrcy5jbGVhcigpOwogfQogCi12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCit2b2lkIElEQkNhbGxiYWNrc1By
b3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7Ci0g
ICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0
SW5zdGFuY2UpKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJLaXQ6OldlYklE
QkRhdGFiYXNlSW1wbChpZGJEYXRhYmFzZSkpOwogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9
CiAKLXZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKQordm9pZCBJREJDYWxs
YmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBz
ZXJpYWxpemVkU2NyaXB0VmFsdWUpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJp
YWxpemVkU2NyaXB0VmFsdWUpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoV2ViS2l0OjpX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSk7CiAgICAgbV9j
YWxsYmFja3MuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDYWxsYmFja3NQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5oCmluZGV4IDY5MmIwYTNjMzE3MTg4NmM0NjkwZjY0NWRlZjk3ZjVkNDJkMzNjMGEuLjk5YWQ3
NjJmZTE2NWVkMzU5MjgxMjQ1MzE3YzI1MzlmZDM0OGQyMDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAgLTI5LDMzICsyOSwzNSBAQAogI2lmbmRlZiBJREJDYWxs
YmFja3NQcm94eV9oCiAjZGVmaW5lIElEQkNhbGxiYWNrc1Byb3h5X2gKIAotI2luY2x1ZGUgIldl
YklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQmNhbGxiYWNrcy5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViSURCRGF0YWJh
c2U7Ci1jbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwotY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlOworY2xhc3MgV2ViSURCQ2FsbGJhY2tzOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIElEQkNhbGxiYWNrczsKK2NsYXNzIElEQkRhdGFiYXNlRXJyb3I7CitjbGFzcyBJ
REJEYXRhYmFzZTsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAotY2xhc3MgSURCQ2Fs
bGJhY2tzUHJveHkgOiBwdWJsaWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgeworY2xhc3MgSURC
Q2FsbGJhY2tzUHJveHkgOiBwdWJsaWMgSURCQ2FsbGJhY2tzIHsKIHB1YmxpYzoKLSAgICBJREJD
YWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gY3JlYXRlKFBhc3NPd25QdHI8V2Vi
S2l0OjpXZWJJREJDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94eSgp
OwogCi0gICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUVycm9yJiBlcnJvcik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklE
QkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhj
b25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZh
bHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJy
b3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPik7CiAKIHByaXZhdGU6Ci0gICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFj
a3M7CisgICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxi
YWNrcz4pOworCisgICAgT3duUHRyPFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNr
czsKIH07CiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJh
c2VQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNw
cAppbmRleCBhNGJkMGIxMjRkYWY3ODA1MzY2YmZjMDAzOWU5Zjk4OTJiMDlmOWVjLi5jYzUyMDIx
MjE0ZGU4MjMyYTdiNmNiZDVmMjFkOWM2NmM0ZGRkNmY3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcApAQCAtMjksMTMgKzI5LDEwIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUHJveHkuaCIKIAotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFj
a3NQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZVByb3h5LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJX
ZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAj
aW5jbHVkZSAiV2ViSW5kZXhlZERhdGFiYXNlLmgiCkBAIC02MCwxMiArNTcsMTIgQEAgSW5kZXhl
ZERhdGFiYXNlUHJveHk6On5JbmRleGVkRGF0YWJhc2VQcm94eSgpCiB7CiB9CiAKLXZvaWQgSW5k
ZXhlZERhdGFiYXNlUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBJbmRl
eGVkRGF0YWJhc2VQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5kb2N1bWVudCgpKQogICAg
ICAgICByZXR1cm47CiAgICAgV2ViS2l0OjpXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1lKTsKLSAgICBtX3dlYkluZGV4ZWREYXRhYmFzZS0+
b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIG5ldyBJREJDYWxsYmFja3NQ
cm94eShjYWxsYmFja3MpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9T
dHJpbmcoKSwgd2ViRnJhbWUsIGVjKTsKKyAgICBtX3dlYkluZGV4ZWREYXRhYmFzZS0+b3Blbihu
YW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBs
KGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGVjKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQ
cm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oCmluZGV4
IDBjODY3NGEzNTM4MjJlYTZmODBlZTgzZTFkMTgwZTAzNDE2YjRiNDYuLmU4M2M5MzRhMGY0ODBk
OWM4OTVjMjAwYzQ0NjNlYTkxMWZiMGEzMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4
ZWREYXRhYmFzZVByb3h5LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SW5kZXhl
ZERhdGFiYXNlUHJveHkoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3Qg
U3RyaW5nJiBvcmlnaW4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2YXRlOgogICAg
IEluZGV4ZWREYXRhYmFzZVByb3h5KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Zjg4Y2I2ZjZkNmYxOWE3MjBhOWJiMTRmNzA0MDk0
MmU2ZjdiZTI0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJD
YWxsYmFja3NJbXBsLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYklEQkNhbGxiYWNrc0ltcGwuaCIKKworI2luY2x1ZGUgIklEQkNhbGxiYWNr
cy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFz
ZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViSURC
RGF0YWJhc2UuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAi
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJJREJDYWxsYmFja3NJbXBsOjpXZWJJREJD
YWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgOiBt
X2NhbGxiYWNrcyhjYWxsYmFja3MpCit7Cit9CisKK1dlYklEQkNhbGxiYWNrc0ltcGw6On5XZWJJ
REJDYWxsYmFja3NJbXBsKCkKK3sKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkVy
cm9yKGNvbnN0IFdlYktpdDo6V2ViSURCRGF0YWJhc2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9j
YWxsYmFja3MtPm9uRXJyb3IoZXJyb3IpOworICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7Cit9CisK
K3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJh
c2UqIHdlYktpdEluc3RhbmNlKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0
YWJhc2VQcm94eTo6Y3JlYXRlKHdlYktpdEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xl
YXIoKTsKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2Vi
S2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKK3sK
KyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAg
bV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJDYWxsYmFja3NJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgzNzFkNDU3MTZjMzdmNGQ1YzU3ZmJlYzkw
ZjNhNTEzMzRiNjY3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkNhbGxi
YWNrc0ltcGxfaAorI2RlZmluZSBXZWJJREJDYWxsYmFja3NJbXBsX2gKKworI2luY2x1ZGUgIldl
YklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworY2xhc3MgV2ViSURCRGF0YWJhc2U7CitjbGFzcyBXZWJJREJEYXRhYmFzZUVy
cm9yOworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIElEQkNhbGxiYWNrczsKKworY2xhc3MgV2ViSURCQ2FsbGJhY2tzSW1w
bCA6IHB1YmxpYyBXZWJLaXQ6OldlYklEQkNhbGxiYWNrcyB7CitwdWJsaWM6CisgICAgV2ViSURC
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICB2
aXJ0dWFsIH5XZWJJREJDYWxsYmFja3NJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJv
cihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpOworCitwcml2YXRlOgorICAgIFJlZlB0
cjxJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gV2ViSURCQ2FsbGJhY2tzSW1wbF9oCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJmOTI5Mzc2
ZWY3YmE2NTk0MTJhNGZjZmZiMDliOGNmZTdkMDZkNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlSW1wbC5oIgorCisj
aW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYklE
QkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+
IGlkYkRhdGFiYXNlKQoreworfQorCitXZWJJREJEYXRhYmFzZUltcGw6On5XZWJJREJEYXRhYmFz
ZUltcGwoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzU4Zjg0YTcxNmFiODZlMjhhZGZhYmMxYjZmNDE5ODgxYzJlZmIy
YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCRGF0YWJhc2VJbXBsX2gKKyNk
ZWZpbmUgV2ViSURCRGF0YWJhc2VJbXBsX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2lu
Y2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCRGF0
YWJhc2U7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFNlZSBjb21tZW50IGluIFdlYklu
ZGV4ZWREYXRhYmFzZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitj
bGFzcyBXZWJJREJEYXRhYmFzZUltcGwgOiBwdWJsaWMgV2ViSURCRGF0YWJhc2UgeworcHVibGlj
OgorICAgIFdlYklEQkRhdGFiYXNlSW1wbChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0
YWJhc2U+IGlkYkRhdGFiYXNlKTsKKyAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZUltcGwoKTsK
KworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisKK3ByaXZhdGU6CisgICAgV1RGOjpSZWZQdHI8
V2ViQ29yZTo6SURCRGF0YWJhc2U+IG1faWRiRGF0YWJhc2U7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklEQkRhdGFiYXNlSW1wbF9oCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCA0ODIwY2ZiZjZiYWJm
NTJmZDc5NzNhMzExZDhhZWYzZWU4NzRmYWEyLi5jZWU5ZGQ3NDdmNDcxNjUwYzcxYTIxMzU0NWQ3
NTdhN2Q5MDM3YWNjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWRE
YXRhYmFzZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFi
YXNlSW1wbC5jcHAKQEAgLTMxLDExICszMSwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldlYkluZGV4ZWREYXRhYmFzZUltcGwuaCIKIAorI2luY2x1ZGUgIklEQkNhbGxiYWNr
c1Byb3h5LmgiCisjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlSW1wbC5oIgogI2luY2x1ZGUgIldl
YklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJJbmRleGVkRGF0YWJhc2UqIFdlYkluZGV4ZWREYXRhYmFzZTo6
Y3JlYXRlKCkKQEAgLTQzLDE1ICs0NywxOSBAQCBXZWJJbmRleGVkRGF0YWJhc2UqIFdlYkluZGV4
ZWREYXRhYmFzZTo6Y3JlYXRlKCkKICAgICByZXR1cm4gbmV3IFdlYkluZGV4ZWREYXRhYmFzZUlt
cGwoKTsKIH0KIAorV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6V2ViSW5kZXhlZERhdGFiYXNlSW1w
bCgpCisgICAgOiBtX2luZGV4ZWREYXRhYmFzZShXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VJbXBs
OjpjcmVhdGUoKSkKK3sKK30KKwogV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6fldlYkluZGV4ZWRE
YXRhYmFzZUltcGwoKQogewogfQogCi12b2lkIFdlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4o
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29s
IG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrc1B0ciwgY29uc3QgV2Vi
U3RyaW5nJiBvcmlnaW4sIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQordm9pZCBXZWJJ
bmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luLCBXZWJGcmFtZSosIGludCYgZXhj
ZXB0aW9uQ29kZSkKIHsKLSAgICBPd25QdHI8V2ViSURCQ2FsbGJhY2tzPiBjYWxsYmFja3MoY2Fs
bGJhY2tzUHRyKTsKLSAgICBjYWxsYmFja3MtPm9uRXJyb3IoV2ViSURCRGF0YWJhc2VFcnJvcigw
LCAiTm90IGltcGxlbWVudGVkIikpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHJlYWx6
LgorICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlE
YXRhYmFzZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCBvcmlnaW4sIDAs
IGV4Y2VwdGlvbkNvZGUpOworICAgIAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggMDQwMmVkZWMz
YmQ4NjFlZTU0NWQyYWY1MTRhZjMxODhjNmJjN2NkNC4uNDQzYjEyMDQ4NDhiZjhkNmU5ZWMyYzE0
M2Q5ODMzY2ZhMWZjZWRhNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRl
eGVkRGF0YWJhc2VJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0
YWJhc2VJbXBsLmgKQEAgLTMwLDE0ICszMCwyMSBAQAogI2RlZmluZSBXZWJJbmRleGVkRGF0YWJh
c2VJbXBsX2gKIAogI2luY2x1ZGUgIldlYkluZGV4ZWREYXRhYmFzZS5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJbmRleGVkRGF0YWJhc2U7
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkluZGV4ZWREYXRhYmFzZUltcGwg
OiBwdWJsaWMgV2ViSW5kZXhlZERhdGFiYXNlIHsKIHB1YmxpYzoKKyAgICBXZWJJbmRleGVkRGF0
YWJhc2VJbXBsKCk7CiAgICAgdmlydHVhbCB+V2ViSW5kZXhlZERhdGFiYXNlSW1wbCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJp
bmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3MqLCBj
b25zdCBXZWJTdHJpbmcmIG9yaWdpbiwgV2ViRnJhbWUqLCBpbnQmIGV4Y2VwdGlvbkNvZGUpOwor
Citwcml2YXRlOgorICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZT4gbV9p
bmRleGVkRGF0YWJhc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56245</attachid>
            <date>2010-05-17 08:47:33 -0700</date>
            <delta_ts>2010-05-18 03:25:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39216-20100517164730.patch</filename>
            <type>text/plain</type>
            <size>26778</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmE4NzRlZGQyYjYyZjZlNDJkMWU4MTRlNTI1NzRhODFmYzUzZjQ0NC4uODY2YjIwYzVkY2I4ZDM5
ZDdmNjQ0NTI3OTgyMWVlZDJlNGEwYmE4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29rIENocm9taXVtJ3MgV2ViSW5kZXhlZERhdGFi
YXNlSW1wbCB1cCB0byBJbmRleGVkRGF0YWJhc2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTIxNgorCisgICAgICAgIEFsbCBvZiB0aGVzZSBm
dW5jdGlvbnMgYXJlIHN1cHBvc2VkIHRvIGJlIHBhc3NpbmcgYXJvdW5kIHRoZSBvcmlnaW4gc2lu
Y2UKKyAgICAgICAgdGhlIGNhbGxlciBvZiBJbmRleGVkRGF0YWJhc2VJbXBsIG1pZ2h0IG5vdCBi
ZSBhYmxlIHRvIHBhc3MgaW4gYSBGcmFtZSoKKyAgICAgICAgb2JqZWN0LiAgSSB0cmllZCB0byBm
aXggdGhpcyBpbiBhbiBlYWxpZXIgcGF0Y2gsIGJ1dCBvYnZpb3VzbHkgbWVzc2VkIHVwLgorCisg
ICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSBiZWNhdXNlIENocm9taXVtIHdhcyBlbXVsYXRpbmcg
dGhlIG9sZCBiZWhhdmlvciBiZWZvcmUKKyAgICAgICAgZXZlbiB0aG91Z2ggdGhlIGNvZGUgd2Fz
bid0IHByb3Blcmx5IGhvb2tlZCB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlLmg6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
OjpvcGVuKToKKwogMjAxMC0wNS0xNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgRG8gbm90IGluY2x1ZGUgdGhlIGluZGV4ZWQgZGF0YWJhc2UgaGVhZGVycyBpZiB0
aGUgZmVhdHVyZSBpcyBub3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2UuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaAppbmRleCAxZTQzNzgx
N2EzNzk2MjNiNTJiNGU1NDcyN2EyNjQ5NWI4YzQwMzBkLi5jZTAwNzVkZjc4YjRhNGZiMWMwMWFk
NDk2OWI5NzE4M2M4NTc0ZjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERh
dGFiYXNlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleGVkRGF0YWJhc2U+
IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWREYXRhYmFzZSgpIHsgfQogCi0gICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEZyYW1l
KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2Us
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIEZyYW1lKiwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCBiMzA1MWM5MjYzYmYzMTRhYjcx
Njk1OWIwZjY2MmFlODBlY2FiNTc3Li5lMmE5NzRhZTZkMDBmZTRhNGMzZTI5YjQzMTk1ODBjMmEx
MTg0YWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5j
cHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCkBAIC01MCwx
MiArNTAsMTMgQEAgSW5kZXhlZERhdGFiYXNlSW1wbDo6fkluZGV4ZWREYXRhYmFzZUltcGwoKQog
ewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKQordm9p
ZCBJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcywgY29uc3QgU3RyaW5nJiBvcmlnaW4sIEZyYW1lKiwgRXhjZXB0aW9u
Q29kZSYpCiB7CiAgICAgLy8gRklYTUU6IFdyaXRlIGZvciByZWFsei4KICAgICBVTlVTRURfUEFS
QU0obmFtZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKICAgICBVTlVTRURfUEFS
QU0obW9kaWZ5RGF0YWJhc2UpOworICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOwogICAgIGNhbGxi
YWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoMCwgIk5vdCBpbXBsZW1lbnRl
ZCIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUlt
cGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggNzNlZGY2
YjEzMjA5Yzk1ZGVlNTE5YTg5Yjc4M2ZmNjU0NzFkNzllMS4uMzY1YWM2ZjJiNzY1MTZkNTUyOTQy
OTBlZGMxNjJiZjY0NzUzZGYxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZUltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5o
CkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleGVk
RGF0YWJhc2VJbXBsPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JbmRleGVkRGF0YWJhc2VJbXBs
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlm
eURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBJbmRleGVkRGF0YWJh
c2VJbXBsKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAKaW5k
ZXggMjIxMGE4ZDBlNjc0YWVhNmZmOWU4OGJlYjVjZjQ0MDI1ZDNkNjg2ZC4uYTZjYzdjMzY3YmMw
ODRhNmNmN2FlNjI4YzFlMTM3OTcyOWQzMDRmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdl
L0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmNwcApAQCAtMjksMTEgKzI5LDEzIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNs
dWRlICJJbmRleGVkRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTU0LDcgKzU2LDcgQEAgSW5kZXhlZERh
dGFiYXNlUmVxdWVzdDo6fkluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKQogUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgRXhjZXB0aW9u
Q29kZSYgZXhjZXB0aW9uKQogewogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURC
UmVxdWVzdDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIG1fdGhpcyk7Ci0gICAgbV9pbmRl
eGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCByZXF1
ZXN0LCBtX2ZyYW1lLCBleGNlcHRpb24pOworICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5h
bWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlEYXRhYmFzZSwgcmVxdWVzdCwgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbV9mcmFtZSwgZXhjZXB0aW9uKTsK
ICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNmVmYzhlNWE5ZDQ4NGQ3
ODYwYTRhODUzYzdhODYzMmFkOWRmZTQ2My4uODM1Zjk3MmY3OTlkMzYxMjE4MDJmNmU3YzEwMjJm
OGI0ZDE5ZmQ3MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDUtMTcgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9vayBDaHJvbWl1bSdzIFdlYkluZGV4ZWREYXRh
YmFzZUltcGwgdXAgdG8gSW5kZXhlZERhdGFiYXNlSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyMTYKKworICAgICAgICBXZWJfX19fSW1wbCBp
cyBmb3IgcmUtZW50ZXJpbmcgdGhlIFdlYktpdCBsYXllciBmcm9tIHRoZSBicm93c2VyIGxheWVy
LgorICAgICAgICBUaHVzIHRoZSBwcmV2aW91cyBJREJDYWxsYmFja3NQcm94eSB3YXMgbWlzLW5h
bWVkIChhbmQgc2hvdWxkIGhhdmUgYmVlbgorICAgICAgICBXZWJJREJDYWxsYmFja3NJbXBsKS4g
IFRoaXMgcGF0Y2ggcmVuYW1lcyBpdCBhbmQgdGhlbiBpbXBsZW1lbnRzIHRoZQorICAgICAgICBw
cm9wZXIgcHJveHkgKHdoaWNoIGlzIGZvciBnb2luZyBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0KS4K
KworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaW1wbGVtZW50cyB0aGUgZ2x1ZSBiZXR3ZWVuIFdl
YkluZGV4ZWREYXRhYmFzZUltcGwgYW5kCisgICAgICAgIEluZGV4ZWREYXRhYmFzZUltcGwuCisK
KyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNhbGxiYWNrc1Byb3h5OjpJREJDYWxsYmFja3NQcm94eSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25FcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaDoKKyAgICAgICAgKiBzcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlUHJveHk6Om9wZW4pOgorICAgICAgICAq
IHNyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJJREJDYWxsYmFja3NJbXBs
OjpXZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQkNhbGxiYWNr
c0ltcGw6On5XZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQkNh
bGxiYWNrc0ltcGw6Om9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCQ2FsbGJhY2tz
SW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJhc2VJbXBsKToK
KyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIHNy
Yy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5kZXhl
ZERhdGFiYXNlSW1wbDo6V2ViSW5kZXhlZERhdGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJbmRleGVk
RGF0YWJhc2VJbXBsLmg6CisKIDIwMTAtMDUtMTYgIE1pa2UgQmVsc2hlICA8bWJlbHNoZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAppbmRleCA4YWM1YTkwN2Y3MWU0OWYyYzA5NWI3Mjg3MDc1OGEyZmI0ODU3Njg2Li4yYTg3
ZDllMzJjMGVlMGY1YzZiMjBiYjRkNTFmZDQxZTkxZDA3NjliIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAt
MzQzLDcgKzM0MywxMSBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViR3JhcGhpY3NDb250ZXh0
M0REZWZhdWx0SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkhpc3RvcnlJdGVtLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQQm9keS5jcHAnLAorICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFi
YXNlRXJyb3IuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5j
cHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViSW1hZ2VDRy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SW1hZ2VEZWNvZGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZVNraWEuY3Bw
JywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggMDM0NmI1
OGRhNzM2ZWVmZDRkNTdjMWU1NjhlYmE0OGZiZjAzM2IwMy4uMmJkZjE0MGU1ZTY0ZGM5ZTI0ZTgz
NDBjZWExZWU0ZDk3YTY5ZjMyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQ
cm94eS5jcHAKQEAgLTI5LDExICsyOSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCiAKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNp
bmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5o
IgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNl
LmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCkBA
IC00MSw3ICs0MCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUlEQkNhbGxiYWNrc1By
b3h5OjpJREJDYWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQorUGFzc1JlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0
ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAg
cmV0dXJuIG5ldyBJREJDYWxsYmFja3NQcm94eShjYWxsYmFja3MpOworfQorCitJREJDYWxsYmFj
a3NQcm94eTo6SURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzKQogICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogewogfQpAQCAt
NTAsMjEgKzU0LDIxIEBAIElEQkNhbGxiYWNrc1Byb3h5Ojp+SURCQ2FsbGJhY2tzUHJveHkoKQog
ewogfQogCi12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9yKGNvbnN0IFdlYktpdDo6V2Vi
SURCRGF0YWJhc2VFcnJvciYgZXJyb3IpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9y
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gaWRiRGF0YWJhc2VFcnJvcikKIHsKLSAgICBt
X2NhbGxiYWNrcy0+b25FcnJvcihlcnJvcik7CisgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZUVycm9yKGlkYkRhdGFiYXNlRXJyb3IpKTsKICAgICBtX2NhbGxi
YWNrcy5jbGVhcigpOwogfQogCi12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCit2b2lkIElEQkNhbGxiYWNrc1By
b3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7Ci0g
ICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0
SW5zdGFuY2UpKTsKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJLaXQ6OldlYklE
QkRhdGFiYXNlSW1wbChpZGJEYXRhYmFzZSkpOwogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9
CiAKLXZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKQordm9pZCBJREJDYWxs
YmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBz
ZXJpYWxpemVkU2NyaXB0VmFsdWUpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJp
YWxpemVkU2NyaXB0VmFsdWUpOworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoV2ViS2l0OjpX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSk7CiAgICAgbV9j
YWxsYmFja3MuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDYWxsYmFja3NQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5oCmluZGV4IDY5MmIwYTNjMzE3MTg4NmM0NjkwZjY0NWRlZjk3ZjVkNDJkMzNjMGEuLjVkNGJj
MGIxN2Y0NjA3MjVjMDI1Y2ZmZDhmNjRhMjA1YzU5YjU3MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAgLTI5LDMzICsyOSwzNSBAQAogI2lmbmRlZiBJREJDYWxs
YmFja3NQcm94eV9oCiAjZGVmaW5lIElEQkNhbGxiYWNrc1Byb3h5X2gKIAotI2luY2x1ZGUgIldl
YklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViSURCRGF0YWJh
c2U7Ci1jbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwotY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlOworY2xhc3MgV2ViSURCQ2FsbGJhY2tzOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIElEQkNhbGxiYWNrczsKK2NsYXNzIElEQkRhdGFiYXNlRXJyb3I7CitjbGFzcyBJ
REJEYXRhYmFzZTsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAotY2xhc3MgSURCQ2Fs
bGJhY2tzUHJveHkgOiBwdWJsaWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgeworY2xhc3MgSURC
Q2FsbGJhY2tzUHJveHkgOiBwdWJsaWMgSURCQ2FsbGJhY2tzIHsKIHB1YmxpYzoKLSAgICBJREJD
YWxsYmFja3NQcm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gY3JlYXRlKFBhc3NPd25QdHI8V2Vi
S2l0OjpXZWJJREJDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94eSgp
OwogCi0gICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUVycm9yJiBlcnJvcik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklE
QkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhj
b25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZh
bHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJy
b3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPik7CiAKIHByaXZhdGU6Ci0gICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFj
a3M7CisgICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxi
YWNrcz4pOworCisgICAgT3duUHRyPFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNr
czsKIH07CiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJh
c2VQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNw
cAppbmRleCBhNGJkMGIxMjRkYWY3ODA1MzY2YmZjMDAzOWU5Zjk4OTJiMDlmOWVjLi5jYzUyMDIx
MjE0ZGU4MjMyYTdiNmNiZDVmMjFkOWM2NmM0ZGRkNmY3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcApAQCAtMjksMTMgKzI5LDEwIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUHJveHkuaCIKIAotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFj
a3NQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZVByb3h5LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJX
ZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAj
aW5jbHVkZSAiV2ViSW5kZXhlZERhdGFiYXNlLmgiCkBAIC02MCwxMiArNTcsMTIgQEAgSW5kZXhl
ZERhdGFiYXNlUHJveHk6On5JbmRleGVkRGF0YWJhc2VQcm94eSgpCiB7CiB9CiAKLXZvaWQgSW5k
ZXhlZERhdGFiYXNlUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBJbmRl
eGVkRGF0YWJhc2VQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5kb2N1bWVudCgpKQogICAg
ICAgICByZXR1cm47CiAgICAgV2ViS2l0OjpXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1lKTsKLSAgICBtX3dlYkluZGV4ZWREYXRhYmFzZS0+
b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIG5ldyBJREJDYWxsYmFja3NQ
cm94eShjYWxsYmFja3MpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9T
dHJpbmcoKSwgd2ViRnJhbWUsIGVjKTsKKyAgICBtX3dlYkluZGV4ZWREYXRhYmFzZS0+b3Blbihu
YW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBs
KGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGVjKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQ
cm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oCmluZGV4
IDBjODY3NGEzNTM4MjJlYTZmODBlZTgzZTFkMTgwZTAzNDE2YjRiNDYuLmU4M2M5MzRhMGY0ODBk
OWM4OTVjMjAwYzQ0NjNlYTkxMWZiMGEzMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4
ZWREYXRhYmFzZVByb3h5LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SW5kZXhl
ZERhdGFiYXNlUHJveHkoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3Qg
U3RyaW5nJiBvcmlnaW4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2YXRlOgogICAg
IEluZGV4ZWREYXRhYmFzZVByb3h5KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Zjg4Y2I2ZjZkNmYxOWE3MjBhOWJiMTRmNzA0MDk0
MmU2ZjdiZTI0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJD
YWxsYmFja3NJbXBsLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYklEQkNhbGxiYWNrc0ltcGwuaCIKKworI2luY2x1ZGUgIklEQkNhbGxiYWNr
cy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFz
ZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViSURC
RGF0YWJhc2UuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAi
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJJREJDYWxsYmFja3NJbXBsOjpXZWJJREJD
YWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgOiBt
X2NhbGxiYWNrcyhjYWxsYmFja3MpCit7Cit9CisKK1dlYklEQkNhbGxiYWNrc0ltcGw6On5XZWJJ
REJDYWxsYmFja3NJbXBsKCkKK3sKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkVy
cm9yKGNvbnN0IFdlYktpdDo6V2ViSURCRGF0YWJhc2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9j
YWxsYmFja3MtPm9uRXJyb3IoZXJyb3IpOworICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7Cit9CisK
K3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJh
c2UqIHdlYktpdEluc3RhbmNlKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0
YWJhc2VQcm94eTo6Y3JlYXRlKHdlYktpdEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xl
YXIoKTsKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2Vi
S2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKK3sK
KyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAg
bV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJDYWxsYmFja3NJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgzNzFkNDU3MTZjMzdmNGQ1YzU3ZmJlYzkw
ZjNhNTEzMzRiNjY3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkNhbGxi
YWNrc0ltcGxfaAorI2RlZmluZSBXZWJJREJDYWxsYmFja3NJbXBsX2gKKworI2luY2x1ZGUgIldl
YklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworY2xhc3MgV2ViSURCRGF0YWJhc2U7CitjbGFzcyBXZWJJREJEYXRhYmFzZUVy
cm9yOworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIElEQkNhbGxiYWNrczsKKworY2xhc3MgV2ViSURCQ2FsbGJhY2tzSW1w
bCA6IHB1YmxpYyBXZWJLaXQ6OldlYklEQkNhbGxiYWNrcyB7CitwdWJsaWM6CisgICAgV2ViSURC
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICB2
aXJ0dWFsIH5XZWJJREJDYWxsYmFja3NJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJv
cihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpOworCitwcml2YXRlOgorICAgIFJlZlB0
cjxJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gV2ViSURCQ2FsbGJhY2tzSW1wbF9oCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJmOTI5Mzc2
ZWY3YmE2NTk0MTJhNGZjZmZiMDliOGNmZTdkMDZkNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlSW1wbC5oIgorCisj
aW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYklE
QkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+
IGlkYkRhdGFiYXNlKQoreworfQorCitXZWJJREJEYXRhYmFzZUltcGw6On5XZWJJREJEYXRhYmFz
ZUltcGwoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzU4Zjg0YTcxNmFiODZlMjhhZGZhYmMxYjZmNDE5ODgxYzJlZmIy
YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCRGF0YWJhc2VJbXBsX2gKKyNk
ZWZpbmUgV2ViSURCRGF0YWJhc2VJbXBsX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2lu
Y2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCRGF0
YWJhc2U7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFNlZSBjb21tZW50IGluIFdlYklu
ZGV4ZWREYXRhYmFzZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitj
bGFzcyBXZWJJREJEYXRhYmFzZUltcGwgOiBwdWJsaWMgV2ViSURCRGF0YWJhc2UgeworcHVibGlj
OgorICAgIFdlYklEQkRhdGFiYXNlSW1wbChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0
YWJhc2U+IGlkYkRhdGFiYXNlKTsKKyAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZUltcGwoKTsK
KworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisKK3ByaXZhdGU6CisgICAgV1RGOjpSZWZQdHI8
V2ViQ29yZTo6SURCRGF0YWJhc2U+IG1faWRiRGF0YWJhc2U7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklEQkRhdGFiYXNlSW1wbF9oCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcAppbmRleCA0ODIwY2ZiZjZiYWJm
NTJmZDc5NzNhMzExZDhhZWYzZWU4NzRmYWEyLi5jZWU5ZGQ3NDdmNDcxNjUwYzcxYTIxMzU0NWQ3
NTdhN2Q5MDM3YWNjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWRE
YXRhYmFzZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFi
YXNlSW1wbC5jcHAKQEAgLTMxLDExICszMSwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldlYkluZGV4ZWREYXRhYmFzZUltcGwuaCIKIAorI2luY2x1ZGUgIklEQkNhbGxiYWNr
c1Byb3h5LmgiCisjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlSW1wbC5oIgogI2luY2x1ZGUgIldl
YklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJJbmRleGVkRGF0YWJhc2UqIFdlYkluZGV4ZWREYXRhYmFzZTo6
Y3JlYXRlKCkKQEAgLTQzLDE1ICs0NywxOSBAQCBXZWJJbmRleGVkRGF0YWJhc2UqIFdlYkluZGV4
ZWREYXRhYmFzZTo6Y3JlYXRlKCkKICAgICByZXR1cm4gbmV3IFdlYkluZGV4ZWREYXRhYmFzZUlt
cGwoKTsKIH0KIAorV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6V2ViSW5kZXhlZERhdGFiYXNlSW1w
bCgpCisgICAgOiBtX2luZGV4ZWREYXRhYmFzZShXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VJbXBs
OjpjcmVhdGUoKSkKK3sKK30KKwogV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6fldlYkluZGV4ZWRE
YXRhYmFzZUltcGwoKQogewogfQogCi12b2lkIFdlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4o
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29s
IG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrc1B0ciwgY29uc3QgV2Vi
U3RyaW5nJiBvcmlnaW4sIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQordm9pZCBXZWJJ
bmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luLCBXZWJGcmFtZSosIGludCYgZXhj
ZXB0aW9uQ29kZSkKIHsKLSAgICBPd25QdHI8V2ViSURCQ2FsbGJhY2tzPiBjYWxsYmFja3MoY2Fs
bGJhY2tzUHRyKTsKLSAgICBjYWxsYmFja3MtPm9uRXJyb3IoV2ViSURCRGF0YWJhc2VFcnJvcigw
LCAiTm90IGltcGxlbWVudGVkIikpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHJlYWx6
LgorICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlE
YXRhYmFzZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCBvcmlnaW4sIDAs
IGV4Y2VwdGlvbkNvZGUpOworICAgIAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXggMDQwMmVkZWMz
YmQ4NjFlZTU0NWQyYWY1MTRhZjMxODhjNmJjN2NkNC4uNDQzYjEyMDQ4NDhiZjhkNmU5ZWMyYzE0
M2Q5ODMzY2ZhMWZjZWRhNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRl
eGVkRGF0YWJhc2VJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0
YWJhc2VJbXBsLmgKQEAgLTMwLDE0ICszMCwyMSBAQAogI2RlZmluZSBXZWJJbmRleGVkRGF0YWJh
c2VJbXBsX2gKIAogI2luY2x1ZGUgIldlYkluZGV4ZWREYXRhYmFzZS5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJbmRleGVkRGF0YWJhc2U7
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkluZGV4ZWREYXRhYmFzZUltcGwg
OiBwdWJsaWMgV2ViSW5kZXhlZERhdGFiYXNlIHsKIHB1YmxpYzoKKyAgICBXZWJJbmRleGVkRGF0
YWJhc2VJbXBsKCk7CiAgICAgdmlydHVhbCB+V2ViSW5kZXhlZERhdGFiYXNlSW1wbCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJp
bmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3MqLCBj
b25zdCBXZWJTdHJpbmcmIG9yaWdpbiwgV2ViRnJhbWUqLCBpbnQmIGV4Y2VwdGlvbkNvZGUpOwor
Citwcml2YXRlOgorICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZT4gbV9p
bmRleGVkRGF0YWJhc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56349</attachid>
            <date>2010-05-18 03:25:13 -0700</date>
            <delta_ts>2010-05-18 04:28:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39216-20100518112511.patch</filename>
            <type>text/plain</type>
            <size>30216</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmE4NzRlZGQyYjYyZjZlNDJkMWU4MTRlNTI1NzRhODFmYzUzZjQ0NC4uOTdhNWIxNzNjYzNhOGJm
Y2IzYWUyYjIwNWEwZTc1YWM4YTBjNGM5NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0xNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29rIENocm9taXVtJ3MgV2ViSW5kZXhlZERhdGFi
YXNlSW1wbCB1cCB0byBJbmRleGVkRGF0YWJhc2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTIxNgorCisgICAgICAgIEFsbCBvZiB0aGVzZSBm
dW5jdGlvbnMgYXJlIHN1cHBvc2VkIHRvIGJlIHBhc3NpbmcgYXJvdW5kIHRoZSBvcmlnaW4gc2lu
Y2UKKyAgICAgICAgdGhlIGNhbGxlciBvZiBJbmRleGVkRGF0YWJhc2VJbXBsIG1pZ2h0IG5vdCBi
ZSBhYmxlIHRvIHBhc3MgaW4gYSBGcmFtZSoKKyAgICAgICAgb2JqZWN0LiAgSSB0cmllZCB0byBm
aXggdGhpcyBpbiBhbiBlYWxpZXIgcGF0Y2gsIGJ1dCBvYnZpb3VzbHkgbWVzc2VkIHVwLgorCisg
ICAgICAgIEFsc28gY2hhbmdlIHBhc3Npbmcgc2VjdXJpdHkgb3JpZ2luIHN0cmluZ3MgdG8gcGFz
c2luZyBTZWN1cml0eU9yaWdpbgorICAgICAgICBvYmplY3RzLgorCisgICAgICAgIE5vIGJlaGF2
aW9yIGNoYW5nZSBiZWNhdXNlIENocm9taXVtIHdhcyBlbXVsYXRpbmcgdGhlIG9sZCBiZWhhdmlv
ciBiZWZvcmUKKyAgICAgICAgZXZlbiB0aG91Z2ggdGhlIGNvZGUgd2Fzbid0IHByb3Blcmx5IGhv
b2tlZCB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmg6CisgICAgICAg
ICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKToKKwogMjAx
MC0wNS0xNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgRG8gbm90
IGluY2x1ZGUgdGhlIGluZGV4ZWQgZGF0YWJhc2UgaGVhZGVycyBpZiB0aGUgZmVhdHVyZSBpcyBu
b3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaCBiL1dlYkNv
cmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaAppbmRleCAxZTQzNzgxN2EzNzk2MjNiNTJiNGU1
NDcyN2EyNjQ5NWI4YzQwMzBkLi42YmM5YjZlOTJiM2Q2MGU2NWExYTVmZTM0ZGI4Y2MwYmVkZWUw
YzMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmgKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiBjbGFzcyBJREJEYXRhYmFzZTsKK2NsYXNz
IFNlY3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJbmRleGVkRGF0
YWJhc2VSZXF1ZXN0IChhc3luYykgYW5kIEluZGV4ZWREYXRhYmFzZVN5bmMgKHN5bmMpLgogLy8g
VGhpcyBpcyBpbXBsZW1lbnRlZCBieSBJbmRleGVkRGF0YWJhc2VJbXBsIGFuZCBvcHRpb25hbGx5
IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKQEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVh
bCB+SW5kZXhlZERhdGFiYXNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJh
c2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJikg
PSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZUltcGwuY3BwCmluZGV4IGIzMDUxYzkyNjNiZjMxNGFiNzE2OTU5YjBmNjYyYWU4MGVj
YWI1NzcuLjI4YzQ3N2Q5ZmRkZWZmYzIzMDc3NjI4ZmYyNzNiNDk1NTI3OWM4ZjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgSW5kZXhl
ZERhdGFiYXNlSW1wbDo6fkluZGV4ZWREYXRhYmFzZUltcGwoKQogewogfQogCi12b2lkIEluZGV4
ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBJbmRleGVkRGF0YWJhc2VJ
bXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Ym9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpCiB7CiAg
ICAgLy8gRklYTUU6IFdyaXRlIGZvciByZWFsei4KICAgICBVTlVTRURfUEFSQU0obmFtZSk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuaAppbmRleCA3M2VkZjZiMTMyMDljOTVkZWU1
MTlhODliNzgzZmY2NTQ3MWQ3OWUxLi44ZDczNjk0NmE2M2VmYzA2ODVmOTkwZDlhNjk4OGY0MmQ1
YWI3YzgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5o
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKQEAgLTM5LDcgKzM5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZUltcGw+
IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWREYXRhYmFzZUltcGwoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBGcmFt
ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1l
KiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2YXRlOgogICAgIEluZGV4ZWREYXRhYmFzZUltcGwo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRleCAyMjEw
YThkMGU2NzRhZWE2ZmY5ZTg4YmViNWNmNDQwMjVkM2Q2ODZkLi5iNTQ5YmQ2OGY4OGNkZGQ4NmE0
ZmRiZmVlMTgzNDllN2JlOGI0Mzk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
Ojp+SW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IEluZGV4
ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBleGNlcHRp
b24pCiB7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVh
dGUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgbV90aGlzKTsKLSAgICBtX2luZGV4ZWREYXRhYmFzZS0+
b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIHJlcXVlc3QsIG1fZnJhbWUs
IGV4Y2VwdGlvbik7CisgICAgbV9pbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRp
b24sIG1vZGlmeURhdGFiYXNlLCByZXF1ZXN0LCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCBtX2ZyYW1lLCBleGNlcHRpb24pOwogICAgIHJldHVybiByZXF1ZXN0OwogfQog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA2ZWZjOGU1YTlkNDg0ZDc4NjBhNGE4NTNjN2E4NjMyYWQ5ZGZlNDYz
Li5kZDg5ZWMxM2M4ZmI5NjRjZjc0YjNiMzJjNDAyYWZjNTg0NTMxOTMxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NiBAQAorMjAxMC0wNS0xNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBIb29rIENocm9taXVtJ3MgV2ViSW5kZXhlZERhdGFiYXNlSW1wbCB1cCB0byBJbmRleGVkRGF0
YWJhc2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTIxNgorCisgICAgICAgIFdlYl9fX19JbXBsIGlzIGZvciByZS1lbnRlcmluZyB0aGUgV2Vi
S2l0IGxheWVyIGZyb20gdGhlIGJyb3dzZXIgbGF5ZXIuCisgICAgICAgIFRodXMgdGhlIHByZXZp
b3VzIElEQkNhbGxiYWNrc1Byb3h5IHdhcyBtaXMtbmFtZWQgKGFuZCBzaG91bGQgaGF2ZSBiZWVu
CisgICAgICAgIFdlYklEQkNhbGxiYWNrc0ltcGwpLiAgVGhpcyBwYXRjaCByZW5hbWVzIGl0IGFu
ZCB0aGVuIGltcGxlbWVudHMgdGhlCisgICAgICAgIHByb3BlciBwcm94eSAod2hpY2ggaXMgZm9y
IGdvaW5nIGZyb20gV2ViQ29yZSB0byBXZWJLaXQpLgorCisgICAgICAgIEFsc28gY2hhbmdlIHVz
aW5nIHNlY3VyaXR5IG9yaWdpbiBzdHJpbmdzIHRvIHVzaW5nIFdlYlNlY3VyaXR5T3JpZ2luCisg
ICAgICAgIG9iamVjdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGltcGxlbWVudHMgdGhl
IGdsdWUgYmV0d2VlbiBXZWJJbmRleGVkRGF0YWJhc2VJbXBsIGFuZAorICAgICAgICBJbmRleGVk
RGF0YWJhc2VJbXBsLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvSURC
Q2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6SURCQ2FsbGJh
Y2tzUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAg
ICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL0luZGV4ZWREYXRh
YmFzZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVByb3h5Ojpv
cGVuKToKKyAgICAgICAgKiBzcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBz
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
SURCQ2FsbGJhY2tzSW1wbDo6V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJJREJDYWxsYmFja3NJbXBsOjp+V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJJREJDYWxsYmFja3NJbXBsOjpvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRh
dGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6fldlYklE
QkRhdGFiYXNlSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBzcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluZGV4ZWREYXRhYmFzZUltcGw6OldlYkluZGV4ZWREYXRhYmFzZUltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKToKKyAgICAgICAg
KiBzcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5oOgorCiAyMDEwLTA1LTE2ICBNaWtlIEJlbHNo
ZSAgPG1iZWxzaGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOGFjNWE5MDdmNzFlNDlmMmMwOTViNzI4NzA3NThh
MmZiNDg1NzY4Ni4uMmE4N2Q5ZTMyYzBlZTBmNWM2YjIwYmI0ZDUxZmQ0MWU5MWQwNzY5YiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKQEAgLTM0Myw3ICszNDMsMTEgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dl
YkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJIaXN0b3J5SXRlbS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUEJvZHkuY3Bw
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwJywKKyAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJEYXRhYmFzZUVycm9yLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlQ0cuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViSW1hZ2VTa2lhLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkluZGV4ZWREYXRhYmFzZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbmRleGVkRGF0
YWJhc2UuaAppbmRleCA4ODYxNDU2YmVlNDM4YTg0MmQ2NWRlNDQ0NTE2NWMyMDcwZTdkMzJhLi42
MWI3N2EwNTFhNTZiYmRmMjVkYTU0ZDdlYWZmMmEwZTBiOTYxNDNmIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4ZWREYXRhYmFzZS5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmgKQEAgLTMxLDEyICszMSwxNSBAQAogCiAj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViSURCRGF0YWJhc2U7
CiBjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogLy8gVGhlIGVu
dHJ5IHBvaW50IGludG8gdGhlIEluZGV4ZWREYXRhYmFzZSBBUEkuICBUaGVzZSBjbGFzc2VzIG1h
dGNoIHRoZWlyIF9fX19fUmVxdWVzdCBhbmQKIC8vIF9fX19fU3luYyBjb3VudGVycGFydHMgaW4g
dGhlIHNwZWMsIGJ1dCBvcGVyYXRlIG9ubHkgaW4gYW4gYXN5bmMgbWFubmVyLgpAQCAtNDgsNyAr
NTEsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYkluZGV4ZWREYXRhYmFzZSgpIHsgfQog
CiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBvcGVuIGlnbm9yZXMgdGhlIFdl
YkZyYW1lKiBwYXJhbWV0ZXIuCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNl
LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTdHJpbmcmIG9yaWdpbiwgV2ViRnJhbWUqLCBp
bnQmIGV4Y2VwdGlvbkNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0
YWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3Ms
IGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiB3ZWJGcmFtZSwgaW50
JiBleGNlcHRpb25Db2RlKQorICAgIHsKKyAgICAgICAgb3BlbihuYW1lLCBkZXNjcmlwdGlvbiwg
bW9kaWZ5RGF0YWJhc2UsIGNhbGxiYWNrcywgb3JpZ2luLnRvU3RyaW5nKCksIHdlYkZyYW1lLCBl
eGNlcHRpb25Db2RlKTsKKyAgICB9CisgICAgLy8gRklYTUU6IERlbGV0ZSBzb29uLiAgQ29tcGF0
YWJpbGl0eSBoYWNrLgorICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwKKyAg
ICAgICAgICAgICAgICAgICAgICBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2Vi
U3RyaW5nJiBvcmlnaW4sIFdlYkZyYW1lKiB3ZWJGcmFtZSwgaW50JiBleGNlcHRpb25Db2RlKQor
ICAgIHsKKyAgICAgICAgb3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIGNh
bGxiYWNrcywgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luKSwgd2Vi
RnJhbWUsIGV4Y2VwdGlvbkNvZGUpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5o
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5oCmluZGV4IDc2MDEy
YTExZmM1MTQ1NzEwNjk1NDgzNTk4ZGFiNTYyYzJjYWUzOTguLmY1NjM4ZmIxOWVkMmI1YTkxMTRi
YzhjMjJiZTg4MjgzMTEzM2RmM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VjdXJpdHlPcmlnaW4uaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3Vy
aXR5T3JpZ2luLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJucyBh
IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIFdlYlNlY3VyaXR5T3JpZ2luIHRoYXQgY2Fu
CiAgICAgLy8gYmUgdXNlZCBhcyBhIGZpbGUuICBTaG91bGQgYmUgdXNlZCBpbiBzdG9yYWdlIEFQ
SXMgb25seS4KLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKTsK
KyAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKSBjb25zdDsKIAog
I2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYlNlY3VyaXR5T3JpZ2luKGNvbnN0IFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggMDM0NmI1OGRhNzM2ZWVmZDRkNTdjMWU1
NjhlYmE0OGZiZjAzM2IwMy4uMmJkZjE0MGU1ZTY0ZGM5ZTI0ZTgzNDBjZWExZWU0ZDk3YTY5ZjMy
MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTI5LDEx
ICsyOSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1By
b3h5LmgiCiAKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiV2Vi
SURCRGF0YWJhc2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2lu
Y2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCkBAIC00MSw3ICs0MCwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUlEQkNhbGxiYWNrc1Byb3h5OjpJREJDYWxsYmFja3NQ
cm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorUGFzc1JlZlB0cjxJREJD
YWxsYmFja3NQcm94eT4gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYktp
dDo6V2ViSURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgcmV0dXJuIG5ldyBJREJDYWxs
YmFja3NQcm94eShjYWxsYmFja3MpOworfQorCitJREJDYWxsYmFja3NQcm94eTo6SURCQ2FsbGJh
Y2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQog
ICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogewogfQpAQCAtNTAsMjEgKzU0LDIxIEBAIElE
QkNhbGxiYWNrc1Byb3h5Ojp+SURCQ2FsbGJhY2tzUHJveHkoKQogewogfQogCi12b2lkIElEQkNh
bGxiYWNrc1Byb3h5OjpvbkVycm9yKGNvbnN0IFdlYktpdDo6V2ViSURCRGF0YWJhc2VFcnJvciYg
ZXJyb3IpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4gaWRiRGF0YWJhc2VFcnJvcikKIHsKLSAgICBtX2NhbGxiYWNrcy0+b25FcnJv
cihlcnJvcik7CisgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUVycm9yKGlkYkRhdGFiYXNlRXJyb3IpKTsKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQog
Ci12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZSogd2ViS2l0SW5zdGFuY2UpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9u
U3VjY2VzcyhJREJEYXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKKyAgICBt
X2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbChpZGJE
YXRhYmFzZSkpOwogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKLXZvaWQgSURCQ2FsbGJh
Y2tzUHJveHk6Om9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKQordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNj
ZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFs
dWUpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUp
OworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSk7CiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDY5MmIwYTNj
MzE3MTg4NmM0NjkwZjY0NWRlZjk3ZjVkNDJkMzNjMGEuLjVkNGJjMGIxN2Y0NjA3MjVjMDI1Y2Zm
ZDhmNjRhMjA1YzU5YjU3MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmgKQEAgLTI5LDMzICsyOSwzNSBAQAogI2lmbmRlZiBJREJDYWxsYmFja3NQcm94eV9oCiAjZGVm
aW5lIElEQkNhbGxiYWNrc1Byb3h5X2gKIAotI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgor
I2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViSURCRGF0YWJhc2U7Ci1jbGFzcyBXZWJJREJE
YXRhYmFzZUVycm9yOwotY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworY2xhc3MgV2Vi
SURCQ2FsbGJhY2tzOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkNhbGxi
YWNrczsKK2NsYXNzIElEQkRhdGFiYXNlRXJyb3I7CitjbGFzcyBJREJEYXRhYmFzZTsKK2NsYXNz
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAotY2xhc3MgSURCQ2FsbGJhY2tzUHJveHkgOiBwdWJs
aWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgeworY2xhc3MgSURCQ2FsbGJhY2tzUHJveHkgOiBw
dWJsaWMgSURCQ2FsbGJhY2tzIHsKIHB1YmxpYzoKLSAgICBJREJDYWxsYmFja3NQcm94eShQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3NQcm94eT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDYWxsYmFj
a3M+KTsKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94eSgpOwogCi0gICAgdmlydHVhbCB2
b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcik7Ci0g
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJ
bnN0YW5jZSk7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKKyAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAKIHByaXZh
dGU6Ci0gICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CisgICAgSURCQ2FsbGJh
Y2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxiYWNrcz4pOworCisgICAgT3du
UHRyPFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKIH07CiAKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcAppbmRleCBhNGJkMGIxMjRk
YWY3ODA1MzY2YmZjMDAzOWU5Zjk4OTJiMDlmOWVjLi5hZWQ3YzEzNWI3NTc3MDYyY2RhNmJhYmYx
ZTNkYmI2MjUzMWJhYWFmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWRE
YXRhYmFzZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFz
ZVByb3h5LmNwcApAQCAtMjksMTMgKzI5LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5kZXhlZERhdGFiYXNlUHJveHkuaCIKIAotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5oIgogI2luY2x1
ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZVByb3h5LmgiCi0j
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNp
bmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSW5kZXhl
ZERhdGFiYXNlLmgiCkBAIC02MCwxMiArNTcsMTIgQEAgSW5kZXhlZERhdGFiYXNlUHJveHk6On5J
bmRleGVkRGF0YWJhc2VQcm94eSgpCiB7CiB9CiAKLXZvaWQgSW5kZXhlZERhdGFiYXNlUHJveHk6
Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29s
IG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGcmFt
ZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBJbmRleGVkRGF0YWJhc2VQcm94eTo6
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wg
bW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiwgRnJhbWUqIGZyYW1lLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAg
cmV0dXJuOwogICAgIFdlYktpdDo6V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFt
ZUltcGw6OmZyb21GcmFtZShmcmFtZSk7Ci0gICAgbV93ZWJJbmRleGVkRGF0YWJhc2UtPm9wZW4o
bmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBuZXcgSURCQ2FsbGJhY2tzUHJveHko
Y2FsbGJhY2tzKSwgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5n
KCksIHdlYkZyYW1lLCBlYyk7CisgICAgbV93ZWJJbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwg
ZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHku
aCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaAppbmRleCAwYzg2
NzRhMzUzODIyZWE2ZjgwZWU4M2UxZDE4MGUwMzQxNmI0YjQ2Li5lMzcyZTlhZTM4YTU0MTk0Mjg2
OGY2ZjEyYmZmYWUzZDcxZTE4MTEwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lu
ZGV4ZWREYXRhYmFzZVByb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0
YWJhc2VQcm94eS5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbmRleGVkRGF0YWJhc2U+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWREYXRh
YmFzZVByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBi
b29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAg
ICBJbmRleGVkRGF0YWJhc2VQcm94eSgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY4OGNiNmY2ZDZmMTlhNzIwYTliYjE0ZjcwNDA5
NDJlNmY3YmUyNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCisKKyNpbmNsdWRlICJJREJDYWxsYmFj
a3MuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VQcm94eS5oIgorI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklE
QkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgorI2luY2x1ZGUg
IldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViSURCQ2FsbGJhY2tzSW1wbDo6V2ViSURC
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIDog
bV9jYWxsYmFja3MoY2FsbGJhY2tzKQoreworfQorCitXZWJJREJDYWxsYmFja3NJbXBsOjp+V2Vi
SURCQ2FsbGJhY2tzSW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25F
cnJvcihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKQoreworICAgIG1f
Y2FsbGJhY2tzLT5vbkVycm9yKGVycm9yKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQor
Cit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFi
YXNlKiB3ZWJLaXRJbnN0YW5jZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRh
dGFiYXNlUHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOworICAgIG1fY2FsbGJhY2tzLmNs
ZWFyKCk7Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdl
YktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCit7
CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUpOworICAg
IG1fY2FsbGJhY2tzLmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MzcxZDQ1NzE2YzM3ZjRkNWM1N2ZiZWM5
MGYzYTUxMzM0YjY2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJDYWxs
YmFja3NJbXBsX2gKKyNkZWZpbmUgV2ViSURCQ2FsbGJhY2tzSW1wbF9oCisKKyNpbmNsdWRlICJX
ZWJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK2NsYXNzIFdlYklEQkRhdGFiYXNlOworY2xhc3MgV2ViSURCRGF0YWJhc2VF
cnJvcjsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBJREJDYWxsYmFja3M7CisKK2NsYXNzIFdlYklEQkNhbGxiYWNrc0lt
cGwgOiBwdWJsaWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgeworcHVibGljOgorICAgIFdlYklE
QkNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyk7CisgICAg
dmlydHVhbCB+V2ViSURCQ2FsbGJhY2tzSW1wbCgpOworCisgICAgdmlydHVhbCB2b2lkIG9uRXJy
b3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcik7CisgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7
CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKKworcHJpdmF0ZToKKyAgICBSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKK307CisKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIFdlYklEQkNhbGxiYWNrc0ltcGxfaApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZjkyOTM3
NmVmN2JhNjU5NDEyYTRmY2ZmYjA5YjhjZmU3ZDA2ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKKwor
I2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJJ
REJEYXRhYmFzZUltcGw6OldlYklEQkRhdGFiYXNlSW1wbChQYXNzUmVmUHRyPElEQkRhdGFiYXNl
PiBpZGJEYXRhYmFzZSkKK3sKK30KKworV2ViSURCRGF0YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJh
c2VJbXBsKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc1OGY4NGE3MTZhYjg2ZTI4YWRmYWJjMWI2ZjQxOTg4MWMyZWZi
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkRhdGFiYXNlSW1wbF9oCisj
ZGVmaW5lIFdlYklEQkRhdGFiYXNlSW1wbF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkRh
dGFiYXNlOyB9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBTZWUgY29tbWVudCBpbiBXZWJJ
bmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgor
Y2xhc3MgV2ViSURCRGF0YWJhc2VJbXBsIDogcHVibGljIFdlYklEQkRhdGFiYXNlIHsKK3B1Ymxp
YzoKKyAgICBXZWJJREJEYXRhYmFzZUltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlPiBpZGJEYXRhYmFzZSk7CisgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VJbXBsKCk7
CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorCitwcml2YXRlOgorICAgIFdURjo6UmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlPiBtX2lkYkRhdGFiYXNlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJEYXRhYmFzZUltcGxfaApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKaW5kZXggNDgyMGNmYmY2YmFi
ZjUyZmQ3OTczYTMxMWQ4YWVmM2VlODc0ZmFhMi4uNzI5MThiYjVmNWQwMTRjMTk3ZjNmMmU0ZTAx
Y2U0YTdhOTMwMGIzMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVk
RGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRh
YmFzZUltcGwuY3BwCkBAIC0zMSwxMSArMzEsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgiCiAKKyNpbmNsdWRlICJJREJDYWxsYmFj
a3NQcm94eS5oIgorI2luY2x1ZGUgIkluZGV4ZWREYXRhYmFzZUltcGwuaCIKICNpbmNsdWRlICJX
ZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViSW5kZXhlZERhdGFiYXNlKiBXZWJJbmRleGVkRGF0YWJhc2U6
OmNyZWF0ZSgpCkBAIC00MywxNSArNDcsMTkgQEAgV2ViSW5kZXhlZERhdGFiYXNlKiBXZWJJbmRl
eGVkRGF0YWJhc2U6OmNyZWF0ZSgpCiAgICAgcmV0dXJuIG5ldyBXZWJJbmRleGVkRGF0YWJhc2VJ
bXBsKCk7CiB9CiAKK1dlYkluZGV4ZWREYXRhYmFzZUltcGw6OldlYkluZGV4ZWREYXRhYmFzZUlt
cGwoKQorICAgIDogbV9pbmRleGVkRGF0YWJhc2UoV2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlSW1w
bDo6Y3JlYXRlKCkpCit7Cit9CisKIFdlYkluZGV4ZWREYXRhYmFzZUltcGw6On5XZWJJbmRleGVk
RGF0YWJhc2VJbXBsKCkKIHsKIH0KIAotdm9pZCBXZWJJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVu
KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9v
bCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3NQdHIsIGNvbnN0IFdl
YlN0cmluZyYgb3JpZ2luLCBXZWJGcmFtZSosIGludCYgZXhjZXB0aW9uQ29kZSkKK3ZvaWQgV2Vi
SW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdl
YlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklEQkNhbGxiYWNr
cyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSos
IGludCYgZXhjZXB0aW9uQ29kZSkKIHsKLSAgICBPd25QdHI8V2ViSURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MoY2FsbGJhY2tzUHRyKTsKLSAgICBjYWxsYmFja3MtPm9uRXJyb3IoV2ViSURCRGF0YWJh
c2VFcnJvcigwLCAiTm90IGltcGxlbWVudGVkIikpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
Zm9yIHJlYWx6LgorICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9u
LCBtb2RpZnlEYXRhYmFzZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCBv
cmlnaW4sIDAsIGV4Y2VwdGlvbkNvZGUpOworICAgIAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgKaW5kZXgg
MDQwMmVkZWMzYmQ4NjFlZTU0NWQyYWY1MTRhZjMxODhjNmJjN2NkNC4uNTdkMjBhNjM4ZTAzNDFl
ZjJiZWE4Y2NjYmExOGY0NTQ0ZTM3Y2I0YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bmRleGVkRGF0YWJhc2VJbXBsLmgKQEAgLTMwLDE0ICszMCwyMSBAQAogI2RlZmluZSBXZWJJbmRl
eGVkRGF0YWJhc2VJbXBsX2gKIAogI2luY2x1ZGUgIldlYkluZGV4ZWREYXRhYmFzZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJbmRleGVk
RGF0YWJhc2U7IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkluZGV4ZWREYXRh
YmFzZUltcGwgOiBwdWJsaWMgV2ViSW5kZXhlZERhdGFiYXNlIHsKIHB1YmxpYzoKKyAgICBXZWJJ
bmRleGVkRGF0YWJhc2VJbXBsKCk7CiAgICAgdmlydHVhbCB+V2ViSW5kZXhlZERhdGFiYXNlSW1w
bCgpOwogCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxs
YmFja3MqLCBjb25zdCBXZWJTdHJpbmcmIG9yaWdpbiwgV2ViRnJhbWUqLCBpbnQmIGV4Y2VwdGlv
bkNvZGUpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29u
c3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURCQ2Fs
bGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGludCYgZXhjZXB0
aW9uQ29kZSk7CisKK3ByaXZhdGU6CisgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SW5kZXhlZERh
dGFiYXNlPiBtX2luZGV4ZWREYXRhYmFzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eU9yaWdpbi5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcAppbmRleCBiYzM2YmU3NjJl
Zjc1MmY2OTE3MTAxMDI1MjZjM2QxOTY4NzZkN2MzLi5kNTk4MWQxMzE1MGQ1ZjlmMWI5ZGVmN2Y5
MGY4ZmRjNDE3NmUxMWYxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3Vy
aXR5T3JpZ2luLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2lu
LmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIFdlYlN0cmluZyBXZWJTZWN1cml0eU9yaWdpbjo6dG9T
dHJpbmcoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPnRvU3RyaW5nKCk7CiB9CiAKLVdl
YlN0cmluZyBXZWJTZWN1cml0eU9yaWdpbjo6ZGF0YWJhc2VJZGVudGlmaWVyKCkKK1dlYlN0cmlu
ZyBXZWJTZWN1cml0eU9yaWdpbjo6ZGF0YWJhc2VJZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICBB
U1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5kYXRhYmFzZUlkZW50aWZp
ZXIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56360</attachid>
            <date>2010-05-18 04:28:31 -0700</date>
            <delta_ts>2010-05-18 08:04:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39216-20100518122829.patch</filename>
            <type>text/plain</type>
            <size>30245</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmE4NzRlZGQyYjYyZjZlNDJkMWU4MTRlNTI1NzRhODFmYzUzZjQ0NC4uOTdhNWIxNzNjYzNhOGJm
Y2IzYWUyYjIwNWEwZTc1YWM4YTBjNGM5NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0xNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29rIENocm9taXVtJ3MgV2ViSW5kZXhlZERhdGFi
YXNlSW1wbCB1cCB0byBJbmRleGVkRGF0YWJhc2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTIxNgorCisgICAgICAgIEFsbCBvZiB0aGVzZSBm
dW5jdGlvbnMgYXJlIHN1cHBvc2VkIHRvIGJlIHBhc3NpbmcgYXJvdW5kIHRoZSBvcmlnaW4gc2lu
Y2UKKyAgICAgICAgdGhlIGNhbGxlciBvZiBJbmRleGVkRGF0YWJhc2VJbXBsIG1pZ2h0IG5vdCBi
ZSBhYmxlIHRvIHBhc3MgaW4gYSBGcmFtZSoKKyAgICAgICAgb2JqZWN0LiAgSSB0cmllZCB0byBm
aXggdGhpcyBpbiBhbiBlYWxpZXIgcGF0Y2gsIGJ1dCBvYnZpb3VzbHkgbWVzc2VkIHVwLgorCisg
ICAgICAgIEFsc28gY2hhbmdlIHBhc3Npbmcgc2VjdXJpdHkgb3JpZ2luIHN0cmluZ3MgdG8gcGFz
c2luZyBTZWN1cml0eU9yaWdpbgorICAgICAgICBvYmplY3RzLgorCisgICAgICAgIE5vIGJlaGF2
aW9yIGNoYW5nZSBiZWNhdXNlIENocm9taXVtIHdhcyBlbXVsYXRpbmcgdGhlIG9sZCBiZWhhdmlv
ciBiZWZvcmUKKyAgICAgICAgZXZlbiB0aG91Z2ggdGhlIGNvZGUgd2Fzbid0IHByb3Blcmx5IGhv
b2tlZCB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmg6CisgICAgICAg
ICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKToKKwogMjAx
MC0wNS0xNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgRG8gbm90
IGluY2x1ZGUgdGhlIGluZGV4ZWQgZGF0YWJhc2UgaGVhZGVycyBpZiB0aGUgZmVhdHVyZSBpcyBu
b3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaCBiL1dlYkNv
cmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaAppbmRleCAxZTQzNzgxN2EzNzk2MjNiNTJiNGU1
NDcyN2EyNjQ5NWI4YzQwMzBkLi42YmM5YjZlOTJiM2Q2MGU2NWExYTVmZTM0ZGI4Y2MwYmVkZWUw
YzMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlLmgKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiBjbGFzcyBJREJEYXRhYmFzZTsKK2NsYXNz
IFNlY3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJbmRleGVkRGF0
YWJhc2VSZXF1ZXN0IChhc3luYykgYW5kIEluZGV4ZWREYXRhYmFzZVN5bmMgKHN5bmMpLgogLy8g
VGhpcyBpcyBpbXBsZW1lbnRlZCBieSBJbmRleGVkRGF0YWJhc2VJbXBsIGFuZCBvcHRpb25hbGx5
IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKQEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVh
bCB+SW5kZXhlZERhdGFiYXNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJh
c2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJikg
PSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZUltcGwuY3BwCmluZGV4IGIzMDUxYzkyNjNiZjMxNGFiNzE2OTU5YjBmNjYyYWU4MGVj
YWI1NzcuLjI4YzQ3N2Q5ZmRkZWZmYzIzMDc3NjI4ZmYyNzNiNDk1NTI3OWM4ZjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgSW5kZXhl
ZERhdGFiYXNlSW1wbDo6fkluZGV4ZWREYXRhYmFzZUltcGwoKQogewogfQogCi12b2lkIEluZGV4
ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBJbmRleGVkRGF0YWJhc2VJ
bXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Ym9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYpCiB7CiAg
ICAgLy8gRklYTUU6IFdyaXRlIGZvciByZWFsei4KICAgICBVTlVTRURfUEFSQU0obmFtZSk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuaAppbmRleCA3M2VkZjZiMTMyMDljOTVkZWU1
MTlhODliNzgzZmY2NTQ3MWQ3OWUxLi44ZDczNjk0NmE2M2VmYzA2ODVmOTkwZDlhNjk4OGY0MmQ1
YWI3YzgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5o
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmgKQEAgLTM5LDcgKzM5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZUltcGw+
IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWREYXRhYmFzZUltcGwoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBGcmFt
ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1l
KiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2YXRlOgogICAgIEluZGV4ZWREYXRhYmFzZUltcGwo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRleCAyMjEw
YThkMGU2NzRhZWE2ZmY5ZTg4YmViNWNmNDQwMjVkM2Q2ODZkLi5iNTQ5YmQ2OGY4OGNkZGQ4NmE0
ZmRiZmVlMTgzNDllN2JlOGI0Mzk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
Ojp+SW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IEluZGV4
ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBleGNlcHRp
b24pCiB7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVh
dGUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgbV90aGlzKTsKLSAgICBtX2luZGV4ZWREYXRhYmFzZS0+
b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIHJlcXVlc3QsIG1fZnJhbWUs
IGV4Y2VwdGlvbik7CisgICAgbV9pbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRp
b24sIG1vZGlmeURhdGFiYXNlLCByZXF1ZXN0LCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCBtX2ZyYW1lLCBleGNlcHRpb24pOwogICAgIHJldHVybiByZXF1ZXN0OwogfQog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA2ZWZjOGU1YTlkNDg0ZDc4NjBhNGE4NTNjN2E4NjMyYWQ5ZGZlNDYz
Li5kZDg5ZWMxM2M4ZmI5NjRjZjc0YjNiMzJjNDAyYWZjNTg0NTMxOTMxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NiBAQAorMjAxMC0wNS0xNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBIb29rIENocm9taXVtJ3MgV2ViSW5kZXhlZERhdGFiYXNlSW1wbCB1cCB0byBJbmRleGVkRGF0
YWJhc2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTIxNgorCisgICAgICAgIFdlYl9fX19JbXBsIGlzIGZvciByZS1lbnRlcmluZyB0aGUgV2Vi
S2l0IGxheWVyIGZyb20gdGhlIGJyb3dzZXIgbGF5ZXIuCisgICAgICAgIFRodXMgdGhlIHByZXZp
b3VzIElEQkNhbGxiYWNrc1Byb3h5IHdhcyBtaXMtbmFtZWQgKGFuZCBzaG91bGQgaGF2ZSBiZWVu
CisgICAgICAgIFdlYklEQkNhbGxiYWNrc0ltcGwpLiAgVGhpcyBwYXRjaCByZW5hbWVzIGl0IGFu
ZCB0aGVuIGltcGxlbWVudHMgdGhlCisgICAgICAgIHByb3BlciBwcm94eSAod2hpY2ggaXMgZm9y
IGdvaW5nIGZyb20gV2ViQ29yZSB0byBXZWJLaXQpLgorCisgICAgICAgIEFsc28gY2hhbmdlIHVz
aW5nIHNlY3VyaXR5IG9yaWdpbiBzdHJpbmdzIHRvIHVzaW5nIFdlYlNlY3VyaXR5T3JpZ2luCisg
ICAgICAgIG9iamVjdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGltcGxlbWVudHMgdGhl
IGdsdWUgYmV0d2VlbiBXZWJJbmRleGVkRGF0YWJhc2VJbXBsIGFuZAorICAgICAgICBJbmRleGVk
RGF0YWJhc2VJbXBsLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvSURC
Q2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6SURCQ2FsbGJh
Y2tzUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAg
ICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL0luZGV4ZWREYXRh
YmFzZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVByb3h5Ojpv
cGVuKToKKyAgICAgICAgKiBzcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBz
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
SURCQ2FsbGJhY2tzSW1wbDo6V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJJREJDYWxsYmFja3NJbXBsOjp+V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJJREJDYWxsYmFja3NJbXBsOjpvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRh
dGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6fldlYklE
QkRhdGFiYXNlSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBzcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluZGV4ZWREYXRhYmFzZUltcGw6OldlYkluZGV4ZWREYXRhYmFzZUltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKToKKyAgICAgICAg
KiBzcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5oOgorCiAyMDEwLTA1LTE2ICBNaWtlIEJlbHNo
ZSAgPG1iZWxzaGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOGFjNWE5MDdmNzFlNDlmMmMwOTViNzI4NzA3NThh
MmZiNDg1NzY4Ni4uMmE4N2Q5ZTMyYzBlZTBmNWM2YjIwYmI0ZDUxZmQ0MWU5MWQwNzY5YiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKQEAgLTM0Myw3ICszNDMsMTEgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dl
YkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJIaXN0b3J5SXRlbS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUEJvZHkuY3Bw
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwJywKKyAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJEYXRhYmFzZUVycm9yLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlQ0cuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViSW1hZ2VTa2lhLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkluZGV4ZWREYXRhYmFzZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbmRleGVkRGF0
YWJhc2UuaAppbmRleCA4ODYxNDU2YmVlNDM4YTg0MmQ2NWRlNDQ0NTE2NWMyMDcwZTdkMzJhLi42
MWI3N2EwNTFhNTZiYmRmMjVkYTU0ZDdlYWZmMmEwZTBiOTYxNDNmIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4ZWREYXRhYmFzZS5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmgKQEAgLTMxLDEyICszMSwxNSBAQAogCiAj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViSURCRGF0YWJhc2U7
CiBjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogLy8gVGhlIGVu
dHJ5IHBvaW50IGludG8gdGhlIEluZGV4ZWREYXRhYmFzZSBBUEkuICBUaGVzZSBjbGFzc2VzIG1h
dGNoIHRoZWlyIF9fX19fUmVxdWVzdCBhbmQKIC8vIF9fX19fU3luYyBjb3VudGVycGFydHMgaW4g
dGhlIHNwZWMsIGJ1dCBvcGVyYXRlIG9ubHkgaW4gYW4gYXN5bmMgbWFubmVyLgpAQCAtNDgsNyAr
NTEsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYkluZGV4ZWREYXRhYmFzZSgpIHsgfQog
CiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBvcGVuIGlnbm9yZXMgdGhlIFdl
YkZyYW1lKiBwYXJhbWV0ZXIuCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNl
LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTdHJpbmcmIG9yaWdpbiwgV2ViRnJhbWUqLCBp
bnQmIGV4Y2VwdGlvbkNvZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0
YWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3Ms
IGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiB3ZWJGcmFtZSwgaW50
JiBleGNlcHRpb25Db2RlKQorICAgIHsKKyAgICAgICAgb3BlbihuYW1lLCBkZXNjcmlwdGlvbiwg
bW9kaWZ5RGF0YWJhc2UsIGNhbGxiYWNrcywgb3JpZ2luLnRvU3RyaW5nKCksIHdlYkZyYW1lLCBl
eGNlcHRpb25Db2RlKTsKKyAgICB9CisgICAgLy8gRklYTUU6IERlbGV0ZSBzb29uLiAgQ29tcGF0
YWJpbGl0eSBoYWNrLgorICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwKKyAg
ICAgICAgICAgICAgICAgICAgICBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2Vi
U3RyaW5nJiBvcmlnaW4sIFdlYkZyYW1lKiB3ZWJGcmFtZSwgaW50JiBleGNlcHRpb25Db2RlKQor
ICAgIHsKKyAgICAgICAgb3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgbW9kaWZ5RGF0YWJhc2UsIGNh
bGxiYWNrcywgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luKSwgd2Vi
RnJhbWUsIGV4Y2VwdGlvbkNvZGUpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5o
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5oCmluZGV4IDc2MDEy
YTExZmM1MTQ1NzEwNjk1NDgzNTk4ZGFiNTYyYzJjYWUzOTguLmY1NjM4ZmIxOWVkMmI1YTkxMTRi
YzhjMjJiZTg4MjgzMTEzM2RmM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VjdXJpdHlPcmlnaW4uaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3Vy
aXR5T3JpZ2luLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJucyBh
IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIFdlYlNlY3VyaXR5T3JpZ2luIHRoYXQgY2Fu
CiAgICAgLy8gYmUgdXNlZCBhcyBhIGZpbGUuICBTaG91bGQgYmUgdXNlZCBpbiBzdG9yYWdlIEFQ
SXMgb25seS4KLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKTsK
KyAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKSBjb25zdDsKIAog
I2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYlNlY3VyaXR5T3JpZ2luKGNvbnN0IFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggMDM0NmI1OGRhNzM2ZWVmZDRkNTdjMWU1
NjhlYmE0OGZiZjAzM2IwMy4uMmJkZjE0MGU1ZTY0ZGM5ZTI0ZTgzNDBjZWExZWU0ZDk3YTY5ZjMy
MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTI5LDEx
ICsyOSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1By
b3h5LmgiCiAKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiV2Vi
SURCRGF0YWJhc2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2lu
Y2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCkBAIC00MSw3ICs0MCwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUlEQkNhbGxiYWNrc1Byb3h5OjpJREJDYWxsYmFja3NQ
cm94eShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorUGFzc1JlZlB0cjxJREJD
YWxsYmFja3NQcm94eT4gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYktp
dDo6V2ViSURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgcmV0dXJuIG5ldyBJREJDYWxs
YmFja3NQcm94eShjYWxsYmFja3MpOworfQorCitJREJDYWxsYmFja3NQcm94eTo6SURCQ2FsbGJh
Y2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQog
ICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogewogfQpAQCAtNTAsMjEgKzU0LDIxIEBAIElE
QkNhbGxiYWNrc1Byb3h5Ojp+SURCQ2FsbGJhY2tzUHJveHkoKQogewogfQogCi12b2lkIElEQkNh
bGxiYWNrc1Byb3h5OjpvbkVycm9yKGNvbnN0IFdlYktpdDo6V2ViSURCRGF0YWJhc2VFcnJvciYg
ZXJyb3IpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4gaWRiRGF0YWJhc2VFcnJvcikKIHsKLSAgICBtX2NhbGxiYWNrcy0+b25FcnJv
cihlcnJvcik7CisgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZUVycm9yKGlkYkRhdGFiYXNlRXJyb3IpKTsKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQog
Ci12b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZSogd2ViS2l0SW5zdGFuY2UpCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9u
U3VjY2VzcyhJREJEYXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKKyAgICBt
X2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbChpZGJE
YXRhYmFzZSkpOwogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKLXZvaWQgSURCQ2FsbGJh
Y2tzUHJveHk6Om9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKQordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNj
ZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFs
dWUpCiB7Ci0gICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUp
OworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSk7CiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDY5MmIwYTNj
MzE3MTg4NmM0NjkwZjY0NWRlZjk3ZjVkNDJkMzNjMGEuLjVkNGJjMGIxN2Y0NjA3MjVjMDI1Y2Zm
ZDhmNjRhMjA1YzU5YjU3MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmgKQEAgLTI5LDMzICsyOSwzNSBAQAogI2lmbmRlZiBJREJDYWxsYmFja3NQcm94eV9oCiAjZGVm
aW5lIElEQkNhbGxiYWNrc1Byb3h5X2gKIAotI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgor
I2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViSURCRGF0YWJhc2U7Ci1jbGFzcyBXZWJJREJE
YXRhYmFzZUVycm9yOwotY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworY2xhc3MgV2Vi
SURCQ2FsbGJhY2tzOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkNhbGxi
YWNrczsKK2NsYXNzIElEQkRhdGFiYXNlRXJyb3I7CitjbGFzcyBJREJEYXRhYmFzZTsKK2NsYXNz
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAotY2xhc3MgSURCQ2FsbGJhY2tzUHJveHkgOiBwdWJs
aWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgeworY2xhc3MgSURCQ2FsbGJhY2tzUHJveHkgOiBw
dWJsaWMgSURCQ2FsbGJhY2tzIHsKIHB1YmxpYzoKLSAgICBJREJDYWxsYmFja3NQcm94eShQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3NQcm94eT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDYWxsYmFj
a3M+KTsKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94eSgpOwogCi0gICAgdmlydHVhbCB2
b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcik7Ci0g
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJ
bnN0YW5jZSk7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKKyAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAKIHByaXZh
dGU6Ci0gICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CisgICAgSURCQ2FsbGJh
Y2tzUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkNhbGxiYWNrcz4pOworCisgICAgT3du
UHRyPFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKIH07CiAKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcAppbmRleCBhNGJkMGIxMjRk
YWY3ODA1MzY2YmZjMDAzOWU5Zjk4OTJiMDlmOWVjLi5hZWQ3YzEzNWI3NTc3MDYyY2RhNmJhYmYx
ZTNkYmI2MjUzMWJhYWFmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWRE
YXRhYmFzZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFz
ZVByb3h5LmNwcApAQCAtMjksMTMgKzI5LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5kZXhlZERhdGFiYXNlUHJveHkuaCIKIAotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5oIgogI2luY2x1
ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZVByb3h5LmgiCi0j
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNp
bmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSW5kZXhl
ZERhdGFiYXNlLmgiCkBAIC02MCwxMiArNTcsMTIgQEAgSW5kZXhlZERhdGFiYXNlUHJveHk6On5J
bmRleGVkRGF0YWJhc2VQcm94eSgpCiB7CiB9CiAKLXZvaWQgSW5kZXhlZERhdGFiYXNlUHJveHk6
Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29s
IG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBGcmFt
ZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBJbmRleGVkRGF0YWJhc2VQcm94eTo6
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wg
bW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiwgRnJhbWUqIGZyYW1lLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAg
cmV0dXJuOwogICAgIFdlYktpdDo6V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFt
ZUltcGw6OmZyb21GcmFtZShmcmFtZSk7Ci0gICAgbV93ZWJJbmRleGVkRGF0YWJhc2UtPm9wZW4o
bmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBuZXcgSURCQ2FsbGJhY2tzUHJveHko
Y2FsbGJhY2tzKSwgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5n
KCksIHdlYkZyYW1lLCBlYyk7CisgICAgbV93ZWJJbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwg
ZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHku
aCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaAppbmRleCAwYzg2
NzRhMzUzODIyZWE2ZjgwZWU4M2UxZDE4MGUwMzQxNmI0YjQ2Li5lMzcyZTlhZTM4YTU0MTk0Mjg2
OGY2ZjEyYmZmYWUzZDcxZTE4MTEwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lu
ZGV4ZWREYXRhYmFzZVByb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0
YWJhc2VQcm94eS5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbmRleGVkRGF0YWJhc2U+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkluZGV4ZWREYXRh
YmFzZVByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBi
b29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAg
ICBJbmRleGVkRGF0YWJhc2VQcm94eSgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY4OGNiNmY2ZDZmMTlhNzIwYTliYjE0ZjcwNDA5
NDJlNmY3YmUyNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCisKKyNpbmNsdWRlICJJREJDYWxsYmFj
a3MuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VQcm94eS5oIgorI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklE
QkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgorI2luY2x1ZGUg
IldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViSURCQ2FsbGJhY2tzSW1wbDo6V2ViSURC
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgIDog
bV9jYWxsYmFja3MoY2FsbGJhY2tzKQoreworfQorCitXZWJJREJDYWxsYmFja3NJbXBsOjp+V2Vi
SURCQ2FsbGJhY2tzSW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25F
cnJvcihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKQoreworICAgIG1f
Y2FsbGJhY2tzLT5vbkVycm9yKGVycm9yKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQor
Cit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFi
YXNlKiB3ZWJLaXRJbnN0YW5jZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRh
dGFiYXNlUHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOworICAgIG1fY2FsbGJhY2tzLmNs
ZWFyKCk7Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdl
YktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCit7
CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUpOworICAg
IG1fY2FsbGJhY2tzLmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MzcxZDQ1NzE2YzM3ZjRkNWM1N2ZiZWM5
MGYzYTUxMzM0YjY2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJDYWxs
YmFja3NJbXBsX2gKKyNkZWZpbmUgV2ViSURCQ2FsbGJhY2tzSW1wbF9oCisKKyNpbmNsdWRlICJX
ZWJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK2NsYXNzIFdlYklEQkRhdGFiYXNlOworY2xhc3MgV2ViSURCRGF0YWJhc2VF
cnJvcjsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBJREJDYWxsYmFja3M7CisKK2NsYXNzIFdlYklEQkNhbGxiYWNrc0lt
cGwgOiBwdWJsaWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgeworcHVibGljOgorICAgIFdlYklE
QkNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyk7CisgICAg
dmlydHVhbCB+V2ViSURCQ2FsbGJhY2tzSW1wbCgpOworCisgICAgdmlydHVhbCB2b2lkIG9uRXJy
b3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcik7CisgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7
CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKKworcHJpdmF0ZToKKyAgICBSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKK307CisKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIFdlYklEQkNhbGxiYWNrc0ltcGxfaApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZjkyOTM3
NmVmN2JhNjU5NDEyYTRmY2ZmYjA5YjhjZmU3ZDA2ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKKwor
I2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJJ
REJEYXRhYmFzZUltcGw6OldlYklEQkRhdGFiYXNlSW1wbChQYXNzUmVmUHRyPElEQkRhdGFiYXNl
PiBpZGJEYXRhYmFzZSkKK3sKK30KKworV2ViSURCRGF0YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJh
c2VJbXBsKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc1OGY4NGE3MTZhYjg2ZTI4YWRmYWJjMWI2ZjQxOTg4MWMyZWZi
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkRhdGFiYXNlSW1wbF9oCisj
ZGVmaW5lIFdlYklEQkRhdGFiYXNlSW1wbF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkRh
dGFiYXNlOyB9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBTZWUgY29tbWVudCBpbiBXZWJJ
bmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgor
Y2xhc3MgV2ViSURCRGF0YWJhc2VJbXBsIDogcHVibGljIFdlYklEQkRhdGFiYXNlIHsKK3B1Ymxp
YzoKKyAgICBXZWJJREJEYXRhYmFzZUltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlPiBpZGJEYXRhYmFzZSk7CisgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VJbXBsKCk7
CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorCitwcml2YXRlOgorICAgIFdURjo6UmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlPiBtX2lkYkRhdGFiYXNlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJEYXRhYmFzZUltcGxfaApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKaW5kZXggNDgyMGNmYmY2YmFi
ZjUyZmQ3OTczYTMxMWQ4YWVmM2VlODc0ZmFhMi4uYTgyYTczZjY2YTBhZjBiMGZlMmFkM2U1ZTEz
YmYxNDExYmQ5YmI5MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVk
RGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRh
YmFzZUltcGwuY3BwCkBAIC0zMSwxMSArMzEsMTYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJJbmRleGVkRGF0YWJhc2VJbXBsLmgiCiAKKyNpbmNsdWRlICJJREJDYWxsYmFj
a3NQcm94eS5oIgorI2luY2x1ZGUgIkluZGV4ZWREYXRhYmFzZUltcGwuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJJbmRleGVk
RGF0YWJhc2UqIFdlYkluZGV4ZWREYXRhYmFzZTo6Y3JlYXRlKCkKQEAgLTQzLDE1ICs0OCwxOSBA
QCBXZWJJbmRleGVkRGF0YWJhc2UqIFdlYkluZGV4ZWREYXRhYmFzZTo6Y3JlYXRlKCkKICAgICBy
ZXR1cm4gbmV3IFdlYkluZGV4ZWREYXRhYmFzZUltcGwoKTsKIH0KIAorV2ViSW5kZXhlZERhdGFi
YXNlSW1wbDo6V2ViSW5kZXhlZERhdGFiYXNlSW1wbCgpCisgICAgOiBtX2luZGV4ZWREYXRhYmFz
ZShXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VJbXBsOjpjcmVhdGUoKSkKK3sKK30KKwogV2ViSW5k
ZXhlZERhdGFiYXNlSW1wbDo6fldlYkluZGV4ZWREYXRhYmFzZUltcGwoKQogewogfQogCi12b2lk
IFdlYkluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxs
YmFja3MqIGNhbGxiYWNrc1B0ciwgY29uc3QgV2ViU3RyaW5nJiBvcmlnaW4sIFdlYkZyYW1lKiwg
aW50JiBleGNlcHRpb25Db2RlKQordm9pZCBXZWJJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBt
b2RpZnlEYXRhYmFzZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKQogewotICAg
IE93blB0cjxXZWJJREJDYWxsYmFja3M+IGNhbGxiYWNrcyhjYWxsYmFja3NQdHIpOwotICAgIGNh
bGxiYWNrcy0+b25FcnJvcihXZWJJREJEYXRhYmFzZUVycm9yKDAsICJOb3QgaW1wbGVtZW50ZWQi
KSk7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgcmVhbHouCisgICAgbV9pbmRleGVkRGF0
YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIG9yaWdpbiwgMCwgZXhjZXB0aW9uQ29kZSk7Cisg
ICAgCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJbmRleGVkRGF0YWJhc2VJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkluZGV4ZWREYXRhYmFzZUltcGwuaAppbmRleCAwNDAyZWRlYzNiZDg2MWVlNTQ1ZDJhZjUxNGFm
MzE4OGM2YmM3Y2Q0Li41N2QyMGE2MzhlMDM0MWVmMmJlYThjY2NiYTE4ZjQ1NDRlMzdjYjRhIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaApAQCAtMzAs
MTQgKzMwLDIxIEBACiAjZGVmaW5lIFdlYkluZGV4ZWREYXRhYmFzZUltcGxfaAogCiAjaW5jbHVk
ZSAiV2ViSW5kZXhlZERhdGFiYXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7IGNsYXNzIEluZGV4ZWREYXRhYmFzZTsgfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViSW5kZXhlZERhdGFiYXNlSW1wbCA6IHB1YmxpYyBXZWJJbmRleGVk
RGF0YWJhc2UgewogcHVibGljOgorICAgIFdlYkluZGV4ZWREYXRhYmFzZUltcGwoKTsKICAgICB2
aXJ0dWFsIH5XZWJJbmRleGVkRGF0YWJhc2VJbXBsKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJv
b2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlN0cmluZyYgb3Jp
Z2luLCBXZWJGcmFtZSosIGludCYgZXhjZXB0aW9uQ29kZSk7CisgICAgdmlydHVhbCB2b2lkIG9w
ZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBi
b29sIG1vZGlmeURhdGFiYXNlLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9y
aWdpbiYsIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKTsKKworcHJpdmF0ZToKKyAgICBX
VEY6OlJlZlB0cjxXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2U+IG1faW5kZXhlZERhdGFiYXNlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNlY3VyaXR5T3JpZ2luLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJp
dHlPcmlnaW4uY3BwCmluZGV4IGJjMzZiZTc2MmVmNzUyZjY5MTcxMDEwMjUyNmMzZDE5Njg3NmQ3
YzMuLmQ1OTgxZDEzMTUwZDVmOWYxYjlkZWY3ZjkwZjhmZGM0MTc2ZTExZjEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgV2Vi
U3RyaW5nIFdlYlNlY3VyaXR5T3JpZ2luOjp0b1N0cmluZygpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+dG9TdHJpbmcoKTsKIH0KIAotV2ViU3RyaW5nIFdlYlNlY3VyaXR5T3JpZ2luOjpk
YXRhYmFzZUlkZW50aWZpZXIoKQorV2ViU3RyaW5nIFdlYlNlY3VyaXR5T3JpZ2luOjpkYXRhYmFz
ZUlkZW50aWZpZXIoKSBjb25zdAogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwogICAgIHJldHVy
biBtX3ByaXZhdGUtPmRhdGFiYXNlSWRlbnRpZmllcigpOwo=
</data>
<flag name="review"
          id="40759"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>