<?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>49259</bug_id>
          
          <creation_ts>2010-11-09 09:59:00 -0800</creation_ts>
          <short_desc>Rename GeolocationControllerClient to GeolocationClient</short_desc>
          <delta_ts>2010-11-12 05:52:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>49258</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="John Knottenbelt">jknotten</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>306843</commentid>
    <comment_count>0</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-09 09:59:00 -0800</bug_when>
    <thetext>Rename WebCore::GeolocationControllerClient to WebCore::GeolocationClient to be more consistent with other Controller / Client pairs:
 - ContextMenuController / ContextMenuClient
 - DragController / DragClient
 - DeviceOrientationController / DeviceOrientationClient
 - DeviceMotionController / DeviceMotionClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307255</commentid>
    <comment_count>1</comment_count>
      <attachid>73474</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-10 01:54:16 -0800</bug_when>
    <thetext>Created attachment 73474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307821</commentid>
    <comment_count>2</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-11 04:11:43 -0800</bug_when>
    <thetext>Let&apos;s get this resolved before we add the client mock in Bug 49258.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307823</commentid>
    <comment_count>3</comment_count>
      <attachid>73474</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-11 04:19:35 -0800</bug_when>
    <thetext>Comment on attachment 73474
Patch

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

Sounds good to me. InspectorController/InspectorClient also follows this pattern. The only other example I can see of the other style is BackForwardController/BackForwardControllerClient.

This patch appears to be missing the change to GeolocationClient.h/cpp?

Also, it looks like you might need to rebase for win before landing.

&gt; WebKit/mac/WebView/WebView.mm:710
&gt; +    pageClients.geolocationControllerClient = new WebGeolocationClient(self);

Can you fix up PageClients to reflect the new name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307905</commentid>
    <comment_count>4</comment_count>
      <attachid>73609</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-11 07:35:13 -0800</bug_when>
    <thetext>Created attachment 73609
Rename GeolocationControllerClient -&gt; GeolocationClient

Rename page clients as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307936</commentid>
    <comment_count>5</comment_count>
      <attachid>73609</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-11 08:18:54 -0800</bug_when>
    <thetext>Comment on attachment 73609
Rename GeolocationControllerClient -&gt; GeolocationClient

Looks good but git has lost the SVN renaming history. I&apos;ll take the patch and fix it up with my SVN checkout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307939</commentid>
    <comment_count>6</comment_count>
      <attachid>73616</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-11 08:23:02 -0800</bug_when>
    <thetext>Created attachment 73616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307944</commentid>
    <comment_count>7</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-11 08:31:11 -0800</bug_when>
    <thetext>LGTM. Patch is the same as mine, but with proper svn rename tracking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308145</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-11 14:19:42 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 73616:

http/tests/appcache/top-frame-3.html

Please file bugs against the tests.  These tests were authored by ap@webkit.org and dimich@chromium.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308148</commentid>
    <comment_count>9</comment_count>
      <attachid>73616</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-11 14:22:56 -0800</bug_when>
    <thetext>Comment on attachment 73616
Patch

Rejecting patch 73616 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--ignore-builders&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 73616]&quot; exit_code: 2
Last 500 characters of output:
Kit/mac/WebView/WebView.mm
	M	WebKit/win/ChangeLog
	M	WebKit/win/WebKit.vcproj/WebKit.vcproj
	M	WebKit/win/WebView.cpp
A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following ChangeLog files contain OOPS:

        trunk/WebCore/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.
 at /usr/local/git/libexec/git-core/git-svn line 558


