<?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>121943</bug_id>
          
          <creation_ts>2013-09-25 22:05:17 -0700</creation_ts>
          <short_desc>[MediaStream API] HTMLMediaElement should be able to use MediaStream as source</short_desc>
          <delta_ts>2013-11-26 18:10:33 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>124856</dependson>
    
    <dependson>124860</dependson>
    
    <dependson>124896</dependson>
          <blocked>124288</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Nick Diego Yamane (diegoyam)">nick.diego</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kaisers</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lauro.neto</cc>
    
    <cc>nick.diego</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>thiago.lacerda</cc>
    
    <cc>tommyw</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>933363</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-25 22:05:17 -0700</bug_when>
    <thetext>partial interface HTMLMediaElement
 {
                attribute MediaStream? srcObject;
};




&lt;rdar://problem/15022712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954307</commentid>
    <comment_count>1</comment_count>
      <attachid>217891</attachid>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-11-26 11:06:18 -0800</bug_when>
    <thetext>Created attachment 217891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954314</commentid>
    <comment_count>2</comment_count>
      <attachid>217891</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-26 11:30:51 -0800</bug_when>
    <thetext>Comment on attachment 217891
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:324
&gt; +#if ENABLE(MEDIA_STREAM)

Shouldn&apos;t this be guarded with ENABLE(VIDEO) too?

&gt; Source/WebCore/html/HTMLMediaElement.cpp:753
&gt; +#if ENABLE(MEDIA_STREAM)

Ditto.

&gt; Source/WebCore/html/HTMLMediaElement.h:147
&gt; +#if ENABLE(MEDIA_STREAM)

Ditto.

&gt; Source/WebCore/html/HTMLMediaElement.h:808
&gt; +#if ENABLE(MEDIA_STREAM)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954317</commentid>
    <comment_count>3</comment_count>
      <attachid>217891</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-11-26 11:39:30 -0800</bug_when>
    <thetext>Comment on attachment 217891
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:324
&gt;&gt; +#if ENABLE(MEDIA_STREAM)
&gt; 
&gt; Shouldn&apos;t this be guarded with ENABLE(VIDEO) too?

Everything in this file is already guarded with ENABLE(VIDEO)

&gt;&gt; Source/WebCore/html/HTMLMediaElement.h:147
&gt;&gt; +#if ENABLE(MEDIA_STREAM)
&gt; 
&gt; Ditto.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954330</commentid>
    <comment_count>4</comment_count>
      <attachid>217896</attachid>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-11-26 13:01:39 -0800</bug_when>
    <thetext>Created attachment 217896
Added Xcode stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954331</commentid>
    <comment_count>5</comment_count>
      <attachid>217891</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-26 13:05:16 -0800</bug_when>
    <thetext>Comment on attachment 217891
Patch

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

&gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.cpp:38
&gt; +    ASSERT(mediaElement);

If this can never be null, can you change the function to take a HTMLMediaElement&amp;.

&gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.cpp:40
&gt; +    isNull = !mediaStream;

This is probably not your doing, but passing null out of band here seems wasteful, since we have an inband signal already (the value of the pointer).

&gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.cpp:46
&gt; +    ASSERT(mediaElement);

If this can never be null, can you change the function to take a HTMLMediaElement&amp;.

&gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.h:40
&gt; +    static PassRefPtr&lt;MediaStream&gt; srcObject(HTMLMediaElement*, bool&amp; isNull);

This should not return a PassRefPtr. Just good old MediaStream*.

&gt; Source/WebCore/html/HTMLMediaElement.h:148
&gt; +    PassRefPtr&lt;MediaStream&gt; srcObject() const { return m_mediaStreamSrcObject; }

This should not return a PassRefPtr. Just good old MediaStream*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954336</commentid>
    <comment_count>6</comment_count>
      <attachid>217891</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-11-26 13:48:19 -0800</bug_when>
    <thetext>Comment on attachment 217891
Patch

Attachment 217891 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/37468030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954344</commentid>
    <comment_count>7</comment_count>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-11-26 14:34:41 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 217891 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217891&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.cpp:38
&gt; &gt; +    ASSERT(mediaElement);
&gt; 
&gt; If this can never be null, can you change the function to take a HTMLMediaElement&amp;.

I suspect that&apos;s not possible, because this function is called by the auto-generated binding code, which in this case expects to pass a HTMLMediaElement* as the first parameter.

&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.cpp:40
&gt; &gt; +    isNull = !mediaStream;
&gt; 
&gt; This is probably not your doing, but passing null out of band here seems wasteful, since we have an inband signal already (the value of the pointer).
&gt; 

&apos;isNull&apos; parameter is also parte of the interface expected by auto-generated code. I&apos;m not sure if it&apos;s necessary to set it according to the pointer value...

&gt; &gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.cpp:46
&gt; &gt; +    ASSERT(mediaElement);
&gt; 
&gt; If this can never be null, can you change the function to take a HTMLMediaElement&amp;.
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/HTMLMediaElementMediaStream.h:40
&gt; &gt; +    static PassRefPtr&lt;MediaStream&gt; srcObject(HTMLMediaElement*, bool&amp; isNull);
&gt; 
&gt; This should not return a PassRefPtr. Just good old MediaStream*.
&gt; 
Ok, done.

&gt; &gt; Source/WebCore/html/HTMLMediaElement.h:148
&gt; &gt; +    PassRefPtr&lt;MediaStream&gt; srcObject() const { return m_mediaStreamSrcObject; }
&gt; 
&gt; This should not return a PassRefPtr. Just good old MediaStream*.

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954396</commentid>
    <comment_count>8</comment_count>
      <attachid>217914</attachid>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-11-26 17:32:13 -0800</bug_when>
    <thetext>Created attachment 217914
Proposed Patch

Fixing GTK build issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954400</commentid>
    <comment_count>9</comment_count>
      <attachid>217914</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-26 18:10:28 -0800</bug_when>
    <thetext>Comment on attachment 217914
Proposed Patch

Clearing flags on attachment: 217914

Committed r159797: &lt;http://trac.webkit.org/changeset/159797&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954401</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-26 18:10:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217891</attachid>
            <date>2013-11-26 11:06:18 -0800</date>
            <delta_ts>2013-11-26 17:31:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121943-20131126151757.patch</filename>
            <type>text/plain</type>
            <size>20972</size>
            <attacher name="Nick Diego Yamane (diegoyam)">nick.diego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDcyZTkxYWVjYzdmZjRl
