<?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>78990</bug_id>
          
          <creation_ts>2012-02-18 22:20:31 -0800</creation_ts>
          <short_desc>Add an empty skeleton of KURL for WTFURL</short_desc>
          <delta_ts>2012-02-27 13:13:13 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>559868</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-18 22:20:31 -0800</bug_when>
    <thetext>Get something to start: an empty skeleton of KURL that we can fill with WTFURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559871</commentid>
    <comment_count>1</comment_count>
      <attachid>127729</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-18 22:32:55 -0800</bug_when>
    <thetext>Created attachment 127729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559876</commentid>
    <comment_count>2</comment_count>
      <attachid>127729</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-19 00:10:07 -0800</bug_when>
    <thetext>Comment on attachment 127729
Patch

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

This looks fine except for the RefPtr versus plain data member issue.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:-22323
&gt; -				BAB22AD414B7A02D00D8ABA6 /* FractionalLayoutUnit.h in Headers */,

Is this change spurious?

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:24288
&gt;  				144FCE5D14EC79E7000D17A3 /* FractionalLayoutSize.h in Headers */,
&gt; +				26A5034E14F0983600AA730D /* KURLWTFURLImpl.h in Headers */,

Please run sort-xcodeproj before landing.

&gt; Source/WebCore/platform/KURL.h:249
&gt; +    RefPtr&lt;KURLWTFURLImpl&gt; m_urlImpl;

I&apos;m not sure we want to use a RefPtr here.  That will be an extra allocation for each KURL, which seems like it would affect performance.  Notice that KURLGooglePrivate is just a plain data member.