Failed to run &quot;[u&apos;git&apos;, u&apos;svn&apos;, u&apos;dcommit&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/5698002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308470</commentid>
    <comment_count>10</comment_count>
      <attachid>73726</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-12 03:14:04 -0800</bug_when>
    <thetext>Created attachment 73726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308471</commentid>
    <comment_count>11</comment_count>
      <attachid>73726</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-12 03:14:35 -0800</bug_when>
    <thetext>Comment on attachment 73726
Patch

Fixed &apos;OOPS&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308481</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 04:02:16 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 73726:

fast/workers/storage/use-same-database-in-page-and-workers.html

Please file bugs against the tests.  These tests were authored by dumi@chromium.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308482</commentid>
    <comment_count>13</comment_count>
      <attachid>73726</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 04:04:47 -0800</bug_when>
    <thetext>Comment on attachment 73726
Patch

Clearing flags on attachment: 73726

Committed r71903: &lt;http://trac.webkit.org/changeset/71903&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308483</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 04:04:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308500</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-12 05:52:25 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/71903 might have broken GTK Linux 32-bit Release
The following tests are not passing:
http/tests/xmlhttprequest/xmlhttprequest-sync-vs-async-assertion-failure.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73474</attachid>
            <date>2010-11-10 01:54:16 -0800</date>
            <delta_ts>2010-11-11 07:35:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49259-20101110095414.patch</filename>
            <type>text/plain</type>
            <size>25338</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2YyN2E5YzNjOTMzNmJlZWRjZGM5OTMzOTFiOTZkMzRhZjM1Y2EwOS4uOWE5ZTM4NGQwNjY1Mjg2
ZGNmODUwN2M1ZTI0MjU3NTI5MjA3Mjg2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMS0xMCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50IHRvIEdlb2xvY2F0aW9uQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNTkKKworICAgICAgICBObyBuZXcgdGVzdHMuIChP
T1BTISkKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmguCisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbkNsaWVudDo6fkdlb2xvY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKiBwYWdl
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29udHJvbGxlcik6CisgICAgICAgICogcGFnZS9HZW9s
b2NhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxMC0xMS0x
MCAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZGluZyBhIG1hbnVhbCB0ZXN0IHdoaWNoIEkgZm9yZ290IHRvIGFkZCBpbiByNzE2MTguCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCAwNDg3ODg3MjBlMjA1MTVkMmMwZWQzMDhiN2FiMDMyNjViNGU1YTNiLi5mOGNiZmZkNmEx
YWZiMTc4YjhmMGU3ZjZiNzU2MDhlYWExYmZlNzdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIxMDMsMTUgKzIxMDMs
MTUgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggXAog
CVdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3Lmgg
XAotCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBcCi0JV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgXAotCVdlYkNvcmUvcGFnZS9HZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcCBcCi0JV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uRXJyb3IuaCBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmggXAorCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNsaWVudC5oIFwKKwlXZWJDb3JlL3BhZ2Uv
R2VvbG9jYXRpb25FcnJvci5oIFwKKwlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVy
LmNwcCBcCisJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oIFwKKwlXZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbi5oIFwKIAlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlLmNwcCBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNo
ZS5oIFwKLQlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbi5oIFwKIAlXZWJDb3JlL3Bh
Z2UvR2VvcG9zaXRpb24uaCBcCiAJV2ViQ29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlX
ZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjc5ZGJjZGJkMjVmZGNmZDA2MmVm
ZWY5YWRjMjE0YTBiYzg1ZTliNy4uYjVmNzFmNjhmZGE0OWE3YjA5MTkxNGUxZTJkMjNhOGMwYmVm
ZTlkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTIyNDAsOSArMjI0MCw5IEBACiAgICAgICAgICAgICAncGFnZS9GcmFtZVZp
ZXcuaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbi5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvR2VvbG9jYXRpb24uaCcsCisgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbkNsaWVu
dC5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAnLAogICAg
ICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgnLAotICAgICAgICAgICAgJ3Bh
Z2UvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvR2Vv
bG9jYXRpb25FcnJvci5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uUG9zaXRpb24u
aCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpp
bmRleCAwYzg1MmUxZDBmNjk0YmY4MWFlMGE3YzMyYjdjZmJkNmQ2MzExNWIzLi43NmYzMjc1Y2Ri
NjkzMDY2YzhjMGVlYmVlMWQzZTRmZDZiM2FjMmYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKKysrIGIvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xNjgsOCArMTY4LDggQEAg
X19aTjdXZWJDb3JlMTZJbnNwZWN0b3JCYWNrZW5kQzFFUE5TXzE5SW5zcGVjdG9yQ29udHJvbGxl
ckUKIF9fWk43V2ViQ29yZTE2SW5zcGVjdG9yQmFja2VuZEMyRVBOU18xOUluc3BlY3RvckNvbnRy
b2xsZXJFCiBfX1pON1dlYkNvcmUxOEluamVjdGVkU2NyaXB0SG9zdEMxRVBOU18xOUluc3BlY3Rv
ckNvbnRyb2xsZXJFCiBfX1pON1dlYkNvcmUxOEluamVjdGVkU2NyaXB0SG9zdEMyRVBOU18xOUlu
c3BlY3RvckNvbnRyb2xsZXJFCi1fX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlckMx
RVBOU180UGFnZUVQTlNfMjdHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRFCi1fX1pON1dlYkNv
cmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlckMyRVBOU180UGFnZUVQTlNfMjdHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnRFCitfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlckMxRVBO
U180UGFnZUVQTlNfMjdHZW9sb2NhdGlvbkNsaWVudEUKK19fWk43V2ViQ29yZTIxR2VvbG9jYXRp
b25Db250cm9sbGVyQzJFUE5TXzRQYWdlRVBOU18yN0dlb2xvY2F0aW9uQ2xpZW50RQogX19aTjdX
ZWJDb3JlOFNldHRpbmdzQzFFUE5TXzRQYWdlRQogX19aTjdXZWJDb3JlOFNldHRpbmdzQzJFUE5T
XzRQYWdlRQogX19aTjdXZWJDb3JlMTVQcm9ncmVzc1RyYWNrZXJDMUV2CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwMTU3YWQ2N2NkMjFhNmQxZjgzNTVjMjEzMzgwMmRm
MWJmNGFhYWNmLi41ZWRiZDM2NDMzNzA0ODlkNjk3ODkxZWYyOWQ0YjMzNTIwMGIxNTgzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzMzk2LDE4ICsyMzM5NiwxOCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxw
YWdlXEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFn
ZVxHZW9sb2NhdGlvbkNsaWVudC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCINCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2Vv
bG9jYXRpb25Db250cm9sbGVyLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQotCQkJPEZpbGUNCisJ
CTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHZW9sb2NhdGlvbkVycm9yLmgiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkNmFjZDllZDE0NWQ3OWJhYTY2OTE0NDhmOGIyNWYwNjQzNmI0Y2ViLi4xYWY2
YzBiMDgyYTRkMjc5OTZhOGM3ZGEwNGFjZWNjZWY0YmYxMzBhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDgyMCw5ICs0ODIwLDkgQEAKIAkJQkM1M0RB
QzIxMTQzMkVFRTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUzREFDMTExNDMyRUVFMDAwRDgxN0Ug
LyogSlNEZWJ1Z1dyYXBwZXJTZXQuaCAqLzsgfTsKIAkJQkM1M0RBQzUxMTQzMkZEOTAwMEQ4MTdF
IC8qIEpTRGVidWdXcmFwcGVyU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNTNEQUM0MTE0MzJGRDkwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBl
clNldC5jcHAgKi87IH07CiAJCUJDNTNEQUM3MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
M0RBQzYxMTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBlci5jcHAgKi87IH07CisJCUJDNTZD
QjIzMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0
IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzU2Q0IxQzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cCAqLzsgfTsKIAkJQkM1NkNCMjIxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
NkNCMUQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDNTZDQjIzMTBENUFD
ODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTZDQjFFMTBENUFDODAwMEE3N0M2
NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzU2Q0IyNDEwRDVBQzgwMDBBNzdDNjQgLyog
R2VvbG9jYXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM1NkNCMUYxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzU2Q0Iy
NTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NkNCMjAxMEQ1QUM4MDAwQTc3QzY0
IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzU4MjNGNTBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxl
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAg
Ki87IH07CkBAIC0xMDg0MSw5ICsxMDg0MSw5IEBACiAJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3
RSAvKiBKU0RlYnVnV3JhcHBlclNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0RlYnVnV3JhcHBlclNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUz
REFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZWJ1Z1dyYXBwZXJTZXQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUzREFDNjExNDMzMDY0MDAwRDgxN0UgLyogSlNET01X
cmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV3Jh
cHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNTZDQjFFMTBENUFDODAw
MEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHZW9sb2NhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzU2Q0IxQzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTZDQjFEMTBENUFDODAwMEE3
N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR2VvbG9jYXRpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDNTZDQjFFMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTZDQjFGMTBE
NUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM1NkNCMjAxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyog
SlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEzMjU4LDkgKzEzMjU4LDkgQEAKIAkJCQlGRTgwRDdCNzBFOUMxRjI1MDAwRDZGNzUgLyog
R2VvbG9jYXRpb24uY3BwICovLAogCQkJCUZFODBEN0I4MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9s
b2NhdGlvbi5oICovLAogCQkJCUZFODBEN0I5MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlv
bi5pZGwgKi8sCisJCQkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ2xp
ZW50LmggKi8sCiAJCQkJQkM1NkNCMUMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29u
dHJvbGxlci5jcHAgKi8sCiAJCQkJQkM1NkNCMUQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5oICovLAotCQkJCUJDNTZDQjFFMTBENUFDODAwMEE3N0M2NCAvKiBHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLywKIAkJCQlCQzU2Q0IxRjEwRDVBQzgwMDBBNzdD
NjQgLyogR2VvbG9jYXRpb25FcnJvci5oICovLAogCQkJCUJDNTZDQjIwMTBENUFDODAwMEE3N0M2
NCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8sCiAJCQkJNTk2MjI5NzcxMTMzRUZENzAwREM0
Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgKi8sCkBAIC0xOTY4Niw4ICsxOTY4
Niw4IEBACiAJCQkJQkNFMDRDOEEwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwRDdDNjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNTZDQjIzMTBENUFDODAwMEE3N0M2NCAvKiBH
ZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjIxMEQ1QUM4MDAw
QTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM1
NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTZDQjI1MTBENUFDODAwMEE3N0M2NCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OTYyMjk3QTExMzNFRkUy
MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggMDg5MzJhOWVmMTkwYzdmZTg1
ZTVkMTQxMTQ2NzUwNGUzZTlkYTczYi4uZGI0Y2MyMzBjM2FlMmYyNmI2YjAwMTg0MjY2YWI0M2Zl
MDZhZjM0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI5LDEx
ICsyOSwxMSBAQAogCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIAotI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIgorI2luY2x1ZGUgIkdlb2xvY2F0
aW9uQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotR2VvbG9jYXRpb25Db250cm9s
bGVyOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXIoUGFnZSogcGFnZSwgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50KiBjbGllbnQpCitHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29u
dHJvbGxlcihQYWdlKiBwYWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV9w
YWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25D
b250cm9sbGVyLmgKaW5kZXggNTdmNmUzMmIxOTBlODcwYmQ5OWY3YTI3MzEyYmRlZDBiMjQ0NzA2
NS4uMmQ4MTA2ZGU0OTMzNTgzMzRlOWNjYjI3NWNiYTIxN2NlMWQ4OGE0YSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaApAQCAtMzUsMTQgKzM1LDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OworY2xhc3MgR2Vv
bG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlvbkVycm9yOwogY2xhc3MgR2VvbG9jYXRp
b25Qb3NpdGlvbjsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlciA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgR2VvbG9jYXRpb25Db250cm9sbGVy
KFBhZ2UqLCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQqKTsKKyAgICBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7CiAgICAgfkdlb2xvY2F0aW9uQ29u
dHJvbGxlcigpOwogCiAgICAgdm9pZCBhZGRPYnNlcnZlcihHZW9sb2NhdGlvbiosIGJvb2wgZW5h
YmxlSGlnaEFjY3VyYWN5KTsKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIFBhZ2UqIG1fcGFnZTsKLSAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQqIG1fY2xp
ZW50OworICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBtX2NsaWVudDsKIAogICAgIFJlZlB0cjxHZW9s
b2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVm
UHRyPEdlb2xvY2F0aW9uPiA+IE9ic2VydmVyc1NldDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDg5YWQ3YjhhOTUyYTNmYTU0MGI0
ZTQwMDg2NWI4OTQyYTVlMDQ1ZWEuLjUwNmI1MmQ1ZjE0YTEwMDhkOTcxOGYyOTYwYmZiMTY1MWE3
YTVjOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtNTQsOCArNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
RWRpdG9yQ2xpZW50OwogICAgIGNsYXNzIEZvY3VzQ29udHJvbGxlcjsKICAgICBjbGFzcyBGcmFt
ZTsKKyAgICBjbGFzcyBHZW9sb2NhdGlvbkNsaWVudDsKICAgICBjbGFzcyBHZW9sb2NhdGlvbkNv
bnRyb2xsZXI7Ci0gICAgY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OwogICAgIGNs
YXNzIEhhbHRhYmxlUGx1Z2luOwogICAgIGNsYXNzIEhpc3RvcnlJdGVtOwogICAgIGNsYXNzIElu
c3BlY3RvckNsaWVudDsKQEAgLTEwNCw3ICsxMDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50OwogICAgICAgICAgICAgSW5zcGVjdG9y
Q2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7CiAgICAgICAgICAgICBQbHVnaW5IYWx0ZXJDbGllbnQq
IHBsdWdpbkhhbHRlckNsaWVudDsKLSAgICAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudCogZ2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OworICAgICAgICAgICAgR2VvbG9jYXRp
b25DbGllbnQqIGdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDsKICAgICAgICAgICAgIERldmlj
ZU1vdGlvbkNsaWVudCogZGV2aWNlTW90aW9uQ2xpZW50OwogICAgICAgICAgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0aW9uQ2xpZW50OwogICAgICAgICAgICAgUmVm
UHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRDbGllbnQ7CmRpZmYgLS1naXQgYS9XZWJL
aXQvQ2hhbmdlTG9nIGIvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZjRhYjY0ZDc5NTQyOGI5YmQ0
ZGUyZDU2MzFhMDdhZmM5MjA0ZTUwLi43NDU2NjQzNWE4NWMwYWM0NDk3ZDI0OWM4YWNmOTFkNWEz
NzkxNmNlIDEwMDY0NAotLS0gYS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0xMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90
dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHRvIEdlb2xvY2F0
aW9uQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDkyNTkKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDEwLTExLTA4ICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgog
CiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCBhZnRlciByNzE0OTYuCmRpZmYg
LS1naXQgYS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmUzY2FlYjMxZjRiNzI1NTY5
M2E0ZmQxZmRjYjEzZTVhN2MzNDdmYy4uNjg3OGJiMmRkYjk4YmZkZmM0NzEyZDQ4ZDA4ZjA0MThl
MmE3ZmQ0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ4
LDggKzM0OCw4IEBACiAJCUJDMkU0NjRFMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU0NjRD
MEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5tbSAqLzsgfTsKIAkJQkM1NDJDNDIwRkQ3
NzY2RjAwRDhBQjVEIC8qIFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU0MkM0MDBGRDc3NjZG
MDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCAqLzsgfTsKIAkJ
QkM1NDJDNDMwRkQ3NzY2RjAwRDhBQjVEIC8qIFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNo
aW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
NDJDNDEwRkQ3NzY2RjAwRDhBQjVEIC8qIFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5n
Lm1tICovOyB9OwotCQlCQzdGODg0QjEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25D
b250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50LmggKi87IH07Ci0JCUJDN0Y4ODRDMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50Lm1tICovOyB9OworCQlCQzdGODg0QjEwQzg3NzVBMDBENjEzM0Qg
LyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlv
bkNsaWVudC5oICovOyB9OworCQlCQzdGODg0QzEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQubW0g
Ki87IH07CiAJCUJDN0Y4ODlFMTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdG
ODg5QzEwQzlEMzBDMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDN0Y4ODlGMTBDOUQz
MEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3Rjg4OUQxMEM5RDMwQzAwRDYxMzNEIC8q
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gKi87IH07CiAJCUJDN0Y4OEE1MTBDOUQ4OEIwMEQ2
MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4OEE0MTBDOUQ4OEIwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCAqLzsgfTsKQEAgLTY1OCw4ICs2NTgs
OCBAQAogCQlCQzJFNDY0QzBGRDhBOTY4MDBBOUQ5REUgLyogV2ViVmlld0RhdGEubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJWaWV3RGF0YS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NDJDNDAwRkQ3NzY2RjAwRDhBQjVEIC8qIFdlYkRl
bGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDNTQyQzQxMEZENzc2NkYwMEQ4QUI1RCAvKiBXZWJEZWxlZ2F0ZUlt
cGxlbWVudGF0aW9uQ2FjaGluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Ykdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3Rjg4NEExMEM4Nzc1QTAwRDYxMzNEIC8qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViR2VvbG9jYXRpb25DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDN0Y4ODlDMTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3Rjg4OUQxMEM5RDMwQzAwRDYxMzNE
IC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzdGODhBNDEwQzlEODhCMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdl
b2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTI5Niw4ICsxMjk2LDggQEAKIAkJCQk5MzE2MzNFRTBBRURGRkFFMDA2MkI5MkQgLyogV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0gKi8sCiAJCQkJOTM5MUYyNzMxMjFCMzhCRDAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk5MzkxRjI3NDEyMUIzOEJEMDBF
QkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKLQkJCQlCQzdGODg0OTEw
Qzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmggKi8sCi0J
CQkJQkM3Rjg4NEExMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudC5tbSAqLywKKwkJCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRp
b25DbGllbnQuaCAqLywKKwkJCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25DbGllbnQubW0gKi8sCiAJCQkJNTE0OTRDRDQwQzdFQkRFMDAwNDE3OEM1IC8qIFdlYklj
b25EYXRhYmFzZUNsaWVudC5oICovLAogCQkJCTUxNDk0Q0Q1MEM3RUJERTAwMDQxNzhDNSAvKiBX
ZWJJY29uRGF0YWJhc2VDbGllbnQubW0gKi8sCiAJCQkJOUNFMUY4QTMwMkE1QzZGMzBFQ0EyQUNE
IC8qIFdlYkltYWdlUmVuZGVyZXJGYWN0b3J5Lm0gKi8sCkBAIC0xNDgwLDcgKzE0ODAsNyBAQAog
CQkJCTkzOTgxMDZFMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZVZpZXcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzOTgxMDZGMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZVZpZXdJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwQUYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZy
YW1lVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0Y4ODRCMTBDODc3NUEwMEQ2
MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUJDN0Y4ODRCMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM3Rjg4OUUxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Y4OEE1MTBDOUQ4OEIwMEQ2MTMz
RCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzOTgxMDEyMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJIaXN0b3J5LmggaW4gSGVhZGVycyAqLywK
QEAgLTE4OTIsNyArMTg5Miw3IEBACiAJCQkJOTM5ODEwRjIwODI0QkYwMTAwOERGMDM4IC8qIFdl
YkZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMxNjMzRUYwQUVERkZBRTAwNjJCOTJEIC8q
IFdlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODExMDYwODI0
QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmlldy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUJDN0Y4
ODRDMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0g
aW4gU291cmNlcyAqLywKKwkJCQlCQzdGODg0QzEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25DbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzdGODg5RjEwQzlEMzBDMDBENjEz
M0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgx
MTEzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJIaXN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM5ODEwQkQwODI0QkYwMTAwOERGMDM4IC8qIFdlYkhpc3RvcnlJdGVtLm1tIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDI4ZmE3ZGQ1ZWIyMTFmY2M2ODNkMGJlZjNhZTc1ZDdmNzc3MTU1NjEuLjRlYTM4
MjQ3NTc4MGU3YjBmOWMyMmE4YTc3ZGUxMDViNjcyMzYxZmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMTEtMTAgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEdl
b2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCB0byBHZW9sb2NhdGlvbkNsaWVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjU5CisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOiBSZW5hbWVkIGZyb20gV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaC4K
KyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojp3ZWJWaWV3KToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uQ2xpZW50OjpzZXRFbmFibGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOiBSZW5hbWVkIGZyb20gV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0uCisgICAg
ICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6V2ViR2VvbG9jYXRpb25DbGllbnQpOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdlb2xv
Y2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGll
bnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViS2l0Lm9yZGVyOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRp
b25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTp1c2VzRG9jdW1lbnRWaWV3czpdKToKKwogMjAxMC0x
MS0wOCAgTmVkIEhvbGJyb29rICA8bmhvbGJyb29rQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIg
Yi9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgppbmRleCBjMmI1ZjVkOTQ2ZWNiNzEzZTVmZWExYjFk
NWMwZjZmMmYwNTQ5OWE0Li5lNTY2OTQyNmZmNTk4MDhhNDViZGU0MmM1NTZkODIzNDg5N2Q3MTQ3
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgorKysgYi9XZWJLaXQvbWFjL1dl
YktpdC5vcmRlcgpAQCAtOTAsOCArOTAsOCBAQCBfX1pOMjRXZWJEYXRhYmFzZVRyYWNrZXJDbGll
bnQzMHNoYXJlZFdlYkRhdGFiYXNlVHJhY2tlckNsaWVudEV2CiBfX1pOMjRXZWJEYXRhYmFzZVRy
YWNrZXJDbGllbnRDMUV2CiBfX1pOMjRXZWJEYXRhYmFzZVRyYWNrZXJDbGllbnRDMkV2CiBfX1pM
NDdXZWJLaXRJbml0aWFsaXplQXBwbGljYXRpb25DYWNoZVBhdGhJZk5lY2Vzc2FyeXYKLV9fWk4z
MFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEMxRVA3V2ViVmlldwotX19aTjMwV2ViR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50QzJFUDdXZWJWaWV3CitfX1pOMzBXZWJHZW9sb2NhdGlv
bkNsaWVudEMxRVA3V2ViVmlldworX19aTjMwV2ViR2VvbG9jYXRpb25DbGllbnRDMkVQN1dlYlZp
ZXcKIF9fWk4xNVdlYkNocm9tZUNsaWVudEMxRVA3V2ViVmlldwogX19aTjE1V2ViQ2hyb21lQ2xp
ZW50QzJFUDdXZWJWaWV3CiBfX1pOMjBXZWJDb250ZXh0TWVudUNsaWVudEMxRVA3V2ViVmlldwpA
QCAtNzQ0LDggKzc0NCw4IEBAIF9fWk4yMFdlYkZyYW1lTG9hZGVyQ2xpZW50MjBmcmFtZUxvYWRl
ckRlc3Ryb3llZEV2CiBfX1pOMjBXZWJGcmFtZUxvYWRlckNsaWVudEQwRXYKIC1bV2ViRnJhbWUg
ZGVhbGxvY10KIC1bV2ViRnJhbWVQcml2YXRlIGRlYWxsb2NdCi1fX1pOMzBXZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQyMGdlb2xvY2F0aW9uRGVzdHJveWVkRXYKLV9fWk4zMFdlYkdlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudEQwRXYKK19fWk4zMFdlYkdlb2xvY2F0aW9uQ2xpZW50MjBn
ZW9sb2NhdGlvbkRlc3Ryb3llZEV2CitfX1pOMzBXZWJHZW9sb2NhdGlvbkNsaWVudEQwRXYKIF9f
Wk4yMFdlYkNvbnRleHRNZW51Q2xpZW50MjBjb250ZXh0TWVudURlc3Ryb3llZEV2CiBfX1pOMjBX
ZWJDb250ZXh0TWVudUNsaWVudEQwRXYKIF9fWk4xM1dlYkRyYWdDbGllbnQyM2RyYWdDb250cm9s
bGVyRGVzdHJveWVkRXYKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDY4N2NkYWM0MTQwYWE2ZDI2
ZmE3NGFiNDhmYmQ3NjY1OWI5OTg0Zi4uZWJlZjgyMjk0MThmNzE1ZmE1MTA2Y2Y0ZmU3Yjk4MzZk
YmRiY2YxMSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTYwLDcgKzYwLDcgQEAKICNpbXBvcnQg
IldlYkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYkZyYW1lVmlld0ludGVybmFsLmgiCi0jaW1wb3J0ICJXZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQuaCIKKyNpbXBvcnQgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAj
aW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkhU
TUxSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJbnRlcm5hbC5oIgpAQCAt
NzA3LDcgKzcwNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqbGVha01haWxRdWlya3NVc2VyU2NyaXB0
UGF0aCgpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3Rv
ckNsaWVudChzZWxmKTsKICAgICBwYWdlQ2xpZW50cy5wbHVnaW5IYWx0ZXJDbGllbnQgPSBuZXcg
V2ViUGx1Z2luSGFsdGVyQ2xpZW50KHNlbGYpOwogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCi0gICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50ID0g
bmV3IFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChzZWxmKTsKKyAgICBwYWdlQ2xpZW50
cy5nZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQo
c2VsZik7CiAjZW5kaWYKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIHBhZ2VD
bGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IFdlYkRldmljZU9yaWVudGF0aW9u
Q2xpZW50KHNlbGYpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCBlODE2YjM0OWIzYjZjNjE1ODIwZThmMTk3ODk1ZGNjZWZkZTY1
MGQ0Li5hYTk0NzU4YjIyMzdjYjJhOTdiYjNhODU2MmNhMjVlM2Y0NjZjNDI5IDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEwLTExLTEwICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbmFtZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgdG8gR2VvbG9jYXRpb25DbGllbnQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI1OQor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOiBSZW5h
bWVkIGZyb20gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQuY3BwLgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6OldlYkdlb2xvY2F0
aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpnZW9sb2NhdGlvbkRl
c3Ryb3llZCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyk6
CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAg
KFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oLgorICAgICAgICAo
V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisgICAgICAgICog
V2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAg
ICAgICAoV2ViVmlldzo6aW5pdFdpdGhGcmFtZSk6CisKIDIwMTAtMTEtMDggIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvaiBiL1dlYktp
dC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCmluZGV4IDk3NDA5NDdjZWI3N2UyMGRh
NTEyY2Y2ZTNlMmE5OTI2MTgyZmMzNWQuLjQ3MWJhMjgwZmFiYWQyODk3MWQ5NGFiMTJjOTkyYTVj
NDlmYWI4MjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCkBAIC0xMjk2
LDExICsxMjk2LDExIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dC5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRp
b25DbGllbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25D
bGllbnQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KZGlmZiAtLWdpdCBhL1dl
YktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdjZTc4
MTI2YjJjZjg3NDVjZDQ0OTlkZTM4MmJmZjFjMjlkNjM0YmYuLjg5OWUxNWIzYmFiMGY4NWE0Mzll
YTg0ZGUzY2FkZGVhZjlhMTE5ZWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
KysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUg
IldlYkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnRQcm9wZXJ0eUJhZy5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCi0jaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCkBAIC0yNTk0LDcgKzI1OTQsNyBAQCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoCiAgICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKICAgICBwYWdl
Q2xpZW50cy5wbHVnaW5IYWx0ZXJDbGllbnQgPSBuZXcgV2ViUGx1Z2luSGFsdGVyQ2xpZW50KHRo
aXMpOwogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0gICAgcGFnZUNsaWVu
dHMuZ2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7CiAjZW5kaWYKICAgICBtX3Bh
Z2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73609</attachid>
            <date>2010-11-11 07:35:13 -0800</date>
            <delta_ts>2010-11-11 08:22:56 -0800</delta_ts>
            <desc>Rename GeolocationControllerClient -&gt; GeolocationClient</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>49688</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">Y29tbWl0IGIxYjUzNDQwOGQ0NTk2ZTkyNTQ4ODQ5NTEwZDQzZmEwYzdiNmMzYWQKQXV0aG9yOiBK
b2huIEtub3R0ZW5iZWx0IDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAx
MCAwOTozMjo0MSAyMDEwICswMDAwCgogICAgUmVuYW1lIEdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudCAtPiBHZW9sb2NhdGlvbkNsaWVudAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY2M2ExZi4uNWJkYmI1ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxMC0xMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHRvIEdlb2xvY2F0aW9uQ2xpZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNTkKKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ2xpZW50Lmg6
IFJlbmFtZWQgZnJvbSBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmgu
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudDo6fkdlb2xvY2F0aW9uQ2xpZW50
KToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29udHJvbGxlcik6Cisg
ICAgICAgICogcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKwogMjAxMC0xMS0xMSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDFlZGQ5NTMuLjdh
YjYyNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQpAQCAtMjEwMiwxNSArMjEwMiwxNSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaCBcCiAJV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgXAogCVdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBcCi0JV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudC5oIFwKLQlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcCBcCi0JV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oIFwKIAlXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwIFwKLQlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25FcnJv
ci5oIFwKIAlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaCBcCisJV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ2xpZW50LmggXAorCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkVycm9yLmggXAorCVdl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIFwKKwlXZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb25Db250cm9sbGVyLmggXAorCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9u
LmggXAogCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIFwKIAlXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggXAotCVdlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvblBvc2l0aW9uLmggXAogCVdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5oIFwKIAlXZWJD
b3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAgXAogCVdlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdz
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCA4NDZiNmExLi5lZWFmOWIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjIzOCw5ICsyMjM4LDkgQEAKICAg
ICAgICAgICAgICdwYWdlL0ZyYW1lVmlldy5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0
aW9uLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbi5oJywKKyAgICAgICAgICAg
ICdwYWdlL0dlb2xvY2F0aW9uQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRp
b25Db250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuaCcsCi0gICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCcs
CiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbkVycm9yLmgnLAogICAgICAgICAgICAgJ3Bh
Z2UvR2VvbG9jYXRpb25Qb3NpdGlvbi5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9u
UG9zaXRpb25DYWNoZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDBjODUyZTEuLjc2ZjMyNzUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE2
OCw4ICsxNjgsOCBAQCBfX1pON1dlYkNvcmUxNkluc3BlY3RvckJhY2tlbmRDMUVQTlNfMTlJbnNw
ZWN0b3JDb250cm9sbGVyRQogX19aTjdXZWJDb3JlMTZJbnNwZWN0b3JCYWNrZW5kQzJFUE5TXzE5
SW5zcGVjdG9yQ29udHJvbGxlckUKIF9fWk43V2ViQ29yZTE4SW5qZWN0ZWRTY3JpcHRIb3N0QzFF
UE5TXzE5SW5zcGVjdG9yQ29udHJvbGxlckUKIF9fWk43V2ViQ29yZTE4SW5qZWN0ZWRTY3JpcHRI
b3N0QzJFUE5TXzE5SW5zcGVjdG9yQ29udHJvbGxlckUKLV9fWk43V2ViQ29yZTIxR2VvbG9jYXRp
b25Db250cm9sbGVyQzFFUE5TXzRQYWdlRVBOU18yN0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dEUKLV9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyQzJFUE5TXzRQYWdlRVBOU18y
N0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEUKK19fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25D
b250cm9sbGVyQzFFUE5TXzRQYWdlRVBOU18yN0dlb2xvY2F0aW9uQ2xpZW50RQorX19aTjdXZWJD
b3JlMjFHZW9sb2NhdGlvbkNvbnRyb2xsZXJDMkVQTlNfNFBhZ2VFUE5TXzI3R2VvbG9jYXRpb25D
bGllbnRFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3NDMUVQTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmU4
U2V0dGluZ3NDMkVQTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUxNVByb2dyZXNzVHJhY2tlckMxRXYK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDk1YzUzY2YuLjM3YmZmNmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjMzOTYsMTggKzIzMzk2
LDE4IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXEdlb2xvY2F0aW9uQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0aW9uQ29udHJvbGxlci5oIg0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFn
ZVxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCi0JCQk8Rmls
ZQ0KKwkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0aW9uRXJyb3Iu
aCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGQ2OGU3NWYuLjFhZGMwYzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODI0LDkgKzQ4MjQsOSBAQAogCQlCQzUzREFDMjEx
NDMyRUVFMDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBK
U0RlYnVnV3JhcHBlclNldC5oICovOyB9OwogCQlCQzUzREFDNTExNDMyRkQ5MDAwRDgxN0UgLyog
SlNEZWJ1Z1dyYXBwZXJTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1M0RBQzQxMTQzMkZEOTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0
LmNwcCAqLzsgfTsKIAkJQkM1M0RBQzcxMTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUzREFD
NjExNDMzMDY0MDAwRDgxN0UgLyogSlNET01XcmFwcGVyLmNwcCAqLzsgfTsKKwkJQkM1NkNCMjMx
MEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU2Q0IxRTEwRDVBQzgwMDBBNzdDNjQgLyog
R2VvbG9jYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzU2Q0IyMTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNTZDQjFDMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwICov
OyB9OwogCQlCQzU2Q0IyMjEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU2Q0Ix
RDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkM1NkNCMjMxMEQ1QUM4MDAw
QTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTZDQjI0MTBENUFDODAwMEE3N0M2NCAvKiBHZW9s
b2NhdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzU2Q0IxRjEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25FcnJvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTZDQjI1MTBE
NUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU2Q0IyMDEwRDVBQzgwMDBBNzdDNjQgLyog
R2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDNTgyM0Y1MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAqLzsg
fTsKQEAgLTEwODQ5LDkgKzEwODQ5LDkgQEAKIAkJQkM1M0RBQzExMTQzMkVFRTAwMEQ4MTdFIC8q
IEpTRGVidWdXcmFwcGVyU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RGVidWdXcmFwcGVyU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTNEQUM0
MTE0MzJGRDkwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlYnVnV3JhcHBlclNldC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNTNEQUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBw
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01XcmFwcGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3
QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdlb2xvY2F0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
NTZDQjFDMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NkNCMUQxMEQ1QUM4MDAwQTc3QzY0
IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NkNCMUYxMEQ1QUM4
MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR2VvbG9jYXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzU2Q0IyMDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hU
TUxFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSFRNTEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTMyNjksOSArMTMyNjksOSBAQAogCQkJCUZFODBEN0I3MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9s
b2NhdGlvbi5jcHAgKi8sCiAJCQkJRkU4MEQ3QjgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0
aW9uLmggKi8sCiAJCQkJRkU4MEQ3QjkwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmlk
bCAqLywKKwkJCQlCQzU2Q0IxRTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQu
aCAqLywKIAkJCQlCQzU2Q0IxQzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcCAqLywKIAkJCQlCQzU2Q0IxRDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25D
b250cm9sbGVyLmggKi8sCi0JCQkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudC5oICovLAogCQkJCUJDNTZDQjFGMTBENUFDODAwMEE3N0M2NCAv
KiBHZW9sb2NhdGlvbkVycm9yLmggKi8sCiAJCQkJQkM1NkNCMjAxMEQ1QUM4MDAwQTc3QzY0IC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQk1OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAqLywKQEAgLTE5Njk4LDggKzE5Njk4LDgg
QEAKIAkJCQlCQ0UwNEM4QTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFODBEN0M2MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xv
Y2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyMjEwRDVBQzgwMDBBNzdD
NjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzU2Q0Iy
MzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzU2Q0IyNDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25FcnJv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU5NjIyOTdBMTEzM0VGRTIwMERD
NENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb25DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjQ2
ZjkxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ2xpZW50LmgK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2VvbG9jYXRpb25DbGllbnRf
aAorI2RlZmluZSBHZW9sb2NhdGlvbkNsaWVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKKworY2xhc3MgR2VvbG9jYXRpb25DbGllbnQgewor
cHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dG9wVXBkYXRpbmcoKSA9IDA7CisgICAgLy8gRklYTUU6IFRoZSBWMiBHZW9sb2NhdGlvbiBzcGVj
aWZpY2F0aW9uIHByb3Bvc2VzIHRoYXQgdGhpcyBwcm9wZXJ0eSBpcworICAgIC8vIHJlbmFtZWQu
IFNlZSBodHRwOi8vd3d3LnczLm9yZy8yMDA4L2dlb2xvY2F0aW9uL3RyYWNrL2lzc3Vlcy82Cisg
ICAgLy8gV2Ugc2hvdWxkIHVwZGF0ZSBXZWJLaXQgdG8gcmVmbGVjdCB0aGlzIGlmIGFuZCB3aGVu
IHRoZSBWMiBzcGVjaWZpY2F0aW9uCisgICAgLy8gaXMgcHVibGlzaGVkLgorICAgIHZpcnR1YWwg
dm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgPSAwOworICAgIHZpcnR1YWwgR2VvbG9j
YXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCB+R2VvbG9jYXRpb25DbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEdlb2xvY2F0aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
Q29udHJvbGxlci5jcHAKaW5kZXggMDg5MzJhOS4uZGI0Y2MyMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTI5LDExICsyOSwxMSBAQAogCiAjaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIAotI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudC5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotR2VvbG9jYXRpb25Db250cm9sbGVyOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXIo
UGFnZSogcGFnZSwgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KiBjbGllbnQpCitHZW9sb2Nh
dGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29udHJvbGxlcihQYWdlKiBwYWdlLCBHZW9sb2Nh
dGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChj
bGllbnQpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVy
LmggYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggNTdmNmUzMi4u
MmQ4MTA2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5o
CisrKyBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaApAQCAtMzUsMTQgKzM1
LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50OworY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlvbkVy
cm9yOwogY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdl
b2xvY2F0aW9uQ29udHJvbGxlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAg
R2VvbG9jYXRpb25Db250cm9sbGVyKFBhZ2UqLCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQq
KTsKKyAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXIoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7
CiAgICAgfkdlb2xvY2F0aW9uQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBhZGRPYnNlcnZlcihH
ZW9sb2NhdGlvbiosIGJvb2wgZW5hYmxlSGlnaEFjY3VyYWN5KTsKQEAgLTU1LDcgKzU1LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKLSAgICBHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQqIG1fY2xpZW50OworICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBtX2NsaWVu
dDsKIAogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKICAg
ICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEdlb2xvY2F0aW9uPiA+IE9ic2VydmVyc1NldDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBiL1dl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDY0OGNmOC4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaAotI2RlZmlu
ZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247Ci0KLWNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVk
KCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKLSAgICAvLyBGSVhNRTogVGhlIFYyIEdlb2xv
Y2F0aW9uIHNwZWNpZmljYXRpb24gcHJvcG9zZXMgdGhhdCB0aGlzIHByb3BlcnR5IGlzCi0gICAg
Ly8gcmVuYW1lZC4gU2VlIGh0dHA6Ly93d3cudzMub3JnLzIwMDgvZ2VvbG9jYXRpb24vdHJhY2sv
aXNzdWVzLzYKLSAgICAvLyBXZSBzaG91bGQgdXBkYXRlIFdlYktpdCB0byByZWZsZWN0IHRoaXMg
aWYgYW5kIHdoZW4gdGhlIFYyIHNwZWNpZmljYXRpb24KLSAgICAvLyBpcyBwdWJsaXNoZWQuCi0g
ICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSA9IDA7Ci0gICAgdmly
dHVhbCBHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKSA9IDA7Ci0KLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoKSB7IH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggNzQ2ZTUzZS4uYmUzZGY5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTQzLDcgKzE0Myw3
IEBAIFBhZ2U6OlBhZ2UoY29uc3QgUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogICAgICwgbV9p
bnNwZWN0b3JDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDb250cm9sbGVyKHRoaXMs
IHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpKQogI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICAsIG1fZ2VvbG9jYXRpb25Db250cm9sbGVyKGFkb3B0
UHRyKG5ldyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuZ2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50KSkpCisgICAgLCBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcihhZG9w
dFB0cihuZXcgR2VvbG9jYXRpb25Db250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmdlb2xvY2F0
aW9uQ2xpZW50KSkpCiAjZW5kaWYKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAg
ICwgbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRldmlj
ZU1vdGlvbkVuYWJsZWQoKSA/IG5ldyBEZXZpY2VNb3Rpb25Db250cm9sbGVyKHBhZ2VDbGllbnRz
LmRldmljZU1vdGlvbkNsaWVudCkgOiAwKQpAQCAtOTE5LDcgKzkxOSw3IEBAIFBhZ2U6OlBhZ2VD
bGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgLCBkcmFnQ2xpZW50KDApCiAgICAgLCBpbnNwZWN0
b3JDbGllbnQoMCkKICAgICAsIHBsdWdpbkhhbHRlckNsaWVudCgwKQotICAgICwgZ2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50KDApCisgICAgLCBnZW9sb2NhdGlvbkNsaWVudCgwKQogICAgICwg
ZGV2aWNlTW90aW9uQ2xpZW50KDApCiAgICAgLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgwKQog
ICAgICwgc3BlZWNoSW5wdXRDbGllbnQoMCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDg5YWQ3YjguLmUwNzQ4MTQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNTQs
OCArNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRWRpdG9yQ2xpZW50Owog
ICAgIGNsYXNzIEZvY3VzQ29udHJvbGxlcjsKICAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBH
ZW9sb2NhdGlvbkNsaWVudDsKICAgICBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXI7Ci0gICAg
Y2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OwogICAgIGNsYXNzIEhhbHRhYmxlUGx1
Z2luOwogICAgIGNsYXNzIEhpc3RvcnlJdGVtOwogICAgIGNsYXNzIEluc3BlY3RvckNsaWVudDsK
QEAgLTEwNCw3ICsxMDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEcmFn
Q2xpZW50KiBkcmFnQ2xpZW50OwogICAgICAgICAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0
b3JDbGllbnQ7CiAgICAgICAgICAgICBQbHVnaW5IYWx0ZXJDbGllbnQqIHBsdWdpbkhhbHRlckNs
aWVudDsKLSAgICAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCogZ2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50OworICAgICAgICAgICAgR2VvbG9jYXRpb25DbGllbnQqIGdlb2xv
Y2F0aW9uQ2xpZW50OwogICAgICAgICAgICAgRGV2aWNlTW90aW9uQ2xpZW50KiBkZXZpY2VNb3Rp
b25DbGllbnQ7CiAgICAgICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ7CiAgICAgICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNr
Rm9yd2FyZENsaWVudDsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZmNGFiNjQuLjc0NTY2NDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTExLTEwICBK
b2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQgdG8gR2VvbG9jYXRpb25DbGllbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI1OQorCisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTAtMTEtMDggIExlYW5kcm8gUGVyZWlyYSAgPGxl
YW5kcm9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZC4gQnVpbGQg
Zml4IGFmdGVyIHI3MTQ5Ni4KZGlmZiAtLWdpdCBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiZTNjYWViLi42ODc4YmIyIDEwMDY0NAotLS0gYS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zNDgsOCArMzQ4LDggQEAKIAkJQkMyRTQ2NEUwRkQ4QTk2ODAwQTlEOURFIC8q
IFdlYlZpZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMyRTQ2NEMwRkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZpZXdEYXRhLm1tICovOyB9Owog
CQlCQzU0MkM0MjBGRDc3NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNh
Y2hpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NTQyQzQwMEZENzc2NkYwMEQ4QUI1RCAvKiBXZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGlu
Zy5oICovOyB9OwogCQlCQzU0MkM0MzBGRDc3NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBs
ZW1lbnRhdGlvbkNhY2hpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzU0MkM0MTBGRDc3NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1l
bnRhdGlvbkNhY2hpbmcubW0gKi87IH07Ci0JCUJDN0Y4ODRCMTBDODc3NUEwMEQ2MTMzRCAvKiBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLzsgfTsKLQkJQkM3Rjg4NEMxMEM4Nzc1QTAwRDYx
MzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0gKi87IH07CisJCUJDN0Y4ODRCMTBD
ODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3Rjg4NDkxMEM4Nzc1QTAwRDYxMzNEIC8q
IFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi87IH07CisJCUJDN0Y4ODRDMTBDODc3NUEwMEQ2MTMz
RCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2Nh
dGlvbkNsaWVudC5tbSAqLzsgfTsKIAkJQkM3Rjg4OUUxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdl
b2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDN0Y4ODlDMTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3Rjg4OUYxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGODg5RDEwQzlE
MzBDMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSAqLzsgfTsKIAkJQkM3Rjg4
QTUxMEM5RDg4QjAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3Rjg4QTQxMEM5
RDg4QjAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oICovOyB9OwpA
QCAtNjU4LDggKzY1OCw4IEBACiAJCUJDMkU0NjRDMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3
RGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdE
YXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU0MkM0MDBGRDc3NjZGMDBE
OEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NDJDNDEwRkQ3NzY2RjAwRDhBQjVEIC8q
IFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlv
bkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzdGODg0QTEwQzg3NzVB
MDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM3Rjg4OUMxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzdGODg5RDEw
QzlEMzBDMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0Y4OEE0MTBDOUQ4OEIwMEQ2MTMzRCAvKiBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMjk2LDggKzEyOTYsOCBAQAogCQkJCTkzMTYzM0VFMEFFREZGQUUw
MDYyQjkyRCAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5tbSAqLywKIAkJCQk5MzkxRjI3MzEyMUIz
OEJEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTkzOTFG
Mjc0MTIxQjM4QkQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAot
CQkJCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQuaCAqLywKLQkJCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50Lm1tICovLAorCQkJCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovLAorCQkJCUJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMz
RCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbSAqLywKIAkJCQk1MTQ5NENENDBDN0VCREUwMDA0
MTc4QzUgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmggKi8sCiAJCQkJNTE0OTRDRDUwQzdFQkRF
MDAwNDE3OEM1IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5tbSAqLywKIAkJCQk5Q0UxRjhBMzAy
QTVDNkYzMEVDQTJBQ0QgLyogV2ViSW1hZ2VSZW5kZXJlckZhY3RvcnkubSAqLywKQEAgLTE0ODAs
NyArMTQ4MCw3IEBACiAJCQkJOTM5ODEwNkUwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmll
dy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwNkYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZy
YW1lVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTBBRjA4MjRCRjAxMDA4
REYwMzggLyogV2ViRnJhbWVWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM3Rjg4
NEIxMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQkM3Rjg4NEIxMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGODg5RTEwQzlEMzBDMDBENjEzM0Qg
LyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3Rjg4QTUx
MEM5RDg4QjAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM5ODEwMTIwODI0QkYwMTAwOERGMDM4IC8qIFdlYkhpc3RvcnkuaCBp
biBIZWFkZXJzICovLApAQCAtMTg5Miw3ICsxODkyLDcgQEAKIAkJCQk5Mzk4MTBGMjA4MjRCRjAx
MDA4REYwMzggLyogV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzE2MzNFRjBBRURG
RkFFMDA2MkI5MkQgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5Mzk4MTEwNjA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVWaWV3Lm1tIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQkM3Rjg4NEMxMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJDN0Y4ODRDMTBDODc3NUEwMEQ2MTMz
RCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDN0Y4ODlG
MTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM5ODExMTMwODI0QkYwMTAwOERGMDM4IC8qIFdlYkhpc3RvcnkubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5Mzk4MTBCRDA4MjRCRjAxMDA4REYwMzggLyogV2ViSGlzdG9yeUl0ZW0u
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggY2JhOTc0Ny4uNmJkNTljNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxMC0xMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWUgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHRvIEdlb2xvY2F0aW9uQ2xpZW50LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNTkKKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6IFJlbmFtZWQgZnJv
bSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dC5oLgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6OndlYlZpZXcpOgorICAgICAgICAo
V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW06IFJlbmFtZWQgZnJvbSBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5tbS4K
KyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpXZWJHZW9sb2NhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6Z2VvbG9jYXRpb25EZXN0cm95ZWQpOgorICAg
ICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2Vi
R2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
bkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXQub3JkZXI6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFs
aXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOnVzZXNEb2N1bWVudFZpZXdzOl0pOgorCiAy
MDEwLTExLTEwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWVhMzM2OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
R2VvbG9jYXRpb25DbGllbnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCA8V2ViQ29yZS9HZW9sb2NhdGlvbkNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK30KKworQGNsYXNzIFdlYlZpZXc7CisKK2Ns
YXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJHZW9sb2NhdGlvbkNsaWVudChXZWJWaWV3ICopOworICAg
IFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KKworICAgIHZvaWQgZ2Vv
bG9jYXRpb25EZXN0cm95ZWQoKTsKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2b2lk
IHN0b3BVcGRhdGluZygpOworICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIHsg
fQorCisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7CisK
K3ByaXZhdGU6CisgICAgV2ViVmlldyAqbV93ZWJWaWV3OworfTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0gYi9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmE2MzViNDQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgorCisjaW1wb3J0
ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYlZpZXdJbnRl
cm5hbC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViR2VvbG9jYXRpb25DbGll
bnQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50KFdlYlZpZXcgKndlYlZpZXcpCisgICAgOiBtX3dlYlZp
ZXcod2ViVmlldykKK3sKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Z2VvbG9jYXRp
b25EZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYkdlb2xvY2F0
aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBbW21fd2ViVmlldyBfZ2VvbG9jYXRp
b25Qcm92aWRlcl0gcmVnaXN0ZXJXZWJWaWV3Om1fd2ViVmlld107Cit9CisKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgW1ttX3dlYlZpZXcgX2dlb2xv
Y2F0aW9uUHJvdmlkZXJdIHVucmVnaXN0ZXJXZWJWaWV3Om1fd2ViVmlld107Cit9CisKK0dlb2xv
Y2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQorewor
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgcmV0dXJuIGNvcmUoW1tt
X3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIGxhc3RQb3NpdGlvbl0pOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM0ZDZhMjkuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgR2Vv
bG9jYXRpb25Qb3NpdGlvbjsKLX0KLQotQGNsYXNzIFdlYlZpZXc7Ci0KLWNsYXNzIFdlYkdlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQgewotcHVibGljOgotICAgIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dChXZWJWaWV3ICopOwotICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7
IH0KLQotICAgIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKLSAgICB2b2lkIHN0YXJ0VXBk
YXRpbmcoKTsKLSAgICB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZvaWQgc2V0RW5hYmxlSGln
aEFjY3VyYWN5KGJvb2wpIHsgfQotCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiog
bGFzdFBvc2l0aW9uKCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViVmlldyAqbV93ZWJWaWV3OwotfTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZmZj
NzIuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCi0KLSNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgotI2ltcG9ydCAiV2ViVmll
d0ludGVybmFsLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQ6OldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJWaWV3
ICp3ZWJWaWV3KQotICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi17Ci19Ci0KLXZvaWQgV2ViR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgpCi17Ci0gICAg
ZGVsZXRlIHRoaXM7Ci19Ci0KLXZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Ojpz
dGFydFVwZGF0aW5nKCkKLXsKLSAgICBbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0g
cmVnaXN0ZXJXZWJWaWV3Om1fd2ViVmlld107Ci19Ci0KLXZvaWQgV2ViR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQotewotICAgIFtbbV93ZWJWaWV3IF9nZW9sb2Nh
dGlvblByb3ZpZGVyXSB1bnJlZ2lzdGVyV2ViVmlldzptX3dlYlZpZXddOwotfQotCi1HZW9sb2Nh
dGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6Omxhc3RQb3NpdGlv
bigpCi17Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICByZXR1cm4g
Y29yZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gbGFzdFBvc2l0aW9uXSk7Ci0j
ZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YktpdC5vcmRlciBiL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCmluZGV4IGMyYjVmNWQuLmU1NjY5
NDIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCisrKyBiL1dlYktpdC9tYWMv
V2ViS2l0Lm9yZGVyCkBAIC05MCw4ICs5MCw4IEBAIF9fWk4yNFdlYkRhdGFiYXNlVHJhY2tlckNs
aWVudDMwc2hhcmVkV2ViRGF0YWJhc2VUcmFja2VyQ2xpZW50RXYKIF9fWk4yNFdlYkRhdGFiYXNl
VHJhY2tlckNsaWVudEMxRXYKIF9fWk4yNFdlYkRhdGFiYXNlVHJhY2tlckNsaWVudEMyRXYKIF9f
Wkw0N1dlYktpdEluaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlUGF0aElmTmVjZXNzYXJ5dgotX19a
TjMwV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QzFFUDdXZWJWaWV3Ci1fX1pOMzBXZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRDMkVQN1dlYlZpZXcKK19fWk4zMFdlYkdlb2xvY2F0
aW9uQ2xpZW50QzFFUDdXZWJWaWV3CitfX1pOMzBXZWJHZW9sb2NhdGlvbkNsaWVudEMyRVA3V2Vi
VmlldwogX19aTjE1V2ViQ2hyb21lQ2xpZW50QzFFUDdXZWJWaWV3CiBfX1pOMTVXZWJDaHJvbWVD
bGllbnRDMkVQN1dlYlZpZXcKIF9fWk4yMFdlYkNvbnRleHRNZW51Q2xpZW50QzFFUDdXZWJWaWV3
CkBAIC03NDQsOCArNzQ0LDggQEAgX19aTjIwV2ViRnJhbWVMb2FkZXJDbGllbnQyMGZyYW1lTG9h
ZGVyRGVzdHJveWVkRXYKIF9fWk4yMFdlYkZyYW1lTG9hZGVyQ2xpZW50RDBFdgogLVtXZWJGcmFt
ZSBkZWFsbG9jXQogLVtXZWJGcmFtZVByaXZhdGUgZGVhbGxvY10KLV9fWk4zMFdlYkdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudDIwZ2VvbG9jYXRpb25EZXN0cm95ZWRFdgotX19aTjMwV2ViR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50RDBFdgorX19aTjMwV2ViR2VvbG9jYXRpb25DbGllbnQy
MGdlb2xvY2F0aW9uRGVzdHJveWVkRXYKK19fWk4zMFdlYkdlb2xvY2F0aW9uQ2xpZW50RDBFdgog
X19aTjIwV2ViQ29udGV4dE1lbnVDbGllbnQyMGNvbnRleHRNZW51RGVzdHJveWVkRXYKIF9fWk4y
MFdlYkNvbnRleHRNZW51Q2xpZW50RDBFdgogX19aTjEzV2ViRHJhZ0NsaWVudDIzZHJhZ0NvbnRy
b2xsZXJEZXN0cm95ZWRFdgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAzM2ViYzNkLi4wNDk4NTU0
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjAsNyArNjAsNyBAQAogI2ltcG9ydCAiV2ViRm9y
bURlbGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldlYkdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudC5oIgorI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKICNpbXBvcnQg
IldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViSFRNTFJlcHJl
c2VudGF0aW9uLmgiCiAjaW1wb3J0ICJXZWJIVE1MVmlld0ludGVybmFsLmgiCkBAIC03MDcsNyAr
NzA3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpsZWFrTWFpbFF1aXJrc1VzZXJTY3JpcHRQYXRoKCkK
ICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50
KHNlbGYpOwogICAgIHBhZ2VDbGllbnRzLnBsdWdpbkhhbHRlckNsaWVudCA9IG5ldyBXZWJQbHVn
aW5IYWx0ZXJDbGllbnQoc2VsZik7CiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKLSAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgPSBuZXcgV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KHNlbGYpOworICAgIHBhZ2VDbGllbnRzLmdlb2xv
Y2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHNlbGYpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmll
bnRhdGlvbkNsaWVudCA9IG5ldyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChzZWxmKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggODE1Y2MxOS4uMjBmYWJkZiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMS0xMCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50IHRvIEdlb2xvY2F0aW9uQ2xpZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNTkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcDogUmVuYW1lZCBmcm9tIFdlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmNwcC4KKyAgICAgICAgKFdl
Ykdlb2xvY2F0aW9uQ2xpZW50OjpXZWJHZW9sb2NhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6Z2VvbG9jYXRpb25EZXN0cm95ZWQpOgorICAgICAgICAoV2ViR2Vv
bG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25D
bGllbnQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFz
dFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5oOiBSZW5hbWVkIGZyb20gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzZXRF
bmFibGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAqIFdlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJv
ajoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJh
bWUpOgorCiAyMDEwLTExLTEwICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBiL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhhNTI2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdERMTC5o
IgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworV2ViR2VvbG9jYXRpb25DbGllbnQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50
KFdlYlZpZXcqIHdlYlZpZXcpCisgICAgOiBtX3dlYlZpZXcod2ViVmlldykKK3sKK30KKwordm9p
ZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Z2VvbG9jYXRpb25EZXN0cm95ZWQoKQoreworICAgIGRl
bGV0ZSB0aGlzOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5n
KCkKK3sKKyAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOworICAg
IGlmIChGQUlMRUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQor
ICAgICAgICByZXR1cm47CisgICAgcHJvdmlkZXItPnJlZ2lzdGVyV2ViVmlldyhtX3dlYlZpZXcu
Z2V0KCkpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQor
eworICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7CisgICAgaWYg
KEZBSUxFRChtX3dlYlZpZXctPmdlb2xvY2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVyKSkpCisgICAg
ICAgIHJldHVybjsKKyAgICBwcm92aWRlci0+dW5yZWdpc3RlcldlYlZpZXcobV93ZWJWaWV3Lmdl
dCgpKTsKK30KKworR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxh
c3RQb3NpdGlvbigpCit7CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAg
ICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOworICAgIGlmIChGQUlM
RUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uOwor
ICAgIGlmIChGQUlMRUQocHJvdmlkZXItPmxhc3RQb3NpdGlvbigmcG9zaXRpb24pKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNvcmUocG9zaXRpb24uZ2V0KCkpOworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI0MjJhZTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViR2VvbG9jYXRpb25DbGllbnRfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNsaWVudF9o
CisKKyNpbmNsdWRlICJDT01QdHIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ2xp
ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uOworfQorCitjbGFzcyBXZWJWaWV3OworCitjbGFzcyBXZWJHZW9sb2NhdGlvbkNsaWVudCA6
IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViR2Vv
bG9jYXRpb25DbGllbnQoV2ViVmlldyopOworCisgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9u
RGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hB
Y2N1cmFjeShib29sKSB7IH0KKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRp
b24qIGxhc3RQb3NpdGlvbigpOworCitwcml2YXRlOgorICAgIENPTVB0cjxXZWJWaWV3PiBtX3dl
YlZpZXc7Cit9OworCisjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25DbGllbnRfaApkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWFjZDZjLi4wMDAw
MDAwCi0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViS2l0RExMLmgiCi0jaW5jbHVkZSAi
V2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCi0KLSNpbmNsdWRlICJXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSAiV2ViVmlldy5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpXZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQoV2ViVmlldyogd2ViVmlldykKLSAgICA6IG1fd2ViVmlldyh3ZWJW
aWV3KQotewotfQotCi12b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6Z2VvbG9j
YXRpb25EZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi12b2lkIFdlYkdlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgQ09NUHRyPElX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKLSAgICBpZiAoRkFJTEVEKG1fd2ViVmll
dy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IHByb3ZpZGVyLT5yZWdpc3RlcldlYlZpZXcobV93ZWJWaWV3LmdldCgpKTsKLX0KLQotdm9pZCBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0b3BVcGRhdGluZygpCi17Ci0gICAgQ09N
UHRyPElXZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKLSAgICBpZiAoRkFJTEVEKG1f
d2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKLSAgICAgICAgcmV0dXJu
OwotICAgIHByb3ZpZGVyLT51bnJlZ2lzdGVyV2ViVmlldyhtX3dlYlZpZXcuZ2V0KCkpOwotfQot
Ci1HZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6Omxh
c3RQb3NpdGlvbigpCi17Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAg
ICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOwotICAgIGlmIChGQUlM
RUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQotICAgICAgICBy
ZXR1cm4gMDsKLSAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uOwot
ICAgIGlmIChGQUlMRUQocHJvdmlkZXItPmxhc3RQb3NpdGlvbigmcG9zaXRpb24pKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGNvcmUocG9zaXRpb24uZ2V0KCkpOwotI2Vsc2UKLSAg
ICByZXR1cm4gMDsKLSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBiL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGVkNzM0NTQuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBA
IC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudF9oCi0jZGVmaW5lIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudF9oCi0K
LSNpbmNsdWRlICJDT01QdHIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgR2VvbG9jYXRp
b25Qb3NpdGlvbjsKLX0KLQotY2xhc3MgV2ViVmlldzsKLQotY2xhc3MgV2ViR2VvbG9jYXRpb25D
b250cm9sbGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudCB7Ci1wdWJsaWM6Ci0gICAgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KFdlYlZp
ZXcqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpOwotICAgIHZp
cnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGlu
ZygpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgeyB9Ci0g
ICAgdmlydHVhbCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsK
LQotcHJpdmF0ZToKLSAgICBDT01QdHI8V2ViVmlldz4gbV93ZWJWaWV3OwotfTsKLQotI2VuZGlm
IC8vIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudF9oCmRpZmYgLS1naXQgYS9XZWJLaXQv
d2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvaiBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJv
ai9XZWJLaXQudmNwcm9qCmluZGV4IDk3NDA5NDcuLjQ3MWJhMjggMTAwNjQ0Ci0tLSBhL1dlYktp
dC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXQudmNwcm9qCkBAIC0xMjk2LDExICsxMjk2LDExIEBACiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0
XFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRc
V2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
V2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25DbGllbnQuaCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdjZTc4MTIuLjIwYzhkMTcgMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNDIs
NyArNDIsNyBAQAogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkVs
ZW1lbnRQcm9wZXJ0eUJhZy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCi0jaW5jbHVkZSAiV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25D
bGllbnQuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCkBAIC0yNTk0LDcg
KzI1OTQsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmluaXRXaXRoRnJh
bWUoCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNs
aWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5wbHVnaW5IYWx0ZXJDbGllbnQgPSBuZXcgV2Vi
UGx1Z2luSGFsdGVyQ2xpZW50KHRoaXMpOwogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCi0gICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50ID0gbmV3
IFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ2xpZW50cy5n
ZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKTsKICNlbmRp
ZgogICAgIG1fcGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73616</attachid>
            <date>2010-11-11 08:23:02 -0800</date>
            <delta_ts>2010-11-12 03:13:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49259-20101111162300.patch</filename>
            <type>text/plain</type>
            <size>56936</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTgyMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMTEtMTEgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVuYW1lIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCB0byBHZW9sb2NhdGlvbkNs
aWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5
MjU5CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRl
cjoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9HZW9sb2Nh
dGlvbkNsaWVudC5oOiBSZW5hbWVkIGZyb20gV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnQ6On5HZW9s
b2NhdGlvbkNsaWVudCk6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpHZW9sb2NhdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmg6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisKIDIwMTAtMTEtMTEgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgYnVpbGQgZml4IGFmdGVyIHI3MTgxNgpJbmRleDog
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCShyZXZpc2lvbiA3MTgyMykKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIxMDIsMTUgKzIxMDIsMTUgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL3BhZ2UvRnJhbWVUcmVlLmggXAogCVdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIFwKIAlX
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggXAotCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQuaCBcCi0JV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAg
XAotCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uLmNwcCBcCi0JV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uRXJyb3IuaCBcCiAJ
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmggXAorCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNs
aWVudC5oIFwKKwlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25FcnJvci5oIFwKKwlXZWJDb3JlL3Bh
Z2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBcCisJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
Q29udHJvbGxlci5oIFwKKwlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbi5oIFwKIAlX
ZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCBcCiAJV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKLQlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oIFwKIAlXZWJDb3JlL3BhZ2UvR2VvcG9zaXRpb24uaCBcCiAJV2ViQ29yZS9wYWdl
L0dyb3VwU2V0dGluZ3MuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA3MTgyMykKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjM4LDkgKzIyMzgsOSBAQAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVWaWV3Lmgn
LAogICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb24uY3BwJywKICAgICAgICAgICAgICdwYWdl
L0dlb2xvY2F0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb25DbGllbnQuaCcs
CiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oJywKLSAgICAgICAgICAgICdwYWdlL0dl
b2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0
aW9uRXJyb3IuaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uLmgnLAog
ICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCcsCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CShyZXZpc2lvbiA3MTgyMykKKysrIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBjb3B5
KQpAQCAtMTY4LDggKzE2OCw4IEBAIF9fWk43V2ViQ29yZTE2SW5zcGVjdG9yQmFja2VuZEMxRVBO
U18xOUkKIF9fWk43V2ViQ29yZTE2SW5zcGVjdG9yQmFja2VuZEMyRVBOU18xOUluc3BlY3RvckNv
bnRyb2xsZXJFCiBfX1pON1dlYkNvcmUxOEluamVjdGVkU2NyaXB0SG9zdEMxRVBOU18xOUluc3Bl
Y3RvckNvbnRyb2xsZXJFCiBfX1pON1dlYkNvcmUxOEluamVjdGVkU2NyaXB0SG9zdEMyRVBOU18x
OUluc3BlY3RvckNvbnRyb2xsZXJFCi1fX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxl
ckMxRVBOU180UGFnZUVQTlNfMjdHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRFCi1fX1pON1dl
YkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlckMyRVBOU180UGFnZUVQTlNfMjdHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnRFCitfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlckMx
RVBOU180UGFnZUVQTlNfMjdHZW9sb2NhdGlvbkNsaWVudEUKK19fWk43V2ViQ29yZTIxR2VvbG9j
YXRpb25Db250cm9sbGVyQzJFUE5TXzRQYWdlRVBOU18yN0dlb2xvY2F0aW9uQ2xpZW50RQogX19a
TjdXZWJDb3JlOFNldHRpbmdzQzFFUE5TXzRQYWdlRQogX19aTjdXZWJDb3JlOFNldHRpbmdzQzJF
UE5TXzRQYWdlRQogX19aTjdXZWJDb3JlMTVQcm9ncmVzc1RyYWNrZXJDMUV2CkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDcxODIzKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjMzOTYs
MTggKzIzMzk2LDE4IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCINCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0aW9uQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0aW9uQ29udHJv
bGxlci5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvbG9jYXRpb25Db250cm9sbGVy
LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4N
Ci0JCQk8RmlsZQ0KKwkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0
aW9uRXJyb3IuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzE4MjMpCisrKyBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDgyNCw5
ICs0ODI0LDkgQEAKIAkJQkM1M0RBQzIxMTQzMkVFRTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVy
U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUz
REFDMTExNDMyRUVFMDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuaCAqLzsgfTsKIAkJQkM1
M0RBQzUxMTQzMkZEOTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTNEQUM0MTE0MzJGRDkwMDBE
ODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5jcHAgKi87IH07CiAJCUJDNTNEQUM3MTE0MzMwNjQw
MDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1M0RBQzYxMTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBl
ci5jcHAgKi87IH07CisJCUJDNTZDQjIzMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1NkNCMjExMEQ1QUM4MDAw
QTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU2Q0IxQzEwRDVBQzgwMDBBNzdDNjQgLyogR2Vv
bG9jYXRpb25Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJQkM1NkNCMjIxMEQ1QUM4MDAwQTc3QzY0
IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1NkNCMUQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCUJDNTZDQjIzMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NTZDQjFFMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzU2Q0Iy
NDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NkNCMUYxMEQ1QUM4MDAwQTc3QzY0IC8q
IEdlb2xvY2F0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzU2Q0IyNTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1
NkNCMjAxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzU4MjNGNTBDMEE5OERG
MDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyogSlNI
VE1MRWxlbWVudEN1c3RvbS5jcHAgKi87IH07CkBAIC0xMDg0OSw5ICsxMDg0OSw5IEBACiAJCUJD
NTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RlYnVnV3JhcHBlclNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBw
ZXJTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZWJ1Z1dy
YXBwZXJTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUzREFDNjExNDMz
MDY0MDAwRDgxN0UgLyogSlNET01XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDNTZDQjFFMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbkNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU2Q0IxQzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9j
YXRpb25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTZDQjFEMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db250cm9sbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNTZDQjFFMTBENUFDODAwMEE3N0M2NCAvKiBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNTZDQjFGMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uRXJyb3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NkNCMjAxMEQ1QUM4MDAwQTc3QzY0IC8qIEdl
b2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU4MjNG
NDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjY5LDkgKzEzMjY5LDkgQEAKIAkJCQlGRTgwRDdC
NzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uY3BwICovLAogCQkJCUZFODBEN0I4MEU5
QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oICovLAogCQkJCUZFODBEN0I5MEU5QzFGMjUw
MDBENkY3NSAvKiBHZW9sb2NhdGlvbi5pZGwgKi8sCisJCQkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3
QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJQkM1NkNCMUMxMEQ1QUM4MDAwQTc3
QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJQkM1NkNCMUQxMEQ1QUM4
MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oICovLAotCQkJCUJDNTZDQjFFMTBE
NUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLywKIAkJCQlC
QzU2Q0IxRjEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25FcnJvci5oICovLAogCQkJCUJD
NTZDQjIwMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8sCiAJCQkJ
NTk2MjI5NzcxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAg
Ki8sCkBAIC0xOTY5OCw4ICsxOTY5OCw4IEBACiAJCQkJQkNFMDRDOEEwREFGRjdBMDAwN0EwRjQx
IC8qIEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4
NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwRDdDNjBFOUMx
RjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNTZDQjIz
MTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1NkNCMjIxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjQxMEQ1QUM4MDAw
QTc3QzY0IC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTZDQjI1
MTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1OTYyMjk3QTExMzNFRkUyMDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hl
LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNsaWVudC5oCShyZXZpc2lv
biA3MTgyMykJKGZyb20gV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5o
OjcxODIzKQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50X2gKKyNkZWZpbmUgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworCitjbGFz
cyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9p
ZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVw
ZGF0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7CisgICAg
Ly8gRklYTUU6IFRoZSBWMiBHZW9sb2NhdGlvbiBzcGVjaWZpY2F0aW9uIHByb3Bvc2VzIHRoYXQg
dGhpcyBwcm9wZXJ0eSBpcworICAgIC8vIHJlbmFtZWQuIFNlZSBodHRwOi8vd3d3LnczLm9yZy8y
MDA4L2dlb2xvY2F0aW9uL3RyYWNrL2lzc3Vlcy82CisgICAgLy8gV2Ugc2hvdWxkIHVwZGF0ZSBX
ZWJLaXQgdG8gcmVmbGVjdCB0aGlzIGlmIGFuZCB3aGVuIHRoZSBWMiBzcGVjaWZpY2F0aW9uCisg
ICAgLy8gaXMgcHVibGlzaGVkLgorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJh
Y3koYm9vbCkgPSAwOworICAgIHZpcnR1YWwgR2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0
aW9uKCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+R2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaApJbmRleDogV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ2xp
ZW50LmgJKHJldmlzaW9uIDcxODIzKQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE0ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50X2gKLSNkZWZpbmUgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKKyNpZm5kZWYgR2Vv
bG9jYXRpb25DbGllbnRfaAorI2RlZmluZSBHZW9sb2NhdGlvbkNsaWVudF9oCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIAotY2xhc3MgR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50IHsKK2NsYXNzIEdlb2xvY2F0aW9uQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKSA9IDA7CiAKQEAgLTQ0
LDkgKzQ0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR2VvbG9jYXRpb25Qb3NpdGlvbiogbGFz
dFBvc2l0aW9uKCkgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+R2VvbG9jYXRpb25D
b250cm9sbGVyQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+R2VvbG9jYXRpb25DbGllbnQoKSB7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudF9oCisjZW5kaWYgLy8gR2VvbG9jYXRpb25DbGllbnRfaApJbmRleDog
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDcxODIzKQorKysg
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDExICsyOSwxMSBAQAogCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
IAotI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIgorI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotR2VvbG9jYXRpb25D
b250cm9sbGVyOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXIoUGFnZSogcGFnZSwgR2VvbG9jYXRpb25D
b250cm9sbGVyQ2xpZW50KiBjbGllbnQpCitHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0
aW9uQ29udHJvbGxlcihQYWdlKiBwYWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xpZW50KQogICAg
IDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiB7CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCShyZXZpc2lvbiA3MTgyMykKKysrIFdlYkNvcmUvcGFn
ZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTQgKzM1LDE0
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50OworY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlvbkVycm9y
OwogY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xv
Y2F0aW9uQ29udHJvbGxlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgR2Vv
bG9jYXRpb25Db250cm9sbGVyKFBhZ2UqLCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQqKTsK
KyAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXIoUGFnZSosIEdlb2xvY2F0aW9uQ2xpZW50Kik7CiAg
ICAgfkdlb2xvY2F0aW9uQ29udHJvbGxlcigpOwogCiAgICAgdm9pZCBhZGRPYnNlcnZlcihHZW9s
b2NhdGlvbiosIGJvb2wgZW5hYmxlSGlnaEFjY3VyYWN5KTsKQEAgLTU1LDcgKzU1LDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKLSAgICBHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQqIG1fY2xpZW50OworICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBtX2NsaWVudDsK
IAogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKICAgICB0
eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEdlb2xvY2F0aW9uPiA+IE9ic2VydmVyc1NldDsKSW5kZXg6
IFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgJKHJldmlzaW9uIDcx
ODIzKQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudF9oCi0jZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dF9oCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsK
LQotY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRVcGRhdGluZygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAw
OwotICAgIC8vIEZJWE1FOiBUaGUgVjIgR2VvbG9jYXRpb24gc3BlY2lmaWNhdGlvbiBwcm9wb3Nl
cyB0aGF0IHRoaXMgcHJvcGVydHkgaXMKLSAgICAvLyByZW5hbWVkLiBTZWUgaHR0cDovL3d3dy53
My5vcmcvMjAwOC9nZW9sb2NhdGlvbi90cmFjay9pc3N1ZXMvNgotICAgIC8vIFdlIHNob3VsZCB1
cGRhdGUgV2ViS2l0IHRvIHJlZmxlY3QgdGhpcyBpZiBhbmQgd2hlbiB0aGUgVjIgc3BlY2lmaWNh
dGlvbgotICAgIC8vIGlzIHB1Ymxpc2hlZC4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGln
aEFjY3VyYWN5KGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIEdlb2xvY2F0aW9uUG9zaXRpb24qIGxh
c3RQb3NpdGlvbigpID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9u
IDcxODIzKQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMs
NyArMTQzLDcgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVudAogICAg
ICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDb250cm9sbGVy
KHRoaXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpKQogI2VuZGlmCiAjaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICAsIG1fZ2VvbG9jYXRpb25Db250cm9sbGVy
KGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuZ2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50KSkpCisgICAgLCBtX2dlb2xvY2F0aW9uQ29udHJvbGxl
cihhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25Db250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmdl
b2xvY2F0aW9uQ2xpZW50KSkpCiAjZW5kaWYKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQogICAgICwgbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmRldmljZU1vdGlvbkVuYWJsZWQoKSA/IG5ldyBEZXZpY2VNb3Rpb25Db250cm9sbGVyKHBhZ2VD
bGllbnRzLmRldmljZU1vdGlvbkNsaWVudCkgOiAwKQpAQCAtOTE5LDcgKzkxOSw3IEBAIFBhZ2U6
OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgLCBkcmFnQ2xpZW50KDApCiAgICAgLCBp
bnNwZWN0b3JDbGllbnQoMCkKICAgICAsIHBsdWdpbkhhbHRlckNsaWVudCgwKQotICAgICwgZ2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50KDApCisgICAgLCBnZW9sb2NhdGlvbkNsaWVudCgwKQog
ICAgICwgZGV2aWNlTW90aW9uQ2xpZW50KDApCiAgICAgLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCgwKQogICAgICwgc3BlZWNoSW5wdXRDbGllbnQoMCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gNzE4MjMpCisr
KyBXZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw4ICs1NCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBFZGl0b3JDbGllbnQ7CiAgICAgY2xhc3MgRm9j
dXNDb250cm9sbGVyOwogICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEdlb2xvY2F0aW9uQ2xp
ZW50OwogICAgIGNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlcjsKLSAgICBjbGFzcyBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQ7CiAgICAgY2xhc3MgSGFsdGFibGVQbHVnaW47CiAgICAgY2xh
c3MgSGlzdG9yeUl0ZW07CiAgICAgY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwpAQCAtMTA0LDcgKzEw
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIERyYWdDbGllbnQqIGRyYWdD
bGllbnQ7CiAgICAgICAgICAgICBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudDsKICAg
ICAgICAgICAgIFBsdWdpbkhhbHRlckNsaWVudCogcGx1Z2luSGFsdGVyQ2xpZW50OwotICAgICAg
ICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KiBnZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQ7CisgICAgICAgICAgICBHZW9sb2NhdGlvbkNsaWVudCogZ2VvbG9jYXRpb25DbGllbnQ7
CiAgICAgICAgICAgICBEZXZpY2VNb3Rpb25DbGllbnQqIGRldmljZU1vdGlvbkNsaWVudDsKICAg
ICAgICAgICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlvbkNsaWVu
dDsKICAgICAgICAgICAgIFJlZlB0cjxCYWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkQ2xpZW50
OwpJbmRleDogV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTgyMykKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMiBAQAorMjAxMC0xMS0xMSAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW5hbWUgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHRvIEdlb2xvY2F0aW9uQ2xp
ZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDky
NTkKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEw
LTExLTA4ICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAg
ICAgIFtFRkxdIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCBhZnRlciByNzE0OTYuCkluZGV4OiBXZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3MTgyMykKKysrIFdl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MzQ4LDggKzM0OCw4IEBACiAJCUJDMkU0NjRFMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU0
NjRDMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5tbSAqLzsgfTsKIAkJQkM1NDJDNDIw
RkQ3NzY2RjAwRDhBQjVEIC8qIFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU0MkM0MDBGRDc3
NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCAqLzsgfTsK
IAkJQkM1NDJDNDMwRkQ3NzY2RjAwRDhBQjVEIC8qIFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25D
YWNoaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM1NDJDNDEwRkQ3NzY2RjAwRDhBQjVEIC8qIFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNo
aW5nLm1tICovOyB9OwotCQlCQzdGODg0QjEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50LmggKi87IH07Ci0JCUJDN0Y4ODRDMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50Lm1tICovOyB9OworCQlCQzdGODg0QjEwQzg3NzVBMDBENjEz
M0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2Nh
dGlvbkNsaWVudC5oICovOyB9OworCQlCQzdGODg0QzEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQu
bW0gKi87IH07CiAJCUJDN0Y4ODlFMTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzdGODg5QzEwQzlEMzBDMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDN0Y4ODlGMTBD
OUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3Rjg4OUQxMEM5RDMwQzAwRDYxMzNE
IC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gKi87IH07CiAJCUJDN0Y4OEE1MTBDOUQ4OEIw
MEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4OEE0MTBDOUQ4OEIwMEQ2MTMz
RCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCAqLzsgfTsKQEAgLTY1OCw4ICs2
NTgsOCBAQAogCQlCQzJFNDY0QzBGRDhBOTY4MDBBOUQ5REUgLyogV2ViVmlld0RhdGEubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJWaWV3RGF0YS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NDJDNDAwRkQ3NzY2RjAwRDhBQjVEIC8qIFdl
YkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNTQyQzQxMEZENzc2NkYwMEQ4QUI1RCAvKiBXZWJEZWxlZ2F0
ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25DbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3Rjg4NEExMEM4Nzc1QTAwRDYxMzNEIC8q
IFdlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViR2VvbG9jYXRpb25DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDN0Y4ODlDMTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3Rjg4OUQxMEM5RDMwQzAwRDYx
MzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzdGODhBNDEwQzlEODhCMDBENjEzM0QgLyogV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTI5Niw4ICsxMjk2LDggQEAKIAkJCQk5MzE2MzNFRTBBRURGRkFFMDA2MkI5MkQgLyog
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0gKi8sCiAJCQkJOTM5MUYyNzMxMjFCMzhCRDAwRUJGN0U4
IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk5MzkxRjI3NDEyMUIzOEJE
MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKLQkJCQlCQzdGODg0
OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmggKi8s
Ci0JCQkJQkM3Rjg4NEExMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudC5tbSAqLywKKwkJCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25DbGllbnQuaCAqLywKKwkJCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0gKi8sCiAJCQkJNTE0OTRDRDQwQzdFQkRFMDAwNDE3OEM1IC8qIFdl
Ykljb25EYXRhYmFzZUNsaWVudC5oICovLAogCQkJCTUxNDk0Q0Q1MEM3RUJERTAwMDQxNzhDNSAv
KiBXZWJJY29uRGF0YWJhc2VDbGllbnQubW0gKi8sCiAJCQkJOUNFMUY4QTMwMkE1QzZGMzBFQ0Ey
QUNEIC8qIFdlYkltYWdlUmVuZGVyZXJGYWN0b3J5Lm0gKi8sCkBAIC0xNDgwLDcgKzE0ODAsNyBA
QAogCQkJCTkzOTgxMDZFMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzOTgxMDZGMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZVZpZXdJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwQUYwODI0QkYwMTAwOERGMDM4IC8qIFdl
YkZyYW1lVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0Y4ODRCMTBDODc3NUEw
MEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDN0Y4ODRCMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3Rjg4OUUxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Y4OEE1MTBDOUQ4OEIwMEQ2
MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzOTgxMDEyMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJIaXN0b3J5LmggaW4gSGVhZGVycyAq
LywKQEAgLTE4OTIsNyArMTg5Miw3IEBACiAJCQkJOTM5ODEwRjIwODI0QkYwMTAwOERGMDM4IC8q
IFdlYkZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMxNjMzRUYwQUVERkZBRTAwNjJCOTJE
IC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODExMDYw
ODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmlldy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUJD
N0Y4ODRDMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzdGODg0QzEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzdGODg5RjEwQzlEMzBDMDBE
NjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkz
OTgxMTEzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJIaXN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM5ODEwQkQwODI0QkYwMTAwOERGMDM4IC8qIFdlYkhpc3RvcnlJdGVtLm1tIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNzE4MjMpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEwLTExLTExICBKb2huIEtub3R0ZW5i
ZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQg
dG8gR2VvbG9jYXRpb25DbGllbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00OTI1OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25DbGllbnQuaDogUmVuYW1lZCBmcm9tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmguCisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNs
aWVudDo6d2ViVmlldyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5hYmxl
SGlnaEFjY3VyYWN5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5tbTogUmVuYW1lZCBmcm9tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50Lm1tLgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6
OldlYkdlb2xvY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojpn
ZW9sb2NhdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3Rh
cnRVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAgICAg
ICAqIFdlYktpdC5vcmRlcjoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6
dXNlc0RvY3VtZW50Vmlld3M6XSk6CisKIDIwMTAtMTEtMTAgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IFdl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViS2l0Lm9y
ZGVyCShyZXZpc2lvbiA3MTgyMykKKysrIFdlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCSh3b3JraW5n
IGNvcHkpCkBAIC05MCw4ICs5MCw4IEBAIF9fWk4yNFdlYkRhdGFiYXNlVHJhY2tlckNsaWVudDMw
c2hhcmVkV2UKIF9fWk4yNFdlYkRhdGFiYXNlVHJhY2tlckNsaWVudEMxRXYKIF9fWk4yNFdlYkRh
dGFiYXNlVHJhY2tlckNsaWVudEMyRXYKIF9fWkw0N1dlYktpdEluaXRpYWxpemVBcHBsaWNhdGlv
bkNhY2hlUGF0aElmTmVjZXNzYXJ5dgotX19aTjMwV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50QzFFUDdXZWJWaWV3Ci1fX1pOMzBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRDMkVQ
N1dlYlZpZXcKK19fWk4zMFdlYkdlb2xvY2F0aW9uQ2xpZW50QzFFUDdXZWJWaWV3CitfX1pOMzBX
ZWJHZW9sb2NhdGlvbkNsaWVudEMyRVA3V2ViVmlldwogX19aTjE1V2ViQ2hyb21lQ2xpZW50QzFF
UDdXZWJWaWV3CiBfX1pOMTVXZWJDaHJvbWVDbGllbnRDMkVQN1dlYlZpZXcKIF9fWk4yMFdlYkNv
bnRleHRNZW51Q2xpZW50QzFFUDdXZWJWaWV3CkBAIC03NDQsOCArNzQ0LDggQEAgX19aTjIwV2Vi
RnJhbWVMb2FkZXJDbGllbnQyMGZyYW1lTG9hZGVyRAogX19aTjIwV2ViRnJhbWVMb2FkZXJDbGll
bnREMEV2CiAtW1dlYkZyYW1lIGRlYWxsb2NdCiAtW1dlYkZyYW1lUHJpdmF0ZSBkZWFsbG9jXQot
X19aTjMwV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50MjBnZW9sb2NhdGlvbkRlc3Ryb3ll
ZEV2Ci1fX1pOMzBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnREMEV2CitfX1pOMzBXZWJH
ZW9sb2NhdGlvbkNsaWVudDIwZ2VvbG9jYXRpb25EZXN0cm95ZWRFdgorX19aTjMwV2ViR2VvbG9j
YXRpb25DbGllbnREMEV2CiBfX1pOMjBXZWJDb250ZXh0TWVudUNsaWVudDIwY29udGV4dE1lbnVE
ZXN0cm95ZWRFdgogX19aTjIwV2ViQ29udGV4dE1lbnVDbGllbnREMEV2CiBfX1pOMTNXZWJEcmFn
Q2xpZW50MjNkcmFnQ29udHJvbGxlckRlc3Ryb3llZEV2CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCShyZXZpc2lvbiA3MTgyMykJ
KGZyb20gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQuaDo3MTgyMykKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247Cit9CisKK0BjbGFz
cyBXZWJWaWV3OworCitjbGFzcyBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoV2ViVmlldyAqKTsKKyAgICBXZWJWaWV3ICp3
ZWJWaWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CisKKyAgICB2b2lkIGdlb2xvY2F0aW9uRGVz
dHJveWVkKCk7CisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CisgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKTsKKyAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSB7IH0KKworICAgIFdl
YkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOworCitwcml2YXRlOgor
ICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKK307CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCShyZXZpc2lvbiA3MTgyMykKKysrIFdl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjMsNyArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwpAQCAtMzEsOSArMzEsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIEBjbGFzcyBXZWJWaWV3OwogCi1jbGFzcyBXZWJHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50IHsKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
Okdlb2xvY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBXZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQoV2ViVmlldyAqKTsKKyAgICBXZWJHZW9sb2NhdGlvbkNsaWVudChXZWJWaWV3ICop
OwogICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KIAogICAgIHZv
aWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQkocmV2aXNpb24gNzE4MjMpCShmcm9t
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
Lm1tOjcxODIzKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCisKKyNpbXBvcnQgIldlYkdl
b2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQ6OldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQor
ICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCit7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7
Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpzdGFydFVwZGF0aW5n
KCkKK3sKKyAgICBbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gcmVnaXN0ZXJXZWJW
aWV3Om1fd2ViVmlld107Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
OjpzdG9wVXBkYXRpbmcoKQoreworICAgIFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblByb3ZpZGVy
XSB1bnJlZ2lzdGVyV2ViVmlldzptX3dlYlZpZXddOworfQorCitHZW9sb2NhdGlvblBvc2l0aW9u
KiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6Omxhc3RQb3NpdGlvbigpCit7CisjaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICByZXR1cm4gY29yZShbW21fd2Vi
VmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gbGFzdFBvc2l0aW9uXSk7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0JKHJldmlzaW9uIDcxODIzKQorKysgV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjMsMzQgKzIzLDM0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCisjaW1wb3J0
ICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogCiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpXZWJHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoV2ViVmlldyAqd2ViVmlldykKK1dlYkdlb2xvY2F0aW9u
Q2xpZW50OjpXZWJHZW9sb2NhdGlvbkNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogbV93
ZWJWaWV3KHdlYlZpZXcpCiB7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojpn
ZW9sb2NhdGlvbkRlc3Ryb3llZCgpCiB7CiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpzdGFydFVwZGF0aW5nKCkKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQogewogICAgIFtbbV93ZWJWaWV3IF9nZW9s
b2NhdGlvblByb3ZpZGVyXSByZWdpc3RlcldlYlZpZXc6bV93ZWJWaWV3XTsKIH0KIAotdm9pZCBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0b3BVcGRhdGluZygpCit2b2lkIFdlYkdl
b2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQogewogICAgIFtbbV93ZWJWaWV3IF9nZW9s
b2NhdGlvblByb3ZpZGVyXSB1bnJlZ2lzdGVyV2ViVmlldzptX3dlYlZpZXddOwogfQogCi1HZW9s
b2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6Omxhc3RQb3Np
dGlvbigpCitHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBv
c2l0aW9uKCkKIHsKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIHJl
dHVybiBjb3JlKFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25d
KTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAkocmV2aXNpb24gNzE4MjMpCisrKyBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0IDxXZWJDb3Jl
L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0g
ICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKLX0KLQotQGNsYXNzIFdlYlZpZXc7Ci0KLWNs
YXNzIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgewotcHVibGljOgotICAgIFdlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudChXZWJWaWV3ICopOwotICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVy
biBtX3dlYlZpZXc7IH0KLQotICAgIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKLSAgICB2
b2lkIHN0YXJ0VXBkYXRpbmcoKTsKLSAgICB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZvaWQg
c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIHsgfQotCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViVmlldyAqbV93
ZWJWaWV3OwotfTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lm1tCShyZXZpc2lvbiA3MTgyMykK
KysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1w
b3J0ICJXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCIKLQotI2ltcG9ydCAiV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCi0jaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudDo6V2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KFdlYlZpZXcgKndlYlZpZXcpCi0g
ICAgOiBtX3dlYlZpZXcod2ViVmlldykKLXsKLX0KLQotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsK
LX0KLQotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0VXBkYXRpbmco
KQotewotICAgIFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblByb3ZpZGVyXSByZWdpc3RlcldlYlZp
ZXc6bV93ZWJWaWV3XTsKLX0KLQotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6
OnN0b3BVcGRhdGluZygpCi17Ci0gICAgW1ttX3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJd
IHVucmVnaXN0ZXJXZWJWaWV3Om1fd2ViVmlld107Ci19Ci0KLUdlb2xvY2F0aW9uUG9zaXRpb24q
IFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6bGFzdFBvc2l0aW9uKCkKLXsKLSNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgIHJldHVybiBjb3JlKFtbbV93ZWJW
aWV3IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKLSNlbHNlCi0gICAgcmV0
dXJuIDA7Ci0jZW5kaWYKLX0KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiA3MTgy
MykKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02
MCw3ICs2MCw3IEBACiAjaW1wb3J0ICJXZWJGb3JtRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0
ICJXZWJGcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgot
I2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCisjaW1wb3J0ICJXZWJH
ZW9sb2NhdGlvbkNsaWVudC5oIgogI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJIVE1MUmVwcmVzZW50YXRpb24uaCIKICNpbXBvcnQgIldlYkhU
TUxWaWV3SW50ZXJuYWwuaCIKQEAgLTcwNyw3ICs3MDcsNyBAQCAtICh2b2lkKV9jb21tb25Jbml0
aWFsaXphdGlvbldpdGhGcmFtZU5hCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0g
bmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKICAgICBwYWdlQ2xpZW50cy5wbHVnaW5IYWx0
ZXJDbGllbnQgPSBuZXcgV2ViUGx1Z2luSGFsdGVyQ2xpZW50KHNlbGYpOwogI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0gICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChzZWxmKTsK
KyAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNs
aWVudChzZWxmKTsKICNlbmRpZgogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAg
cGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgV2ViRGV2aWNlT3JpZW50
YXRpb25DbGllbnQoc2VsZik7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNzE4MjMpCisrKyBXZWJLaXQvd2lu
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTExLTExICBK
b2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQgdG8gR2VvbG9jYXRpb25DbGllbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI1OQorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOiBSZW5hbWVkIGZyb20gV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuY3BwLgorICAgICAgICAo
V2ViR2VvbG9jYXRpb25DbGllbnQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKFdl
Ykdlb2xvY2F0aW9uQ2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
bkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojps
YXN0UG9zaXRpb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50Lmg6IFJlbmFtZWQgZnJvbSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudC5oLgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6OnNl
dEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisgICAgICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNw
cm9qOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhG
cmFtZSk6CisKIDIwMTAtMTEtMTAgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5kZXg6IFdlYktpdC93aW4v
V2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNp
b24gNzE4MjMpCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RWxlbWVudFByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKLSNpbmNsdWRlICJX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlv
bkNsaWVudC5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKICNpbmNsdWRl
ICJXZWJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKQEAgLTI1OTQs
NyArMjU5NCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6aW5pdFcKICAg
ICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRo
aXMpOwogICAgIHBhZ2VDbGllbnRzLnBsdWdpbkhhbHRlckNsaWVudCA9IG5ldyBXZWJQbHVnaW5I
YWx0ZXJDbGllbnQodGhpcyk7CiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
LSAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgPSBuZXcgV2ViR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50KHRoaXMpOworICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0
aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpOwogI2VuZGlmCiAgICAg
bV9wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwogCkluZGV4OiBXZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gNzE4
MjMpCShmcm9tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50LmNwcDo3MTgyMykKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0RExMLmgiCisjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpXZWJHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoV2ViVmlldyogd2ViVmlldykKKyAgICA6IG1fd2ViVmll
dyh3ZWJWaWV3KQoreworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6
Z2VvbG9jYXRpb25EZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdl
Ykdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RhcnRVcGRhdGluZygpCit7CisgICAgQ09N
UHRyPElXZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKKyAgICBpZiAoRkFJTEVEKG1f
d2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKKyAgICAgICAgcmV0dXJu
OworICAgIHByb3ZpZGVyLT5yZWdpc3RlcldlYlZpZXcobV93ZWJWaWV3LmdldCgpKTsKK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0b3BVcGRhdGluZygpCit7Cisg
ICAgQ09NUHRyPElXZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKKyAgICBpZiAoRkFJ
TEVEKG1fd2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKKyAgICAgICAg
cmV0dXJuOworICAgIHByb3ZpZGVyLT51bnJlZ2lzdGVyV2ViVmlldyhtX3dlYlZpZXcuZ2V0KCkp
OworfQorCitHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnQ6Omxhc3RQb3NpdGlvbigpCit7CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKKyAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOworICAgIGlm
IChGQUlMRUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0
aW9uOworICAgIGlmIChGQUlMRUQocHJvdmlkZXItPmxhc3RQb3NpdGlvbigmcG9zaXRpb24pKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNvcmUocG9zaXRpb24uZ2V0KCkpOworI2Vs
c2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHJldmlzaW9uIDcxODIzKQor
KysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDI0ICsyNSwyNCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RExMLmgiCi0jaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKIAogI2luY2x1ZGUg
IldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6Oldl
Ykdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJWaWV3KiB3ZWJWaWV3KQorV2ViR2VvbG9j
YXRpb25DbGllbnQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50KFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
OiBtX3dlYlZpZXcod2ViVmlldykKIHsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkKK3ZvaWQgV2ViR2VvbG9jYXRpb25DbGll
bnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkKIHsKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9p
ZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQordm9pZCBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZygpCiB7CiAgICAgQ09NUHRyPElXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKICAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+
Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0YQogICAgIHByb3ZpZGVyLT5yZWdpc3Rl
cldlYlZpZXcobV93ZWJWaWV3LmdldCgpKTsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQ6OnN0b3BVcGRhdGluZygpCit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojpz
dG9wVXBkYXRpbmcoKQogewogICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Qcm92aWRlcj4gcHJv
dmlkZXI7CiAgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmdlb2xvY2F0aW9uUHJvdmlkZXIoJnBy
b3ZpZGVyKSkpCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50OjpzdG8KICAgICBwcm92aWRlci0+dW5yZWdpc3RlcldlYlZpZXcobV93ZWJWaWV3Lmdl
dCgpKTsKIH0KIAotR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50OjpsYXN0UG9zaXRpb24oKQorR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRp
b25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKICAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOwpJ
bmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGll
bnQuaAkocmV2aXNpb24gNzE4MjMpCShmcm9tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmg6NzE4MjMpCisrKyBXZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50X2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKKworI2luY2x1
ZGUgIkNPTVB0ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uOworfQorCitjbGFzcyBXZWJWaWV3OworCitjbGFzcyBXZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IHsK
K3B1YmxpYzoKKyAgICBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoV2ViVmlldyopOwor
CisgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2
b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSB7IH0KKyAgICB2aXJ0
dWFsIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOworCitwcml2
YXRlOgorICAgIENPTVB0cjxXZWJWaWV3PiBtX3dlYlZpZXc7Cit9OworCisjZW5kaWYgLy8gV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDcxODIzKQorKysg
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywxMSArMjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudF9oCi0j
ZGVmaW5lIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudF9oCisjaWZuZGVmIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50X2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25DbGllbnRfaAogCiAjaW5jbHVk
ZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ2xpZW50Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwpAQCAtMzUsOSArMzUs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYlZpZXc7CiAKLWNsYXNzIFdlYkdl
b2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQgeworY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnQgOiBwdWJsaWMgV2Vi
Q29yZTo6R2VvbG9jYXRpb25DbGllbnQgewogcHVibGljOgotICAgIFdlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudChXZWJWaWV3Kik7CisgICAgV2ViR2VvbG9jYXRpb25DbGllbnQoV2ViVmll
dyopOwogCiAgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CiAgICAgdmly
dHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKQEAgLTQ5LDQgKzQ5LDQgQEAgcHJpdmF0ZToKICAg
ICBDT01QdHI8V2ViVmlldz4gbV93ZWJWaWV3OwogfTsKIAotI2VuZGlmIC8vIFdlYkdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudF9oCisjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25DbGllbnRfaApJ
bmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNzE4MjMpCisrKyBXZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJXZWJLaXRETEwuaCIKLSNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQuaCIKLQotI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIK
LSNpbmNsdWRlICJXZWJWaWV3LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dChXZWJWaWV3KiB3ZWJWaWV3KQotICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi17Ci19Ci0KLXZv
aWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgp
Ci17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0KLXZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50OjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJv
dmlkZXI+IHByb3ZpZGVyOwotICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblBy
b3ZpZGVyKCZwcm92aWRlcikpKQotICAgICAgICByZXR1cm47Ci0gICAgcHJvdmlkZXItPnJlZ2lz
dGVyV2ViVmlldyhtX3dlYlZpZXcuZ2V0KCkpOwotfQotCi12b2lkIFdlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudDo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBDT01QdHI8SVdlYkdlb2xvY2F0
aW9uUHJvdmlkZXI+IHByb3ZpZGVyOwotICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT5nZW9sb2Nh
dGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQotICAgICAgICByZXR1cm47Ci0gICAgcHJvdmlkZXIt
PnVucmVnaXN0ZXJXZWJWaWV3KG1fd2ViVmlldy5nZXQoKSk7Ci19Ci0KLUdlb2xvY2F0aW9uUG9z
aXRpb24qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6bGFzdFBvc2l0aW9uKCkKLXsK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgIENPTVB0cjxJV2ViR2Vv
bG9jYXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7Ci0gICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmdl
b2xvY2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVyKSkpCi0gICAgICAgIHJldHVybiAwOwotICAgIENP
TVB0cjxJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gcG9zaXRpb247Ci0gICAgaWYgKEZBSUxFRChw
cm92aWRlci0+bGFzdFBvc2l0aW9uKCZwb3NpdGlvbikpKQotICAgICAgICByZXR1cm4gMDsKLSAg
ICByZXR1cm4gY29yZShwb3NpdGlvbi5nZXQoKSk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2Vu
ZGlmCi19CkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgJKHJldmlzaW9uIDcxODIzKQorKysgV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaAotI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnRfaAotCi0jaW5jbHVkZSAiQ09NUHRyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAg
IGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247Ci19Ci0KLWNsYXNzIFdlYlZpZXc7Ci0KLWNsYXNz
IFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQgewotcHVibGljOgotICAgIFdlYkdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudChXZWJWaWV3Kik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0
cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwotICAgIHZpcnR1YWwg
dm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3Vy
YWN5KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiog
bGFzdFBvc2l0aW9uKCk7Ci0KLXByaXZhdGU6Ci0gICAgQ09NUHRyPFdlYlZpZXc+IG1fd2ViVmll
dzsKLX07Ci0KLSNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaApJbmRl
eDogV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oJKHJldmlzaW9uIDcxODIzKQor
KysgV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTEyOTYsMTEgKzEyOTYsMTEgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50LmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJH
ZW9sb2NhdGlvbkNsaWVudC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJHZW9s
b2NhdGlvbkNsaWVudC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73726</attachid>
            <date>2010-11-12 03:14:04 -0800</date>
            <delta_ts>2010-11-12 04:04:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49259-20101112111402.patch</filename>
            <type>text/plain</type>
            <size>56944</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTkwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMTEtMTEgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVuYW1lIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCB0byBHZW9sb2NhdGlvbkNs
aWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5
MjU5CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZW5hbWluZyBvbmx5LgorCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2Uv
R2VvbG9jYXRpb25DbGllbnQuaDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50
Ojp+R2VvbG9jYXRpb25DbGllbnQpOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6R2VvbG9j
YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5o
OgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAyMDEwLTExLTEyICBJbHlhIFNoZXJtYW4gIDxp
c2hlcm1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05V
bWFrZWZpbGUuYW0JKHJldmlzaW9uIDcxOTAxKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQko
d29ya2luZyBjb3B5KQpAQCAtMjEwMiwxNSArMjEwMiwxNSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaCBcCiAJV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgXAogCVdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBcCi0JV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudC5oIFwKLQlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcCBcCi0JV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oIFwKIAlXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwIFwKLQlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25FcnJv
ci5oIFwKIAlXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaCBcCisJV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ2xpZW50LmggXAorCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkVycm9yLmggXAorCVdl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIFwKKwlXZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb25Db250cm9sbGVyLmggXAorCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9u
LmggXAogCVdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIFwKIAlXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggXAotCVdlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvblBvc2l0aW9uLmggXAogCVdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5oIFwKIAlXZWJD
b3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAgXAogCVdlYkNvcmUvcGFnZS9Hcm91cFNldHRpbmdz
LmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHJldmlzaW9uIDcxOTAxKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTIyMzgsOSArMjIzOCw5IEBACiAgICAgICAgICAgICAncGFnZS9GcmFt
ZVZpZXcuaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ3BhZ2UvR2VvbG9jYXRpb24uaCcsCisgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbkNs
aWVudC5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgnLAotICAgICAgICAgICAg
J3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2Uv
R2VvbG9jYXRpb25FcnJvci5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uUG9zaXRp
b24uaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwJywK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNv
cmUub3JkZXIJKHJldmlzaW9uIDcxOTAxKQorKysgV2ViQ29yZS9XZWJDb3JlLm9yZGVyCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjgsOCArMTY4LDggQEAgX19aTjdXZWJDb3JlMTZJbnNwZWN0b3JCYWNr
ZW5kQzFFUE5TXzE5SQogX19aTjdXZWJDb3JlMTZJbnNwZWN0b3JCYWNrZW5kQzJFUE5TXzE5SW5z
cGVjdG9yQ29udHJvbGxlckUKIF9fWk43V2ViQ29yZTE4SW5qZWN0ZWRTY3JpcHRIb3N0QzFFUE5T
XzE5SW5zcGVjdG9yQ29udHJvbGxlckUKIF9fWk43V2ViQ29yZTE4SW5qZWN0ZWRTY3JpcHRIb3N0
QzJFUE5TXzE5SW5zcGVjdG9yQ29udHJvbGxlckUKLV9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25D
b250cm9sbGVyQzFFUE5TXzRQYWdlRVBOU18yN0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEUK
LV9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyQzJFUE5TXzRQYWdlRVBOU18yN0dl
b2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEUKK19fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250
cm9sbGVyQzFFUE5TXzRQYWdlRVBOU18yN0dlb2xvY2F0aW9uQ2xpZW50RQorX19aTjdXZWJDb3Jl
MjFHZW9sb2NhdGlvbkNvbnRyb2xsZXJDMkVQTlNfNFBhZ2VFUE5TXzI3R2VvbG9jYXRpb25DbGll
bnRFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3NDMUVQTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3NDMkVQTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUxNVByb2dyZXNzVHJhY2tlckMxRXYKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNzE5MDEpCisr
KyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzM5NiwxOCArMjMzOTYsMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIg0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvbG9jYXRpb25DbGllbnQuaCINCiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvbG9jYXRp
b25Db250cm9sbGVyLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCINCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXEdlb2xvY2F0aW9uQ29udHJvbGxlci5oIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KLQkJCTxGaWxlDQorCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
R2VvbG9jYXRpb25FcnJvci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3MTkwMSkKKysrIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC00ODI2LDkgKzQ4MjYsOSBAQAogCQlCQzUzREFDMjExNDMyRUVFMDAwRDgxN0UgLyogSlNEZWJ1
Z1dyYXBwZXJTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5oICovOyB9
OwogCQlCQzUzREFDNTExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1M0RBQzQxMTQz
MkZEOTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmNwcCAqLzsgfTsKIAkJQkM1M0RBQzcx
MTQzMzA2NDAwMEQ4MTdFIC8qIEpTRE9NV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUzREFDNjExNDMzMDY0MDAwRDgxN0UgLyogSlNE
T01XcmFwcGVyLmNwcCAqLzsgfTsKKwkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xv
Y2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzU2Q0IxRTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzU2Q0IyMTEw
RDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTZDQjFDMTBENUFDODAwMEE3N0M2
NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlCQzU2Q0IyMjEwRDVBQzgw
MDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU2Q0IxRDEwRDVBQzgwMDBBNzdDNjQgLyogR2Vv
bG9jYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDNTZDQjI0MTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU2Q0IxRjEwRDVBQzgwMDBB
NzdDNjQgLyogR2VvbG9jYXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDNTZDQjI1MTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzU2Q0IyMDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNTgyM0Y1
MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTgyM0Y0MEMwQTk4REYwMDUzRjFC
NSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTEwODUzLDkgKzEwODUzLDkg
QEAKIAkJQkM1M0RBQzExMTQzMkVFRTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVidWdXcmFwcGVyU2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTNEQUM0MTE0MzJGRDkwMDBEODE3RSAvKiBKU0Rl
YnVnV3JhcHBlclNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RlYnVnV3JhcHBlclNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTNE
QUM2MTE0MzMwNjQwMDBEODE3RSAvKiBKU0RPTVdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01XcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTZDQjFDMTBENUFDODAwMEE3N0M2NCAv
KiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM1NkNCMUQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM1NkNCMUUxMEQ1QUM4MDAwQTc3
QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NkNCMUYxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25FcnJv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU2Q0IyMDEwRDVBQzgwMDBBNzdD
NjQgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHZW9sb2NhdGlvblBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEVsZW1lbnRDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMyNzUsOSArMTMyNzUsOSBAQAogCQkJ
CUZFODBEN0I3MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJRkU4
MEQ3QjgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJRkU4MEQ3Qjkw
RTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKKwkJCQlCQzU2Q0IxRTEwRDVB
QzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQlCQzU2Q0IxQzEwRDVB
QzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQlCQzU2Q0Ix
RDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCi0JCQkJQkM1
NkNCMUUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oICov
LAogCQkJCUJDNTZDQjFGMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmggKi8s
CiAJCQkJQkM1NkNCMjAxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAq
LywKIAkJCQk1OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNh
Y2hlLmNwcCAqLywKQEAgLTE5NzA0LDggKzE5NzA0LDggQEAKIAkJCQlCQ0UwNEM4QTBEQUZGN0Ew
MDA3QTBGNDEgLyogR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjIyQThGRjEyMkM0
NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBE
N0M2MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzU2Q0IyMjEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzU2Q0IyMzEwRDVBQzgwMDBBNzdDNjQgLyogR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyNDEw
RDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1NkNCMjUxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU5NjIyOTdBMTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLApJbmRleDogV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ2xpZW50LmgJ
KHJldmlzaW9uIDcxODIzKQkoZnJvbSBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50Lmg6NzE4MjMpCisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25DbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnRfaAorI2RlZmluZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247
CisKK2NsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVkKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0g
MDsKKyAgICAvLyBGSVhNRTogVGhlIFYyIEdlb2xvY2F0aW9uIHNwZWNpZmljYXRpb24gcHJvcG9z
ZXMgdGhhdCB0aGlzIHByb3BlcnR5IGlzCisgICAgLy8gcmVuYW1lZC4gU2VlIGh0dHA6Ly93d3cu
dzMub3JnLzIwMDgvZ2VvbG9jYXRpb24vdHJhY2svaXNzdWVzLzYKKyAgICAvLyBXZSBzaG91bGQg
dXBkYXRlIFdlYktpdCB0byByZWZsZWN0IHRoaXMgaWYgYW5kIHdoZW4gdGhlIFYyIHNwZWNpZmlj
YXRpb24KKyAgICAvLyBpcyBwdWJsaXNoZWQuCisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhp
Z2hBY2N1cmFjeShib29sKSA9IDA7CisgICAgdmlydHVhbCBHZW9sb2NhdGlvblBvc2l0aW9uKiBs
YXN0UG9zaXRpb24oKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5HZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudF9oCkluZGV4OiBXZWJDb3JlL3Bh
Z2UvR2VvbG9jYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb25DbGllbnQuaAkocmV2aXNpb24gNzE4MjMpCisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTQgKzIzLDE0IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnRfaAotI2RlZmluZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaAorI2lm
bmRlZiBHZW9sb2NhdGlvbkNsaWVudF9oCisjZGVmaW5lIEdlb2xvY2F0aW9uQ2xpZW50X2gKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCi1jbGFz
cyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgeworY2xhc3MgR2VvbG9jYXRpb25DbGllbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpID0gMDsK
IApAQCAtNDQsOSArNDQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHZW9sb2NhdGlvblBvc2l0
aW9uKiBsYXN0UG9zaXRpb24oKSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5HZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvbkNs
aWVudCgpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKKyNlbmRpZiAvLyBHZW9sb2NhdGlvbkNsaWVudF9o
CkluZGV4OiBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gNzE5
MDEpCisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQogCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmgiCisjaW5j
bHVkZSAiR2VvbG9jYXRpb25DbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HZW9s
b2NhdGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29udHJvbGxlcihQYWdlKiBwYWdlLCBHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkKK0dlb2xvY2F0aW9uQ29udHJvbGxlcjo6
R2VvbG9jYXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIEdlb2xvY2F0aW9uQ2xpZW50KiBjbGll
bnQpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKSW5kZXg6
IFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmgJKHJldmlzaW9uIDcxOTAxKQorKysgV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwx
NCArMzUsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQ7CitjbGFzcyBHZW9sb2NhdGlvbkNsaWVudDsKIGNsYXNzIEdlb2xvY2F0
aW9uRXJyb3I7CiBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogY2xhc3MgUGFnZTsKIAogY2xh
c3MgR2VvbG9jYXRpb25Db250cm9sbGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoK
LSAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXIoUGFnZSosIEdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudCopOworICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlcihQYWdlKiwgR2VvbG9jYXRpb25DbGll
bnQqKTsKICAgICB+R2VvbG9jYXRpb25Db250cm9sbGVyKCk7CiAKICAgICB2b2lkIGFkZE9ic2Vy
dmVyKEdlb2xvY2F0aW9uKiwgYm9vbCBlbmFibGVIaWdoQWNjdXJhY3kpOwpAQCAtNTUsNyArNTUs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwotICAgIEdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudCogbV9jbGllbnQ7CisgICAgR2VvbG9jYXRpb25DbGllbnQqIG1f
Y2xpZW50OwogCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9u
OwogICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8R2VvbG9jYXRpb24+ID4gT2JzZXJ2ZXJzU2V0
OwpJbmRleDogV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAkocmV2
aXNpb24gNzE5MDEpCisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKLSNkZWZpbmUgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50X2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uOwotCi1jbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgewotcHVibGljOgot
ICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpID0gMDsKLQotICAgIHZpcnR1
YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKSA9IDA7Ci0gICAgLy8gRklYTUU6IFRoZSBWMiBHZW9sb2NhdGlvbiBzcGVjaWZpY2F0aW9u
IHByb3Bvc2VzIHRoYXQgdGhpcyBwcm9wZXJ0eSBpcwotICAgIC8vIHJlbmFtZWQuIFNlZSBodHRw
Oi8vd3d3LnczLm9yZy8yMDA4L2dlb2xvY2F0aW9uL3RyYWNrL2lzc3Vlcy82Ci0gICAgLy8gV2Ug
c2hvdWxkIHVwZGF0ZSBXZWJLaXQgdG8gcmVmbGVjdCB0aGlzIGlmIGFuZCB3aGVuIHRoZSBWMiBz
cGVjaWZpY2F0aW9uCi0gICAgLy8gaXMgcHVibGlzaGVkLgotICAgIHZpcnR1YWwgdm9pZCBzZXRF
bmFibGVIaWdoQWNjdXJhY3koYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgR2VvbG9jYXRpb25Qb3Np
dGlvbiogbGFzdFBvc2l0aW9uKCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+R2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50KCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaApJbmRleDogV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
cmV2aXNpb24gNzE5MDEpCisrKyBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0Myw3ICsxNDMsNyBAQCBQYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xp
ZW50CiAgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIoYWRvcHRQdHIobmV3IEluc3BlY3RvckNv
bnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50KSkpCiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgICwgbV9nZW9sb2NhdGlvbkNv
bnRyb2xsZXIoYWRvcHRQdHIobmV3IEdlb2xvY2F0aW9uQ29udHJvbGxlcih0aGlzLCBwYWdlQ2xp
ZW50cy5nZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQpKSkKKyAgICAsIG1fZ2VvbG9jYXRpb25D
b250cm9sbGVyKGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNs
aWVudHMuZ2VvbG9jYXRpb25DbGllbnQpKSkKICNlbmRpZgogI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCiAgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gbmV3IERldmljZU1vdGlvbkNvbnRyb2xs
ZXIocGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50KSA6IDApCkBAIC05MTksNyArOTE5LDcg
QEAgUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICAsIGRyYWdDbGllbnQoMCkK
ICAgICAsIGluc3BlY3RvckNsaWVudCgwKQogICAgICwgcGx1Z2luSGFsdGVyQ2xpZW50KDApCi0g
ICAgLCBnZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoMCkKKyAgICAsIGdlb2xvY2F0aW9uQ2xp
ZW50KDApCiAgICAgLCBkZXZpY2VNb3Rpb25DbGllbnQoMCkKICAgICAsIGRldmljZU9yaWVudGF0
aW9uQ2xpZW50KDApCiAgICAgLCBzcGVlY2hJbnB1dENsaWVudCgwKQpJbmRleDogV2ViQ29yZS9w
YWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiA3
MTkwMSkKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDggKzU0
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEVkaXRvckNsaWVudDsKICAgICBj
bGFzcyBGb2N1c0NvbnRyb2xsZXI7CiAgICAgY2xhc3MgRnJhbWU7CisgICAgY2xhc3MgR2VvbG9j
YXRpb25DbGllbnQ7CiAgICAgY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyOwotICAgIGNsYXNz
IEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDsKICAgICBjbGFzcyBIYWx0YWJsZVBsdWdpbjsK
ICAgICBjbGFzcyBIaXN0b3J5SXRlbTsKICAgICBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CkBAIC0x
MDQsNyArMTA0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgRHJhZ0NsaWVu
dCogZHJhZ0NsaWVudDsKICAgICAgICAgICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xp
ZW50OwogICAgICAgICAgICAgUGx1Z2luSGFsdGVyQ2xpZW50KiBwbHVnaW5IYWx0ZXJDbGllbnQ7
Ci0gICAgICAgICAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQqIGdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudDsKKyAgICAgICAgICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBnZW9sb2NhdGlv
bkNsaWVudDsKICAgICAgICAgICAgIERldmljZU1vdGlvbkNsaWVudCogZGV2aWNlTW90aW9uQ2xp
ZW50OwogICAgICAgICAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0
aW9uQ2xpZW50OwogICAgICAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0Zvcndh
cmRDbGllbnQ7CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxOTAxKQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEwLTExLTExICBKb2huIEtub3R0ZW5iZWx0ICA8amtu
b3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgdG8gR2VvbG9j
YXRpb25DbGllbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTI1OQorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTAtMTEtMDggIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+
CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZC4gQnVpbGQgZml4IGFmdGVyIHI3MTQ5Ni4KSW5k
ZXg6IFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDcxOTAx
KQorKysgV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDgsOCArMzQ4LDggQEAKIAkJQkMyRTQ2NEUwRkQ4QTk2ODAwQTlEOURFIC8qIFdl
YlZpZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMyRTQ2NEMwRkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZpZXdEYXRhLm1tICovOyB9OwogCQlC
QzU0MkM0MjBGRDc3NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTQy
QzQwMEZENzc2NkYwMEQ4QUI1RCAvKiBXZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5o
ICovOyB9OwogCQlCQzU0MkM0MzBGRDc3NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1l
bnRhdGlvbkNhY2hpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzU0MkM0MTBGRDc3NjZGMDBEOEFCNUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRh
dGlvbkNhY2hpbmcubW0gKi87IH07Ci0JCUJDN0Y4ODRCMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLzsgfTsKLQkJQkM3Rjg4NEMxMEM4Nzc1QTAwRDYxMzNE
IC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAvKiBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0gKi87IH07CisJCUJDN0Y4ODRCMTBDODc3
NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3Rjg4NDkxMEM4Nzc1QTAwRDYxMzNEIC8qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50LmggKi87IH07CisJCUJDN0Y4ODRDMTBDODc3NUEwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlv
bkNsaWVudC5tbSAqLzsgfTsKIAkJQkM3Rjg4OUUxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDN0Y4ODlDMTBDOUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3
Rjg4OUYxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGODg5RDEwQzlEMzBD
MDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSAqLzsgfTsKIAkJQkM3Rjg4QTUx
MEM5RDg4QjAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3Rjg4QTQxMEM5RDg4
QjAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oICovOyB9OwpAQCAt
NjU4LDggKzY1OCw4IEBACiAJCUJDMkU0NjRDMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdEYXRh
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU0MkM0MDBGRDc3NjZGMDBEOEFC
NUQgLyogV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NDJDNDEwRkQ3NzY2RjAwRDhBQjVEIC8qIFdl
YkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBX
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzdGODg0QTEwQzg3NzVBMDBE
NjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkM3Rjg4OUMxMEM5RDMwQzAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzdGODg5RDEwQzlE
MzBDMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0Y4OEE0MTBDOUQ4OEIwMEQ2MTMzRCAvKiBXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMjk2LDggKzEyOTYsOCBAQAogCQkJCTkzMTYzM0VFMEFFREZGQUUwMDYy
QjkyRCAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5tbSAqLywKIAkJCQk5MzkxRjI3MzEyMUIzOEJE
MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTkzOTFGMjc0
MTIxQjM4QkQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAotCQkJ
CUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnQuaCAqLywKLQkJCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25D
b250cm9sbGVyQ2xpZW50Lm1tICovLAorCQkJCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudC5oICovLAorCQkJCUJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbSAqLywKIAkJCQk1MTQ5NENENDBDN0VCREUwMDA0MTc4
QzUgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmggKi8sCiAJCQkJNTE0OTRDRDUwQzdFQkRFMDAw
NDE3OEM1IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5tbSAqLywKIAkJCQk5Q0UxRjhBMzAyQTVD
NkYzMEVDQTJBQ0QgLyogV2ViSW1hZ2VSZW5kZXJlckZhY3RvcnkubSAqLywKQEAgLTE0ODAsNyAr
MTQ4MCw3IEBACiAJCQkJOTM5ODEwNkUwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwNkYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1l
Vmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTBBRjA4MjRCRjAxMDA4REYw
MzggLyogV2ViRnJhbWVWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM3Rjg4NEIx
MEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQkM3Rjg4NEIxMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGODg5RTEwQzlEMzBDMDBENjEzM0QgLyog
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3Rjg4QTUxMEM5
RDg4QjAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM5ODEwMTIwODI0QkYwMTAwOERGMDM4IC8qIFdlYkhpc3RvcnkuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTg5Miw3ICsxODkyLDcgQEAKIAkJCQk5Mzk4MTBGMjA4MjRCRjAxMDA4
REYwMzggLyogV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzE2MzNFRjBBRURGRkFF
MDA2MkI5MkQgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk5
Mzk4MTEwNjA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVWaWV3Lm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQkM3Rjg4NEMxMEM4Nzc1QTAwRDYxMzNEIC8qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJDN0Y4ODRDMTBDODc3NUEwMEQ2MTMzRCAv
KiBXZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDN0Y4ODlGMTBD
OUQzMEMwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTM5ODExMTMwODI0QkYwMTAwOERGMDM4IC8qIFdlYkhpc3RvcnkubW0gaW4gU291cmNl
cyAqLywKIAkJCQk5Mzk4MTBCRDA4MjRCRjAxMDA4REYwMzggLyogV2ViSGlzdG9yeUl0ZW0ubW0g
aW4gU291cmNlcyAqLywKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTkwMSkKKysrIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEtMTEgIEpvaG4g
S25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudCB0byBHZW9sb2NhdGlvbkNsaWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjU5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5oOiBSZW5hbWVkIGZyb20gV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYkdlb2xv
Y2F0aW9uQ2xpZW50Ojp3ZWJWaWV3KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojpz
ZXRFbmFibGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50Lm1tOiBSZW5hbWVkIGZyb20gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0uCisgICAgICAgIChXZWJHZW9sb2NhdGlv
bkNsaWVudDo6V2ViR2VvbG9jYXRpb25DbGllbnQpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25D
bGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xp
ZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9w
VXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6
CisgICAgICAgICogV2ViS2l0Lm9yZGVyOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdy
b3VwTmFtZTp1c2VzRG9jdW1lbnRWaWV3czpdKToKKwogMjAxMC0xMS0xMCAgQmV0aCBEYWtpbiAg
PGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJ
bmRleDogV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJLaXQub3JkZXIJKHJldmlzaW9uIDcxOTAxKQorKysgV2ViS2l0L21hYy9XZWJLaXQub3JkZXIJ
KHdvcmtpbmcgY29weSkKQEAgLTkwLDggKzkwLDggQEAgX19aTjI0V2ViRGF0YWJhc2VUcmFja2Vy
Q2xpZW50MzBzaGFyZWRXZQogX19aTjI0V2ViRGF0YWJhc2VUcmFja2VyQ2xpZW50QzFFdgogX19a
TjI0V2ViRGF0YWJhc2VUcmFja2VyQ2xpZW50QzJFdgogX19aTDQ3V2ViS2l0SW5pdGlhbGl6ZUFw
cGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3Nhcnl2Ci1fX1pOMzBXZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnRDMUVQN1dlYlZpZXcKLV9fWk4zMFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudEMyRVA3V2ViVmlldworX19aTjMwV2ViR2VvbG9jYXRpb25DbGllbnRDMUVQN1dlYlZpZXcK
K19fWk4zMFdlYkdlb2xvY2F0aW9uQ2xpZW50QzJFUDdXZWJWaWV3CiBfX1pOMTVXZWJDaHJvbWVD
bGllbnRDMUVQN1dlYlZpZXcKIF9fWk4xNVdlYkNocm9tZUNsaWVudEMyRVA3V2ViVmlldwogX19a
TjIwV2ViQ29udGV4dE1lbnVDbGllbnRDMUVQN1dlYlZpZXcKQEAgLTc0NCw4ICs3NDQsOCBAQCBf
X1pOMjBXZWJGcmFtZUxvYWRlckNsaWVudDIwZnJhbWVMb2FkZXJECiBfX1pOMjBXZWJGcmFtZUxv
YWRlckNsaWVudEQwRXYKIC1bV2ViRnJhbWUgZGVhbGxvY10KIC1bV2ViRnJhbWVQcml2YXRlIGRl
YWxsb2NdCi1fX1pOMzBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQyMGdlb2xvY2F0aW9u
RGVzdHJveWVkRXYKLV9fWk4zMFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEQwRXYKK19f
Wk4zMFdlYkdlb2xvY2F0aW9uQ2xpZW50MjBnZW9sb2NhdGlvbkRlc3Ryb3llZEV2CitfX1pOMzBX
ZWJHZW9sb2NhdGlvbkNsaWVudEQwRXYKIF9fWk4yMFdlYkNvbnRleHRNZW51Q2xpZW50MjBjb250
ZXh0TWVudURlc3Ryb3llZEV2CiBfX1pOMjBXZWJDb250ZXh0TWVudUNsaWVudEQwRXYKIF9fWk4x
M1dlYkRyYWdDbGllbnQyM2RyYWdDb250cm9sbGVyRGVzdHJveWVkRXYKSW5kZXg6IFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJKHJldmlzaW9u
IDcxODIzKQkoZnJvbSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudC5oOjcxODIzKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK30K
KworQGNsYXNzIFdlYlZpZXc7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQgeworcHVibGlj
OgorICAgIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJWaWV3ICopOworICAgIFdl
YlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KKworICAgIHZvaWQgZ2VvbG9j
YXRpb25EZXN0cm95ZWQoKTsKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2b2lkIHN0
b3BVcGRhdGluZygpOworICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIHsgfQor
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7CisKK3By
aXZhdGU6CisgICAgV2ViVmlldyAqbV93ZWJWaWV3OworfTsKSW5kZXg6IFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDcxODIz
KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25DbGllbnQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CkBAIC0zMSw5ICsz
MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQGNsYXNzIFdlYlZpZXc7CiAKLWNsYXNzIFdl
Ykdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQgeworY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnQgOiBwdWJsaWMg
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnQgewogcHVibGljOgotICAgIFdlYkdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudChXZWJWaWV3ICopOworICAgIFdlYkdlb2xvY2F0aW9uQ2xpZW50KFdl
YlZpZXcgKik7CiAgICAgV2ViVmlldyAqd2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmlldzsgfQog
CiAgICAgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpOwpJbmRleDogV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCShyZXZpc2lvbiA3MTgy
MykJKGZyb20gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQubW06NzE4MjMpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCIKKworI2ltcG9y
dCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJXZWJWaWV3SW50
ZXJuYWwuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudDo6V2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KFdlYlZpZXcgKndl
YlZpZXcpCisgICAgOiBtX3dlYlZpZXcod2ViVmlldykKK3sKK30KKwordm9pZCBXZWJHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkKK3sKKyAgICBkZWxl
dGUgdGhpczsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0
VXBkYXRpbmcoKQoreworICAgIFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblByb3ZpZGVyXSByZWdp
c3RlcldlYlZpZXc6bV93ZWJWaWV3XTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgW1ttX3dlYlZpZXcgX2dlb2xvY2F0aW9u
UHJvdmlkZXJdIHVucmVnaXN0ZXJXZWJWaWV3Om1fd2ViVmlld107Cit9CisKK0dlb2xvY2F0aW9u
UG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6bGFzdFBvc2l0aW9uKCkK
K3sKKyNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgIHJldHVybiBjb3Jl
KFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKKyNlbHNl
CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQkocmV2aXNpb24gNzE4MjMpCisrKyBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywzNCArMjMsMzQgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0jaW1wb3J0ICJXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCIK
KyNpbXBvcnQgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAKICNpbXBvcnQgIldlYkdlb2xvY2F0
aW9uUG9zaXRpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6
OldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQorV2ViR2Vv
bG9jYXRpb25DbGllbnQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50KFdlYlZpZXcgKndlYlZpZXcpCiAg
ICAgOiBtX3dlYlZpZXcod2ViVmlldykKIHsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkKK3ZvaWQgV2ViR2VvbG9jYXRpb25D
bGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKCkKIHsKICAgICBkZWxldGUgdGhpczsKIH0KIAot
dm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQordm9p
ZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZygpCiB7CiAgICAgW1ttX3dlYlZp
ZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIHJlZ2lzdGVyV2ViVmlldzptX3dlYlZpZXddOwogfQog
Ci12b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RvcFVwZGF0aW5nKCkKK3Zv
aWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCiB7CiAgICAgW1ttX3dlYlZp
ZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIHVucmVnaXN0ZXJXZWJWaWV3Om1fd2ViVmlld107CiB9
CiAKLUdlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6
bGFzdFBvc2l0aW9uKCkKK0dlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50
OjpsYXN0UG9zaXRpb24oKQogewogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgcmV0dXJuIGNvcmUoW1ttX3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIGxhc3RQ
b3NpdGlvbl0pOwpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oCShyZXZpc2lvbiA3MTkwMSkKKysr
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
PFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50Lmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLSAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwotfQotCi1AY2xhc3MgV2ViVmll
dzsKLQotY2xhc3MgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IDogcHVibGljIFdlYkNv
cmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50KFdlYlZpZXcgKik7Ci0gICAgV2ViVmlldyAqd2ViVmlldygp
IHsgcmV0dXJuIG1fd2ViVmlldzsgfQotCi0gICAgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgp
OwotICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwotICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7Ci0g
ICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgeyB9Ci0KLSAgICBXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKLQotcHJpdmF0ZToKLSAgICBXZWJW
aWV3ICptX3dlYlZpZXc7Ci19OwpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQubW0JKHJldmlzaW9u
IDcxOTAxKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgIldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIgotCi0jaW1wb3J0
ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCIKLSNpbXBvcnQgIldlYlZpZXdJbnRl
cm5hbC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotV2ViR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50OjpXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQoV2ViVmlldyAqd2Vi
VmlldykKLSAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQotewotfQotCi12b2lkIFdlYkdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudDo6Z2VvbG9jYXRpb25EZXN0cm95ZWQoKQotewotICAgIGRlbGV0
ZSB0aGlzOwotfQotCi12b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RhcnRV
cGRhdGluZygpCi17Ci0gICAgW1ttX3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIHJlZ2lz
dGVyV2ViVmlldzptX3dlYlZpZXddOwotfQotCi12b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudDo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Q
cm92aWRlcl0gdW5yZWdpc3RlcldlYlZpZXc6bV93ZWJWaWV3XTsKLX0KLQotR2VvbG9jYXRpb25Q
b3NpdGlvbiogV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpsYXN0UG9zaXRpb24oKQot
ewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0gICAgcmV0dXJuIGNvcmUo
W1ttX3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIGxhc3RQb3NpdGlvbl0pOwotI2Vsc2UK
LSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlz
aW9uIDcxOTAxKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTYwLDcgKzYwLDcgQEAKICNpbXBvcnQgIldlYkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCIK
ICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkZyYW1lVmlld0ludGVy
bmFsLmgiCi0jaW1wb3J0ICJXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCIKKyNpbXBv
cnQgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkhUTUxSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9y
dCAiV2ViSFRNTFZpZXdJbnRlcm5hbC5oIgpAQCAtNzA3LDcgKzcwNyw3IEBAIC0gKHZvaWQpX2Nv
bW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmEKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JD
bGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwogICAgIHBhZ2VDbGllbnRzLnBs
dWdpbkhhbHRlckNsaWVudCA9IG5ldyBXZWJQbHVnaW5IYWx0ZXJDbGllbnQoc2VsZik7CiAjaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICBwYWdlQ2xpZW50cy5nZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
KHNlbGYpOworICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xv
Y2F0aW9uQ2xpZW50KHNlbGYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBXZWJEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudChzZWxmKTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTkwMSkKKysrIFdl
YktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAt
MTEtMTEgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudCB0byBHZW9sb2NhdGlvbkNsaWVudC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjU5CisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6IFJlbmFtZWQgZnJvbSBXZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5jcHAuCisg
ICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6V2ViR2VvbG9jYXRpb25DbGllbnQpOgorICAg
ICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25D
bGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25DbGllbnQuaDogUmVuYW1lZCBmcm9tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50LmguCisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNs
aWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KToKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dl
YktpdC52Y3Byb2o6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpp
bml0V2l0aEZyYW1lKToKKwogMjAxMC0xMS0xMCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpJbmRleDogV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CShyZXZpc2lvbiA3MTkwMSkKKysrIFdlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJFbGVtZW50UHJvcGVydHlCYWcuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgotI2lu
Y2x1ZGUgIldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIgorI2luY2x1ZGUgIldlYkdl
b2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgog
I2luY2x1ZGUgIldlYkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rvci5oIgpA
QCAtMjU5NCw3ICsyNTk0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojpp
bml0VwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JD
bGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMucGx1Z2luSGFsdGVyQ2xpZW50ID0gbmV3IFdl
YlBsdWdpbkhhbHRlckNsaWVudCh0aGlzKTsKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQotICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCA9IG5l
dyBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQodGhpcyk7CisgICAgcGFnZUNsaWVudHMu
Z2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7CiAjZW5k
aWYKICAgICBtX3BhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAKSW5kZXg6IFdlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCShyZXZp
c2lvbiA3MTgyMykJKGZyb20gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQuY3BwOjcxODIzKQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRETEwu
aCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaCIKKworI2luY2x1
ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJWaWV3LmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6
OldlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJWaWV3KiB3ZWJWaWV3KQorICAgIDog
bV93ZWJWaWV3KHdlYlZpZXcpCit7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50OjpnZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisK
K3ZvaWQgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpzdGFydFVwZGF0aW5nKCkKK3sK
KyAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOworICAgIGlmIChG
QUlMRUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQorICAgICAg
ICByZXR1cm47CisgICAgcHJvdmlkZXItPnJlZ2lzdGVyV2ViVmlldyhtX3dlYlZpZXcuZ2V0KCkp
OworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RvcFVwZGF0aW5n
KCkKK3sKKyAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOworICAg
IGlmIChGQUlMRUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQor
ICAgICAgICByZXR1cm47CisgICAgcHJvdmlkZXItPnVucmVnaXN0ZXJXZWJWaWV3KG1fd2ViVmll
dy5nZXQoKSk7Cit9CisKK0dlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudDo6bGFzdFBvc2l0aW9uKCkKK3sKKyNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQorICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7
CisgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmdlb2xvY2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVy
KSkpCisgICAgICAgIHJldHVybiAwOworICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bj4gcG9zaXRpb247CisgICAgaWYgKEZBSUxFRChwcm92aWRlci0+bGFzdFBvc2l0aW9uKCZwb3Np
dGlvbikpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY29yZShwb3NpdGlvbi5nZXQo
KSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CkluZGV4OiBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24g
NzE4MjMpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjQgKzI1LDI0IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJLaXRETEwuaCIKLSNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogCiAj
aW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudDo6V2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50KFdlYlZpZXcqIHdlYlZpZXcpCitX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6V2ViR2VvbG9jYXRpb25DbGllbnQoV2ViVmlldyogd2ViVmll
dykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQogewogfQogCi12b2lkIFdlYkdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudDo6Z2VvbG9jYXRpb25EZXN0cm95ZWQoKQordm9pZCBXZWJHZW9sb2Nh
dGlvbkNsaWVudDo6Z2VvbG9jYXRpb25EZXN0cm95ZWQoKQogewogICAgIGRlbGV0ZSB0aGlzOwog
fQogCi12b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RhcnRVcGRhdGluZygp
Cit2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKCkKIHsKICAgICBDT01Q
dHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOwogICAgIGlmIChGQUlMRUQobV93
ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQpAQCAtNTAsNyArNTAsNyBA
QCB2b2lkIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6c3RhCiAgICAgcHJvdmlkZXIt
PnJlZ2lzdGVyV2ViVmlldyhtX3dlYlZpZXcuZ2V0KCkpOwogfQogCi12b2lkIFdlYkdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudDo6c3RvcFVwZGF0aW5nKCkKK3ZvaWQgV2ViR2VvbG9jYXRpb25D
bGllbnQ6OnN0b3BVcGRhdGluZygpCiB7CiAgICAgQ09NUHRyPElXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyPiBwcm92aWRlcjsKICAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92
aWRlcigmcHJvdmlkZXIpKSkKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQ6OnN0bwogICAgIHByb3ZpZGVyLT51bnJlZ2lzdGVyV2ViVmlldyhtX3dl
YlZpZXcuZ2V0KCkpOwogfQogCi1HZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQ6Omxhc3RQb3NpdGlvbigpCitHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIHsKICNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Qcm92aWRlcj4gcHJv
dmlkZXI7CkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCShyZXZpc2lvbiA3MTgyMykJKGZyb20gV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaDo3MTgyMykKKysrIFdlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnRfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaAor
CisjaW5jbHVkZSAiQ09NUHRyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRy
b2xsZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb247Cit9CisKK2NsYXNzIFdlYlZpZXc7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXJD
bGllbnQgeworcHVibGljOgorICAgIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudChXZWJW
aWV3Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIHsgfQor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7
CisKK3ByaXZhdGU6CisgICAgQ09NUHRyPFdlYlZpZXc+IG1fd2ViVmlldzsKK307CisKKyNlbmRp
ZiAvLyBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRfaApJbmRleDogV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkocmV2aXNpb24gNzE4
MjMpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50X2gKLSNkZWZpbmUgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKKyNpZm5kZWYg
V2ViR2VvbG9jYXRpb25DbGllbnRfaAorI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNsaWVudF9oCiAK
ICNpbmNsdWRlICJDT01QdHIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25DbGllbnQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CkBAIC0z
NSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViVmlldzsKIAotY2xh
c3MgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Okdlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudCB7CitjbGFzcyBXZWJHZW9sb2NhdGlvbkNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50KFdlYlZpZXcqKTsKKyAgICBXZWJHZW9sb2NhdGlvbkNsaWVu
dChXZWJWaWV3Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwpAQCAtNDksNCArNDksNCBAQCBwcml2
YXRlOgogICAgIENPTVB0cjxXZWJWaWV3PiBtX3dlYlZpZXc7CiB9OwogCi0jZW5kaWYgLy8gV2Vi
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50X2gKKyNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvbkNs
aWVudF9oCkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MTkwMSkKKysr
IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYktpdERMTC5oIgotI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudC5oIgotCi0jaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIgotI2luY2x1ZGUgIldlYlZpZXcuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLVdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudDo6V2ViR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50KFdlYlZpZXcqIHdlYlZpZXcpCi0gICAgOiBtX3dlYlZpZXcod2ViVmlldykKLXsK
LX0KLQotdm9pZCBXZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQ6Omdlb2xvY2F0aW9uRGVz
dHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBXZWJHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQotewotICAgIENPTVB0cjxJV2ViR2VvbG9j
YXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7Ci0gICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmdlb2xv
Y2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVyKSkpCi0gICAgICAgIHJldHVybjsKLSAgICBwcm92aWRl
ci0+cmVnaXN0ZXJXZWJWaWV3KG1fd2ViVmlldy5nZXQoKSk7Ci19Ci0KLXZvaWQgV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQotewotICAgIENPTVB0cjxJV2Vi
R2VvbG9jYXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7Ci0gICAgaWYgKEZBSUxFRChtX3dlYlZpZXct
Pmdlb2xvY2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVyKSkpCi0gICAgICAgIHJldHVybjsKLSAgICBw
cm92aWRlci0+dW5yZWdpc3RlcldlYlZpZXcobV93ZWJWaWV3LmdldCgpKTsKLX0KLQotR2VvbG9j
YXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50OjpsYXN0UG9zaXRp
b24oKQotewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0gICAgQ09NUHRy
PElXZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKLSAgICBpZiAoRkFJTEVEKG1fd2Vi
Vmlldy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgQ09NUHRyPElXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbjsKLSAgICBpZiAo
RkFJTEVEKHByb3ZpZGVyLT5sYXN0UG9zaXRpb24oJnBvc2l0aW9uKSkpCi0gICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBjb3JlKHBvc2l0aW9uLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IDA7Ci0jZW5kaWYKLX0KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25Db250cm9sbGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnQuaAkocmV2aXNpb24gNzE5MDEp
CisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudF9oCi0jZGVmaW5lIFdlYkdlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudF9oCi0KLSNpbmNsdWRlICJDT01QdHIuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0gICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKLX0KLQotY2xhc3MgV2ViVmlldzsK
LQotY2xhc3MgV2ViR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
Okdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgV2ViR2VvbG9jYXRp
b25Db250cm9sbGVyQ2xpZW50KFdlYlZpZXcqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2Nh
dGlvbkRlc3Ryb3llZCgpOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVI
aWdoQWNjdXJhY3koYm9vbCkgeyB9Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKLQotcHJpdmF0ZToKLSAgICBDT01QdHI8V2ViVmlldz4g
bV93ZWJWaWV3OwotfTsKLQotI2VuZGlmIC8vIFdlYkdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dF9oCkluZGV4OiBXZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagkocmV2aXNpb24g
NzE5MDEpCisrKyBXZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTI5NiwxMSArMTI5NiwxMSBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnQuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBw
b3J0XFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0XFdlYkdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYkNvcmVTdXBwb3J0
XFdlYkdlb2xvY2F0aW9uQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>