NjM1YjE3MWRiODU4MjU3ODVlNjNkNDVkYi4uMDdhZjE4YzZjZmYwOGQ2OWQwNjkyMDMwMDhlM2M2
ZjJmZTdjNzgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEzLTExLTI2ICBOaWNr
IERpZWdvIFlhbWFuZSAgPG5pY2sueWFtYW5lQG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAgW01l
ZGlhU3RyZWFtIEFQSV0gSFRNTE1lZGlhRWxlbWVudCBzaG91bGQgYmUgYWJsZSB0byB1c2UgTWVk
aWFTdHJlYW0gYXMgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjE5NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgTWVkaWFTdHJlYW0gZGlyZWN0IGFzc2lnbm1lbnQgdG8gTWVk
aWEgRWxlbWVudHMgdXNpbmcgdGhlIG5ldyAnc3JjT2JqZWN0JworICAgICAgICBhdHRyaWJ1dGU6
IGh0dHA6Ly93d3cudzMub3JnL1RSL21lZGlhY2FwdHVyZS1zdHJlYW1zLyNkaXJlY3QtYXNzaWdu
bWVudC10by1tZWRpYS1lbGVtZW50cworCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogQWRkZWQgbmV3IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oIGFuZCAu
Y3BwIHRvIGNtYWtlIGJ1aWxkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVk
IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwuCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogQWRkZWQgbmV3IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbSogdG8gYXV0b3Rv
b2xzIGJ1aWxkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVu
dE1lZGlhU3RyZWFtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50TWVkaWFTdHJlYW06OnNyY09iamVjdCk6IGltcGxlbWVudHMgc3JjT2JqZWN0IGdldHRlci4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c2V0U3JjT2Jq
ZWN0KTogaW1wbGVtZW50cyBzcmNPYmplY3Qgc2V0dGVyLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbDogQWRk
ZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNyY09iamVjdCk6IFRoaXMgaXMgYW4gaW5pdGlhbCBp
bXBsZW1lbnRhdGlvbiwgYW5kCisgICAgICAgIGlzIHN0aWxsIGluY29tcGxldGUsIHRoYXQgd2ls
bCBiZSBhZGRyZXNzZWQgaW4gYSBzZXBhcmF0ZSBidWc6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEy
NDg5NgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOiBBZGRlZCBtX21lZGlhU3Ry
ZWFtU3JjT2JqZWN0IGNsYXNzIHZhcmlhYmxlCisgICAgICAgIGFuZCBpdHMgY29ycmVzcG9uZGlu
ZyBnZXR0ZXIuCisKKzIwMTMtMTEtMjYgIE5pY2sgRGllZ28gWWFtYW5lICA8bmljay55YW1hbmVA
b3BlbmJvc3NhLm9yZz4KKwogICAgICAgICBSZW1vdmUgdW5uZWNlc3Nhcnkgd2ViYXVkaW8gaW5j
bHVkZSBmcm9tIE1lZGlhU3RyZWFtU291cmNlIGhlYWRlcgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0ODk3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhYzJkMjll
ODRjMjE3N2Y4MGM1NDdkYmNhOTJjNTdhZTIxMTEwMTI1Li4zMGJmNDkzNWEyOGIwMDIyMzhlZjQ0
NDNiYWVkYzkzYTNkN2QyYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMTEt
MjYgIE5pY2sgRGllZ28gWWFtYW5lICA8bmljay55YW1hbmVAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbTWVkaWFTdHJlYW0gQVBJXSBIVE1MTWVkaWFFbGVtZW50IHNob3VsZCBiZSBhYmxlIHRv
IHVzZSBNZWRpYVN0cmVhbSBhcyBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMTk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBtZWRpYXN0cmVhbSBtb2R1bGUgYW5kIHBsYXRmb3JtIHRv
IGNtYWtlIGluY2x1ZGUgZGlyZWN0b3JpZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KwogMjAxMy0xMS0yNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gVXNlIGNsYXNzIGV4dGVuc2lvbnMgZm9yIElQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA5NGViYmIzM2ZlY2IzOWY4NzQ0YWViZWU4MDU4MGJjYTFhN2QzNjRkLi5iNmM3MGM2Y2M0
MjY4YjcwNzZhYzFiNGFlM2E2Yjc3YzNmNTIyNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTg5LDYgKzE4OSw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vQWxsVmlkZW9DYXBhYmlsaXRpZXMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9B
dWRpb1N0cmVhbVRyYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJh
bmdlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3Ry
ZWFtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmlkbApAQCAtODI5LDYgKzgzMCw3IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1U
cmFjay5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5jcHAKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDZl
Yjg0YTRhNWJkODBhMmQwODAwNjU3MzcxNjAwYTQyZDM2Mjg0N2IuLmMyODBhNjUxNTc0YTI1NDlm
MGE3ZmViYWRkYTgyNDY0MTNlNDM0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTA2LDYgKzEwNiw3IEBAIEJJTkRJTkdfSURMUyA9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vQWxsQXVkaW9DYXBhYmlsaXRpZXMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9DYXBhYmlsaXR5UmFuZ2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhMTA5NjkwMjg3MGM2YzY3MWE2NTY5NjBh
NTg5ZWIzZmFhOWVhOGFkLi4wODBkZTFkZTk5MWIzYTU0OGI1MTIxYjQ4YWYyN2E2NzhkZDNiMTVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM1NSw2ICszNTUsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1l
bnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVh
bS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lbnVFbGVtZW50LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1ldGFFbGVtZW50LmNwcCBcCkBAIC0xMjAyLDYgKzEyMDQsNyBA
QCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
QWxsQXVkaW9DYXBhYmlsaXRpZXMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vQXVkaW9TdHJlYW1UcmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9DYXBhYmlsaXR5UmFuZ2UuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
SFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmlkbCBcCkBAIC0xODg3LDYgKzE4OTAsOCBAQCB3
ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9DYXBhYmlsaXR5UmFuZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBs
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFp
bnRzSW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU291
cmNlU3RhdGVzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDYwNjdkY2QxOTEwNWQ1MzJmNWYxNTI5ODE4ODJlZWFlMjVhYWUwZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxl
bWVudE1lZGlhU3RyZWFtLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50TWVk
aWFTdHJlYW0uaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEVOQUJMRShWSURFTykK
KworI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IEhUTUxN
ZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWxlbWVudCwgYm9vbCYgaXNOdWxsKQoreworICAgIEFTU0VSVChtZWRpYUVsZW1lbnQpOworICAg
IFJlZlB0cjxNZWRpYVN0cmVhbT4gbWVkaWFTdHJlYW0gPSBtZWRpYUVsZW1lbnQtPnNyY09iamVj
dCgpOworICAgIGlzTnVsbCA9ICFtZWRpYVN0cmVhbTsKKyAgICByZXR1cm4gbWVkaWFTdHJlYW07
Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtOjpzZXRTcmNPYmplY3QoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBtZWRp
YVN0cmVhbSkKK3sKKyAgICBBU1NFUlQobWVkaWFFbGVtZW50KTsKKyAgICBtZWRpYUVsZW1lbnQt
PnNldFNyY09iamVjdChtZWRpYVN0cmVhbSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEVOQUJMRShWSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVu
dE1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxN
ZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMDA4YTA3ZmUyNzUxNmU5MmNi
MzBiMTJlNDk3ODQ5Mjg1OTVhNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MTWVkaWFFbGVt
ZW50TWVkaWFTdHJlYW1faAorI2RlZmluZSBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW1faAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MTWVk
aWFFbGVtZW50OworY2xhc3MgTWVkaWFTdHJlYW07CisKK2NsYXNzIEhUTUxNZWRpYUVsZW1lbnRN
ZWRpYVN0cmVhbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+
IHNyY09iamVjdChIVE1MTWVkaWFFbGVtZW50KiwgYm9vbCYgaXNOdWxsKTsKKyAgICBzdGF0aWMg
dm9pZCBzZXRTcmNPYmplY3QoSFRNTE1lZGlhRWxlbWVudCosIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW0+KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIEVOQUJMRShWSURFTykKKworI2VuZGlmIC8vIEhUTUxNZWRpYUVsZW1l
bnRNZWRpYVN0cmVhbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjVlYWNlMzNlNzMwZjU5MzY5YWUxYWI0ZGI3YjkzOTQ0ZTNjNmUzYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxl
bWVudE1lZGlhU3RyZWFtLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTyZNRURJQV9TVFJFQU0sCitdIHBhcnRpYWwg
aW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQKK3sKKyAgICBhdHRyaWJ1dGUgTWVkaWFTdHJlYW0/
IHNyY09iamVjdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCBhNzZjZjBiNTQ0NTFiZjc3YmIyOTYxZWUyYTI1NDNlOGNlYjgwMTk3Li40MWI2NTliYWZj
YThjY2IwMDM1Mzc4ZGQ1M2Y3NzEwYTEzYWFkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTExMiw2ICsxMTIsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1SZWdpc3RyeS5oIgogI2VuZGlmCiAKQEAgLTMyMCw2ICszMjEsOSBAQCBIVE1MTWVk
aWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bQogICAgICwgbV9hdWRpb1Nlc3Npb25NYW5hZ2VyVG9rZW4oQXVkaW9T
ZXNzaW9uTWFuYWdlclRva2VuOjpjcmVhdGUodGFnTmFtZSA9PSB2aWRlb1RhZyA/IEF1ZGlvU2Vz
c2lvbk1hbmFnZXI6OlZpZGVvIDogQXVkaW9TZXNzaW9uTWFuYWdlcjo6QXVkaW8pKQogI2VuZGlm
CiAgICAgLCBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0KDApCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICAsIG1fbWVkaWFTdHJlYW1TcmNPYmplY3QobnVsbHB0cikKKyNlbmRpZgogewog
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQiKTsKICAg
ICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKQEAgLTc0Niw2ICs3NTAsMjAg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTcmMoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAg
c2V0QXR0cmlidXRlKHNyY0F0dHIsIHVybCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTcmNPYmplY3QoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4gbWVkaWFTdHJlYW0pCit7CisgICAgLy8gRklYTUU6IFNldHRpbmcgdGhlIHNyY09iamVj
dCBhdHRyaWJ1dGUgbWF5IGNhdXNlIG90aGVyIGNoYW5nZXMgdG8gdGhlIG1lZGlhIGVsZW1lbnQn
cyBpbnRlcm5hbCBzdGF0ZToKKyAgICAvLyBTcGVjaWZpY2FsbHksIGlmIHNyY09iamVjdCBpcyBz
cGVjaWZpZWQsIHRoZSBVQSBtdXN0IHVzZSBpdCBhcyB0aGUgc291cmNlIG9mIG1lZGlhLCBldmVu
IGlmIHRoZSBzcmMKKyAgICAvLyBhdHRyaWJ1dGUgaXMgYWxzbyBzZXQgb3IgY2hpbGRyZW4gYXJl
IHByZXNlbnQuIElmIHRoZSB2YWx1ZSBvZiBzcmNPYmplY3QgaXMgcmVwbGFjZWQgb3Igc2V0IHRv
IG51bGwKKyAgICAvLyB0aGUgVUEgbXVzdCByZS1ydW4gdGhlIG1lZGlhIGVsZW1lbnQgbG9hZCBh
bGdvcml0aG0uCisgICAgLy8KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI0ODk2CisKKyAgICBtX21lZGlhU3RyZWFtU3JjT2JqZWN0ID0gbWVkaWFTdHJl
YW07Cit9CisjZW5kaWYKKwogSFRNTE1lZGlhRWxlbWVudDo6TmV0d29ya1N0YXRlIEhUTUxNZWRp
YUVsZW1lbnQ6Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbmV0d29ya1N0
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1NjQyYzk3ODA2
YTlmNWEzODc0Zjk5YmNmZTczYjY1NWZhN2QwZGY4Li5iNDMyNWMxZWUwNmJiYzFiNDY1YTVjYWI3
OWY4NmM4ODE0MzU2ZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtNDgsNyArNDgsOSBAQAogI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKICNlbmRpZgogCi0KKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzksMTAgKzE0MSwxNSBAQCBwdWJsaWM6CiAv
LyBlcnJvciBzdGF0ZQogICAgIFBhc3NSZWZQdHI8TWVkaWFFcnJvcj4gZXJyb3IoKSBjb25zdDsK
IAotLy8gbmV0d29yayBzdGF0ZQogICAgIHZvaWQgc2V0U3JjKGNvbnN0IFN0cmluZyYpOwogICAg
IGNvbnN0IFVSTCYgY3VycmVudFNyYygpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNyYzsgfQog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBz
cmNPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtU3JjT2JqZWN0OyB9CisgICAg
dm9pZCBzZXRTcmNPYmplY3QoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOworI2VuZGlmCisKKy8v
IG5ldHdvcmsgc3RhdGUKICAgICBlbnVtIE5ldHdvcmtTdGF0ZSB7IE5FVFdPUktfRU1QVFksIE5F
VFdPUktfSURMRSwgTkVUV09SS19MT0FESU5HLCBORVRXT1JLX05PX1NPVVJDRSB9OwogICAgIE5l
dHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKIApAQCAtNzk3LDYgKzgwNCwxMCBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xzSG9zdD4gbV9tZWRpYUNvbnRyb2xzSG9z
dDsKICAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7CiAjZW5kaWYK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBtX21l
ZGlhU3RyZWFtU3JjT2JqZWN0OworI2VuZGlmCiB9OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA3M2I1ZTYwY2ZhYmRlODdhNWI2YTZjNmMzOWQwMGEw
ZTA4NmI3MDBiLi5lMjBhOWU1YTQ0NTlhMDcyMmY5YTIwMDZiMGJkOTlhYzc3MDAwNGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dApAQCAtNjQsNiArNjQsNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzIgogICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9iYXR0ZXJ5IgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFt
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL25ldHdvcmtpbmZvIgogICAgICIke1dFQkNP
UkVfRElSfS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVs
ZXMvdmlicmF0aW9uIgpAQCAtMTAwLDYgKzEwMSw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbWVkaWFzdHJlYW0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L25ldHdvcmsiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3NxbCIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vdGV4dCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MWExZjMyM2EyOTY5YWRmMmQzYzdiMGMz
M2Q3YWNlYzljMWVkNmRkLi5jMWVmNTg3N2FlMjBkNTVlMmVmMmE5YWRiNmU2YTk3NTNmOWEyNGEz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMTEtMjYgIE5pY2sgRGllZ28gWWFtYW5lICA8
bmljay55YW1hbmVAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbTWVkaWFTdHJlYW0gQVBJXSBI
VE1MTWVkaWFFbGVtZW50IHNob3VsZCBiZSBhYmxlIHRvIHVzZSBNZWRpYVN0cmVhbSBhcyBzb3Vy
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTk0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdHMgdG8gTWVkaWFTdHJlYW0gZGlyZWN0IGFzc2lnbm1lbnQgdG8gSFRNTE1lZGlh
RWxlbWVudAorICAgICAgICB1c2luZyBicmFuZCBuZXcgc3JjT2JqZWN0IGF0dHJpYnV0ZS4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09i
amVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sOiBBZGRlZC4KKwogMjAxMy0xMS0y
NiAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tTWVkaWFF
bGVtZW50LXNyY09iamVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzMDAzZGE2YmNjMDI3
YzdlMWQ1MWRiMTIwNjM0ODY0MmY4Mzc5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdHMgTWVkaWFTdHJlYW0gYXNzaWdubWVudCB0
byBNZWRpYUVsZW1lbnQgdXNpbmcgJ3NyY09iamVjdCcgTWVkaWFFbGVtZW50IGF0dHJpYnV0ZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9LCBnb3RTdHJlYW0xLCBlcnJvcik7
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5s
ZW5ndGggaXMgMQorUEFTUyBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMAorUEFT
UyBhdWRpby5zcmNPYmplY3QgPSBzdHJlYW07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBzdHJlYW1PYmogPSBhdWRpby5zcmNPYmplY3Q7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBzdHJlYW1PYmogaXMgc3RyZWFtCitQQVNTIHN0cmVhbU9iai5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCBpcyAxCitQQVNTIHN0cmVhbU9iai5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAw
CitQQVNTIHN0cmVhbU9iai5pZCBpcyBzdHJlYW0uaWQKK1BBU1Mgc3RyZWFtIGFzc2lnbmVkIHRv
IG1lZGlhIGVsZW1lbnQuCitQQVNTIGF1ZGlvLnNyY09iamVjdCA9IG51bGw7IGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBzdHJlYW1PYmogPSBhdWRpby5zcmNPYmplY3Q7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdHJlYW1PYmogaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1l
bnQtc3JjT2JqZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVkZjNhYzVhOGY3NGY5YjFjODU5ODQyYTVm
MGE0NTA3YjlkZDc5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBNZWRp
YVN0cmVhbSBhc3NpZ25tZW50IHRvIE1lZGlhRWxlbWVudCB1c2luZyAnc3JjT2JqZWN0JyBNZWRp
YUVsZW1lbnQgYXR0cmlidXRlLiIpOworCisgICAgICAgICAgICB2YXIgc3RyZWFtOworICAgICAg
ICAgICAgdmFyIGVycm9yQXJnOworCisgICAgICAgICAgICBmdW5jdGlvbiBlcnJvcigpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgY2Fs
bGVkLicpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0TnVsbFN0cmVhbU9iamVjdChzdHJlYW0sIGF1ZGlv
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJhdWRpby5z
cmNPYmplY3QgPSBudWxsOyIpOworICAgICAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCJzdHJl
YW1PYmogPSBhdWRpby5zcmNPYmplY3Q7Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0
cmVhbU9iaicsICdudWxsJyk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvdFN0cmVhbTEocykKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOworCisg
ICAgICAgICAgICAgICAgYXVkaW8gPSBuZXcgQXVkaW8oKTsKKyAgICAgICAgICAgICAgICBzaG91
bGROb3RUaHJvdygiYXVkaW8uc3JjT2JqZWN0ID0gc3RyZWFtOyIpOworICAgICAgICAgICAgICAg
IHNob3VsZE5vdFRocm93KCJzdHJlYW1PYmogPSBhdWRpby5zcmNPYmplY3Q7Iik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbU9iaicsICdzdHJlYW0nKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgnc3RyZWFtT2JqLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtT2JqLmdldFZpZGVvVHJhY2tzKCkubGVuZ3Ro
JywgJzAnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtT2JqLmlkJywgJ3N0cmVh
bS5pZCcpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ3N0cmVhbSBhc3NpZ25lZCB0byBt
ZWRpYSBlbGVtZW50LicpOworCisgICAgICAgICAgICAgICAgdGVzdE51bGxTdHJlYW1PYmplY3Qo
c3RyZWFtLCBhdWRpbyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNob3VsZE5vdFRo
cm93KCJuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxz
ZX0sIGdvdFN0cmVhbTEsIGVycm9yKTsiKTsKKworICAgICAgICAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217896</attachid>
            <date>2013-11-26 13:01:39 -0800</date>
            <delta_ts>2013-11-26 17:32:05 -0800</delta_ts>
            <desc>Added Xcode stuff</desc>
            <filename>bug-121943-20131126171322.patch</filename>
            <type>text/plain</type>
            <size>25990</size>
            <attacher name="Nick Diego Yamane (diegoyam)">nick.diego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVmNGUwYmEyYzkwYjk0
ZWQ2ZWQ5N2RkNTg3ZDc1OGZjYjVlMDc4Mi4uZTVmZjY2NTQwMzcxM2Y3YmQ1NGMzZmZjZmY1ZjY5
YmRjMGJmYzMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTExLTI2ICBOaWNr
IERpZWdvIFlhbWFuZSAgPG5pY2sueWFtYW5lQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW01l
ZGlhU3RyZWFtIEFQSV0gSFRNTE1lZGlhRWxlbWVudCBzaG91bGQgYmUgYWJsZSB0byB1c2UgTWVk
aWFTdHJlYW0gYXMgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjE5NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgTWVkaWFTdHJlYW0gZGlyZWN0IGFzc2lnbm1lbnQgdG8gTWVk
aWEgRWxlbWVudHMgdXNpbmcgdGhlIG5ldyAnc3JjT2JqZWN0JworICAgICAgICBhdHRyaWJ1dGU6
IGh0dHA6Ly93d3cudzMub3JnL1RSL21lZGlhY2FwdHVyZS1zdHJlYW1zLyNkaXJlY3QtYXNzaWdu
bWVudC10by1tZWRpYS1lbGVtZW50cworCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogQWRkZWQgbmV3IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oIGFuZCAu
Y3BwIHRvIGNtYWtlIGJ1aWxkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVk
IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwuCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogQWRkZWQgbmV3IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbSogdG8gYXV0b3Rv
b2xzIGJ1aWxkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlh
RWxlbWVudE1lZGlhU3RyZWFtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW06OnNyY09iamVjdCk6IGltcGxlbWVudHMgc3JjT2JqZWN0IGdl
dHRlci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c2V0
U3JjT2JqZWN0KTogaW1wbGVtZW50cyBzcmNPYmplY3Qgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlk
bDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNyY09iamVjdCk6IFRoaXMgaXMgYW4gaW5p
dGlhbCBpbXBsZW1lbnRhdGlvbiwgYW5kCisgICAgICAgIGlzIHN0aWxsIGluY29tcGxldGUsIHRo
YXQgd2lsbCBiZSBhZGRyZXNzZWQgaW4gYSBzZXBhcmF0ZSBidWc6IGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzEyNDg5NgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOiBBZGRlZCBtX21l
ZGlhU3RyZWFtU3JjT2JqZWN0IGNsYXNzIHZhcmlhYmxlCisgICAgICAgIGFuZCBpdHMgY29ycmVz
cG9uZGluZyBnZXR0ZXIuCisKIDIwMTMtMTEtMjYgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9i
ZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIFN1cHBvcnQgZm9yIHNoYXBlLW1hcmdpbiBp
biBCb3hTaGFwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGFjMmQyOWU4NGMyMTc3ZjgwYzU0N2RiY2E5MmM1N2Fl
MjExMTAxMjUuLjc1MzE5ZTk1YWU1Y2I2NzRiMmRiN2Q2NWM5ZjljYzc0ODkzNmM1MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0xMS0yNiAgTmljayBEaWVnbyBZYW1hbmUgIDxu
aWNrLnlhbWFuZUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtNZWRpYVN0cmVhbSBBUEldIEhU
TUxNZWRpYUVsZW1lbnQgc2hvdWxkIGJlIGFibGUgdG8gdXNlIE1lZGlhU3RyZWFtIGFzIHNvdXJj
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxOTQz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1l
ZGlhc3RyZWFtIG1vZHVsZSBhbmQgcGxhdGZvcm0gdG8gY21ha2UgaW5jbHVkZSBkaXJlY3Rvcmll
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCisKIDIwMTMtMTEtMjUgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFVzZSBjbGFzcyBleHRl
bnNpb25zIGZvciBJUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTRlYmJiMzNmZWNiMzlmODc0
NGFlYmVlODA1ODBiY2ExYTdkMzY0ZC4uYjZjNzBjNmNjNDI2OGI3MDc2YWMxYjRhZTNhNmI3N2Mz
ZjUyMjY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE4OSw2ICsxODksNyBAQCBzZXQoV2Vi
Q29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0FsbFZpZGVvQ2FwYWJpbGl0
aWVzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFjay5pZGwKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5pZGwKKyAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFi
aWxpdGllcy5pZGwKQEAgLTgyOSw2ICs4MzAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suY3BwCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9DYXBhYmlsaXR5UmFuZ2UuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9I
VE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU291
cmNlU3RhdGVzLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ZWI4NGE0YTViZDgwYTJkMDgwMDY1NzM3
MTYwMGE0MmQzNjI4NDdiLi5jMjgwYTY1MTU3NGEyNTQ5ZjBhN2ZlYmFkZGE4MjQ2NDEzZTQzNDVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEwNiw2ICsxMDYsNyBAQCBCSU5E
SU5HX0lETFMgPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0FsbEF1ZGlvQ2Fw
YWJpbGl0aWVzLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3Ry
ZWFtVHJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJp
bGl0eVJhbmdlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxN
ZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVNvdXJjZVN0YXRlcy5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUNhcGFiaWxpdGllcy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggYTEwOTY5MDI4NzBjNmM2NzFhNjU2OTYwYTU4OWViM2ZhYTllYThhZC4uMDgwZGUx
ZGU5OTFiM2E1NDhiNTEyMWI0OGFmMjdhNjc4ZGQzYjE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0zNTUsNiArMzU1LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1hcnF1ZWVFbGVtZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIVE1MTWVudUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZXRh
RWxlbWVudC5jcHAgXApAQCAtMTIwMiw2ICsxMjA0LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBc
CiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0FsbEF1ZGlvQ2FwYWJpbGl0aWVzLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmlkbCBc
CisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0
cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVNvdXJjZVN0
YXRlcy5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5p
ZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNhcGFiaWxp
dGllcy5pZGwgXApAQCAtMTg4Nyw2ICsxODkwLDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFj
ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5n
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJh
bmdlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxl
bWVudE1lZGlhU3RyZWFtLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9IVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuaCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVNvdXJjZVN0YXRlcy5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50
TWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1M
TWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MDY3ZGNkMTkxMDVkNTMy
ZjVmMTUyOTgxODgyZWVhZTI1YWFlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAKQEAg
LTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW06
OnNyY09iamVjdChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQsIGJvb2wmIGlzTnVsbCkK
K3sKKyAgICBBU1NFUlQobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IG1l
ZGlhU3RyZWFtID0gbWVkaWFFbGVtZW50LT5zcmNPYmplY3QoKTsKKyAgICBpc051bGwgPSAhbWVk
aWFTdHJlYW07CisgICAgcmV0dXJuIG1lZGlhU3RyZWFtOworfQorCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnRNZWRpYVN0cmVhbTo6c2V0U3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxl
bWVudCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gbWVkaWFTdHJlYW0pCit7CisgICAgQVNTRVJU
KG1lZGlhRWxlbWVudCk7CisgICAgbWVkaWFFbGVtZW50LT5zZXRTcmNPYmplY3QobWVkaWFTdHJl
YW0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYzAwOGEwN2ZlMjc1MTZlOTJjYjMwYjEyZTQ5Nzg0OTI4NTk1YTUxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1M
TWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtX2gKKyNkZWZp
bmUgSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKK2NsYXNzIE1lZGlh
U3RyZWFtOworCitjbGFzcyBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0geworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzcmNPYmplY3QoSFRNTE1lZGlhRWxl
bWVudCosIGJvb2wmIGlzTnVsbCk7CisgICAgc3RhdGljIHZvaWQgc2V0U3JjT2JqZWN0KEhUTUxN
ZWRpYUVsZW1lbnQqLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBFTkFCTEUo
VklERU8pCisKKyNlbmRpZiAvLyBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW1faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50
TWVkaWFTdHJlYW0uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1M
TWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZWFjZTMzZTczMGY1OTM2
OWFlMWFiNGRiN2I5Mzk0NGUzYzZlM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwKQEAg
LTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9u
YWw9VklERU8mTUVESUFfU1RSRUFNLAorXSBwYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVt
ZW50Cit7CisgICAgYXR0cmlidXRlIE1lZGlhU3RyZWFtPyBzcmNPYmplY3Q7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5
NDMyN2FjMDgxYmFlNjE4MDFiNzljOTA4ZDkzNDViNmMyOTM0OTcuLjgyYjFjMzA3YzhkZDk0ZWRi
MDU1ZGFlNjIzMGIyZjlmZTFjNTZlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MCw2ICsxODAsOCBAQAogCQkwNzY5NzA4
NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyog
VGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CiAJCTA3Njk3MDg3MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzY5NzA4NTE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovOyB9Owog
CQkwNzZGMEQwRTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzZG
MEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Ki87IH07CisJCTA3NzlCRjBEMTg0NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVkaWFFbGVtZW50TWVk
aWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc3OUJGMEExODQ1MzE2ODAwMEI2QUU3IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVh
bS5jcHAgKi87IH07CisJCTA3NzlCRjBFMTg0NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVkaWFFbGVt
ZW50TWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3NzlCRjBCMTg0NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVkaWFFbGVtZW50TWVkaWFT
dHJlYW0uaCAqLzsgfTsKIAkJMDc4MzIyODQxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc4MzIyODIxODAxM0VENzAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uu
Y3BwICovOyB9OwogCQkwNzgzMjI4NTE4MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAqLzsg
fTsKIAkJMDc4NDYzNDIxNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzg0NjM0MDE0NUIxNTFB
MDBBNThERjEgLyogSlNUcmFja0V2ZW50LmNwcCAqLzsgfTsKQEAgLTY3OTYsNiArNjc5OCw5IEBA
CiAJCTA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja0xpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
Nzc5QkYwQTE4NDUzMTY4MDAwQjZBRTcgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxNZWRpYUVsZW1lbnRN
ZWRpYVN0cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NzlCRjBCMTg0
NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NzlCRjBDMTg0NTMxNjgwMDBCNkFFNyAvKiBI
VE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhU
TUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3ODMyMjgyMTgwMTNFRDcwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzgzMjI4MzE4MDEzRUQ4
MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3ODQ2MzQwMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUcmFja0V2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNTc5LDYgKzEzNTg0LDkgQEAKIAkJMDcy
MjFCNDYxN0NFQzMyNzAwODQ4RTUxIC8qIG1lZGlhc3RyZWFtICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwNzc5QkYwQTE4NDUzMTY4MDAwQjZBRTcgLyog
SFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNwcCAqLywKKwkJCQkwNzc5QkYwQjE4NDUzMTY4
MDAwQjZBRTcgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggKi8sCisJCQkJMDc3OUJG
MEMxODQ1MzE2ODAwMEI2QUU3IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwgKi8s
CiAJCQkJMDcwNTg1MzkxN0ZFMDc3MDAwNUYyQkNCIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50LmNw
cCAqLywKIAkJCQkwNzA1ODUzNzE3RkUwNDRGMDA1RjJCQ0IgLyogTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXQuY3BwICovLAogCQkJCTA3MDU4NTI2MTdGREUwMkIwMDVGMkJDQiAvKiBNZWRpYVRyYWNr
Q29uc3RyYWludFNldC5oICovLApAQCAtMjI4MTEsNiArMjI4MTksNyBAQAogCQkJCTUxRkEyRDc4
MTUyMTMyQjMwMEMxQkEwQiAvKiBET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3QjM4RTI3MTUxQzQyNzEwMDQ2MjJFOSAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0QyQUQwNDE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NzlCRjBFMTg0NTMxNjgwMDBCNkFFNyAv
KiBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5RjYw
QjExMTU3RjY4NkUwMDc1RTE1NyAvKiBET01XaW5kb3dRdW90YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUEyQTVBRDYxNkE0ODYxNjAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThDQ0JCNDkxNTFGODMxNjAwQUI3Q0U5IC8qIERPTVdpbmRv
d1dlYkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjE1LDYgKzI2MjI0LDcgQEAKIAkJ
CQkyRUYxQkZFQTEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTdGRURFMTEyMTJFRTlDMDA5N0JFNjUgLyogRmlsZVN5c3RlbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTYwMzA2QzBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTA3NzlCRjBEMTg0NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjZDMTdBM0YxNDkx
RDJENDAwRDEyQkEyIC8qIEZpbGVTeXN0ZW1JT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDNB
NDk1NDE3QTlDQzkwMDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNEIzRjc2MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBh
NzZjZjBiNTQ0NTFiZjc3YmIyOTYxZWUyYTI1NDNlOGNlYjgwMTk3Li40MWI2NTliYWZjYThjY2Iw
MDM1Mzc4ZGQ1M2Y3NzEwYTEzYWFkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTExMiw2ICsxMTIsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1SZWdpc3RyeS5oIgogI2VuZGlmCiAKQEAgLTMyMCw2ICszMjEsOSBAQCBIVE1MTWVkaWFFbGVt
ZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bQogICAgICwgbV9hdWRpb1Nlc3Npb25NYW5hZ2VyVG9rZW4oQXVkaW9TZXNzaW9u
TWFuYWdlclRva2VuOjpjcmVhdGUodGFnTmFtZSA9PSB2aWRlb1RhZyA/IEF1ZGlvU2Vzc2lvbk1h
bmFnZXI6OlZpZGVvIDogQXVkaW9TZXNzaW9uTWFuYWdlcjo6QXVkaW8pKQogI2VuZGlmCiAgICAg
LCBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0KDApCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICAsIG1fbWVkaWFTdHJlYW1TcmNPYmplY3QobnVsbHB0cikKKyNlbmRpZgogewogICAgIExP
RyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQiKTsKICAgICBzZXRI
YXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKQEAgLTc0Niw2ICs3NTAsMjAgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTcmMoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgc2V0QXR0
cmlidXRlKHNyY0F0dHIsIHVybCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTcmNPYmplY3QoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4g
bWVkaWFTdHJlYW0pCit7CisgICAgLy8gRklYTUU6IFNldHRpbmcgdGhlIHNyY09iamVjdCBhdHRy
aWJ1dGUgbWF5IGNhdXNlIG90aGVyIGNoYW5nZXMgdG8gdGhlIG1lZGlhIGVsZW1lbnQncyBpbnRl
cm5hbCBzdGF0ZToKKyAgICAvLyBTcGVjaWZpY2FsbHksIGlmIHNyY09iamVjdCBpcyBzcGVjaWZp
ZWQsIHRoZSBVQSBtdXN0IHVzZSBpdCBhcyB0aGUgc291cmNlIG9mIG1lZGlhLCBldmVuIGlmIHRo
ZSBzcmMKKyAgICAvLyBhdHRyaWJ1dGUgaXMgYWxzbyBzZXQgb3IgY2hpbGRyZW4gYXJlIHByZXNl
bnQuIElmIHRoZSB2YWx1ZSBvZiBzcmNPYmplY3QgaXMgcmVwbGFjZWQgb3Igc2V0IHRvIG51bGwK
KyAgICAvLyB0aGUgVUEgbXVzdCByZS1ydW4gdGhlIG1lZGlhIGVsZW1lbnQgbG9hZCBhbGdvcml0
aG0uCisgICAgLy8KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI0ODk2CisKKyAgICBtX21lZGlhU3RyZWFtU3JjT2JqZWN0ID0gbWVkaWFTdHJlYW07Cit9
CisjZW5kaWYKKwogSFRNTE1lZGlhRWxlbWVudDo6TmV0d29ya1N0YXRlIEhUTUxNZWRpYUVsZW1l
bnQ6Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbmV0d29ya1N0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1NjQyYzk3ODA2YTlmNWEz
ODc0Zjk5YmNmZTczYjY1NWZhN2QwZGY4Li5iNDMyNWMxZWUwNmJiYzFiNDY1YTVjYWI3OWY4NmM4
ODE0MzU2ZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDgs
NyArNDgsOSBAQAogI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKICNlbmRpZgogCi0KKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzksMTAgKzE0MSwxNSBAQCBwdWJsaWM6CiAvLyBlcnJv
ciBzdGF0ZQogICAgIFBhc3NSZWZQdHI8TWVkaWFFcnJvcj4gZXJyb3IoKSBjb25zdDsKIAotLy8g
bmV0d29yayBzdGF0ZQogICAgIHZvaWQgc2V0U3JjKGNvbnN0IFN0cmluZyYpOwogICAgIGNvbnN0
IFVSTCYgY3VycmVudFNyYygpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFNyYzsgfQogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzcmNPYmpl
Y3QoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtU3JjT2JqZWN0OyB9CisgICAgdm9pZCBz
ZXRTcmNPYmplY3QoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOworI2VuZGlmCisKKy8vIG5ldHdv
cmsgc3RhdGUKICAgICBlbnVtIE5ldHdvcmtTdGF0ZSB7IE5FVFdPUktfRU1QVFksIE5FVFdPUktf
SURMRSwgTkVUV09SS19MT0FESU5HLCBORVRXT1JLX05PX1NPVVJDRSB9OwogICAgIE5ldHdvcmtT
dGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKIApAQCAtNzk3LDYgKzgwNCwxMCBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xzSG9zdD4gbV9tZWRpYUNvbnRyb2xzSG9zdDsKICAg
ICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xhdGVkV29ybGQ7CiAjZW5kaWYKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBtX21lZGlhU3Ry
ZWFtU3JjT2JqZWN0OworI2VuZGlmCiB9OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dAppbmRleCA3M2I1ZTYwY2ZhYmRlODdhNWI2YTZjNmMzOWQwMGEwZTA4NmI3
MDBiLi5lMjBhOWU1YTQ0NTlhMDcyMmY5YTIwMDZiMGJkOTlhYzc3MDAwNGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dApAQCAtNjQsNiArNjQsNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzIgogICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy9iYXR0ZXJ5IgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtIgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL25ldHdvcmtpbmZvIgogICAgICIke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvdmli
cmF0aW9uIgpAQCAtMTAwLDYgKzEwMSw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcCIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbWVkaWFzdHJlYW0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdv
cmsiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3NxbCIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vdGV4dCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYWQzZjc5NGE0NzM0ZDMyZWI3NjhiNzg2ZTcxZjIy
NTZhZmNjZWY4Li5iY2FkODFkNjc3M2RkYTRkZDVmMzJjM2JkMzAxODk0ZGE0MDJjNTFkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMTEtMjYgIE5pY2sgRGllZ28gWWFtYW5lICA8bmljay55
YW1hbmVAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbTWVkaWFTdHJlYW0gQVBJXSBIVE1MTWVk
aWFFbGVtZW50IHNob3VsZCBiZSBhYmxlIHRvIHVzZSBNZWRpYVN0cmVhbSBhcyBzb3VyY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTk0MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQg
dGVzdHMgdG8gTWVkaWFTdHJlYW0gZGlyZWN0IGFzc2lnbm1lbnQgdG8gSFRNTE1lZGlhRWxlbWVu
dAorICAgICAgICB1c2luZyBicmFuZCBuZXcgc3JjT2JqZWN0IGF0dHJpYnV0ZS4KKworICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sOiBBZGRlZC4KKwogMjAxMy0xMS0yNiAgSGFu
cyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYXBlc10gU3Vw
cG9ydCBmb3Igc2hhcGUtbWFyZ2luIGluIEJveFNoYXBlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNPYmplY3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRp
YUVsZW1lbnQtc3JjT2JqZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjMwMDNkYTZiY2Mw
MjdjN2UxZDUxZGIxMjA2MzQ4NjQyZjgzNzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitUZXN0cyBNZWRpYVN0cmVhbSBhc3NpZ25tZW50
IHRvIE1lZGlhRWxlbWVudCB1c2luZyAnc3JjT2JqZWN0JyBNZWRpYUVsZW1lbnQgYXR0cmlidXRl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBuYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0sIGdvdFN0cmVhbTEsIGVycm9y
KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCBpcyAxCitQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAwCitQ
QVNTIGF1ZGlvLnNyY09iamVjdCA9IHN0cmVhbTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQ
QVNTIHN0cmVhbU9iaiA9IGF1ZGlvLnNyY09iamVjdDsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CitQQVNTIHN0cmVhbU9iaiBpcyBzdHJlYW0KK1BBU1Mgc3RyZWFtT2JqLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoIGlzIDEKK1BBU1Mgc3RyZWFtT2JqLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlz
IDAKK1BBU1Mgc3RyZWFtT2JqLmlkIGlzIHN0cmVhbS5pZAorUEFTUyBzdHJlYW0gYXNzaWduZWQg
dG8gbWVkaWEgZWxlbWVudC4KK1BBU1MgYXVkaW8uc3JjT2JqZWN0ID0gbnVsbDsgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCitQQVNTIHN0cmVhbU9iaiA9IGF1ZGlvLnNyY09iamVjdDsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0cmVhbU9iaiBpcyBudWxsCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxl
bWVudC1zcmNPYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWRmM2FjNWE4Zjc0ZjliMWM4NTk4NDJh
NWYwYTQ1MDdiOWRkNzk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0bWwKQEAgLTAsMCAr
MSw1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIE1l
ZGlhU3RyZWFtIGFzc2lnbm1lbnQgdG8gTWVkaWFFbGVtZW50IHVzaW5nICdzcmNPYmplY3QnIE1l
ZGlhRWxlbWVudCBhdHRyaWJ1dGUuIik7CisKKyAgICAgICAgICAgIHZhciBzdHJlYW07CisgICAg
ICAgICAgICB2YXIgZXJyb3JBcmc7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBj
YWxsZWQuJyk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3ROdWxsU3RyZWFtT2JqZWN0KHN0cmVhbSwgYXVk
aW8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coImF1ZGlv
LnNyY09iamVjdCA9IG51bGw7Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coInN0
cmVhbU9iaiA9IGF1ZGlvLnNyY09iamVjdDsiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgn
c3RyZWFtT2JqJywgJ251bGwnKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMShzKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7CisK
KyAgICAgICAgICAgICAgICBhdWRpbyA9IG5ldyBBdWRpbygpOworICAgICAgICAgICAgICAgIHNo
b3VsZE5vdFRocm93KCJhdWRpby5zcmNPYmplY3QgPSBzdHJlYW07Iik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkTm90VGhyb3coInN0cmVhbU9iaiA9IGF1ZGlvLnNyY09iamVjdDsiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtT2JqJywgJ3N0cmVhbScpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCdzdHJlYW1PYmouZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW1PYmouZ2V0VmlkZW9UcmFja3MoKS5sZW5n
dGgnLCAnMCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW1PYmouaWQnLCAnc3Ry
ZWFtLmlkJyk7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnc3RyZWFtIGFzc2lnbmVkIHRv
IG1lZGlhIGVsZW1lbnQuJyk7CisKKyAgICAgICAgICAgICAgICB0ZXN0TnVsbFN0cmVhbU9iamVj
dChzdHJlYW0sIGF1ZGlvKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2hvdWxkTm90
VGhyb3coIm5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZh
bHNlfSwgZ290U3RyZWFtMSwgZXJyb3IpOyIpOworCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217914</attachid>
            <date>2013-11-26 17:32:13 -0800</date>
            <delta_ts>2013-11-26 18:10:28 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>bug-121943-20131126214356.patch</filename>
            <type>text/plain</type>
            <size>25409</size>
            <attacher name="Nick Diego Yamane (diegoyam)">nick.diego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQwNTI5YmE0YTVkOWVh