&gt; Source/WebCore/platform/KURLWTFURLImpl.h:37
&gt; +class KURLWTFURLImpl : public RefCounted&lt;KURLWTFURLImpl&gt; {

KURLWTFURLImpl ...  Oh man.  What a name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559879</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-19 00:29:57 -0800</bug_when>
    <thetext>Thanks for the review.

&gt; &gt; Source/WebCore/platform/KURL.h:249
&gt; &gt; +    RefPtr&lt;KURLWTFURLImpl&gt; m_urlImpl;
&gt; 
&gt; I&apos;m not sure we want to use a RefPtr here.  That will be an extra allocation for each KURL, which seems like it would affect performance.  Notice that KURLGooglePrivate is just a plain data member.

My plan was to have KURLWTFURLImpl implicitly shared.

I have a hunch we do few URL creation, and a lot more of passing KURL around. I can try to confirm this before going forward with the idea.

&gt; &gt; Source/WebCore/platform/KURLWTFURLImpl.h:37
&gt; &gt; +class KURLWTFURLImpl : public RefCounted&lt;KURLWTFURLImpl&gt; {
&gt; 
&gt; KURLWTFURLImpl ...  Oh man.  What a name.

Yep, I am not happy about any of the new filenames. :(
Hopefully we can just drop the WTFURL in the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560555</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-20 19:35:45 -0800</bug_when>
    <thetext>Ok.  We can do performance tests and change the design later if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565023</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-25 14:31:25 -0800</bug_when>
    <thetext>Committed r108907: &lt;http://trac.webkit.org/changeset/108907&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127729</attachid>
            <date>2012-02-18 22:32:55 -0800</date>
            <delta_ts>2012-02-19 00:10:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78990-20120218223254.patch</filename>
            <type>text/plain</type>
            <size>32285</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MzE2ZDMxZGJjNmQzNGI0NjZkZDBkMzQwNGNmMzA0NzIzNWViMzQ2Li45ZTI1MTc4N2YwNDcyZTg3
NDI5ZDU1YThlNGY5MDAxN2Q0OGZjZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMi0wMi0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgQWRkIGFuIGVtcHR5IHNrZWxldG9uIG9mIEtVUkwgZm9yIFdURlVS
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5OTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEV4cG9ydCB0aGUgcmVsZXZhbnQg
Y2xhc3NlcyBmcm9tIFdURlVSTAorICAgICAgICBzbyB0aGF0IGNhbiB1c2UgdGhlbSBpbiBXZWJD
b3JlLgorCiAyMDEyLTAyLTE4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgRml4IHRoZSBsaWJjKysgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmIwMDMzNDg0ZDIwZWI5
ZjQyNzc1ZmJiZDBjZWY3NjM3NzFmZi4uMTM1NmZjYmFmODY1NGVjMzI0YmZmYjgwNjg5MGMzZDY3
YWNmN2FhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTAyLTE4ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYW4gZW1wdHkg
c2tlbGV0b24gb2YgS1VSTCBmb3IgV1RGVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODk5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhbiBlbXB0eSBza2VsZXRvbiBvZiBLVVJMIGJhc2VkIG9u
IFdURlVSTC4KKworICAgICAgICBXaXRoIFdURlVSTCwgdGhlIGRhdGEgb2YgS1VSTCBpcyBpbiBh
biBpbXBsaWNpdGVseSBzaGFyZWQgb2JqZWN0CisgICAgICAgIG5hbWVkIEtVUkxXVEZVUkxJbXBs
LgorCisgICAgICAgIEluIEtVUkxXVEZVUkxJbXBsLCBLVVJMIGNyZWF0ZWQgd2l0aCBpbnZhbGlk
IFVSTCB3b3VsZCBiZSBzdG9yZWQKKyAgICAgICAgYXMgYSBTdHJpbmcuIEEgdmFsaWQgVVJMIHdv
dWxkIGJlIHN0b3JlZCBhcyBhIFBhcnNlZFVSTC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi91cmwvUGFyc2VkVVJMLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZXhwLmlu
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBwbGF0Zm9ybS9LVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL0tVUkwuaDoKKyAgICAgICAgKEtVUkwpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6S1VS
TCk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OktVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6S1VSTDo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpp
c051bGwpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJD
b3JlOjpLVVJMOjppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6Omhhc1BhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6S1VSTDo6c3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6
OnByb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6Omhvc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S1VSTDo6cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpoYXNQb3J0KToKKyAg
ICAgICAgKFdlYkNvcmU6OktVUkw6OnVzZXIpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6cGFz
cyk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpwYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OktV
Ukw6Omxhc3RQYXRoQ29tcG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OnF1ZXJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OktVUkw6OmZyYWdtZW50SWRlbnRpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpLVVJMOjpoYXNGcmFnbWVudElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6
S1VSTDo6Y29weVBhcnNlZFF1ZXJ5VG8pOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6YmFzZUFz
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OmRlcHJlY2F0ZWRTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6S1VSTDo6ZmlsZVN5c3RlbVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6
S1VSTDo6cHJvdG9jb2xJcyk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpwcm90b2NvbElzSW5I
VFRQRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OnNldFByb3RvY29sKToKKyAgICAg
ICAgKFdlYkNvcmU6OktVUkw6OnNldEhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6cmVt
b3ZlUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpzZXRQb3J0KToKKyAgICAgICAgKFdl
YkNvcmU6OktVUkw6OnNldEhvc3RBbmRQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OnNl
dFVzZXIpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6c2V0UGFzcyk6CisgICAgICAgIChXZWJD
b3JlOjpLVVJMOjpzZXRQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OnNldFF1ZXJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OktVUkw6OnNldEZyYWdtZW50SWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpLVVJMOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6S1VSTDo6aG9zdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6Omhvc3RFbmQp
OgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6cGF0aFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OktVUkw6OnBhdGhFbmQpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6cGF0aEFmdGVyTGFzdFNs
YXNoKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OmludmFsaWRhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6S1VSTDo6aXNIaWVyYXJjaGljYWwpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xJ
cyk6CisgICAgICAgIChXZWJDb3JlOjplcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbCk6CisgICAgICAg
IChXZWJDb3JlOjplbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vS1VSTFdU
RlVSTEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxN
YWMubW0uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEtVUkxXVEZVUkxJbXBsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpLVVJMOjpLVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OmNy
ZWF0ZUNGVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6S1VSTCk6CisgICAgICAgIChXZWJD
b3JlOjpLVVJMOjpvcGVyYXRvciBOU1VSTCAqKToKKwogMjAxMi0wMi0xOCAgS2V2aW4gT2xsaXZp
ZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIEJ1aWxkIGZpeGVz
IGZvciBDKysgYmluZGluZ3MgYWZ0ZXIgcmVjZW50IGNoYW5nZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGE5MzkyNDdmN2RhMTRhODFkOGZjMjExNmFiOWYwYzBlN2EyMDM4ZWEu
LjczMWVjNmIzZDZhZjgwNGM0NjAyNzI3MzhkMDI4ZjJlNWQ3Y2U3NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMTEsMTkgKzMxMSwxOSBAQAogCQkxQTA4Mjc3QTE0MjE2OEQ3
MDA5MENDQUMgLyogQmluYXJ5U2VtYXBob3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTA4Mjc3ODE0MjE2OEQ3MDA5MENDQUMgLyogQmluYXJ5U2Vt
YXBob3JlLmggKi87IH07CiAJCTFBQTlFNTUxMTQ5ODA5MzUwMDAwMUE4QSAvKiBGdW5jdGlvbmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE5RTU1
MDE0OTgwOTM1MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2ODRCMkQzMTRENEE5QjIwMDcyQzBCNiAvKiBQ
YXJzZWRVUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY4NEIyQzQxNEQ0QTlCMjAwNzJDMEI2IC8qIFBhcnNlZFVSTC5jcHAgKi87IH07Ci0JCTI2
ODRCMkQ0MTRENEE5QjIwMDcyQzBCNiAvKiBQYXJzZWRVUkwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODRCMkM1MTRENEE5QjIwMDcyQzBCNiAvKiBQ
YXJzZWRVUkwuaCAqLzsgfTsKLQkJMjY4NEIyRDUxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTFN0cmlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NEIy
QzYxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTFN0cmluZy5oICovOyB9OworCQkyNjg0QjJENDE0RDRB
OUIyMDA3MkMwQjYgLyogUGFyc2VkVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNjg0QjJDNTE0RDRBOUIyMDA3MkMwQjYgLyogUGFyc2VkVVJMLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjY4NEIy
RDUxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NEIyQzYxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTFN0
cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTI2ODRCMkQ2MTRENEE5QjIwMDcyQzBCNiAvKiBSYXdVUkxCdWZmZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODRCMkM4MTRENEE5QjIwMDcyQzBC
NiAvKiBSYXdVUkxCdWZmZXIuaCAqLzsgfTsKIAkJMjY4NEIyRDcxNEQ0QTlCMjAwNzJDMEI2IC8q
IFVSTEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY4NEIyQzkxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTEJ1ZmZlci5oICovOyB9OwogCQkyNjg0
QjJEODE0RDRBOUIyMDA3MkMwQjYgLyogVVJMQ2hhcmFjdGVyVHlwZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NEIyQ0ExNEQ0QTlCMjAwNzJD
MEI2IC8qIFVSTENoYXJhY3RlclR5cGVzLmNwcCAqLzsgfTsKIAkJMjY4NEIyRDkxNEQ0QTlCMjAw
NzJDMEI2IC8qIFVSTENoYXJhY3RlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0QjJDQjE0RDRBOUIyMDA3MkMwQjYgLyogVVJMQ2hhcmFj
dGVyVHlwZXMuaCAqLzsgfTsKLQkJMjY4NEIyREExNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTENvbXBv
bmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4
NEIyQ0MxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTENvbXBvbmVudC5oICovOyB9OworCQkyNjg0QjJE
QTE0RDRBOUIyMDA3MkMwQjYgLyogVVJMQ29tcG9uZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0QjJDQzE0RDRBOUIyMDA3MkMwQjYgLyogVVJM
Q29tcG9uZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMjY4NEIyREIxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTEVzY2FwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0QjJDRDE0RDRBOUIyMDA3
MkMwQjYgLyogVVJMRXNjYXBlLmNwcCAqLzsgfTsKIAkJMjY4NEIyREMxNEQ0QTlCMjAwNzJDMEI2
IC8qIFVSTEVzY2FwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjY4NEIyQ0UxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTEVzY2FwZS5oICovOyB9OwogCQky
Njg0QjJERDE0RDRBOUIyMDA3MkMwQjYgLyogVVJMUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjg0QjJDRjE0RDRBOUIyMDA3MkMwQjYgLyog
VVJMUGFyc2VyLmggKi87IH07CiAJCTI2ODRCMkRFMTRENEE5QjIwMDcyQzBCNiAvKiBVUkxRdWVy
eUNhbm9uaWNhbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2ODRCMkQwMTRENEE5QjIwMDcyQzBCNiAvKiBVUkxRdWVyeUNhbm9uaWNhbGl6ZXIu
aCAqLzsgfTsKIAkJMjY4NEIyREYxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTFNlZ21lbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODRCMkQxMTRE
NEE5QjIwMDcyQzBCNiAvKiBVUkxTZWdtZW50cy5jcHAgKi87IH07Ci0JCTI2ODRCMkUwMTRENEE5
QjIwMDcyQzBCNiAvKiBVUkxTZWdtZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjY4NEIyRDIxNEQ0QTlCMjAwNzJDMEI2IC8qIFVSTFNlZ21lbnRz
LmggKi87IH07CisJCTI2ODRCMkUwMTRENEE5QjIwMDcyQzBCNiAvKiBVUkxTZWdtZW50cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NEIyRDIxNEQ0
QTlCMjAwNzJDMEI2IC8qIFVSTFNlZ21lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkNGQzVEMUUxMkY0NUI0ODAwNDkxNEUyIC8qIENoYXJh
Y3Rlck5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQ0ZDNUI3QTEyRjQ0NzE0MDA0OTE0RTIgLyogQ2hhcmFjdGVyTmFtZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTM1OUNGMzBGREQ4OUFE
MDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVy
c2lvbi5oICovOyB9OwogCQk0MTM1OUNGNjBGREQ4OUNCMDAyMDYxODAgLyogRGF0ZU1hdGguY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzNTlDRjQw
RkREODlDQjAwMjA2MTgwIC8qIERhdGVNYXRoLmNwcCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi91cmwvUGFyc2VkVVJMLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvdXJsL1BhcnNlZFVSTC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlhOTFiN2E1MzA4YTdiYTcyMTE2NWRmMDZkMjAyMjRhYTNlYmFhNzkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvdXJsL1BhcnNlZFVSTC5o
CkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9QYXJzZWRVUkxfaAorI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9QYXJzZWRVUkxfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1BhcnNl
ZFVSTC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGFhNWMxNzdmMjI1YWU3YjAx
YzllNDQxOWYyY2I5ZTYwZTQyMWI5NmIuLjc5ZmRlMmE4NTlmODZmMDA0YTY0ZDM0OWFhNzUxNDk4
NGYzNmY0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMzcwLDYgKzEzNzAsMTIgQEAgX19a
Tks3V2ViQ29yZTRLVVJMNHBhdGhFdgogX19aTks3V2ViQ29yZTRLVVJMNHBvcnRFdgogX19aTks3
V2ViQ29yZTRLVVJMNHVzZXJFdgogX19aTks3V2ViQ29yZTRLVVJMNXF1ZXJ5RXYKKyNpZiBVU0Uo
V1RGVVJMKQorX19aTks3V2ViQ29yZTRLVVJMNnN0cmluZ0V2CitfX1pOSzdXZWJDb3JlNEtVUkw3
aXNFbXB0eUV2CitfX1pOSzdXZWJDb3JlNEtVUkw3aXNWYWxpZEV2CitfX1pOSzdXZWJDb3JlNEtV
UkwyMnByb3RvY29sSXNJbkhUVFBGYW1pbHlFdgorI2VuZGlmCiBfX1pOSzdXZWJDb3JlNEtVUkw4
cHJvdG9jb2xFdgogX19aTks3V2ViQ29yZTRLVVJMY3ZQNU5TVVJMRXYKIF9fWk5LN1dlYkNvcmU0
Tm9kZTE0aXNEZXNjZW5kYW50T2ZFUEtTMF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MWNkNDMyNmZlMTg4NWY2NmJlODY3Nzk3
NWE5ZjQ3NzEzNTJhMDZiLi42MmMyZWNhMDNmYjQ5Yjk5ZjgwZDQ1YjllNDdjMzVmNzI4ODNjZDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yOTcsMTAgKzI5Nyw5IEBACiAJCTE0MzJFODQ5MEM1MTQ5M0YwMEIxNTAwRiAvKiBH
Q0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQzMkU4NDgwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgKi87IH07
CiAJCTE0NDlFMjRDMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0OUUyNEExMDdENEE4NDAw
QjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmggKi87IH07CiAJCTE0NDlFMjg3MTA3RDREQjQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDQ5RTI4NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0Rh
dGEuY3BwICovOyB9OwotCQkxNDRGQ0U1OTE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExh
eW91dFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDRGQ0U1NDE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFBvaW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMTQ0RkNFNTIx
NEVDNzlCQzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDRGQ0U1MTE0RUM3OUJDMDAwRDE3QTMg
LyogRnJhY3Rpb25hbExheW91dFVuaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxNDRGQ0U1QzE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25h
bExheW91dFNpemUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ0RkNFNTcxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmNw
cCAqLzsgfTsKIAkJMTQ0RkNFNUQxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRT
aXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDRG
Q0U1ODE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFNpemUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxNDRGQ0U1MjE0RUM3OUJD
MDAwRDE3QTMgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEZDRTUxMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFj
dGlvbmFsTGF5b3V0VW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTE0NjRFMDZDMTM1RUMxMDYwMEZEQjAwQSAvKiBKU01lZGlhTGlzdEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY0
RTA2QjEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwICovOyB9OwogCQkx
NDc3RTc3NjBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc0MEJGNDEzNEEwMDE1Mjg3MiAv
KiBQYWdlQ2FjaGUuY3BwICovOyB9OwogCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFn
ZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcxMiw2ICs3MTEsOCBAQAogCQkyNjU1
NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVE
IC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLzsgfTsKIAkJMjY1NTQxM0ExNDg5ODExQzAwMERGQzVE
IC8qIEtleUV2ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjY1NTQxMzgxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tICovOyB9
OwogCQkyNjU1NDE1MjE0ODlCMjMzMDAwREZDNUQgLyogQ3Vyc29ySU9TLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2NTU0MTRCMTQ4OUFBMkIwMDBE
RkM1RCAvKiBDdXJzb3JJT1MuY3BwICovOyB9OworCQkyNkE1MDM0RTE0RjA5ODM2MDBBQTczMEQg
LyogS1VSTFdURlVSTEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI2QTUwMzREMTRGMDk4MzYwMEFBNzMwRCAvKiBLVVJMV1RGVVJMSW1wbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2QTUwMzVB
MTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzU5MTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJM
V1RGVVJMLmNwcCAqLzsgfTsKIAkJMjZDMTdBM0UxNDkxRDJENDAwRDEyQkEyIC8qIEZpbGVTeXN0
ZW1JT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2
QzE3QTNDMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLmggKi87IH07CiAJCTI2QzE3
QTNGMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZDMTdBM0QxNDkxRDJENDAwRDEyQkEyIC8q
IEZpbGVTeXN0ZW1JT1MubW0gKi87IH07CiAJCTI2RTk4QTEwMTMwQTlGQ0EwMDhFQjdCMiAvKiBU
ZXh0Q29kZWNBU0NJSUZhc3RQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNkU5OEEwRjEzMEE5RkNBMDA4RUI3QjIgLyogVGV4dENvZGVjQVNDSUlG
YXN0UGF0aC5oICovOyB9OwpAQCAtNzAyMSwxMCArNzAyMiwxMCBAQAogCQkxNDMyRTg0ODBDNTE0
OTNGMDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHQ0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tE
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJhY2tE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ0RkNFNTExNEVDNzlCQzAw
MEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZyYWN0aW9uYWxMYXlvdXRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTE0NEZDRTU0MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0UG9pbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhY3Rpb25hbExheW91dFBvaW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NEZDRTU3MTRFQzc5RTcwMDBEMTdB
MyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGcmFjdGlvbmFsTGF5b3V0U2l6ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0NEZDRTU4MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0U2l6
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFjdGlvbmFsTGF5b3V0U2l6
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDRGQ0U1MTE0RUM3OUJDMDAwRDE3
QTMgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRnJhY3Rpb25hbExheW91dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTQ2NEUwNkIxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFMaXN0Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8q
IFBhZ2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFn
ZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3N0U3NzUwQkY0MTM0
QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFnZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NDcwLDYgKzc0
NzEsOCBAQAogCQkyNjU1NDEzNzE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBLZXlFdmVudENvZGVzSU9TLmg7IHBh
dGggPSBpb3MvS2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLZXlFdmVudElPUy5tbTsgcGF0aCA9IGlvcy9L
ZXlFdmVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxNEIxNDg5
QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBDdXJzb3JJT1MuY3BwOyBwYXRoID0gaW9zL0N1cnNvcklPUy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2QTUwMzREMTRGMDk4MzYwMEFBNzMwRCAvKiBLVVJM
V1RGVVJMSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLVVJMV1RGVVJM
SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkE1MDM1OTE0RjBBMkJDMDBB
QTczMEQgLyogS1VSTFdURlVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBLVVJMV1RGVVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZDMTdB
M0MxNDkxRDJENDAwRDEyQkEyIC8qIEZpbGVTeXN0ZW1JT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gRmlsZVN5c3RlbUlPUy5oOyBwYXRoID0gaW9zL0ZpbGVTeXN0ZW1JT1Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZDMTdBM0QxNDkxRDJENDAwRDEyQkEy
IC8qIEZpbGVTeXN0ZW1JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBGaWxlU3lzdGVtSU9TLm1tOyBwYXRoID0gaW9zL0ZpbGVTeXN0ZW1JT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RTk4QTBGMTMwQTlGQ0EwMDhFQjdCMiAvKiBUZXh0
Q29kZWNBU0NJSUZhc3RQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
eHRDb2RlY0FTQ0lJRmFzdFBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5
ODEzLDYgKzE5ODE2LDggQEAKIAkJCQk2NTkzOTIzNTA5QUU0MzQ2MDAyQzUzMUYgLyogS1VSTC5j
cHAgKi8sCiAJCQkJNjU5MzkyMzYwOUFFNDM0NjAwMkM1MzFGIC8qIEtVUkwuaCAqLywKIAkJCQlC
Q0JEMjFBQTBFNDE3QUQ0MDBBMDcwRjIgLyogS1VSTEhhc2guaCAqLywKKwkJCQkyNkE1MDM1OTE0
RjBBMkJDMDBBQTczMEQgLyogS1VSTFdURlVSTC5jcHAgKi8sCisJCQkJMjZBNTAzNEQxNEYwOTgz
NjAwQUE3MzBEIC8qIEtVUkxXVEZVUkxJbXBsLmggKi8sCiAJCQkJRTE4NzcyRjAxMjZFMjYyOTAw
M0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLywKIAkJCQk4NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQg
LyogTGFuZ3VhZ2UuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3Ro
LmNwcCAqLywKQEAgLTIyMzIwLDcgKzIyMzI1LDYgQEAKIAkJCQk2NTZEMzczQTBBREJBNURFMDBB
NDU1NEQgLyogRm9ybVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg4NUI5MzExQjZGREE2
MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzZE
MDlBQzRENjMwMEE2QUFCNCAvKiBGb3VuZGF0aW9uRXh0cmFzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlCQUIyMkFENDE0QjdBMDJEMDBEOEFCQTYgLyogRnJhY3Rpb25hbExheW91dFVuaXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4NTMxMjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0
MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCMDcwRDMxMzBBNDA5QzAwQTM3
NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MjgxLDYg
KzI0Mjg1LDcgQEAKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0NEZDRTUyMTRFQzc5QkMwMDBEMTdBMyAvKiBGcmFjdGlvbmFs
TGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0RkNFNUQxNEVDNzlFNzAwMEQxN0Ez
IC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmggaW4gSGVhZGVycyAqLywKKwkJCQkyNkE1MDM0RTE0
RjA5ODM2MDBBQTczMEQgLyogS1VSTFdURlVSTEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjcy
MjYsNiArMjcyMzEsNyBAQAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRp
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBa
ZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDRGQ0U1QzE0RUM3OUU3MDAwRDE3QTMg
LyogRnJhY3Rpb25hbExheW91dFNpemUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjZBNTAzNUEx
NEYwQTJCQzAwQUE3MzBEIC8qIEtVUkxXVEZVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0tVUkwuY3BwCmluZGV4IGEzODEyYzZhMjY2M2U3ZWFkMDJiOTcxZmU4OWZjMmQ4N2E1
YWRhNmQuLjI2NzJiZDYzMzIxZGEzODNmNmIyMmZmMmM3NTYxMTg0YzRmNWRhZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0tVUkwuY3BwCkBAIC0zMCw3ICszMCw5IEBACiAjaW5jbHVkZSAiVGV4dEVuY29k
aW5nLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lm
ICFVU0UoV1RGVVJMKQogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KKyNlbmRpZgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtNjYsNyArNjgsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaXNMZXR0ZXJNYXRjaElnbm9yaW5nQ2FzZShVQ2hhciBjaGFyYWN0ZXIs
IGNoYXIgbG93ZXJjYXNlTGV0dAogICAgIHJldHVybiAoY2hhcmFjdGVyIHwgMHgyMCkgPT0gbG93
ZXJjYXNlTGV0dGVyOwogfQogCi0jaWYgIVVTRShHT09HTEVVUkwpCisjaWYgIVVTRShHT09HTEVV
UkwpICYmICFVU0UoV1RGVVJMKQogCiBzdGF0aWMgY29uc3QgY2hhciB3c1NjaGVtZVtdID0geyd3
JywgJ3MnfTsKIHN0YXRpYyBjb25zdCBjaGFyIGZ0cFNjaGVtZVtdID0geydmJywgJ3QnLCAncCd9
OwpAQCAtMTc5Niw3ICsxNzk4LDcgQEAgdm9pZCBLVVJMOjpwcmludCgpIGNvbnN0CiB9CiAjZW5k
aWYKIAotI2VuZGlmIC8vICFVU0UoR09PR0xFVVJMKQorI2VuZGlmIC8vICFVU0UoR09PR0xFVVJM
KSAmJiAhVVNFKFdURlVSTCkKIAogU3RyaW5nIEtVUkw6OnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJl
cigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmgKaW5kZXggYTQ2NGRjM2RlOTJhNGU5MDU4
MmMxZDljN2VjOWM3OGZhZjdiMDI1NS4uMDFmZDA5MDVjOGMwN2I1NmU3OTIwYmIzZTJiZDYwY2Nl
OTQ2MDllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBLVVJMX2gKICNkZWZpbmUgS1VSTF9oCiAKKyNpbmNsdWRlICJLVVJMV1RG
VVJMSW1wbC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KIApAQCAtNzEsMTAgKzcyLDE2IEBAIHB1YmxpYzoKICAgICBLVVJMKFBhcnNlZFVS
TFN0cmluZ1RhZywgY29uc3QgU3RyaW5nJik7CiAjaWYgVVNFKEdPT0dMRVVSTCkKICAgICBLVVJM
KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkgOiBtX3VybChXVEY6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZSkgeyB9CisjZWxpZiBVU0UoV1RGVVJMKQorICAgIEtVUkwoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fdXJsSW1wbChXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1
ZSkgeyB9CiAjZWxzZQogICAgIEtVUkwoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6
IG1fc3RyaW5nKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKSB7IH0KICNlbmRpZgorI2lmICFV
U0UoV1RGVVJMKQogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBzdHJpbmcoKS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisjZWxzZQorICAgIGJv
b2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3VybEltcGwuaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorI2VuZGlmCiAKICAgICAvLyBSZXNvbHZlcyB0aGUg
cmVsYXRpdmUgVVJMIHdpdGggdGhlIGdpdmVuIGJhc2UgVVJMLiBJZiBwcm92aWRlZCwgdGhlCiAg
ICAgLy8gVGV4dEVuY29kaW5nIGlzIHVzZWQgdG8gZW5jb2RlIG5vbi1BU0NJSSBjaGFyYWNlcnMu
IFRoZSBiYXNlIFVSTCBjYW4gYmUKQEAgLTEyMSw2ICsxMjgsOSBAQCBwdWJsaWM6CiAKICNpZiBV
U0UoR09PR0xFVVJMKQogICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
bV91cmwuc3RyaW5nKCk7IH0KKyNlbGlmIFVTRShXVEZVUkwpCisgICAgLy8gRklYTUU6IFNwbGl0
IHRoaXMgaW4gVVJMU3RyaW5nIGFuZCBJbnZhbGlkVVJMU3RyaW5nLCBnZXQgcmlkIG9mIHRoZSBp
bXBsaWNpdCBjb252ZXJzaW9ucy4KKyAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0Owog
I2Vsc2UKICAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5n
OyB9CiAjZW5kaWYKQEAgLTIzNSw2ICsyNDUsOCBAQCBwcml2YXRlOgogI2lmIFVTRShHT09HTEVV
UkwpCiAgICAgZnJpZW5kIGNsYXNzIEtVUkxHb29nbGVQcml2YXRlOwogICAgIEtVUkxHb29nbGVQ
cml2YXRlIG1fdXJsOworI2VsaWYgVVNFKFdURlVSTCkKKyAgICBSZWZQdHI8S1VSTFdURlVSTElt
cGw+IG1fdXJsSW1wbDsKICNlbHNlICAvLyAhVVNFKEdPT0dMRVVSTCkKICAgICB2b2lkIGluaXQo
Y29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFRleHRFbmNvZGluZyYpOwogICAgIHZv
aWQgY29weVRvQnVmZmVyKFZlY3RvcjxjaGFyLCA1MTI+JiBidWZmZXIpIGNvbnN0OwpAQCAtMzMw
LDcgKzM0Miw3IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiBhLCBjb25z
dCBLVVJMJiBiKQogICAgIHJldHVybiBhICE9IGIuc3RyaW5nKCk7CiB9CiAKLSNpZiAhVVNFKEdP
T0dMRVVSTCkKKyNpZiAhVVNFKEdPT0dMRVVSTCkgJiYgIVVTRShXVEZVUkwpCiAKIC8vIElubGlu
ZSB2ZXJzaW9ucyBvZiBzb21lIG5vbi1Hb29nbGVVUkwgZnVuY3Rpb25zIHNvIHdlIGNhbiBnZXQg
aW5saW5pbmcKIC8vIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgYSBsb3Qgb2YgdWdseSBpZmRlZnMg
aW4gdGhlIGNsYXNzIGRlZmluaXRpb24uCkBAIC0zODUsNyArMzk3LDcgQEAgaW5saW5lIHVuc2ln
bmVkIEtVUkw6OnBhdGhBZnRlckxhc3RTbGFzaCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGF0aEFm
dGVyTGFzdFNsYXNoOwogfQogCi0jZW5kaWYgIC8vICFVU0UoR09PR0xFVVJMKQorI2VuZGlmIC8v
ICFVU0UoR09PR0xFVVJMKSAmJiAhVVNFKFdURlVSTCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxXVEZVUkwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYjY4
MGE3NTc0NDg1ZjkzOGM1ZmY2YmU2YTMzYzE0MTA0NmQ2Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcApAQCAtMCwwICsxLDMyMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIktVUkwuaCIKKworI2lmIFVT
RShXVEZVUkwpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworS1VSTDo6S1VSTChQYXJzZWRVUkxT
dHJpbmdUYWcsIGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1w
bGVtZW50YXRpb24uCit9CisKK0tVUkw6OktVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYp
Cit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCit9CisKK0tVUkw6
OktVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFRleHRFbmNvZGluZyYpCit7
CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCit9CisKK0tVUkwgS1VS
TDo6Y29weSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRp
b24uCisgICAgcmV0dXJuIEtVUkwoKTsKK30KKworYm9vbCBLVVJMOjppc051bGwoKSBjb25zdAor
eworICAgIHJldHVybiAhbV91cmxJbXBsOworfQorCitib29sIEtVUkw6OmlzRW1wdHkoKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9uLgorICAgIHJldHVy
biB0cnVlOworfQorCitib29sIEtVUkw6OmlzVmFsaWQoKSBjb25zdAoreworICAgIC8vIEZJWE1F
OiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBLVVJMOjpoYXNQYXRoKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBs
ZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2NvbnN0IFN0cmluZyAmS1VSTDo6
c3RyaW5nKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlv
bi4KKyAgICBBU1NFUlQobV91cmxJbXBsKTsKKyAgICByZXR1cm4gbV91cmxJbXBsLT5tX2ludmFs
aWRVcmxTdHJpbmc7Cit9CisKK1N0cmluZyBLVVJMOjpwcm90b2NvbCgpIGNvbnN0Cit7CisgICAg
Ly8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgS1VSTDo6aG9zdCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBX
VEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit1bnNpZ25l
ZCBzaG9ydCBLVVJMOjpwb3J0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJ
bXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBLVVJMOjpoYXNQb3J0KCkg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBLVVJMOjp1c2VyKCkgY29uc3QKK3sKKyAgICAvLyBG
SVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBLVVJMOjpwYXNzKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVS
TCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBLVVJM
OjpwYXRoKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlv
bi4KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBLVVJMOjpsYXN0UGF0aENvbXBv
bmVudCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24u
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgS1VSTDo6cXVlcnkoKSBjb25zdAor
eworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworU3RyaW5nIEtVUkw6OmZyYWdtZW50SWRlbnRpZmllcigpIGNvbnN0Cit7
CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitib29sIEtVUkw6Omhhc0ZyYWdtZW50SWRlbnRpZmllcigpIGNvbnN0Cit7
CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIEtVUkw6OmNvcHlQYXJzZWRRdWVyeVRvKFBhcnNlZFVSTFBhcmFtZXRl
cnMmKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9uLgor
fQorCitTdHJpbmcgS1VSTDo6YmFzZUFzU3RyaW5nKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTog
QWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBLVVJMOjpkZXByZWNhdGVkU3RyaW5nKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRk
IFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBLVVJMOjpmaWxlU3lzdGVtUGF0aCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZV
UkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIEtVUkw6
OnByb3RvY29sSXMoY29uc3QgY2hhciopIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZV
UkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEtVUkw6OnBy
b3RvY29sSXNJbkhUVFBGYW1pbHkoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJM
IEltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBLVVJMOjpzZXRQ
cm90b2NvbChjb25zdCBTdHJpbmcmKQoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxl
bWVudGF0aW9uLgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBLVVJMOjpzZXRIb3N0KGNv
bnN0IFN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24u
Cit9CisKK3ZvaWQgS1VSTDo6cmVtb3ZlUG9ydCgpCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZV
UkwgSW1wbGVtZW50YXRpb24uCit9CisKK3ZvaWQgS1VSTDo6c2V0UG9ydCh1bnNpZ25lZCBzaG9y
dCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KK30KKwordm9p
ZCBLVVJMOjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmKQoreworICAgIC8vIEZJWE1FOiBB
ZGQgV1RGVVJMIEltcGxlbWVudGF0aW9uLgorfQorCit2b2lkIEtVUkw6OnNldFVzZXIoY29uc3Qg
U3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KK30K
Kwordm9pZCBLVVJMOjpzZXRQYXNzKGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IEFk
ZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCit9CisKK3ZvaWQgS1VSTDo6c2V0UGF0aChjb25zdCBT
dHJpbmcmKQoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9uLgorfQor
Cit2b2lkIEtVUkw6OnNldFF1ZXJ5KGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IEFk
ZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCit9CisKK3ZvaWQgS1VSTDo6c2V0RnJhZ21lbnRJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVt
ZW50YXRpb24uCit9CisKK3ZvaWQgS1VSTDo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCkKK3sK
KyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KK30KKwordW5zaWduZWQg
S1VSTDo6aG9zdFN0YXJ0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBs
ZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gMDsKK30KKwordW5zaWduZWQgS1VSTDo6aG9zdEVuZCgp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAg
cmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIEtVUkw6OnBhdGhTdGFydCgpIGNvbnN0Cit7CisgICAg
Ly8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIDA7Cit9CisK
K3Vuc2lnbmVkIEtVUkw6OnBhdGhFbmQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RG
VVJMIEltcGxlbWVudGF0aW9uLgorICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBLVVJMOjpw
YXRoQWZ0ZXJMYXN0U2xhc2goKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIElt
cGxlbWVudGF0aW9uLgorICAgIHJldHVybiAwOworfQorCit2b2lkIEtVUkw6OmludmFsaWRhdGUo
KQoreworICAgIG1fdXJsSW1wbCA9IG51bGxwdHI7Cit9CisKK2Jvb2wgS1VSTDo6aXNIaWVyYXJj
aGljYWwoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9u
LgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBwcm90b2NvbElzKGNvbnN0IFN0cmluZyYs
IGNvbnN0IGNoYXIqKQoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxlbWVudGF0aW9u
LgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVu
dGlmaWVyKGNvbnN0IEtVUkwmLCBjb25zdCBLVVJMJikKK3sKKyAgICAvLyBGSVhNRTogQWRkIFdU
RlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgcHJvdG9j
b2xIb3N0QW5kUG9ydEFyZUVxdWFsKGNvbnN0IEtVUkwmLCBjb25zdCBLVVJMJikKK3sKKyAgICAv
LyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK1N0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKGNvbnN0IFN0cmluZyYpCit7
CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGNvbnN0IFN0cmlu
ZyYpCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFRleHRFbmNvZGluZyYpCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZV
UkwgSW1wbGVtZW50YXRpb24uCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9CisKKyNlbmRp
ZiAvLyBVU0UoV1RGVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VS
TFdURlVSTEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxXVEZVUkxJbXBsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTExNDFlNzQ2M2M0M2RhNzFmMzJiZGQzNzZiYzk1ZWFjYjk2MGFmYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxXVEZVUkxJbXBsLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBLVVJMV1RGVVJMSW1wbF9oCisjZGVm
aW5lIEtVUkxXVEZVUkxJbXBsX2gKKworI2lmIFVTRShXVEZVUkwpCisKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi91cmwvUGFyc2VkVVJMLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS1VS
TFdURlVSTEltcGwgOiBwdWJsaWMgUmVmQ291bnRlZDxLVVJMV1RGVVJMSW1wbD4geworcHVibGlj
OgorICAgIFdURjo6UGFyc2VkVVJMIG1fcGFyc2VkVVJMOworICAgIFN0cmluZyBtX2ludmFsaWRV
cmxTdHJpbmc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0Uo
V1RGVVJMKQorCisjZW5kaWYgLy8gS1VSTFdURlVSTEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NmL0tVUkxDRk5ldC5jcHAKaW5kZXggYjNhNTg2NTJiOTg5OWQ1MzZhNDg4YjZkZmFkMTQ1
MDQyODkzMDdlNC4uZmQ4MDg0YjkwZGRlYjM0Y2M3NmM3NzZhYTY4YmQ3MmVkMTAxMDA4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvS1VSTENGTmV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9LVVJMQ0ZOZXQuY3BwCkBAIC0zMyw2ICszMyw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFVU0Uo
V1RGVVJMKQorCiB0eXBlZGVmIFZlY3RvcjxjaGFyLCA1MTI+IENoYXJCdWZmZXI7CiAKIENGVVJM
UmVmIGNyZWF0ZUNGVVJMRnJvbUJ1ZmZlcihjb25zdCBDaGFyQnVmZmVyJik7CkBAIC05MSw0ICs5
MywyMSBAQCBTdHJpbmcgS1VSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAogICAgIHJldHVybiBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIENGVVJMQ29weUZpbGVTeXN0ZW1QYXRoKGNm
VVJMLmdldCgpLCBwYXRoU3R5bGUpKS5nZXQoKTsKIH0KICNlbmRpZgorCisjZWxzZSAvLyBVU0Uo
V1RGVVJMKQorCitLVVJMOjpLVVJMKENGVVJMUmVmKQoreworICAgIC8vIEZJWE1FOiBBZGQgV1RG
VVJMIEltcGxlbWVudGF0aW9uLgorICAgIGludmFsaWRhdGUoKTsKK30KKworQ0ZVUkxSZWYgS1VS
TDo6Y3JlYXRlQ0ZVUkwoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgV1RGVVJMIEltcGxl
bWVudGF0aW9uLgorICAgIHJldHVybiAwOworfQorCisjZW5kaWYgLy8gVVNFKFdURlVSTCkKKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tVUkxNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQppbmRleCBhNWQxNWY1ZWEzNWJl
ZDkxMmEzNDRjMDY3ODI2NmExYTA3ODM3MzBkLi5jNjlkN2FjY2VmOTNlNjU5NjAzMTcyYjEwOWU3
OGI0OGNmZmViZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS1VS
TE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbQpAQCAt
MzEsNiArMzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhVVNFKFdURlVSTCkK
KwogdHlwZWRlZiBWZWN0b3I8Y2hhciwgNTEyPiBDaGFyQnVmZmVyOwogZXh0ZXJuIENGVVJMUmVm
IGNyZWF0ZUNGVVJMRnJvbUJ1ZmZlcihjb25zdCBDaGFyQnVmZmVyJiBidWZmZXIpOwogCkBAIC02
OSw0ICs3MSwyMCBAQCBDRlVSTFJlZiBLVVJMOjpjcmVhdGVDRlVSTCgpIGNvbnN0CiAgICAgcmV0
dXJuIGNyZWF0ZUNGVVJMRnJvbUJ1ZmZlcihidWZmZXIpOwogfQogCisjZWxzZQorCitLVVJMOjpL
VVJMKE5TVVJMICopCit7CisgICAgLy8gRklYTUU6IEFkZCBXVEZVUkwgSW1wbGVtZW50YXRpb24u
CisgICAgaW52YWxpZGF0ZSgpOworfQorCitLVVJMOjpvcGVyYXRvciBOU1VSTCAqKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogQWRkIFdURlVSTCBJbXBsZW1lbnRhdGlvbi4KKyAgICByZXR1cm4g
bmlsOworfQorCisjZW5kaWYKKwogfQo=
</data>
<flag name="review"
          id="129930"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="129931"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>