<?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>79624</bug_id>
          
          <creation_ts>2012-02-26 22:07:28 -0800</creation_ts>
          <short_desc>Extract Supplementable base class from Page and Navigator</short_desc>
          <delta_ts>2012-02-26 22:33:52 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565318</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-26 22:07:28 -0800</bug_when>
    <thetext>Extract Supplementable base class from Page and Navigator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565320</commentid>
    <comment_count>1</comment_count>
      <attachid>128951</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-26 22:08:40 -0800</bug_when>
    <thetext>Created attachment 128951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565328</commentid>
    <comment_count>2</comment_count>
      <attachid>128951</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-26 22:19:09 -0800</bug_when>
    <thetext>Comment on attachment 128951
Patch

r=me assuming green bots.
Maybe typedef-ing NavigatorSupplement and PageSupplement will help to minimize the diff and
introducing future subclasses like NavigatorSupplement : public Supplement&lt;Navigator&gt; {};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565330</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-26 22:20:38 -0800</bug_when>
    <thetext>I was kind of hoping we could avoid having typedefs or new subclasses.  It would certainly make the diff smaller though...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565331</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-26 22:20:45 -0800</bug_when>
    <thetext>Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565332</commentid>
    <comment_count>5</comment_count>
      <attachid>128951</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-26 22:23:39 -0800</bug_when>
    <thetext>Comment on attachment 128951
Patch

Attachment 128951 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11633768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565339</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-26 22:33:52 -0800</bug_when>
    <thetext>Committed r108958: &lt;http://trac.webkit.org/changeset/108958&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128951</attachid>
            <date>2012-02-26 22:08:40 -0800</date>
            <delta_ts>2012-02-26 22:23:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79624-20120226220838.patch</filename>
            <type>text/plain</type>
            <size>54245</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODk1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBACisyMDEyLTAyLTI2ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXh0cmFjdCBTdXBwbGVtZW50YWJs