MTE1ODc2OTc5NzdmYzNhZDY1Mjk0NGI3NC4uYTYwMDE3YjI3Y2Y2NDc1YjZjMGI3MTdjMTczM2E4
NDQxNmE5ZTNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTExLTI2ICBOaWNr
IERpZWdvIFlhbWFuZSAgPG5pY2sueWFtYW5lQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW01l
ZGlhU3RyZWFtIEFQSV0gSFRNTE1lZGlhRWxlbWVudCBzaG91bGQgYmUgYWJsZSB0byB1c2UgTWVk
aWFTdHJlYW0gYXMgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjE5NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgTWVkaWFTdHJlYW0gZGlyZWN0IGFzc2lnbm1lbnQgdG8gTWVk
aWEgRWxlbWVudHMgdXNpbmcgdGhlIG5ldyAnc3JjT2JqZWN0JworICAgICAgICBhdHRyaWJ1dGU6
IGh0dHA6Ly93d3cudzMub3JnL1RSL21lZGlhY2FwdHVyZS1zdHJlYW1zLyNkaXJlY3QtYXNzaWdu
bWVudC10by1tZWRpYS1lbGVtZW50cworCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogQWRkZWQgbmV3IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oIGFuZCAu
Y3BwIHRvIGNtYWtlIGJ1aWxkLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVk
IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5pZGwuCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogQWRkZWQgbmV3IEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbSogdG8gYXV0b3Rv
b2xzIGJ1aWxkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlh
RWxlbWVudE1lZGlhU3RyZWFtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50TWVkaWFTdHJlYW06OnNyY09iamVjdCk6IGltcGxlbWVudHMgc3JjT2JqZWN0IGdl
dHRlci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbTo6c2V0
U3JjT2JqZWN0KTogaW1wbGVtZW50cyBzcmNPYmplY3Qgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlk
bDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNyY09iamVjdCk6IFRoaXMgaXMgYW4gaW5p
dGlhbCBpbXBsZW1lbnRhdGlvbiwgYW5kCisgICAgICAgIGlzIHN0aWxsIGluY29tcGxldGUsIHRo
YXQgd2lsbCBiZSBhZGRyZXNzZWQgaW4gYSBzZXBhcmF0ZSBidWc6IGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzEyNDg5NgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOiBBZGRlZCBtX21l
ZGlhU3RyZWFtU3JjT2JqZWN0IGNsYXNzIHZhcmlhYmxlCisgICAgICAgIGFuZCBpdHMgY29ycmVz
cG9uZGluZyBnZXR0ZXIuCisKIDIwMTMtMTEtMjYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSBjaGlsZCBpdGVyYXRvciB0byBmaW5kIG9wZXJhdG9ycyBp
biBSZW5kZXJNYXRoTUxSb3c6OmxheW91dCgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDVkZjhhNTA1YWZiYjdh
YzVmNTlhNjg1OGM3MDY2ZDExZDdhNWU3MGEuLmRjNDBmMzI0MzE1YTQ1N2JkMTA2Yzc5ZGY5ZjQ5
OGVkY2IxMWNiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0xMS0yNiAgTmlj
ayBEaWVnbyBZYW1hbmUgIDxuaWNrLnlhbWFuZUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtN
ZWRpYVN0cmVhbSBBUEldIEhUTUxNZWRpYUVsZW1lbnQgc2hvdWxkIGJlIGFibGUgdG8gdXNlIE1l
ZGlhU3RyZWFtIGFzIHNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG1lZGlhc3RyZWFtIG1vZHVsZSBhbmQgcGxhdGZvcm0gdG8gY21ha2Ug
aW5jbHVkZSBkaXJlY3Rvcmllcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDEz
LTExLTI2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgU29tZSBX
ZWJLaXQyIGhlYWRlcnMgYXJlIG5vdCBzZWxmLWNvbnRhaW5lZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA5NGViYmIzM2ZlY2IzOWY4NzQ0YWViZWU4MDU4MGJjYTFhN2QzNjRkLi5iNmM3MGM2Y2M0
MjY4YjcwNzZhYzFiNGFlM2E2Yjc3YzNmNTIyNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTg5LDYgKzE4OSw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vQWxsVmlkZW9DYXBhYmlsaXRpZXMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9B
dWRpb1N0cmVhbVRyYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJh
bmdlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3Ry
ZWFtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmlkbApAQCAtODI5LDYgKzgzMCw3IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1U
cmFjay5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL0NhcGFiaWxpdHlSYW5nZS5jcHAKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTb3VyY2VTdGF0ZXMuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDZl
Yjg0YTRhNWJkODBhMmQwODAwNjU3MzcxNjAwYTQyZDM2Mjg0N2IuLmMyODBhNjUxNTc0YTI1NDlm
MGE3ZmViYWRkYTgyNDY0MTNlNDM0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTA2LDYgKzEwNiw3IEBAIEJJTkRJTkdfSURMUyA9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vQWxsQXVkaW9DYXBhYmlsaXRpZXMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9DYXBhYmlsaXR5UmFuZ2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU291cmNlU3RhdGVzLmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhMTA5NjkwMjg3MGM2YzY3MWE2NTY5NjBh
NTg5ZWIzZmFhOWVhOGFkLi5jMDUxN2MzNGU3YmNkMmI4YTU3YmZkNmYwMDU0NzYzOWRjYjFlYWRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM1NSw2ICszNTUsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWFy
cXVlZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1l
bnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVh
bS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lbnVFbGVtZW50LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1ldGFFbGVtZW50LmNwcCBcCkBAIC0xODg3LDYgKzE4ODksOCBA
QCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FwYWJpbGl0eVJhbmdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9DYXBhYmlsaXR5UmFuZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJ
bXBsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0
cmFpbnRzSW1wbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U291cmNlU3RhdGVzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWRjOTA1YTU3YzNjOTJiYjRiMjE5NWY3MzhjMDU0Y2MzMTRkNTAwMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSFRNTE1lZGlh
RWxlbWVudE1lZGlhU3RyZWFtLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50
TWVkaWFTdHJlYW0uaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEVOQUJMRShWSURF
TykKKworI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVh
bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhU3RyZWFtKiBIVE1MTWVkaWFFbGVt
ZW50TWVkaWFTdHJlYW06OnNyY09iamVjdChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQs
IGJvb2wmIGlzTnVsbCkKK3sKKyAgICBBU1NFUlQobWVkaWFFbGVtZW50KTsKKyAgICByZXR1cm4g
bWVkaWFFbGVtZW50LT5zcmNPYmplY3QoKTsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVtZW50TWVk
aWFTdHJlYW06OnNldFNyY09iamVjdChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQsIE1l
ZGlhU3RyZWFtKiBtZWRpYVN0cmVhbSkKK3sKKyAgICBBU1NFUlQobWVkaWFFbGVtZW50KTsKKyAg
ICBtZWRpYUVsZW1lbnQtPnNldFNyY09iamVjdChtZWRpYVN0cmVhbSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEVOQUJM
RShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
SFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYmY0
ODQxODFmYjZjMGIzOWY5MDM1MzkyZGZmYWYyNGU1Mzk1Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0hUTUxNZWRpYUVsZW1lbnRNZWRpYVN0
cmVhbS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW1faAorI2RlZmluZSBIVE1MTWVkaWFFbGVtZW50
TWVkaWFTdHJlYW1faAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgRU5BQkxFKFZJREVP
KQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworY2xhc3MgTWVkaWFTdHJlYW07CisKK2NsYXNzIEhU
TUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbSB7CitwdWJsaWM6CisgICAgc3RhdGljIE1lZGlhU3Ry
ZWFtKiBzcmNPYmplY3QoSFRNTE1lZGlhRWxlbWVudCosIGJvb2wmIGlzTnVsbCk7CisgICAgc3Rh
dGljIHZvaWQgc2V0U3JjT2JqZWN0KEhUTUxNZWRpYUVsZW1lbnQqLCBNZWRpYVN0cmVhbSopOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkgJiYgRU5BQkxFKFZJREVPKQorCisjZW5kaWYgLy8gSFRNTE1lZGlhRWxlbWVudE1lZGlh
U3RyZWFtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
SFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NWVhY2UzM2U3MzBmNTkzNjlhZTFhYjRkYjdiOTM5NDRlM2M2ZTNhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9IVE1MTWVkaWFFbGVtZW50TWVk
aWFTdHJlYW0uaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJT
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVZJREVPJk1FRElBX1NUUkVBTSwKK10gcGFydGlhbCBpbnRlcmZh
Y2UgSFRNTE1lZGlhRWxlbWVudAoreworICAgIGF0dHJpYnV0ZSBNZWRpYVN0cmVhbT8gc3JjT2Jq
ZWN0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1OTQzMjdhYzA4MWJhZTYxODAxYjc5YzkwOGQ5MzQ1YjZjMjkzNDk3Li44
MmIxYzMwN2M4ZGQ5NGVkYjA1NWRhZTYyMzBiMmY5ZmUxYzU2ZWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODAsNiArMTgw
LDggQEAKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODQxNDYz
QUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkwNzY5NzA4NzE0NjNB
RDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuaCAqLzsgfTsKIAkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oICovOyB9OworCQkwNzc5QkYwRDE4NDUzMTY4MDAwQjZBRTcgLyogSFRN
TE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NzlCRjBBMTg0NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVkaWFF
bGVtZW50TWVkaWFTdHJlYW0uY3BwICovOyB9OworCQkwNzc5QkYwRTE4NDUzMTY4MDAwQjZBRTcg
LyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzc5QkYwQjE4NDUzMTY4MDAwQjZBRTcgLyogSFRNTE1l
ZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggKi87IH07CiAJCTA3ODMyMjg0MTgwMTNFRDgwMDk5OUUw
QyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgyMTgwMTNFRDcwMDk5OUUwQyAvKiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmNwcCAqLzsgfTsKIAkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBDIC8q
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlLmggKi87IH07CiAJCTA3ODQ2MzQyMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNr
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc4NDYzNDAxNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgKi87IH07CkBAIC02
Nzk2LDYgKzY3OTgsOSBAQAogCQkwNzY5NzA4NTE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNr
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAv
KiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDc3OUJGMEExODQ1MzE2ODAwMEI2QUU3IC8qIEhUTUxNZWRpYUVsZW1l
bnRNZWRpYVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzc5QkYwQjE4NDUzMTY4MDAwQjZBRTcgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3Ry
ZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxNZWRpYUVsZW1lbnRN
ZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzc5QkYwQzE4NDUz
MTY4MDAwQjZBRTcgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBIVE1MTWVkaWFFbGVtZW50TWVkaWFTdHJlYW0uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzgzMjI4MjE4MDEzRUQ3MDA5OTlFMEMgLyogTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDc4MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyog
SlNUcmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
VHJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzU3OSw2ICsx
MzU4NCw5IEBACiAJCTA3MjIxQjQ2MTdDRUMzMjcwMDg0OEU1MSAvKiBtZWRpYXN0cmVhbSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMDc3OUJGMEExODQ1
MzE2ODAwMEI2QUU3IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5jcHAgKi8sCisJCQkJ
MDc3OUJGMEIxODQ1MzE2ODAwMEI2QUU3IC8qIEhUTUxNZWRpYUVsZW1lbnRNZWRpYVN0cmVhbS5o
ICovLAorCQkJCTA3NzlCRjBDMTg0NTMxNjgwMDBCNkFFNyAvKiBIVE1MTWVkaWFFbGVtZW50TWVk
aWFTdHJlYW0uaWRsICovLAogCQkJCTA3MDU4NTM5MTdGRTA3NzAwMDVGMkJDQiAvKiBNZWRpYVRy
YWNrQ29uc3RyYWludC5jcHAgKi8sCiAJCQkJMDcwNTg1MzcxN0ZFMDQ0RjAwNUYyQkNCIC8qIE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0LmNwcCAqLywKIAkJCQkwNzA1ODUyNjE3RkRFMDJCMDA1RjJC
Q0IgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuaCAqLywKQEAgLTIyODExLDYgKzIyODE5LDcg
QEAKIAkJCQk1MUZBMkQ3ODE1MjEzMkIzMDBDMUJBMEIgLyogRE9NV2luZG93RXh0ZW5zaW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0IzOEUyNzE1MUM0MjcxMDA0NjIyRTkgLyogRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdEMkFEMDQxNEI4MjNBNjAwOTNE
RjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzc5QkYwRTE4
NDUzMTY4MDAwQjZBRTcgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4OUY2MEIxMTE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBp
biBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ2MTZBNDg2MTYwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0NCQjQ5MTUxRjgzMTYwMEFC
N0NFOSAvKiBET01XaW5kb3dXZWJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjIxNSw2
ICsyNjIyNCw3IEBACiAJCQkJMkVGMUJGRUExMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3RkVERTExMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVT
eXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2MDMwNkMwQ0M0MzYyMzAwQzhBQzI1IC8q
IEZpbGVTeXN0ZW1DRi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzc5QkYwRDE4NDUzMTY4MDAw
QjZBRTcgLyogSFRNTE1lZGlhRWxlbWVudE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTI2QzE3QTNGMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0QzQTQ5NTQxN0E5Q0M5MDAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRCM0Y3NjBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5
c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggNDQ3NDRkOTJmZjA1YzA4YTFhM2U1YWI5ZTFmNGU1MjI3NDk3YWNkMS4u
MzQwNzM3ODIwYWFjZTdjYjNkMzE5YThmMTA1NzhjYWVmYzljMDYzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMTIsNiArMTEyLDcgQEAKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKICNlbmRpZgogCkBAIC0zMjAsNiArMzIxLDkg
QEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fYXVkaW9TZXNzaW9uTWFuYWdlclRv
a2VuKEF1ZGlvU2Vzc2lvbk1hbmFnZXJUb2tlbjo6Y3JlYXRlKHRhZ05hbWUgPT0gdmlkZW9UYWcg
PyBBdWRpb1Nlc3Npb25NYW5hZ2VyOjpWaWRlbyA6IEF1ZGlvU2Vzc2lvbk1hbmFnZXI6OkF1ZGlv
KSkKICNlbmRpZgogICAgICwgbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdCgwKQorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgLCBtX21lZGlhU3RyZWFtU3JjT2JqZWN0KG51bGxwdHIpCisj
ZW5kaWYKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVt
ZW50Iik7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CkBAIC03NDYs
NiArNzUwLDIwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U3JjKGNvbnN0IFN0cmluZyYg
dXJsKQogICAgIHNldEF0dHJpYnV0ZShzcmNBdHRyLCB1cmwpOwogfQogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U3JjT2JqZWN0KE1lZGlhU3Ry
ZWFtKiBtZWRpYVN0cmVhbSkKK3sKKyAgICAvLyBGSVhNRTogU2V0dGluZyB0aGUgc3JjT2JqZWN0
IGF0dHJpYnV0ZSBtYXkgY2F1c2Ugb3RoZXIgY2hhbmdlcyB0byB0aGUgbWVkaWEgZWxlbWVudCdz
IGludGVybmFsIHN0YXRlOgorICAgIC8vIFNwZWNpZmljYWxseSwgaWYgc3JjT2JqZWN0IGlzIHNw
ZWNpZmllZCwgdGhlIFVBIG11c3QgdXNlIGl0IGFzIHRoZSBzb3VyY2Ugb2YgbWVkaWEsIGV2ZW4g
aWYgdGhlIHNyYworICAgIC8vIGF0dHJpYnV0ZSBpcyBhbHNvIHNldCBvciBjaGlsZHJlbiBhcmUg
cHJlc2VudC4gSWYgdGhlIHZhbHVlIG9mIHNyY09iamVjdCBpcyByZXBsYWNlZCBvciBzZXQgdG8g
bnVsbAorICAgIC8vIHRoZSBVQSBtdXN0IHJlLXJ1biB0aGUgbWVkaWEgZWxlbWVudCBsb2FkIGFs
Z29yaXRobS4KKyAgICAvLworICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjQ4OTYKKworICAgIG1fbWVkaWFTdHJlYW1TcmNPYmplY3QgPSBtZWRpYVN0cmVh
bTsKK30KKyNlbmRpZgorCiBIVE1MTWVkaWFFbGVtZW50OjpOZXR3b3JrU3RhdGUgSFRNTE1lZGlh
RWxlbWVudDo6bmV0d29ya1N0YXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9uZXR3b3JrU3Rh
dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDU2NDJjOTc4MDZh
OWY1YTM4NzRmOTliY2ZlNzNiNjU1ZmE3ZDBkZjguLmY2NGQ0Mzc0ZTliOTFjMmQ1ZGM0Y2I4MjUz
YWJmODM2MDRmMzJjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC00OCw3ICs0OCw5IEBACiAjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2VuZGlmCiAKLQorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKKyNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEzOSwxMCArMTQxLDE1IEBAIHB1YmxpYzoKIC8v
IGVycm9yIHN0YXRlCiAgICAgUGFzc1JlZlB0cjxNZWRpYUVycm9yPiBlcnJvcigpIGNvbnN0Owog
Ci0vLyBuZXR3b3JrIHN0YXRlCiAgICAgdm9pZCBzZXRTcmMoY29uc3QgU3RyaW5nJik7CiAgICAg
Y29uc3QgVVJMJiBjdXJyZW50U3JjKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U3JjOyB9CiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIE1lZGlhU3RyZWFtKiBzcmNPYmplY3QoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtU3JjT2JqZWN0LmdldCgpOyB9CisgICAgdm9pZCBz
ZXRTcmNPYmplY3QoTWVkaWFTdHJlYW0qKTsKKyNlbmRpZgorCisvLyBuZXR3b3JrIHN0YXRlCiAg
ICAgZW51bSBOZXR3b3JrU3RhdGUgeyBORVRXT1JLX0VNUFRZLCBORVRXT1JLX0lETEUsIE5FVFdP
UktfTE9BRElORywgTkVUV09SS19OT19TT1VSQ0UgfTsKICAgICBOZXR3b3JrU3RhdGUgbmV0d29y
a1N0YXRlKCkgY29uc3Q7CiAKQEAgLTc5Nyw2ICs4MDQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sc0hvc3Q+IG1fbWVkaWFDb250cm9sc0hvc3Q7CiAgICAgUmVmUHRyPERP
TVdyYXBwZXJXb3JsZD4gbV9pc29sYXRlZFdvcmxkOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gbV9tZWRpYVN0cmVhbVNyY09iamVj
dDsKKyNlbmRpZgogfTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKaW5kZXggNzNiNWU2MGNmYWJkZTg3YTViNmE2YzZjMzlkMDBhMGUwODZiNzAwYi4uZTIwYTll
NWE0NDU5YTA3MjJmOWEyMDA2YjBiZDk5YWM3NzAwMDRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQK
QEAgLTY0LDYgKzY0LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKICAg
ICAiJHtXRUJDT1JFX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvYmF0dGVyeSIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYXN0cmVhbSIKICAgICAiJHtXRUJDT1JF
X0RJUn0vTW9kdWxlcy9uZXR3b3JraW5mbyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9u
b3RpZmljYXRpb25zIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3ZpYnJhdGlvbiIKQEAg
LTEwMCw2ICsxMDEsNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL21l
ZGlhc3RyZWFtIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrIgogICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9zcWwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L3RleHQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMmI1YjA4ZDg0NjNlZjNiMzM1NmYyOGYxOTI2ZmE4MmQzZmYxNTRhNy4u
YzYwZjcwN2EzMGNiY2IxZGNlZjY0MDNlZWUyMjNhOTAxZWVlZDZkMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEzLTExLTI2ICBOaWNrIERpZWdvIFlhbWFuZSAgPG5pY2sueWFtYW5lQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgW01lZGlhU3RyZWFtIEFQSV0gSFRNTE1lZGlhRWxlbWVudCBz
aG91bGQgYmUgYWJsZSB0byB1c2UgTWVkaWFTdHJlYW0gYXMgc291cmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE5NDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3RzIHRvIE1l
ZGlhU3RyZWFtIGRpcmVjdCBhc3NpZ25tZW50IHRvIEhUTUxNZWRpYUVsZW1lbnQKKyAgICAgICAg
dXNpbmcgYnJhbmQgbmV3IHNyY09iamVjdCBhdHRyaWJ1dGUuCisKKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNPYmplY3QtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxl
bWVudC1zcmNPYmplY3QuaHRtbDogQWRkZWQuCisKIDIwMTMtMTEtMjYgIEJlYXIgVHJhdmlzICA8
YmV0cmF2aXNAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBMYXlvdXQgdXNpbmcg
Wzxib3g+IHx8IDxzaGFwZT5dIHZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNPYmplY3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQt
c3JjT2JqZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjMwMDNkYTZiY2MwMjdjN2UxZDUx
ZGIxMjA2MzQ4NjQyZjgzNzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIyIEBACitUZXN0cyBNZWRpYVN0cmVhbSBhc3NpZ25tZW50IHRvIE1lZGlh
RWxlbWVudCB1c2luZyAnc3JjT2JqZWN0JyBNZWRpYUVsZW1lbnQgYXR0cmlidXRlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0sIGdvdFN0cmVhbTEsIGVycm9yKTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBp
cyAxCitQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAwCitQQVNTIGF1ZGlv
LnNyY09iamVjdCA9IHN0cmVhbTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0cmVh
bU9iaiA9IGF1ZGlvLnNyY09iamVjdDsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0
cmVhbU9iaiBpcyBzdHJlYW0KK1BBU1Mgc3RyZWFtT2JqLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
IGlzIDEKK1BBU1Mgc3RyZWFtT2JqLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDAKK1BBU1Mg
c3RyZWFtT2JqLmlkIGlzIHN0cmVhbS5pZAorUEFTUyBzdHJlYW0gYXNzaWduZWQgdG8gbWVkaWEg
ZWxlbWVudC4KK1BBU1MgYXVkaW8uc3JjT2JqZWN0ID0gbnVsbDsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHN0cmVhbU9iaiA9IGF1ZGlvLnNyY09iamVjdDsgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCitQQVNTIHN0cmVhbU9iaiBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNP
YmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTQ2OGZlNDlmYWJkZDUwYWU5MTExOWQ0YWRiOWYzNzQz
ZDkwMzc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0bWwKQEAgLTAsMCArMSw1NCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIE1lZGlhU3RyZWFt
IGFzc2lnbm1lbnQgdG8gTWVkaWFFbGVtZW50IHVzaW5nICdzcmNPYmplY3QnIE1lZGlhRWxlbWVu
dCBhdHRyaWJ1dGUuIik7CisKKyAgICAgICAgICAgIHZhciBzdHJlYW07CisgICAgICAgICAgICB2
YXIgZXJyb3JBcmc7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBjYWxsZWQuJyk7
CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHRlc3ROdWxsU3RyZWFtT2JqZWN0KHN0cmVhbSwgYXVkaW8pCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coImF1ZGlvLnNyY09iamVj
dCA9IG51bGw7Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coInN0cmVhbU9iaiA9
IGF1ZGlvLnNyY09iamVjdDsiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtT2Jq
JywgJ251bGwnKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtKHMpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgc3RyZWFtID0gczsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgnc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKKworICAgICAgICAg
ICAgICAgIGF1ZGlvID0gbmV3IEF1ZGlvKCk7CisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhy
b3coImF1ZGlvLnNyY09iamVjdCA9IHN0cmVhbTsiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRO
b3RUaHJvdygic3RyZWFtT2JqID0gYXVkaW8uc3JjT2JqZWN0OyIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCdzdHJlYW1PYmonLCAnc3RyZWFtJyk7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoJ3N0cmVhbU9iai5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3N0cmVhbU9iai5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbU9iai5pZCcsICdzdHJlYW0uaWQnKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdzdHJlYW0gYXNzaWduZWQgdG8gbWVkaWEgZWxl
bWVudC4nKTsKKworICAgICAgICAgICAgICAgIHRlc3ROdWxsU3RyZWFtT2JqZWN0KHN0cmVhbSwg
YXVkaW8pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9LCBnb3RT
dHJlYW0sIGVycm9yKTsiKTsKKworICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>