ZSBiYXNlIGNsYXNzIGZyb20gUGFnZSBhbmQgTmF2aWdhdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlJ2xsIHVzZSB0aGlzIHBhdHRlcm4gYWdhaW4g
c29vbiBmb3IgU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogTW9kdWxlcy9n
YW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9y
R2FtZXBhZDo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVw
YWQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKToKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmg6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JNZWRpYVN0cmVhbTo6d2Via2l0R2V0VXNlck1lZGlhKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm92
aWRlRGV2aWNlTW90aW9uVG8pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKToKKyAg
ICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKToKKyAgICAgICAgKiBkb20vRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbSk6CisgICAgICAgICogbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnByb3ZpZGVOb3RpZmljYXRpb24pOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRv
dyk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaDoKKyAgICAgICAgKE5hdmlnYXRvcik6CisgICAgICAg
ICogcGFnZS9OYXZpZ2F0b3JTdXBwbGVtZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdl
L05hdmlnYXRvclN1cHBsZW1lbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChQ
YWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VTdXBwbGVtZW50LmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwYWdlL1BhZ2VTdXBwbGVtZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9TcGVl
Y2hJbnB1dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlU3BlZWNoSW5wdXRUbyk6Cisg
ICAgICAgICogcGFnZS9TcGVlY2hJbnB1dC5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5w
dXQ6OmZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlN1cHBsZW1lbnQ6On5TdXBwbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN1cHBsZW1l
bnQ6OnByb3ZpZGVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50Ojpmcm9tKToKKyAg
ICAgICAgKFN1cHBsZW1lbnRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN1cHBsZW1lbnRhYmxl
Ojpwcm92aWRlU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50YWJsZTo6
cmVxdWlyZVN1cHBsZW1lbnQpOgorCiAyMDEyLTAyLTI2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgc2hvdWxkIGxp
dmUgaW4gaXRzIG93biBmaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTA4
OTU0KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEwMzcsMTMgKzEwMzcsMTEgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvTmF2aWdh
dG9yLmNwcAogICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKICAgICBwYWdlL05hdmlnYXRvclJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcAotICAgIHBhZ2UvTmF2aWdhdG9yU3VwcGxlbWVudC5j
cHAKICAgICBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcAogICAgIHBhZ2UvUGFnZS5jcHAKICAg
ICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAK
ICAgICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAotICAgIHBhZ2UvUGFnZVN1cHBsZW1lbnQuY3Bw
CiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2Uu
Y3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEwODk1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI3ODIsOCArMjc4Miw2IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyLmggXAotCVNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yU3VwcGxlbWVudC5jcHAgXAot
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yU3VwcGxlbWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9P
cmlnaW5BY2Nlc3NFbnRyeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIFwKQEAg
LTI3OTQsOCArMjc5Miw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCBc
Ci0JU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5jcHAgXAotCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKQEAgLTMzNTAs
NiArMzM0Niw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTFZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NTTEtleUdlbmVy
YXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TeXN0ZW1UaW1lLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvQmFzZTY0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CYXNlNjQuaCBc
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDEwODk1NCkKKysrIFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTEwMDYsMTIgKzEwMDYsMTAgQEAgU09VUkNFUyAr
PSBcCiAgICAgcGFnZS9OYXZpZ2F0b3IuY3BwIFwKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3Bw
IFwKICAgICBwYWdlL05hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcCBcCi0gICAg
cGFnZS9OYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCBcCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRy
eS5jcHAgXAogICAgIHBhZ2UvUGFnZS5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcCBcCiAg
ICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKLSAgICBwYWdlL1BhZ2VTdXBwbGVt
ZW50LmNwcCBcCiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCiAgICAgcGFnZS9Q
ZXJmb3JtYW5jZS5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDg5NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTIyMyw3ICsyMjMsNiBAQAogICAgICAgICAg
ICAgJ3BhZ2UvUGFnZS5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cC5oJywKICAgICAg
ICAgICAgICdwYWdlL1BhZ2VTZXJpYWxpemVyLmgnLAotICAgICAgICAgICAgJ3BhZ2UvUGFnZVN1
cHBsZW1lbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgnLAog
ICAgICAgICAgICAgJ3BhZ2UvUHJpbnRDb250ZXh0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uaCcsCkBAIC0yOTUsNiArMjk0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9TZWFyY2hQb3B1cE1lbnUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1N5c3RlbVRpbWUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vVGhlbWUuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vVGhlbWVUeXBlcy5oJywKQEAgLTI2ODIsOCArMjY4Miw2IEBA
CiAgICAgICAgICAgICAncGFnZS9OYXZpZ2F0b3JCYXNlLmgnLAogICAgICAgICAgICAgJ3BhZ2Uv
TmF2aWdhdG9yUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdwYWdl
L05hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmgnLAotICAgICAgICAgICAgJ3BhZ2Uv
TmF2aWdhdG9yU3VwcGxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ3BhZ2UvTmF2aWdhdG9yU3Vw
cGxlbWVudC5oJywKICAgICAgICAgICAgICdwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5oJywKICAgICAgICAgICAgICdwYWdl
L1BhZ2UuY3BwJywKQEAgLTI2OTEsNyArMjY4OSw2IEBACiAgICAgICAgICAgICAncGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWRE
ZWZlcnJlci5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCcsCi0gICAg
ICAgICAgICAncGFnZS9QYWdlU3VwcGxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVZpc2liaWxpdHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
JywKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLApJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAkocmV2aXNp
b24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdh
bWVwYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIE5hdmlnYXRvckdhbWVw
YWQ6On5OYXZpZ2F0b3JHYW1lcGFkKCkKIE5hdmlnYXRvckdhbWVwYWQqIE5hdmlnYXRvckdhbWVw
YWQ6OmZyb20oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWUsICgiTmF2aWdhdG9yR2FtZXBhZCIpKTsKLSAgICBOYXZpZ2F0
b3JHYW1lcGFkKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yR2FtZXBhZCo+KE5h
dmlnYXRvclN1cHBsZW1lbnQ6OmZyb20obmF2aWdhdG9yLCBuYW1lKSk7CisgICAgTmF2aWdhdG9y
R2FtZXBhZCogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvckdhbWVwYWQqPihTdXBw
bGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBuYW1lKSk7CiAgICAgaWYgKCFzdXBw
bGVtZW50KSB7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgTmF2aWdhdG9yR2FtZXBhZCgpOwog
ICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBuYW1lLCBhZG9wdFB0cihzdXBwbGVtZW50KSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JH
YW1lcGFkLmgJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE0ICsyOCwxNCBA
QAogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKLSNpbmNsdWRlICJOYXZpZ2F0b3JTdXBwbGVtZW50
LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBHYW1lcGFkTGlzdDsKIGNsYXNzIE5hdmlnYXRvcjsKIAotY2xhc3MgTmF2aWdhdG9y
R2FtZXBhZCA6IHB1YmxpYyBOYXZpZ2F0b3JTdXBwbGVtZW50IHsKK2NsYXNzIE5hdmlnYXRvckdh
bWVwYWQgOiBwdWJsaWMgU3VwcGxlbWVudDxOYXZpZ2F0b3I+IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5OYXZpZ2F0b3JHYW1lcGFkKCk7CiAgICAgc3RhdGljIE5hdmlnYXRvckdhbWVwYWQqIGZy
b20oTmF2aWdhdG9yKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gMTA4
OTQ0KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBOYXZpZ2F0
b3JHZW9sb2NhdGlvbjo6d2lsbERldGFjaFBhZwogTmF2aWdhdG9yR2VvbG9jYXRpb24qIE5hdmln
YXRvckdlb2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckdlb2xvY2F0aW9u
IikpOwotICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8
TmF2aWdhdG9yR2VvbG9jYXRpb24qPihOYXZpZ2F0b3JTdXBwbGVtZW50Ojpmcm9tKG5hdmlnYXRv
ciwgbmFtZSkpOworICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8TmF2aWdhdG9yR2VvbG9jYXRpb24qPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20o
bmF2aWdhdG9yLCBuYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIHN1cHBs
ZW1lbnQgPSBuZXcgTmF2aWdhdG9yR2VvbG9jYXRpb24obmF2aWdhdG9yLT5mcmFtZSgpKTsKICAg
ICAgICAgcHJvdmlkZVRvKG5hdmlnYXRvciwgbmFtZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIE5hdmlnYXRvckdlb2xvY2F0aW9uX2gKIAog
I2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCi0jaW5jbHVkZSAiTmF2aWdhdG9yU3VwcGxl
bWVudC5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEdlb2xvY2F0aW9uOwog
Y2xhc3MgTmF2aWdhdG9yOwogCi1jbGFzcyBOYXZpZ2F0b3JHZW9sb2NhdGlvbiA6IHB1YmxpYyBO
YXZpZ2F0b3JTdXBwbGVtZW50LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworY2xhc3MgTmF2
aWdhdG9yR2VvbG9jYXRpb24gOiBwdWJsaWMgU3VwcGxlbWVudDxOYXZpZ2F0b3I+LCBwdWJsaWMg
RE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgogICAgIHZpcnR1YWwgfk5hdmlnYXRvckdlb2xv
Y2F0aW9uKCk7CiAgICAgc3RhdGljIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBmcm9tKE5hdmlnYXRv
ciopOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JN
ZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDEwODk0NCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgTmF2aWdhdG9yTWVkaWFTdHJl
YW06OndlYmtpdEdldFVzZXIKICAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjaykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVXNlck1lZGlhQ29udHJvbGxlciogdXNlck1lZGlhID0gVXNlck1lZGlhQ29u
dHJvbGxlcjo6ZnJvbShuYXZpZ2F0b3ItPmZyYW1lKCkpOworICAgIFVzZXJNZWRpYUNvbnRyb2xs
ZXIqIHVzZXJNZWRpYSA9IFVzZXJNZWRpYUNvbnRyb2xsZXI6OmZyb20obmF2aWdhdG9yLT5mcmFt
ZSgpID8gbmF2aWdhdG9yLT5mcmFtZSgpLT5wYWdlKCkgOiAwKTsKICAgICBpZiAoIXVzZXJNZWRp
YSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDcgKzUyLDcgQEAgUGFzc093blB0cjxVc2VyTWVkaWFDb250cm9sbGVyPiBV
c2VyTWVkaQogCiB2b2lkIHByb3ZpZGVVc2VyTWVkaWFUbyhQYWdlKiBwYWdlLCBVc2VyTWVkaWFD
bGllbnQqIGNsaWVudCkKIHsKLSAgICBQYWdlU3VwcGxlbWVudDo6cHJvdmlkZVRvKHBhZ2UsIFVz
ZXJNZWRpYUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIFVzZXJNZWRpYUNvbnRyb2xsZXI6
OmNyZWF0ZShjbGllbnQpKTsKKyAgICBVc2VyTWVkaWFDb250cm9sbGVyOjpwcm92aWRlVG8ocGFn
ZSwgVXNlck1lZGlhQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgVXNlck1lZGlhQ29udHJv
bGxlcjo6Y3JlYXRlKGNsaWVudCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYUNvbnRyb2xsZXIuaAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDE2ICsyNywxMyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUg
IlBhZ2VTdXBwbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgRnJhbWU7Ci1jbGFzcyBQYWdlOwotCi1jbGFzcyBVc2VyTWVkaWFDb250
cm9sbGVyIDogcHVibGljIFBhZ2VTdXBwbGVtZW50IHsKK2NsYXNzIFVzZXJNZWRpYUNvbnRyb2xs
ZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CiBwdWJsaWM6CiAgICAgflVzZXJNZWRpYUNv
bnRyb2xsZXIoKTsKIApAQCAtNDYsOCArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFz
c093blB0cjxVc2VyTWVkaWFDb250cm9sbGVyPiBjcmVhdGUoVXNlck1lZGlhQ2xpZW50Kik7CiAg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKLSAgICBzdGF0
aWMgVXNlck1lZGlhQ29udHJvbGxlciogZnJvbShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PFVzZXJNZWRpYUNvbnRyb2xsZXIqPihQYWdlU3VwcGxlbWVudDo6ZnJvbShmcmFtZSwg
c3VwcGxlbWVudE5hbWUoKSkpOyB9Ci0gICAgc3RhdGljIFVzZXJNZWRpYUNvbnRyb2xsZXIqIGZy
b20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VXNlck1lZGlhQ29udHJvbGxlcio+
KFBhZ2VTdXBwbGVtZW50Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0
YXRpYyBVc2VyTWVkaWFDb250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PFVzZXJNZWRpYUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2Us
IHN1cHBsZW1lbnROYW1lKCkpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgVXNlck1lZGlhQ29udHJv
bGxlcihVc2VyTWVkaWFDbGllbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDg5NTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjU3MTAs
MTQgKzI1NzEwLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxOYXZpZ2F0b3JTdXBwbGVtZW50
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI1NzU0LDE0
ICsyNTc0Niw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcUGFnZVN1cHBsZW1lbnQuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VTdXBwbGVtZW50LmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZVZpc2li
aWxpdHlTdGF0ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTA4OTU0
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzUyLDYgKzMzNTIsNyBAQAogCQk5NzVDQTJBMjEzMDM2NzlEMDBF
OTlBRDkgLyogSlNDcnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3NUNBMkEwMTMwMzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oICovOyB9Owog
CQk5NzYyN0I4RDE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2MjdC
OEIxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCAqLzsg
fTsKIAkJOTc2MjdCOEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzYy
N0I4QzE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzYyN0I5ODE0
RkI1NDI0MDAyQ0RDQTEgLyogU3VwcGxlbWVudGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NjI3Qjk3MTRGQjU0MjQwMDJDRENBMSAvKiBTdXBw
bGVtZW50YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk3NjY1MDEzMTQ0RkFBNDIwMEY2QkI1MSAvKiBFdmVudEZhY3RvcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NjY1MDExMTQ0RkFBNDIw
MEY2QkI1MSAvKiBFdmVudEZhY3RvcnkuaCAqLzsgfTsKIAkJOTc2NjUwNEYxNDRGQkZGRTAwRjZC
QjUxIC8qIEV2ZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzY2NTA0RTE0NEZCRkZFMDBGNkJCNTEgLyogRXZlbnRGYWN0b3J5LmNw
cCAqLzsgfTsKIAkJOTc2N0NFMEIxNDVBQkMxMzAwNUU2NERCIC8qIEV4Y2VwdGlvbkhlYWRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NjdDRTA5
MTQ1QUJDMTIwMDVFNjREQiAvKiBFeGNlcHRpb25IZWFkZXJzLmggKi87IH07CkBAIC0zNDY2LDgg
KzM0NjcsNiBAQAogCQk5N0MwNzg1MDExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdDMDc4NEYxMTY1
RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCAqLzsgfTsKIAkJOTdDNDcxREIxMkY5MjVCRDAw
ODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0M0NzFEOTEyRjkyNUJDMDA4NjM1NEIgLyogQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCAqLzsgfTsKIAkJOTdDNDcxREMxMkY5MjVCRDAwODYzNTRC
IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTdDNDcxREExMkY5MjVCRDAwODYzNTRCIC8qIENvbnRlbnRTZWN1
cml0eVBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTk3Q0MzQUUyMTRFOEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3Q0MzQUUw
MTRFOEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCAqLzsgfTsKLQkJOTdD
QzNBRTMxNEU4RTRBMjAwODk0OTg4IC8qIE5hdmlnYXRvclN1cHBsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3Q0MzQUUxMTRFOEU0QTIwMDg5
NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdEMkFEMDMxNEI4MjNBNjAwOTNERjMyIC8qIERPTVdp
bmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3RDJBRDAxMTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5jcHAg
Ki87IH07CiAJCTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEMkFEMDIx
NEI4MjNBNjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdEQ0UyMDExMDgwN0M3NTAwNTdEMzk0
IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3RENFMUZGMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJv
bGxlci5jcHAgKi87IH07CkBAIC0zNTkxLDggKzM1OTAsNiBAQAogCQlBNzE1RTY1MzEzNEJCQkVD
MDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAv
KiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRB
QzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdD
b250cm9sbGVyTWFjLm1tICovOyB9OwotCQlBNzFFMDgzNzE0RTNDRUFGMDA2QTQ2MTkgLyogUGFn
ZVN1cHBsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTcxRTA4MzUxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCAqLzsg
fTsKLQkJQTcxRTA4MzgxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzFFMDgzNjE0RTNDRUFG
MDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZv
cm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3M0Y5
NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyog
Um91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91
bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDIzNyw2ICsxMDIzNCw3IEBA
CiAJCTk3NUNBMkEwMTMwMzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0NyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NzYyN0I4QjE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzYyN0I4
QzE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc2MjdCOTcxNEZCNTQyNDAwMkNEQ0ExIC8q
IFN1cHBsZW1lbnRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1cHBs
ZW1lbnRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NjY1MDExMTQ0RkFB
NDIwMEY2QkI1MSAvKiBFdmVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXZlbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NjY1
MDRFMTQ0RkJGRkUwMEY2QkI1MSAvKiBFdmVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc2N0NFMDkxNDVBQkMxMjAwNUU2NERCIC8qIEV4Y2VwdGlvbkhlYWRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uSGVhZGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzNTUsOCArMTAzNTMsNiBAQAogCQk5N0Mx
RjU1MjEyMjg1NUNCMDBFREU2MTYgLyogSFRNTFRva2VuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEhUTUxUb2tlbi5oOyBwYXRoID0gcGFyc2VyL0hUTUxUb2tlbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0M0NzFEOTEyRjkyNUJDMDA4NjM1NEIgLyogQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3QzQ3MURBMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3kuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudFNlY3VyaXR5UG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3Q0MzQUUwMTRFOEU0QTIwMDg5NDk4OCAv
KiBOYXZpZ2F0b3JTdXBwbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5hdmlnYXRvclN1cHBsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5N0NDM0FFMTE0RThFNEEyMDA4OTQ5ODggLyogTmF2aWdhdG9yU3VwcGxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JTdXBwbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3RDJBRDAxMTRCODIzQTYwMDkzREYzMiAvKiBE
T01XaW5kb3dQcm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBET01XaW5kb3dQcm9wZXJ0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
RDJBRDAyMTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01XaW5kb3dQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5N0RDRTFGRjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRy
b2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlzdG9yeUNv
bnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0OTAsOCArMTA0
ODYsNiBAQAogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9s
bGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0Nv
bnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFB
RkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTcxRTA4MzUxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VTdXBwbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTcxRTA4MzYxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBw
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VTdXBwbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRC
RSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjczLDggKzE1MjY3LDYgQEAKIAkJCQk5NzMwQkUx
NDE0RUYyODZCMDBERjA2QjkgLyogTmF2aWdhdG9yUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuY3Bw
ICovLAogCQkJCTk3MzBCRTE1MTRFRjI4NkIwMERGMDZCOSAvKiBOYXZpZ2F0b3JSZWdpc3RlclBy
b3RvY29sSGFuZGxlci5oICovLAogCQkJCTk3MzBCRTE2MTRFRjI4NkIwMERGMDZCOSAvKiBOYXZp
Z2F0b3JSZWdpc3RlclByb3RvY29sSGFuZGxlci5pZGwgKi8sCi0JCQkJOTdDQzNBRTAxNEU4RTRB
MjAwODk0OTg4IC8qIE5hdmlnYXRvclN1cHBsZW1lbnQuY3BwICovLAotCQkJCTk3Q0MzQUUxMTRF
OEU0QTIwMDg5NDk4OCAvKiBOYXZpZ2F0b3JTdXBwbGVtZW50LmggKi8sCiAJCQkJMDAxNDYyODgx
MDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCAqLywKIAkJCQkwMDE0NjI4
OTEwM0NEMURFMDAwQjIwREIgLyogT3JpZ2luQWNjZXNzRW50cnkuaCAqLywKIAkJCQk2NUZFQTg2
ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi8sCkBAIC0xNTI4NSw4ICsxNTI3Nyw2IEBA
CiAJCQkJN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5o
ICovLAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAg
Ki8sCiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8s
Ci0JCQkJQTcxRTA4MzUxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCAqLywK
LQkJCQlBNzFFMDgzNjE0RTNDRUFGMDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuaCAqLywKIAkJ
CQlGRkQ1Qjk3NzEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8s
CiAJCQkJRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCAq
LywKIAkJCQk4QTg0NEQwMTExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuY3BwICovLApA
QCAtMTk5NjksNiArMTk5NTksNyBAQAogCQkJCTRCMzA0M0M2MEFFMDM3MDMwMEE4MjY0NyAvKiBT
b3VuZC5oICovLAogCQkJCUY1ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAvKiBTU0xLZXlHZW5lcmF0
b3IuaCAqLywKIAkJCQk5M0IyRDgxNTBGOTkyMEQyMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRp
b24uaCAqLywKKwkJCQk5NzYyN0I5NzE0RkI1NDI0MDAyQ0RDQTEgLyogU3VwcGxlbWVudGFibGUu
aCAqLywKIAkJCQk5M0U2MkQ5OTA5ODVGNDE2MDBFMUI1RTMgLyogU3lzdGVtVGltZS5oICovLAog
CQkJCUJDRTY1RDMxMEVBRDEyMTEwMDdFNDUzMyAvKiBUaGVtZS5jcHAgKi8sCiAJCQkJQkNFNjU4
RkUwRUE5MjQ4QTAwN0U0NTMzIC8qIFRoZW1lLmggKi8sCkBAIC0yMzM2NCw3ICsyMzM1NSw2IEBA
CiAJCQkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3MTE0NjA0MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdFNEExMjYxNEY0QzVENDAwODcwRTQzIC8qIE5h
dmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5N0ND
M0FFMzE0RThFNEEyMDA4OTQ5ODggLyogTmF2aWdhdG9yU3VwcGxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyOEQyMTRDMTIx
MzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzQyOCw3ICsyMzQxOCw2IEBACiAJCQkJRjM4MjA4OTUxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VS
dW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDc0MkU1MTM0MzYzM0MwMDUzMUJD
MiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUU2NUND
MTM2NjFFREMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTcxRTA4MzgxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTI4NEFFMTEwNDQ3RDQ1MDBFQUVCNTIgLyogUGFnZVRyYW5zaXRpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxS
ZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGRDVCOTdCMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzODg1LDYgKzIzODc0LDcg
QEAKIAkJCQkxQThGNkIwMjBEQjUzMDA2MDAxREI3OTQgLyogU3Vic3RpdHV0ZVJlc291cmNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0IyRDgxNjBGOTkyMEQyMDA2QUU2QjIgLyogU3VkZGVuVGVy
bWluYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QzA3ODUwMTE2NUQ1QkUwMDNBMzJFRiAv
KiBTdWZmaXhUcmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzYyN0I5ODE0RkI1NDI0MDAyQ0RD
QTEgLyogU3VwcGxlbWVudGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NzU1OEM2MTNCNEE1
N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTYyQzEyMTdEMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY1MjUsNyArMjY1MTUsNiBAQAogCQkJCUUxMjcxOUNB
MEVFRUMyMTMwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3MTE0NjAzMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5N0U0QTEyNzE0RjRDNUQ3MDA4NzBFNDMgLyogTmF2aWdhdG9yUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTdDQzNBRTIxNEU4
RTRBMjAwODk0OTg4IC8qIE5hdmlnYXRvclN1cHBsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5QzI3RjA1MTM4RDI4QzEwMDc5QjdFMiAvKiBOZXR3
b3JrUmVzb3VyY2VzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTdGQTYxQjBEREEzQkJF
MDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
NjU3Myw3ICsyNjU2Miw2IEBACiAJCQkJRjM4MjA4OTQxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VS
dW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTQxMzQzNjMzQzAwNTMx
QkMyIC8qIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzFF
NjVDRTEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTcxRTA4MzcxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxMjg0QUVBMTA0NDdERUUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlv
bkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTFFQ0MyMEM5MUM5MDQwMERDMjU1QiAv
KiBQYWdlVVJMUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZGRDVCOTdBMTM1Q0M5Nzgw
MEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNp
b24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNyArMTUwLDcgQEAgYm9vbCBEZXZpY2VNb3Rpb25D
b250cm9sbGVyOjppc0FjdGl2ZUF0KAogCiB2b2lkIHByb3ZpZGVEZXZpY2VNb3Rpb25UbyhQYWdl
KiBwYWdlLCBEZXZpY2VNb3Rpb25DbGllbnQqIGNsaWVudCkKIHsKLSAgICBQYWdlU3VwcGxlbWVu
dDo6cHJvdmlkZVRvKHBhZ2UsIERldmljZU1vdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1l
KCksIERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShjbGllbnQpKTsKKyAgICBEZXZpY2VN
b3Rpb25Db250cm9sbGVyOjpwcm92aWRlVG8ocGFnZSwgRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6
c3VwcGxlbWVudE5hbWUoKSwgRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6Y3JlYXRlKGNsaWVudCkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlTW90aW9uQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDcgKzI3LDcgQEAKICNkZWZpbmUgRGV2aWNlTW90aW9uQ29udHJvbGxlcl9oCiAKICNpbmNsdWRl
ICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJQYWdlU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5o
PgogCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERldmljZU1v
dGlvbkRhdGE7CiBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7CiAKLWNsYXNzIERldmljZU1vdGlv
bkNvbnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1cHBsZW1lbnQgeworY2xhc3MgRGV2aWNlTW90aW9u
Q29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKIHB1YmxpYzoKICAgICB+RGV2
aWNlTW90aW9uQ29udHJvbGxlcigpOwogCkBAIC01NCw4ICs1NCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQogCiAgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKLSAgICBzdGF0aWMg
RGV2aWNlTW90aW9uQ29udHJvbGxlciogZnJvbShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PERldmljZU1vdGlvbkNvbnRyb2xsZXIqPihQYWdlU3VwcGxlbWVudDo6ZnJvbShmcmFt
ZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9Ci0gICAgc3RhdGljIERldmljZU1vdGlvbkNvbnRyb2xs
ZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlTW90aW9uQ29u
dHJvbGxlcio+KFBhZ2VTdXBwbGVtZW50Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsg
fQorICAgIHN0YXRpYyBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PERldmljZU1vdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBh
Z2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQogICAgIHN0YXRpYyBib29sIGlz
QWN0aXZlQXQoUGFnZSopOwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDEwODk0NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTIsNyArMTUyLDcgQEAgYm9vbCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmlzQWN0aQogCiB2b2lkIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKFBhZ2Uq
IHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgUGFnZVN1cHBs
ZW1lbnQ6OnByb3ZpZGVUbyhwYWdlLCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBs
ZW1lbnROYW1lKCksIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHBhZ2UsIGNs
aWVudCkpOworICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cHJvdmlkZVRvKHBhZ2Us
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpjcmVhdGUocGFnZSwgY2xpZW50KSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmgJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJfaAogCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiUGFnZVN1cHBsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRl
ZFNldC5oPgpAQCAtMzYsOSArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7Ci1jbGFzcyBQ
YWdlOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1
cHBsZW1lbnQgeworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIFN1
cHBsZW1lbnQ8UGFnZT4gewogcHVibGljOgogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIoKTsKIApAQCAtNTgsOCArNTcsNyBAQCBwdWJsaWM6CiAgICAgRGV2aWNlT3JpZW50YXRpb25D
bGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOwotICAgIHN0YXRpYyBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oRnJhbWUqIGZyYW1lKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihQYWdlU3VwcGxlbWVudDo6ZnJvbShm
cmFtZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9Ci0gICAgc3RhdGljIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqPihQYWdlU3VwcGxlbWVudDo6ZnJvbShwYWdlLCBzdXBwbGVt
ZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBm
cm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkp
OyB9CiAgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CiAKIHByaXZhdGU6CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDcgKzY1LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBOb3RpZmljYXRpb25Db250cm9sbAogCiB2
b2lkIHByb3ZpZGVOb3RpZmljYXRpb24oUGFnZSogcGFnZSwgTm90aWZpY2F0aW9uUHJlc2VudGVy
KiBjbGllbnQpCiB7Ci0gICAgUGFnZVN1cHBsZW1lbnQ6OnByb3ZpZGVUbyhwYWdlLCBOb3RpZmlj
YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBOb3RpZmljYXRpb25Db250cm9sbGVy
OjpjcmVhdGUocGFnZSwgY2xpZW50KSk7CisgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6cHJv
dmlkZVRvKHBhZ2UsIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIE5v
dGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShwYWdlLCBjbGllbnQpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmgJKHJldmlzaW9uIDEwODk0NCkKKysrIFNv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwyNCArMjgsMjIgQEAKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQogCi0jaW5jbHVkZSAiUGFnZVN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7Ci1jbGFzcyBQ
YWdlOwogCi1jbGFzcyBOb3RpZmljYXRpb25Db250cm9sbGVyIDogcHVibGljIFBhZ2VTdXBwbGVt
ZW50IHsKK2NsYXNzIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQ
YWdlPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZpY2F0aW9uQ29udHJvbGxlcik7
CiBwdWJsaWM6CiAgICAgfk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKTsKIAogICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgTm90aWZpY2F0
aW9uUHJlc2VudGVyKik7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVu
dE5hbWUoKTsKLSAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ29udHJvbGxlciogZnJvbShGcmFtZSog
ZnJhbWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIqPihQYWdl
U3VwcGxlbWVudDo6ZnJvbShmcmFtZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9Ci0gICAgc3RhdGlj
IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8Tm90aWZpY2F0aW9uQ29udHJvbGxlcio+KFBhZ2VTdXBwbGVtZW50Ojpmcm9tKHBhZ2Us
IHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRpYyBOb3RpZmljYXRpb25Db250cm9sbGVy
KiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsg
fQogICAgIHN0YXRpYyBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudEZyb20oUGFnZSopOwog
CiAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTA4OTQ0KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjMs
NiArNDYzLDExIEBAIHZvaWQgRE9NV2luZG93OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cmkKICAg
ICBtX3NlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47CiB9CiAKK1BhZ2UqIERPTVdpbmRv
dzo6cGFnZSgpCit7CisgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOwor
fQorCiB2b2lkIERPTVdpbmRvdzo6ZnJhbWVEZXN0cm95ZWQoKQogewogICAgIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6ZnJhbWVEZXN0cm95ZWQoKTsKQEAgLTE0OTQsMTAgKzE0OTksMTAgQEAg
Ym9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQQogICAgICAgICBhZGRCZWZv
cmVVbmxvYWRFdmVudExpc3RlbmVyKHRoaXMpOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCiAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25F
dmVudCkgewotICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9
IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20oZnJhbWUoKSkpCisgICAgICAgIGlmIChEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6
ZnJvbShwYWdlKCkpKQogICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7
CiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0
aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShmcmFtZSgpKSkKKyAg
ICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICAgICAgY29udHJv
bGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiAgICAgfQogI2VuZGlmCkBAIC0xNTIxLDEwICsxNTI2
LDEwIEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnMKICAgICAgICAg
cmVtb3ZlQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlbW90aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKGZyYW1lKCkpKQorICAgICAg
ICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxp
c3RlbmVyKHRoaXMpOwogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20o
ZnJhbWUoKSkpCisgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAg
ICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgpA
QCAtMTU3OSw5ICsxNTg0LDkgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVu
ZXJzKAogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20oZnJhbWUoKSkpCisg
ICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25D
b250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbExp
c3RlbmVycyh0aGlzKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250
cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKGZyYW1lKCkpKQorICAg
IGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVt
b3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgTm90aWZpY2F0
aW9uQ2VudGVyOworICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAg
Y2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC00
MDAsNiArNDAxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IERPTVdpbmRvdyhGcmFtZSopOwogCisgICAgICAgIFBhZ2UqIHBhZ2UoKTsKKwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBPVkVSUklERTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5jcHAJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsMTcgKzUxLDYgQEAgTmF2aWdh
dG9yOjp+TmF2aWdhdG9yKCkKIHsKIH0KIAotdm9pZCBOYXZpZ2F0b3I6OnByb3ZpZGVTdXBwbGVt
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgUGFzc093blB0cjxOYXZpZ2F0b3JTdXBwbGVt
ZW50PiBzdXBwbGVtZW50KQotewotICAgIEFTU0VSVCghbV9zdXBwbGltZW50cy5nZXQobmFtZS5p
bXBsKCkpKTsKLSAgICBtX3N1cHBsaW1lbnRzLnNldChuYW1lLmltcGwoKSwgc3VwcGxlbWVudCk7
Ci19Ci0KLU5hdmlnYXRvclN1cHBsZW1lbnQqIE5hdmlnYXRvcjo6cmVxdWlyZVN1cHBsZW1lbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBtX3N1cHBsaW1lbnRzLmdl
dChuYW1lLmltcGwoKSk7Ci19Ci0KIC8vIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCB3
ZSBuZWVkIHRvIGhpZGUgdGhlIHN1YnN0cmluZyAiNC4iIHRoYXQgd291bGQgb3RoZXJ3aXNlCiAv
LyBhcHBlYXIgaW4gdGhlIGFwcFZlcnNpb24gc3RyaW5nLiBUaGlzIGlzIHRvIGF2b2lkIHByb2Js
ZW1zIHdpdGggb2xkIHZlcnNpb25zIG9mIGEKIC8vIGxpYnJhcnkgY2FsbGVkIE9wZW5DdWJlIFF1
aWNrTWVudSwgd2hpY2ggYXMgb2YgdGhpcyB3cml0aW5nIGlzIHN0aWxsIGJlaW5nIHVzZWQgb24K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBA
QAogCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JC
YXNlLmgiCi0jaW5jbHVkZSAiTmF2aWdhdG9yU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIFBsdWdpbkRhdGE7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIE5h
dmlnYXRvciA6IHB1YmxpYyBOYXZpZ2F0b3JCYXNlLCBwdWJsaWMgUmVmQ291bnRlZDxOYXZpZ2F0
b3I+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworY2xhc3MgTmF2aWdhdG9yIDogcHVibGlj
IE5hdmlnYXRvckJhc2UsIHB1YmxpYyBSZWZDb3VudGVkPE5hdmlnYXRvcj4sIHB1YmxpYyBET01X
aW5kb3dQcm9wZXJ0eSwgcHVibGljIFN1cHBsZW1lbnRhYmxlPE5hdmlnYXRvcj4gewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5hdmlnYXRvcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IE5hdmlnYXRvcihmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+
TmF2aWdhdG9yKCk7CkBAIC02MCwxNSArNjAsOSBAQCBwdWJsaWM6CiAgICAgLy8gUmVsaW5xdWlz
aGVzIHRoZSBzdG9yYWdlIGxvY2ssIGlmIG9uZSBleGlzdHMuCiAgICAgdm9pZCBnZXRTdG9yYWdl
VXBkYXRlcygpOwogCi0gICAgdm9pZCBwcm92aWRlU3VwcGxlbWVudChjb25zdCBBdG9taWNTdHJp
bmcmLCBQYXNzT3duUHRyPE5hdmlnYXRvclN1cHBsZW1lbnQ+KTsKLSAgICBOYXZpZ2F0b3JTdXBw
bGVtZW50KiByZXF1aXJlU3VwcGxlbWVudChjb25zdCBBdG9taWNTdHJpbmcmKTsKLQogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBOYXZpZ2F0b3IoRnJhbWUqKTsKIAotICAgIHR5cGVkZWYgSGFzaE1h
cDxBdG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPE5hdmlnYXRvclN1cHBsZW1lbnQ+ID4gTmF2aWdh
dG9yU3VwcGxlbWVudE1hcDsKLSAgICBOYXZpZ2F0b3JTdXBwbGVtZW50TWFwIG1fc3VwcGxpbWVu
dHM7Ci0KICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVnaW5BcnJheT4gbV9wbHVnaW5zOwogICAg
IG11dGFibGUgUmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+IG1fbWltZVR5cGVzOwogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclN1cHBs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yU3Vw
cGxlbWVudC5jcHAJKHJldmlzaW9uIDEwODk0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yU3VwcGxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOYXZpZ2F0b3JTdXBwbGVtZW50
LmgiCi0KLSNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLU5hdmlnYXRvclN1cHBsZW1lbnQ6On5OYXZpZ2F0
b3JTdXBwbGVtZW50KCkKLXsKLX0KLQotdm9pZCBOYXZpZ2F0b3JTdXBwbGVtZW50Ojpwcm92aWRl
VG8oTmF2aWdhdG9yKiBuYXZpZ2F0b3IsIGNvbnN0IEF0b21pY1N0cmluZyYga2V5LCBQYXNzT3du
UHRyPE5hdmlnYXRvclN1cHBsZW1lbnQ+IHN1cHBsZW1lbnQpCi17Ci0gICAgbmF2aWdhdG9yLT5w
cm92aWRlU3VwcGxlbWVudChrZXksIHN1cHBsZW1lbnQpOwotfQotCi1OYXZpZ2F0b3JTdXBwbGVt
ZW50KiBOYXZpZ2F0b3JTdXBwbGVtZW50Ojpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKCFuYXZpZ2F0b3IpCi0gICAgICAgIHJl
dHVybiAwOwotICAgIHJldHVybiBuYXZpZ2F0b3ItPnJlcXVpcmVTdXBwbGVtZW50KG5hbWUpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvclN1cHBsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvclN1cHBsZW1lbnQuaAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9OYXZpZ2F0b3JTdXBwbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgTmF2aWdhdG9yU3VwcGxlbWVudF9oCi0jZGVmaW5lIE5hdmln
YXRvclN1cHBsZW1lbnRfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTmF2
aWdhdG9yOwotCi1jbGFzcyBOYXZpZ2F0b3JTdXBwbGVtZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIH5OYXZpZ2F0b3JTdXBwbGVtZW50KCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBwcm92aWRlVG8o
TmF2aWdhdG9yKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgUGFzc093blB0cjxOYXZpZ2F0b3JTdXBw
bGVtZW50Pik7Ci0gICAgc3RhdGljIE5hdmlnYXRvclN1cHBsZW1lbnQqIGZyb20oTmF2aWdhdG9y
KiwgY29uc3QgQXRvbWljU3RyaW5nJik7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBOYXZpZ2F0b3JTdXBwbGVtZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAko
cmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA0OSwxNyArMTA0OSw2IEBAIHZvaWQgUGFnZTo6YWRkUmVsZXZhbnRSZXBh
aW50ZWRPYmplY3QoUmUKICAgICB9CiB9CiAKLXZvaWQgUGFnZTo6cHJvdmlkZVN1cHBsZW1lbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPFBhZ2VTdXBwbGVtZW50PiBzdXBw
bGVtZW50KQotewotICAgIEFTU0VSVCghbV9zdXBwbGVtZW50cy5nZXQobmFtZS5pbXBsKCkpKTsK
LSAgICBtX3N1cHBsZW1lbnRzLnNldChuYW1lLmltcGwoKSwgc3VwcGxlbWVudCk7Ci19Ci0KLVBh
Z2VTdXBwbGVtZW50KiBQYWdlOjpyZXF1aXJlU3VwcGxlbWVudChjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCi17Ci0gICAgcmV0dXJuIG1fc3VwcGxlbWVudHMuZ2V0KG5hbWUuaW1wbCgpKTsKLX0K
LQogUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGNocm9tZUNsaWVudCgw
KQogICAgICwgY29udGV4dE1lbnVDbGllbnQoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lv
biAxMDg5NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMjQsMTAgKzI0LDEwIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1
ZGUgIkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKLSNpbmNsdWRlICJQ
YWdlU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTg5
LDcgKzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoRnJhbWUqKTsKIAotICAgIGNsYXNzIFBhZ2UgeworICAgIGNsYXNzIFBhZ2UgOiBwdWJs
aWMgU3VwcGxlbWVudGFibGU8UGFnZT4gewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
YWdlKTsKICAgICAgICAgZnJpZW5kIGNsYXNzIFNldHRpbmdzOwogICAgIHB1YmxpYzoKQEAgLTMy
NCwxNSArMzI0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHN0YXJ0Q291
bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoKTsKICAgICAgICAgdm9pZCBhZGRSZWxldmFu
dFJlcGFpbnRlZE9iamVjdChSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRSZWN0JiBvYmplY3RQYWlu
dFJlY3QpOwogCi0gICAgICAgIHZvaWQgcHJvdmlkZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiwgUGFzc093blB0cjxQYWdlU3VwcGxlbWVudD4pOwotICAgICAgICBQYWdlU3VwcGxlbWVu
dCogcmVxdWlyZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0KICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGluaXRHcm91cCgpOwogCi0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPFBhZ2VTdXBwbGVtZW50PiA+IFBhZ2VTdXBwbGVtZW50
TWFwOwotICAgICAgICBQYWdlU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwotCiAjaWYgQVNT
RVJUX0RJU0FCTEVECiAgICAgICAgIHZvaWQgY2hlY2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBj
b25zdCB7IH0KICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmNw
cAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQYWdlU3VwcGxlbWVudC5oIgotCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGFnZVN1
cHBsZW1lbnQ6On5QYWdlU3VwcGxlbWVudCgpCi17Ci19Ci0KLXZvaWQgUGFnZVN1cHBsZW1lbnQ6
OnByb3ZpZGVUbyhQYWdlKiBwYWdlLCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSwgUGFzc093blB0
cjxQYWdlU3VwcGxlbWVudD4gc3VwcGxlbWVudCkKLXsKLSAgICBwYWdlLT5wcm92aWRlU3VwcGxl
bWVudChrZXksIHN1cHBsZW1lbnQpOwotfQotCi1QYWdlU3VwcGxlbWVudCogUGFnZVN1cHBsZW1l
bnQ6OmZyb20oUGFnZSogcGFnZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQotewotICAgIGlm
ICghcGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHBhZ2UtPnJlcXVpcmVTdXBw
bGVtZW50KG5hbWUpOwotfQotCi1QYWdlU3VwcGxlbWVudCogUGFnZVN1cHBsZW1lbnQ6OmZyb20o
RnJhbWUqIGZyYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKCFmcmFt
ZSB8fCAhZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGZyYW1l
LT5wYWdlKCktPnJlcXVpcmVTdXBwbGVtZW50KG5hbWUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5oCShyZXZpc2lvbiAx
MDg5NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGFnZVN1cHBsZW1lbnRf
aAotI2RlZmluZSBQYWdlU3VwcGxlbWVudF9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgot
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBQYWdlOwotY2xhc3MgRnJhbWU7Ci0KLWNsYXNzIFBhZ2VTdXBwbGVtZW50IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIH5QYWdlU3VwcGxlbWVudCgpOwotCi0gICAgc3RhdGljIHZvaWQg
cHJvdmlkZVRvKFBhZ2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBQYXNzT3duUHRyPFBhZ2VTdXBw
bGVtZW50Pik7Ci0gICAgc3RhdGljIFBhZ2VTdXBwbGVtZW50KiBmcm9tKFBhZ2UqLCBjb25zdCBB
dG9taWNTdHJpbmcmKTsKLSAgICBzdGF0aWMgUGFnZVN1cHBsZW1lbnQqIGZyb20oRnJhbWUqLCBj
b25zdCBBdG9taWNTdHJpbmcmKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIFBhZ2VTdXBwbGVtZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQu
Y3BwCShyZXZpc2lvbiAxMDg5NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw3IEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU3BlZWNoSW5wdXQ6OnN1cHBsZW0KIAogdm9pZCBwcm92aWRlU3BlZWNoSW5wdXRUbyhQYWdl
KiBwYWdlLCBTcGVlY2hJbnB1dENsaWVudCogY2xpZW50KQogewotICAgIFBhZ2VTdXBwbGVtZW50
Ojpwcm92aWRlVG8ocGFnZSwgU3BlZWNoSW5wdXQ6OnN1cHBsZW1lbnROYW1lKCksIFNwZWVjaElu
cHV0OjpjcmVhdGUoY2xpZW50KSk7CisgICAgU3BlZWNoSW5wdXQ6OnByb3ZpZGVUbyhwYWdlLCBT
cGVlY2hJbnB1dDo6c3VwcGxlbWVudE5hbWUoKSwgU3BlZWNoSW5wdXQ6OmNyZWF0ZShjbGllbnQp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXQuaAkocmV2aXNpb24gMTA4OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKICNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQogCi0jaW5jbHVkZSAiUGFnZVN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ5LDE1ICs0OSwxNCBAQCBjbGFz
cyBTcGVlY2hJbnB1dExpc3RlbmVyOwogLy8gc3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZS4gSXQg
cHJvdmlkZXMgbWV0aG9kcyBmb3IgdGhlIGlucHV0IGVsZW1lbnRzIHRvIGFjdGl2YXRlIHNwZWVj
aAogLy8gcmVjb2duaXRpb24gYW5kIG1ldGhvZHMgZm9yIHRoZSBzcGVlY2ggcmVjb2duaXRpb24g
ZW5naW5lIHRvIHJldHVybiBiYWNrIHRoZSByZXN1bHRzLgogY2xhc3MgU3BlZWNoSW5wdXQgOiBw
dWJsaWMgU3BlZWNoSW5wdXRMaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgcHVibGljIFBh
Z2VTdXBwbGVtZW50IHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIFN1cHBsZW1lbnQ8UGFn
ZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNwZWVjaElucHV0KTsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5TcGVlY2hJbnB1dCgpOwogCiAgICAgc3RhdGljIFBhc3NPd25QdHI8U3BlZWNo
SW5wdXQ+IGNyZWF0ZShTcGVlY2hJbnB1dENsaWVudCopOwogICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7Ci0gICAgc3RhdGljIFNwZWVjaElucHV0KiBmcm9t
KEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3BlZWNoSW5wdXQqPihQYWdlU3Vw
cGxlbWVudDo6ZnJvbShmcmFtZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9Ci0gICAgc3RhdGljIFNw
ZWVjaElucHV0KiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNwZWVjaElu
cHV0Kj4oUGFnZVN1cHBsZW1lbnQ6OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9Cisg
ICAgc3RhdGljIFNwZWVjaElucHV0KiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PFNwZWVjaElucHV0Kj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50
TmFtZSgpKSk7IH0KIAogICAgIC8vIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRCBmb3IgdGhlIGdpdmVu
IGxpc3RlbmVyIHRvIGJlIHVzZWQgZm9yIHNwZWVjaCByZXF1ZXN0cy4KICAgICAvLyBUaGlzIHNo
b3VsZCBiZSB0aGUgZmlyc3QgY2FsbCBtYWRlIGJ5IGxpc3RlbmVycyBiZWZvcmUgYW55dGhpbmcg
ZWxzZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3VwcGxlbWVudGFibGVfaAorI2RlZmluZSBTdXBw
bGVtZW50YWJsZV9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIFN1cHBsZW1lbnRh
YmxlOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgU3VwcGxlbWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+U3VwcGxlbWVudCgpIHsgfQorCisgICAgc3RhdGljIHZvaWQgcHJvdmlk
ZVRvKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSwgUGFz
c093blB0cjxTdXBwbGVtZW50PFQ+ID4gc3VwcGxlbWVudCkKKyAgICB7CisgICAgICAgIGhvc3Qt
PnByb3ZpZGVTdXBwbGVtZW50KGtleSwgc3VwcGxlbWVudCk7CisgICAgfQorCisgICAgc3RhdGlj
IFN1cHBsZW1lbnQ8VD4qIGZyb20oU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0IEF0b21p
Y1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGhvc3QgPyBob3N0LT5yZXF1aXJl
U3VwcGxlbWVudChrZXkpIDogMDsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
Y2xhc3MgU3VwcGxlbWVudGFibGUgeworcHVibGljOgorICAgIHZvaWQgcHJvdmlkZVN1cHBsZW1l
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBrZXksIFBhc3NPd25QdHI8U3VwcGxlbWVudDxUPiA+IHN1
cHBsZW1lbnQpCisgICAgeworICAgICAgICBBU1NFUlQoIW1fc3VwcGxlbWVudHMuZ2V0KGtleS5p
bXBsKCkpKTsKKyAgICAgICAgbV9zdXBwbGVtZW50cy5zZXQoa2V5LmltcGwoKSwgc3VwcGxlbWVu
dCk7CisgICAgfQorCisgICAgU3VwcGxlbWVudDxUPiogcmVxdWlyZVN1cHBsZW1lbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBrZXkpCisgICAgeworICAgICAgICByZXR1cm4gbV9zdXBwbGVtZW50cy5n
ZXQoa2V5LmltcGwoKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPFN1cHBsZW1lbnQ8VD4gPiA+IFN1cHBsZW1lbnRNYXA7
CisgICAgU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gU3VwcGxlbWVudGFibGVfaAo=
</data>
<flag name="review"
          id="131470"
          type_id="1"
          status="+"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="131475"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>