<?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>78069</bug_id>
          
          <creation_ts>2012-02-07 19:08:15 -0800</creation_ts>
          <short_desc>Introduce ShadowRootList</short_desc>
          <delta_ts>2012-02-12 20:16:10 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78318</dependson>
          <blocked>77931</blocked>
    
    <blocked>78313</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551701</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-07 19:08:15 -0800</bug_when>
    <thetext>To support multiple shadow subtrees, it&apos;s better to have a structure having a list of shadow root.

Considering rendering stuffs, we should know where each light child is distributed. ShadowRootList will also work for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553844</commentid>
    <comment_count>1</comment_count>
      <attachid>126455</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 22:24:22 -0800</bug_when>
    <thetext>Created attachment 126455
W.I.P.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553851</commentid>
    <comment_count>2</comment_count>
      <attachid>126457</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 22:41:27 -0800</bug_when>
    <thetext>Created attachment 126457
W.I.P.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553870</commentid>
    <comment_count>3</comment_count>
      <attachid>126462</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 23:13:47 -0800</bug_when>
    <thetext>Created attachment 126462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553908</commentid>
    <comment_count>4</comment_count>
      <attachid>126462</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-10 00:19:15 -0800</bug_when>
    <thetext>Comment on attachment 126462
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        which are a previous element and a next element respectively.

Could you elaborate why we need dually-linked list instead of single?
When prev() is going to be used for example?

&gt; Source/WebCore/dom/Element.cpp:64
&gt; +#include &quot;ShadowRootList.h&quot;

You don&apos;t need this?

&gt; Source/WebCore/dom/Element.cpp:1160
&gt; +        return list-&gt;hasShadowRoot();
&gt; +    return false;

Is this false case possible?
Is it feasible to prevent this from happening?

&gt; Source/WebCore/dom/Element.cpp:1173
&gt; +    ElementRareData* data = ensureRareData();

Why not ElementRareData::ensureShadowList() ?
In general, the list related method should be on ElementRareData because it owns the list.

Also, Is it really worth doing to allocating an extra heap chunk only for implementing dually-linked list?

&gt; Source/WebCore/dom/Element.cpp:1187
&gt; +void Element::setShadowRoot(PassRefPtr&lt;ShadowRoot&gt; prpShadowRoot, ExceptionCode&amp; ec)

Please don&apos;t use abbreviation.

&gt; Source/WebCore/dom/ElementRareData.h:74
&gt; +    ShadowRootList* m_shadowRootList;

You can use OwnPtr.

&gt; Source/WebCore/dom/ShadowRoot.h:42
&gt; +    friend class WTF::DoublyLinkedListNode&lt;ShadowRoot&gt;;

Is it possible to assert some invariant on the ShadowRoot destructor?
For example, Is it possible to say that the instance is already unchained on destruction?

&gt; Source/WebCore/dom/ShadowRootList.cpp:65
&gt; +void ShadowRootList::addShadowRoot(PassRefPtr&lt;ShadowRoot&gt; prpShadowRoot, ExceptionCode&amp; ec)

Please don&apos;t use abbreviation.

&gt; Source/WebCore/dom/ShadowRootList.cpp:67
&gt; +    // FIXME: We don&apos;t support multiple shadow root subtrees yet.

Pelase note bug#.

&gt; Source/WebCore/dom/ShadowRootList.cpp:71
&gt; +    if (!validateShadowRoot(host()-&gt;document(), shadowRoot.get(), ec))

I hope this check also happens before ShadowRootList instance is allocated.

&gt; Source/WebCore/dom/ShadowRootList.cpp:83
&gt; +    }

I feel that this kind of per-ShadowRoot cleanup doesn&apos;t fit into a method of the list.

&gt; Source/WebCore/dom/ShadowRootList.cpp:91
&gt; +    if (RefPtr&lt;ShadowRoot&gt; oldRoot = m_shadowRoots.removeHead()) {

while()? Or let&apos;s have an assertion to make it clear that we have only one list item.

&gt; Source/WebCore/dom/ShadowRootList.cpp:93
&gt; +

Same feeling with addShadowRoot() vs ShadowRoot.

&gt; Source/WebCore/dom/ShadowRootList.cpp:94
&gt; +        // Remove from rendering tree

We don&apos;t need this comment. It&apos;s obvious.

&gt; Source/WebCore/dom/ShadowRootList.h:55
&gt; +    Element* m_host;

Do we need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553955</commentid>
    <comment_count>5</comment_count>
      <attachid>126479</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 02:02:17 -0800</bug_when>
    <thetext>Created attachment 126479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553956</commentid>
    <comment_count>6</comment_count>
      <attachid>126462</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 02:02:55 -0800</bug_when>
    <thetext>Comment on attachment 126462
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        which are a previous element and a next element respectively.
&gt; 
&gt; Could you elaborate why we need dually-linked list instead of single?
&gt; When prev() is going to be used for example?

prev() will be used by a visual tree traversal. I will mention it in the ChangeLog.

&gt;&gt; Source/WebCore/dom/Element.cpp:1160
&gt;&gt; +    return false;
&gt; 
&gt; Is this false case possible?
&gt; Is it feasible to prevent this from happening?

Element won&apos;t have rare data every time. So I don&apos;t think we can remove this.

&gt;&gt; Source/WebCore/dom/Element.cpp:1173
&gt;&gt; +    ElementRareData* data = ensureRareData();
&gt; 
&gt; Why not ElementRareData::ensureShadowList() ?
&gt; In general, the list related method should be on ElementRareData because it owns the list.
&gt; 
&gt; Also, Is it really worth doing to allocating an extra heap chunk only for implementing dually-linked list?

Let&apos;s change not to allocate on the heap.

&gt;&gt; Source/WebCore/dom/Element.cpp:1187
&gt;&gt; +void Element::setShadowRoot(PassRefPtr&lt;ShadowRoot&gt; prpShadowRoot, ExceptionCode&amp; ec)
&gt; 
&gt; Please don&apos;t use abbreviation.

Done.

&gt;&gt; Source/WebCore/dom/ElementRareData.h:74
&gt;&gt; +    ShadowRootList* m_shadowRootList;
&gt; 
&gt; You can use OwnPtr.

Let&apos;s not allocate another heap chunk.

&gt;&gt; Source/WebCore/dom/ShadowRoot.h:42
&gt;&gt; +    friend class WTF::DoublyLinkedListNode&lt;ShadowRoot&gt;;
&gt; 
&gt; Is it possible to assert some invariant on the ShadowRoot destructor?
&gt; For example, Is it possible to say that the instance is already unchained on destruction?

I&apos;ve added an assertion to ensure unchained.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:65
&gt;&gt; +void ShadowRootList::addShadowRoot(PassRefPtr&lt;ShadowRoot&gt; prpShadowRoot, ExceptionCode&amp; ec)
&gt; 
&gt; Please don&apos;t use abbreviation.

Done.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:67
&gt;&gt; +    // FIXME: We don&apos;t support multiple shadow root subtrees yet.
&gt; 
&gt; Pelase note bug#.

Done.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:71
&gt;&gt; +    if (!validateShadowRoot(host()-&gt;document(), shadowRoot.get(), ec))
&gt; 
&gt; I hope this check also happens before ShadowRootList instance is allocated.

Done.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:83
&gt;&gt; +    }
&gt; 
&gt; I feel that this kind of per-ShadowRoot cleanup doesn&apos;t fit into a method of the list.

Done.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:91
&gt;&gt; +    if (RefPtr&lt;ShadowRoot&gt; oldRoot = m_shadowRoots.removeHead()) {
&gt; 
&gt; while()? Or let&apos;s have an assertion to make it clear that we have only one list item.

Done.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:93
&gt;&gt; +
&gt; 
&gt; Same feeling with addShadowRoot() vs ShadowRoot.

Done.

&gt;&gt; Source/WebCore/dom/ShadowRootList.cpp:94
&gt;&gt; +        // Remove from rendering tree
&gt; 
&gt; We don&apos;t need this comment. It&apos;s obvious.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553997</commentid>
    <comment_count>7</comment_count>
      <attachid>126492</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 03:45:18 -0800</bug_when>
    <thetext>Created attachment 126492
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554010</commentid>
    <comment_count>8</comment_count>
      <attachid>126496</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 04:24:10 -0800</bug_when>
    <thetext>Created attachment 126496
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554013</commentid>
    <comment_count>9</comment_count>
      <attachid>126498</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 04:35:11 -0800</bug_when>
    <thetext>Created attachment 126498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554894</commentid>
    <comment_count>10</comment_count>
      <attachid>126498</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-12 17:13:11 -0800</bug_when>
    <thetext>Comment on attachment 126498
Patch

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

&gt; Source/WebCore/dom/ShadowRootList.h:38
&gt; +class ShadowRootList {

Let&apos;s make this uncopyable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554909</commentid>
    <comment_count>11</comment_count>
      <attachid>126695</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-12 17:56:50 -0800</bug_when>
    <thetext>Created attachment 126695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554910</commentid>
    <comment_count>12</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-12 17:57:29 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 126498 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126498&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRootList.h:38
&gt; &gt; +class ShadowRootList {
&gt; 
&gt; Let&apos;s make this uncopyable.

Done. Thank for mentioning this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554967</commentid>
    <comment_count>13</comment_count>
      <attachid>126695</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-12 20:16:05 -0800</bug_when>
    <thetext>Comment on attachment 126695
Patch

Clearing flags on attachment: 126695

Committed r107525: &lt;http://trac.webkit.org/changeset/107525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554968</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-12 20:16:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126455</attachid>
            <date>2012-02-09 22:24:22 -0800</date>
            <delta_ts>2012-02-09 22:41:20 -0800</delta_ts>
            <desc>W.I.P.</desc>
            <filename>bug-78069-20120210152420.patch</filename>
            <type>text/plain</type>
            <size>18637</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmVmMjM2MjgwZTdkMDE5MGJmZjdlMjhlZmU5NjlmNDkyMmVlNzc5Li5kNmM1ZmI0NmNkYmMzMzdm
MTQyY2I3ZjQ1ODRiNTg2NDJjNmNhMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6
CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAgICAgICAgKFdURjo6Ojp0YWlsKToKKyAg
ICAgICAgKFdURik6CisKIDIwMTItMDItMDggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBXaG9vcHMsIGZpeCB0aGUgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0
OWZkMzA2OTQ1ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIyMi4uYjUxZGJjNDY5ZmY4ZjZlMmM3Y2E4
ZGZlYzk0YjQxZDM1ZjE2ZTVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTAy
LTA5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50
cm9kdWNlIFNoYWRvd1Jvb3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9v
dExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdExpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpzZXRTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURh
dGEuaDoKKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OnlvdW5nZXJTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6Om9sZGVyU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpTaGFkb3dSb290TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
TGlzdDo6flNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hhZG93
Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6YWRkU2hhZG93Um9vdCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlU2hhZG93Um9vdCk6Cisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChTaGFkb3dSb290TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
TGlzdDo6aG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6aGFzU2hhZG93
Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6eW91bmdlc3RTaGFkb3dS
b290KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpvbGRlc3RTaGFkb3dSb290
KToKKwogMjAxMi0wMi0wOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBUcmVlT3JkZXJJdGVyYXRvciBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBjaGlsZCBi
b3hlcyBkaXJlY3RseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91
Ymx5TGlua2VkTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRM
aXN0LmgKaW5kZXggMzYxZDcxZDdiNTczMjY3OTc5ZTQ0YzRiN2Q2ZmIzODZkNjBmOTdiOC4uY2Qw
NjdlZjBhODc2OGFmYjRkMDBjNTU3MzNiNTAxNWUyNDllMzA0OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGlj
OgogICAgIFQqIGhlYWQoKSBjb25zdDsKICAgICBUKiByZW1vdmVIZWFkKCk7CiAKKyAgICBUKiB0
YWlsKCkgY29uc3Q7CisKICAgICB2b2lkIHB1c2goVCopOwogICAgIHZvaWQgYXBwZW5kKFQqKTsK
ICAgICB2b2lkIHJlbW92ZShUKik7CkBAIC0xMTYsNiArMTE4LDExIEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBUKiBEb3VibHlMaW5rZWRMaXN0PFQ+OjpoZWFkKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9oZWFkOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogRG91Ymx5
TGlua2VkTGlzdDxUPjo6dGFpbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFpbDsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgRG91Ymx5TGlua2VkTGlzdDxUPjo6cHVz
aChUKiBub2RlKQogewogICAgIGlmICghbV9oZWFkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTBj
ZDhlMTQ4ZTY2OWFlZmMzYTI1ZTE4OGNlZTQ2YmRhZThmNjVmMS4uYTFiMzM1YmM0MmU0MjliNGE0
MWM5N2ZjZjA5NTYyMzc1OTQ1ZTQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE5LDYgKzYxOSw3
IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCiAgICAgICAg
ICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5o
JywKKyAgICAgICAgICAgICdkb20vU2hhZG93Um9vdExpc3QuaCcsCiAgICAgICAgICAgICAnZG9t
L1NwYWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC01MDk1LDYgKzUwOTYsOCBAQAogICAgICAg
ICAgICAgJ2RvbS9TZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCisgICAgICAgICAgICAnZG9t
L1NoYWRvd1Jvb3RMaXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3RMaXN0Lmgn
LAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNI
YXNoU2V0Tm9kZUxpc3QuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMzU1ZjM4YWRiZTRk
MmRmYTNjY2NjMjA0OWE0ZWI2MWZmODY2ZjRiZS4uZmQ3NWVkYTE4Y2M1MzYzZTNmNTkwMDgzMzY5
YzQzNjRlYjI5ZTM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjEsNiArNjEsNyBAQAog
I2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuaCIKQEAgLTExNTIsNDYgKzExNTMsNDEgQEAgdm9pZCBFbGVtZW50OjpyZWNh
bGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIGRpZFJlY2FsY1N0eWxlKGNoYW5n
ZSk7CiB9CiAKLVNoYWRvd1Jvb3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBjb25zdAorYm9vbCBF
bGVtZW50OjpoYXNTaGFkb3dSb290KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEo
KSA/IHJhcmVEYXRhKCktPm1fc2hhZG93Um9vdCA6IDA7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0
KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgcmV0dXJuIGxpc3QtPmhhc1NoYWRv
d1Jvb3QoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIHZhbGlkYXRlU2hh
ZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorU2hhZG93Um9vdExpc3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0KCkg
Y29uc3QKIHsKLSAgICBpZiAoIXNoYWRvd1Jvb3QpCi0gICAgICAgIHJldHVybiB0cnVlOworICAg
IGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoc2hhZG93
Um9vdC0+c2hhZG93SG9zdCgpKSB7Ci0gICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJS
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIHJldHVybiByYXJlRGF0YSgpLT5t
X3NoYWRvd1Jvb3RMaXN0OworfQogCi0gICAgaWYgKHNoYWRvd1Jvb3QtPmRvY3VtZW50KCkgIT0g
ZG9jdW1lbnQpIHsKLSAgICAgICAgZWMgPSBXUk9OR19ET0NVTUVOVF9FUlI7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9CitTaGFkb3dSb290TGlzdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93
Um9vdExpc3QoKQoreworICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRh
KCk7CisgICAgaWYgKGRhdGEtPm1fc2hhZG93Um9vdExpc3QpCisgICAgICAgIHJldHVybiBkYXRh
LT5tX3NoYWRvd1Jvb3RMaXN0OwogCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGRhdGEt
Pm1fc2hhZG93Um9vdExpc3QgPSBuZXcgU2hhZG93Um9vdExpc3QodGhpcyk7CiB9CiAKLXZvaWQg
RWxlbWVudDo6c2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHBycFNoYWRvd1Jv
b3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQorU2hhZG93Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgp
IGNvbnN0CiB7Ci0gICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBwcnBTaGFkb3dS
b290OwotICAgIGlmICghdmFsaWRhdGVTaGFkb3dSb290KGRvY3VtZW50KCksIHNoYWRvd1Jvb3Qu
Z2V0KCksIGVjKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmVtb3ZlU2hhZG93Um9vdCgpOwor
ICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAg
IHJldHVybiBsaXN0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKK30KIAot
ICAgIGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93Um9vdCA9IHNoYWRvd1Jvb3QuZ2V0KCk7Ci0g
ICAgc2hhZG93Um9vdC0+c2V0U2hhZG93SG9zdCh0aGlzKTsKLSAgICBpZiAoaW5Eb2N1bWVudCgp
KQotICAgICAgICBzaGFkb3dSb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOwotICAgIGlmIChh
dHRhY2hlZCgpKSB7Ci0gICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsKLSAgICAgICAg
Zm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCkpCi0gICAgICAgICAgICBjaGlsZC0+ZGV0YWNoKCk7Ci0gICAgfQordm9pZCBF
bGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gcHJwU2hhZG93Um9v
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgZW5zdXJlU2hhZG93Um9vdExpc3QoKS0+cmVt
b3ZlU2hhZG93Um9vdCgpOworICAgIGVuc3VyZVNoYWRvd1Jvb3RMaXN0KCktPmFkZFNoYWRvd1Jv
b3QocHJwU2hhZG93Um9vdCwgZWMpOwogfQogCiBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1cmVT
aGFkb3dSb290KCkKQEAgLTEyMDQsMzAgKzEyMDAsOCBAQCBTaGFkb3dSb290KiBFbGVtZW50Ojpl
bnN1cmVTaGFkb3dSb290KCkKIAogdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkKIHsK
LSAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEVsZW1lbnRS
YXJlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCk7Ci0gICAgaWYgKFJlZlB0cjxTaGFkb3dSb290PiBv
bGRSb290ID0gZGF0YS0+bV9zaGFkb3dSb290KSB7Ci0gICAgICAgIGRhdGEtPm1fc2hhZG93Um9v
dCA9IDA7Ci0gICAgICAgIGRvY3VtZW50KCktPnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKG9s
ZFJvb3QuZ2V0KCkpOwotCi0gICAgICAgIC8vIFJlbW92ZSBmcm9tIHJlbmRlcmluZyB0cmVlCi0g
ICAgICAgIGlmIChvbGRSb290LT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgb2xkUm9vdC0+ZGV0
YWNoKCk7Ci0KLSAgICAgICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKLSAgICAgICAgZG9j
dW1lbnQoKS0+YWRvcHRJZk5lZWRlZChvbGRSb290LmdldCgpKTsKLSAgICAgICAgaWYgKG9sZFJv
b3QtPmluRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tRG9jdW1l
bnQoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgb2xkUm9vdC0+cmVtb3ZlZEZyb21UcmVl
KHRydWUpOwotICAgICAgICBpZiAoYXR0YWNoZWQoKSkgewotICAgICAgICAgICAgZm9yIChOb2Rl
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpCi0gICAgICAgICAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAg
ICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2goKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAo
U2hhZG93Um9vdExpc3QqIHNoYWRvd0xpc3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICBz
aGFkb3dMaXN0LT5yZW1vdmVTaGFkb3dSb290KCk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOTM4
MWUyZjU4MTU4N2Q3MzI1NzBhODMxNDk0MjgzNDg0MTk3ZjgyOS4uNjNiMDY5NThmNDcwZGNhZjFk
ZGI2Y2MwZDkwODY4ZTIxNjVlODBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00Miw2ICs0Miw3
IEBAIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIElu
dFNpemU7CiBjbGFzcyBTaGFkb3dSb290OworY2xhc3MgU2hhZG93Um9vdExpc3Q7CiBjbGFzcyBX
ZWJLaXRBbmltYXRpb25MaXN0OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CkBA
IC0yNTQsNiArMjU1LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZvaWQgcmVjYWxj
U3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKKyAgICBib29sIGhhc1NoYWRvd1Jvb3Qo
KSBjb25zdDsKKyAgICBTaGFkb3dSb290TGlzdCogc2hhZG93Um9vdExpc3QoKSBjb25zdDsKKyAg
ICBTaGFkb3dSb290TGlzdCogZW5zdXJlU2hhZG93Um9vdExpc3QoKTsKKworICAgIC8vIEZJWE1F
OiBUaGVzZSBBUEkgd2lsbCBiZSBtb3ZlZCB0byBTaGFkb3dSb290TGlzdC4KKyAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMKICAgICBTaGFkb3dSb290
KiBzaGFkb3dSb290KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8
U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290KiBlbnN1cmVTaGFk
b3dSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggY2EzMjExNWU2
MTg0NjQ4N2MxOTFkOWZhYTI4NDcwNmYyZWUwMmFmOC4uNzJhMjhiNzNhMWUwZTY1NzFlYjY0MzEw
OTRlZmU3MjJjNzQ1Y2QxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAt
MjcsMTIgKzI3LDExIEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb2xs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCisjaW5jbHVkZSAiU2hhZG93Um9v
dExpc3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgU2hhZG93Um9vdDsKLQogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGljIE5v
ZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC03Miw3ICs3
MSw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIFNoYWRvd1Jv
b3QqIG1fc2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290TGlzdCogbV9zaGFkb3dSb290TGlzdDsK
ICAgICBBdG9taWNTdHJpbmcgbV9zaGFkb3dQc2V1ZG9JZDsKIAogI2lmIEVOQUJMRShTVFlMRV9T
Q09QRUQpCkBAIC05Niw3ICs5NSw3IEBAIGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6
ZUZvclJlc2l6aW5nKCkKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRh
KCkKICAgICA6IG1fbWluaW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JS
ZXNpemluZygpKQotICAgICwgbV9zaGFkb3dSb290KDApCisgICAgLCBtX3NoYWRvd1Jvb3RMaXN0
KDApCiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKICAgICAsIG1fbnVtYmVyT2ZTY29wZWRIVE1M
U3R5bGVDaGlsZHJlbigwKQogI2VuZGlmCkBAIC0xMDksNyArMTA4LDcgQEAgaW5saW5lIEVsZW1l
bnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKCkKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6
fkVsZW1lbnRSYXJlRGF0YSgpCiB7Ci0gICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3QpOworICAgIEFT
U0VSVCghbV9zaGFkb3dSb290TGlzdCB8fCAhbV9zaGFkb3dSb290TGlzdC0+aGFzU2hhZG93Um9v
dCgpKTsKIH0KIAogaW5saW5lIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXNldENvbXB1dGVkU3R5
bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDI5MGJlM2Y2ZDQ1Mjc5NzFkMjg5
MDZiYWUzYjdiODgwMDYyMjA4YjIuLjI4Y2YwZjQxZDI5ZjAyN2VkZGQ5YjBjMjhmNTBkNTVkYWJj
NmQ2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTQxLDYgKzQxLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgOiBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBDcmVhdGVTaGFkb3dSb290KQog
ICAgICwgVHJlZVNjb3BlKHRoaXMpCisgICAgLCBtX3ByZXYoMCkKKyAgICAsIG1fbmV4dCgwKQog
ICAgICwgbV9hcHBseUF1dGhvclNoZWV0cyhmYWxzZSkKICAgICAsIG1fbmVlZHNSZWNhbGN1bGF0
ZUNvbnRlbnQoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA0MDFlZTVlOWQ2
NjU1ZTE2MDJkMTM3NGZkOTQ3OGY1ZWE0NjU2MGY1Li5hZGNkNDEwYjY0MTIzMTY4ODZhZTlmMzg1
ODBjZjM0NGE4OTMzMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgorI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRM
aXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNyArMzgsOCBAQCBjbGFzcyBD
b250ZW50SW5jbHVzaW9uU2VsZWN0b3I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxDb250
ZW50RWxlbWVudDsKIAotY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50
LCBwdWJsaWMgVHJlZVNjb3BlIHsKK2NsYXNzIFNoYWRvd1Jvb3QgOiBwdWJsaWMgRG9jdW1lbnRG
cmFnbWVudCwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFNo
YWRvd1Jvb3Q+IHsKKyAgICBmcmllbmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxT
aGFkb3dSb290PjsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBj
cmVhdGUoRG9jdW1lbnQqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVh
dGUoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTczLDYgKzc1LDkgQEAgcHVibGljOgog
ICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OwogICAgIENv
bnRlbnRJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwogCisgICAgU2hhZG93
Um9vdCogeW91bmdlclNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBwcmV2KCk7IH0KKyAgICBT
aGFkb3dSb290KiBvbGRlclNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBuZXh0KCk7IH0KKwog
cHJpdmF0ZToKICAgICBTaGFkb3dSb290KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U2hhZG93
Um9vdCgpOwpAQCAtODQsNiArODksOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYXNDb250ZW50
RWxlbWVudCgpIGNvbnN0OwogCisgICAgU2hhZG93Um9vdCogbV9wcmV2OworICAgIFNoYWRvd1Jv
b3QqIG1fbmV4dDsKICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHMgOiAxOwogICAgIGJvb2wg
bV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA6IDE7CiAgICAgT3duUHRyPENvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3RMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTdhMWZiNDMwZmJkODZjMWZjYTI5OWEwMjE4MTE3ZTVmNjg5OWY3Nwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAK
QEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdExpc3QuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTaGFk
b3dSb290TGlzdDo6U2hhZG93Um9vdExpc3QoRWxlbWVudCogaG9zdCkKKyAgICA6IG1faG9zdCho
b3N0KQoreworICAgIEFTU0VSVChob3N0KTsKK30KKworU2hhZG93Um9vdExpc3Q6On5TaGFkb3dS
b290TGlzdCgpCit7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworfQorCitzdGF0aWMg
Ym9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBz
aGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXNoYWRvd1Jvb3QpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkg
eworICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmIChzaGFkb3dSb290LT5kb2N1bWVudCgpICE9IGRvY3VtZW50
KSB7CisgICAgICAgIGVjID0gV1JPTkdfRE9DVU1FTlRfRVJSOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6
OmFkZFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBwcnBTaGFkb3dSb290LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBtdWx0aXBs
ZSBzaGFkb3cgcm9vdCBzdWJ0cmVlcyB5ZXQuCisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkp
OworCisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBwcnBTaGFkb3dSb290Owor
ICAgIGlmICghdmFsaWRhdGVTaGFkb3dSb290KGhvc3QoKS0+ZG9jdW1lbnQoKSwgc2hhZG93Um9v
dC5nZXQoKSwgZWMpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NoYWRvd1Jvb3RzLnB1c2go
c2hhZG93Um9vdC5nZXQoKSk7CisgICAgc2hhZG93Um9vdC0+c2V0U2hhZG93SG9zdChob3N0KCkp
OworCisgICAgaWYgKGhvc3QoKS0+aW5Eb2N1bWVudCgpKQorICAgICAgICBzaGFkb3dSb290LT5p
bnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIGlmIChob3N0KCktPmF0dGFjaGVkKCkpIHsKKyAg
ICAgICAgc2hhZG93Um9vdC0+bGF6eUF0dGFjaCgpOworICAgICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gaG9zdCgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKQorICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOworICAgIH0KK30KKwordm9pZCBTaGFk
b3dSb290TGlzdDo6cmVtb3ZlU2hhZG93Um9vdCgpCit7CisgICAgaWYgKCFoYXNTaGFkb3dSb290
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChSZWZQdHI8U2hhZG93Um9vdD4gb2xkUm9v
dCA9IG1fc2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpKSB7CisgICAgICAgIGhvc3QoKS0+ZG9jdW1l
bnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5nZXQoKSk7CisKKyAgICAg
ICAgLy8gUmVtb3ZlIGZyb20gcmVuZGVyaW5nIHRyZWUKKyAgICAgICAgaWYgKG9sZFJvb3QtPmF0
dGFjaGVkKCkpCisgICAgICAgICAgICBvbGRSb290LT5kZXRhY2goKTsKKworICAgICAgICBvbGRS
b290LT5zZXRTaGFkb3dIb3N0KDApOworICAgICAgICBob3N0KCktPmRvY3VtZW50KCktPmFkb3B0
SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7CisgICAgICAgIGlmIChvbGRSb290LT5pbkRvY3VtZW50
KCkpCisgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tVHJlZSh0cnVlKTsKKyAgICAg
ICAgaWYgKGhvc3QoKS0+YXR0YWNoZWQoKSkgeworICAgICAgICAgICAgZm9yIChOb2RlKiBjaGls
ZCA9IGhvc3QoKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgeworICAgICAgICAgICAgICAgIGlmICghY2hpbGQtPmF0dGFjaGVkKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5sYXp5QXR0YWNoKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjAyZmE0N2I2MTFhZDQyMjNkNzM1Zjk4NjhmOTZjNGUwYmNmMDA4MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCkBAIC0wLDAgKzEsODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFNoYWRvd1Jvb3RMaXN0X2gKKyNkZWZpbmUgU2hhZG93Um9vdExpc3RfaAor
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRM
aXN0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTaGFkb3dSb290OworY2xhc3MgRWxlbWVudDsKKworY2xhc3MgU2hhZG93Um9v
dExpc3QgeworcHVibGljOgorICAgIFNoYWRvd1Jvb3RMaXN0KEVsZW1lbnQqKTsKKworICAgIH5T
aGFkb3dSb290TGlzdCgpOworCisgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0OworCisgICAgYm9v
bCBoYXNTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCk7
CisgICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgpOworCisgICAgdm9pZCBhZGRTaGFk
b3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gcHJwU2hhZG93Um9vdCwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdCgpOworCitwcml2YXRlOgorICAgIEVsZW1l
bnQqIG1faG9zdDsKKyAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9v
dHM7Cit9OworCitpbmxpbmUgRWxlbWVudCogU2hhZG93Um9vdExpc3Q6Omhvc3QoKSBjb25zdAor
eworICAgIHJldHVybiBtX2hvc3Q7Cit9CisKK2lubGluZSBib29sIFNoYWRvd1Jvb3RMaXN0Ojpo
YXNTaGFkb3dSb290KCkKK3sKKyAgICByZXR1cm4gIW1fc2hhZG93Um9vdHMuaXNFbXB0eSgpOwor
fQorCitpbmxpbmUgU2hhZG93Um9vdCogU2hhZG93Um9vdExpc3Q6OnlvdW5nZXN0U2hhZG93Um9v
dCgpCit7CisgICAgcmV0dXJuIG1fc2hhZG93Um9vdHMuaGVhZCgpOworfQorCitpbmxpbmUgU2hh
ZG93Um9vdCogU2hhZG93Um9vdExpc3Q6Om9sZGVzdFNoYWRvd1Jvb3QoKQoreworICAgIHJldHVy
biBtX3NoYWRvd1Jvb3RzLnRhaWwoKTsKK30KKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126457</attachid>
            <date>2012-02-09 22:41:27 -0800</date>
            <delta_ts>2012-02-09 23:13:37 -0800</delta_ts>
            <desc>W.I.P.</desc>
            <filename>bug-78069-20120210154125.patch</filename>
            <type>text/plain</type>
            <size>22697</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmVmMjM2MjgwZTdkMDE5MGJmZjdlMjhlZmU5NjlmNDkyMmVlNzc5Li5kNmM1ZmI0NmNkYmMzMzdm
MTQyY2I3ZjQ1ODRiNTg2NDJjNmNhMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6
CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAgICAgICAgKFdURjo6Ojp0YWlsKToKKyAg
ICAgICAgKFdURik6CisKIDIwMTItMDItMDggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBXaG9vcHMsIGZpeCB0aGUgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0
OWZkMzA2OTQ1ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIyMi4uYjUxZGJjNDY5ZmY4ZjZlMmM3Y2E4
ZGZlYzk0YjQxZDM1ZjE2ZTVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTAy
LTA5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50
cm9kdWNlIFNoYWRvd1Jvb3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9v
dExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdExpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpzZXRTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURh
dGEuaDoKKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OnlvdW5nZXJTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6Om9sZGVyU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpTaGFkb3dSb290TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
TGlzdDo6flNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hhZG93
Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6YWRkU2hhZG93Um9vdCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cmVtb3ZlU2hhZG93Um9vdCk6Cisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChTaGFkb3dSb290TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
TGlzdDo6aG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6aGFzU2hhZG93
Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6eW91bmdlc3RTaGFkb3dS
b290KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpvbGRlc3RTaGFkb3dSb290
KToKKwogMjAxMi0wMi0wOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBUcmVlT3JkZXJJdGVyYXRvciBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBjaGlsZCBi
b3hlcyBkaXJlY3RseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91
Ymx5TGlua2VkTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRM
aXN0LmgKaW5kZXggMzYxZDcxZDdiNTczMjY3OTc5ZTQ0YzRiN2Q2ZmIzODZkNjBmOTdiOC4uY2Qw
NjdlZjBhODc2OGFmYjRkMDBjNTU3MzNiNTAxNWUyNDllMzA0OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGlj
OgogICAgIFQqIGhlYWQoKSBjb25zdDsKICAgICBUKiByZW1vdmVIZWFkKCk7CiAKKyAgICBUKiB0
YWlsKCkgY29uc3Q7CisKICAgICB2b2lkIHB1c2goVCopOwogICAgIHZvaWQgYXBwZW5kKFQqKTsK
ICAgICB2b2lkIHJlbW92ZShUKik7CkBAIC0xMTYsNiArMTE4LDExIEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBUKiBEb3VibHlMaW5rZWRMaXN0PFQ+OjpoZWFkKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9oZWFkOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogRG91Ymx5
TGlua2VkTGlzdDxUPjo6dGFpbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFpbDsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgRG91Ymx5TGlua2VkTGlzdDxUPjo6cHVz
aChUKiBub2RlKQogewogICAgIGlmICghbV9oZWFkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDQzYTdmMjEyMTA3MGJiZTkwYTQwMGY0MzNjNjNiYWUyMzliYjY2ODkuLjNjZTAxOTdjMjIyZDAw
MjY4NjRkNjA4MmU4MjkwZGU3ZDQwYmU4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDAs
NiArNjAwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9TZWN1cml0eUNvbnRleHQu
Y3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCisg
ICAgZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAog
ICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNThkOWU5YTRlYTAwMTRmNDE4
MDZmYzRlODRhNzhkMzIzZTU3ZGJhMC4uMTg3NzI1ZDQxODhiOTM5NWZjMGFhZjg4NGMyMzIyNWEx
NTRjYmQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjU5LDYgKzE2NTks
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1
ZXJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RM
aXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY0hhc2hTZXRO
b2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYTcyYTE4ZGFhYzZmYjkzNjY1ZTIzZTcwYmRm
MjdiNWM3MGQxM2U4Ny4uYTFjYzdjM2ZiNGZiZDJiMDQyOTU0ZWE3N2YwNmRhYTg1YmE4MzBmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC01NjYsNiArNTY2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1Nl
Y3VyaXR5Q29udGV4dC5jcHAgXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAgZG9t
L1NoYWRvd1Jvb3QuY3BwIFwKKyAgICBkb20vU2hhZG93Um9vdExpc3QuY3BwIFwKICAgICBkb20v
U3BhY2VTcGxpdFN0cmluZy5jcHAgXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAgXAogICAg
IGRvbS9TdHlsZWRFbGVtZW50LmNwcCBcCkBAIC0xNjY5LDYgKzE2NzAsNyBAQCBIRUFERVJTICs9
IFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwKICAgICBkb20vU2VsZWN0b3JR
dWVyeS5oIFwKICAgICBkb20vU2hhZG93Um9vdC5oIFwKKyAgICBkb20vU2hhZG93Um9vdExpc3Qu
aCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0
LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDkwY2Q4
ZTE0OGU2NjlhZWZjM2EyNWUxODhjZWU0NmJkYWU4ZjY1ZjEuLmExYjMzNWJjNDJlNDI5YjRhNDFj
OTdmY2YwOTU2MjM3NTk0NWU0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYxOSw2ICs2MTksNyBA
QAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAogICAgICAgICAg
ICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcs
CisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3RMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9T
cGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAog
ICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtNTA5NSw2ICs1MDk2LDggQEAKICAgICAgICAg
ICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAorICAgICAgICAgICAgJ2RvbS9T
aGFkb3dSb290TGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290TGlzdC5oJywK
ICAgICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFz
aFNldE5vZGVMaXN0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDAyMDQyMjIwNDUyYTJlYzVjZTQzNTBlYTU4ZGJjYjRhNDYw
ZWMzNjUuLmJlYzk3MTBlMTY2OGViZjFmOTczNTJhNjYwOGQ4ZDg4MjJkOTU1NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0
NjQsNiArODQ2NCw4IEBACiAJCTU3Qjc5MUEyMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0I3OTFBNzE0QzZB
NjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3Qjc5MUE4MTRDNkE2MzMwMEYyMDJEMSAvKiBIVE1MQ29udGVudEVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENvbnRlbnRFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3Qjc5NEE1MTRFNEYyNjgwMEYy
MDJEMSAvKiBTaGFkb3dSb290TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFkb3dSb290TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3Qjc5NEE2MTRFNEYyNjgwMEYyMDJEMSAvKiBTaGFkb3dSb290TGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dSb290TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUcmVlVmlld2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRG
IC8qIFhNTFRyZWVWaWV3ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1M
VHJlZVZpZXdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTBFMUI0ODExRTRF
RjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwMzg5LDYgKzIwMzkxLDggQEAKIAkJRjUyM0QzMjQwMkRFNDQ3ODAxODYzNUNBIC8q
IGRvbSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTdC
Nzk0QTUxNEU0RjI2ODAwRjIwMkQxIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLywKKwkJCQk1N0I3
OTRBNjE0RTRGMjY4MDBGMjAyRDEgLyogU2hhZG93Um9vdExpc3QuaCAqLywKIAkJCQlFMUM0REU2
RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywKIAkJCQlFMUM0REU2
ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCiAJCQkJQThDNEE3RkMw
OUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDM1NWYzOGFkYmU0ZDJkZmEzY2NjYzIwNDlhNGViNjFmZjg2NmY0YmUuLmZkNzVlZGExOGNjNTM2
M2UzZjU5MDA4MzM2OWM0MzY0ZWIyOWUzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTYx
LDYgKzYxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCkBAIC0xMTUyLDQ2ICsxMTUzLDQxIEBAIHZvaWQg
RWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBkaWRSZWNh
bGNTdHlsZShjaGFuZ2UpOwogfQogCi1TaGFkb3dSb290KiBFbGVtZW50OjpzaGFkb3dSb290KCkg
Y29uc3QKK2Jvb2wgRWxlbWVudDo6aGFzU2hhZG93Um9vdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgOiAwOworICAgIGlmIChT
aGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHJldHVybiBs
aXN0LT5oYXNTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9v
bCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFk
b3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1NoYWRvd1Jvb3RMaXN0KiBFbGVtZW50OjpzaGFk
b3dSb290TGlzdCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFzaGFkb3dSb290KQotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOwogCi0g
ICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkgewotICAgICAgICBlYyA9IEhJRVJBUkNI
WV9SRVFVRVNUX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICByZXR1cm4g
cmFyZURhdGEoKS0+bV9zaGFkb3dSb290TGlzdDsKK30KIAotICAgIGlmIChzaGFkb3dSb290LT5k
b2N1bWVudCgpICE9IGRvY3VtZW50KSB7Ci0gICAgICAgIGVjID0gV1JPTkdfRE9DVU1FTlRfRVJS
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorU2hhZG93Um9vdExpc3QqIEVsZW1lbnQ6
OmVuc3VyZVNoYWRvd1Jvb3RMaXN0KCkKK3sKKyAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBl
bnN1cmVSYXJlRGF0YSgpOworICAgIGlmIChkYXRhLT5tX3NoYWRvd1Jvb3RMaXN0KQorICAgICAg
ICByZXR1cm4gZGF0YS0+bV9zaGFkb3dSb290TGlzdDsKIAotICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiBkYXRhLT5tX3NoYWRvd1Jvb3RMaXN0ID0gbmV3IFNoYWRvd1Jvb3RMaXN0KHRoaXMp
OwogfQogCi12b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290
PiBwcnBTaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKK1NoYWRvd1Jvb3QqIEVsZW1lbnQ6
OnNoYWRvd1Jvb3QoKSBjb25zdAogewotICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290
ID0gcHJwU2hhZG93Um9vdDsKLSAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChkb2N1bWVudCgp
LCBzaGFkb3dSb290LmdldCgpLCBlYykpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJlbW92ZVNo
YWRvd1Jvb3QoKTsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dSb290TGlz
dCgpKQorICAgICAgICByZXR1cm4gbGlzdC0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgcmV0
dXJuIDA7Cit9CiAKLSAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBzaGFkb3dS
b290LmdldCgpOwotICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7Ci0gICAgaWYg
KGluRG9jdW1lbnQoKSkKLSAgICAgICAgc2hhZG93Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQo
KTsKLSAgICBpZiAoYXR0YWNoZWQoKSkgewotICAgICAgICBzaGFkb3dSb290LT5sYXp5QXR0YWNo
KCk7Ci0gICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOwot
ICAgIH0KK3ZvaWQgRWxlbWVudDo6c2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+
IHBycFNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGVuc3VyZVNoYWRvd1Jv
b3RMaXN0KCktPnJlbW92ZVNoYWRvd1Jvb3QoKTsKKyAgICBlbnN1cmVTaGFkb3dSb290TGlzdCgp
LT5hZGRTaGFkb3dSb290KHBycFNoYWRvd1Jvb3QsIGVjKTsKIH0KIAogU2hhZG93Um9vdCogRWxl
bWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCkBAIC0xMjA0LDMwICsxMjAwLDggQEAgU2hhZG93Um9v
dCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlU2hh
ZG93Um9vdCgpCiB7Ci0gICAgaWYgKCFoYXNSYXJlRGF0YSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOwotICAgIGlmIChSZWZQdHI8
U2hhZG93Um9vdD4gb2xkUm9vdCA9IGRhdGEtPm1fc2hhZG93Um9vdCkgewotICAgICAgICBkYXRh
LT5tX3NoYWRvd1Jvb3QgPSAwOwotICAgICAgICBkb2N1bWVudCgpLT5yZW1vdmVGb2N1c2VkTm9k
ZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKLQotICAgICAgICAvLyBSZW1vdmUgZnJvbSByZW5k
ZXJpbmcgdHJlZQotICAgICAgICBpZiAob2xkUm9vdC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAg
IG9sZFJvb3QtPmRldGFjaCgpOwotCi0gICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7
Ci0gICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7Ci0gICAg
ICAgIGlmIChvbGRSb290LT5pbkRvY3VtZW50KCkpCi0gICAgICAgICAgICBvbGRSb290LT5yZW1v
dmVkRnJvbURvY3VtZW50KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9sZFJvb3QtPnJl
bW92ZWRGcm9tVHJlZSh0cnVlKTsKLSAgICAgICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAg
ICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgICAgIGlmICghY2hpbGQtPmF0dGFjaGVkKCkp
Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkLT5sYXp5QXR0YWNoKCk7Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dMaXN0ID0gc2hhZG93Um9vdExpc3Qo
KSkKKyAgICAgICAgc2hhZG93TGlzdC0+cmVtb3ZlU2hhZG93Um9vdCgpOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCmluZGV4IDkzODFlMmY1ODE1ODdkNzMyNTcwYTgzMTQ5NDI4MzQ4NDE5N2Y4MjkuLjYzYjA2
OTU4ZjQ3MGRjYWYxZGRiNmNjMGQ5MDg2OGUyMTY1ZTgwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApA
QCAtNDIsNiArNDIsNyBAQCBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgU2hhZG93Um9vdDsKK2NsYXNzIFNoYWRvd1Jvb3RM
aXN0OwogY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogZW51bSBTcGVsbGNoZWNrQXR0cmli
dXRlU3RhdGUgewpAQCAtMjU0LDYgKzI1NSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAg
ICB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOwogCisgICAgYm9vbCBo
YXNTaGFkb3dSb290KCkgY29uc3Q7CisgICAgU2hhZG93Um9vdExpc3QqIHNoYWRvd1Jvb3RMaXN0
KCkgY29uc3Q7CisgICAgU2hhZG93Um9vdExpc3QqIGVuc3VyZVNoYWRvd1Jvb3RMaXN0KCk7CisK
KyAgICAvLyBGSVhNRTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQgdG8gU2hhZG93Um9vdExpc3Qu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzEzCiAg
ICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2hhZG93Um9v
dChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9v
dCogZW5zdXJlU2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmlu
ZGV4IGNhMzIxMTVlNjE4NDY0ODdjMTkxZDlmYWEyODQ3MDZmMmVlMDJhZjguLjcyYTI4YjczYTFl
MGU2NTcxZWI2NDMxMDk0ZWZlNzIyYzc0NWNkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJh
cmVEYXRhLmgKQEAgLTI3LDEyICsyNywxMSBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNoYWRvd1Jvb3Q7Ci0KIGNsYXNzIEVsZW1lbnRSYXJlRGF0
YSA6IHB1YmxpYyBOb2RlUmFyZURhdGEgewogcHVibGljOgogICAgIEVsZW1lbnRSYXJlRGF0YSgp
OwpAQCAtNzIsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBMYXlvdXRTaXplIG1fbWluaW11bVNp
emVGb3JSZXNpemluZzsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29tcHV0ZWRTdHlsZTsK
LSAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CisgICAgU2hhZG93Um9vdExpc3QqIG1fc2hh
ZG93Um9vdExpc3Q7CiAgICAgQXRvbWljU3RyaW5nIG1fc2hhZG93UHNldWRvSWQ7CiAKICNpZiBF
TkFCTEUoU1RZTEVfU0NPUEVEKQpAQCAtOTYsNyArOTUsNyBAQCBpbmxpbmUgSW50U2l6ZSBkZWZh
dWx0TWluaW11bVNpemVGb3JSZXNpemluZygpCiAKIGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVs
ZW1lbnRSYXJlRGF0YSgpCiAgICAgOiBtX21pbmltdW1TaXplRm9yUmVzaXppbmcoZGVmYXVsdE1p
bmltdW1TaXplRm9yUmVzaXppbmcoKSkKLSAgICAsIG1fc2hhZG93Um9vdCgwKQorICAgICwgbV9z
aGFkb3dSb290TGlzdCgwKQogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgLCBtX251bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oMCkKICNlbmRpZgpAQCAtMTA5LDcgKzEwOCw3IEBA
IGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSgpCiAKIGlubGluZSBFbGVt
ZW50UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEoKQogewotICAgIEFTU0VSVCghbV9zaGFkb3dS
b290KTsKKyAgICBBU1NFUlQoIW1fc2hhZG93Um9vdExpc3QgfHwgIW1fc2hhZG93Um9vdExpc3Qt
Pmhhc1NoYWRvd1Jvb3QoKSk7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6cmVz
ZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAyOTBiZTNm
NmQ0NTI3OTcxZDI4OTA2YmFlM2I3Yjg4MDA2MjIwOGIyLi4yOGNmMGY0MWQyOWYwMjdlZGRkOWIw
YzI4ZjUwZDU1ZGFiYzZkNjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC00MSw2
ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3JlYXRl
U2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29wZSh0aGlzKQorICAgICwgbV9wcmV2KDApCisgICAg
LCBtX25leHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTaGVldHMoZmFsc2UpCiAgICAgLCBtX25l
ZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5k
ZXggNDAxZWU1ZTlkNjY1NWUxNjAyZDEzNzRmZDk0NzhmNWVhNDY1NjBmNS4uYWRjZDQxMGI2NDEy
MzE2ODg2YWU5ZjM4NTgwY2YzNDRhODkzMzAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKKyNpbmNsdWRlIDx3dGYv
RG91Ymx5TGlua2VkTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDcgKzM4
LDggQEAgY2xhc3MgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOwogY2xhc3MgRG9jdW1lbnQ7CiBj
bGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CiAKLWNsYXNzIFNoYWRvd1Jvb3QgOiBwdWJsaWMgRG9j
dW1lbnRGcmFnbWVudCwgcHVibGljIFRyZWVTY29wZSB7CitjbGFzcyBTaGFkb3dSb290IDogcHVi
bGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBEb3VibHlMaW5r
ZWRMaXN0Tm9kZTxTaGFkb3dSb290PiB7CisgICAgZnJpZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlu
a2VkTGlzdE5vZGU8U2hhZG93Um9vdD47CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2hhZG93Um9vdD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hh
ZG93Um9vdD4gY3JlYXRlKEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CkBAIC03Myw2ICs3NSw5
IEBAIHB1YmxpYzoKICAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBj
b25zdDsKICAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIGVuc3VyZUluY2x1c2lvbnMoKTsK
IAorICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXJTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gcHJl
digpOyB9CisgICAgU2hhZG93Um9vdCogb2xkZXJTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4g
bmV4dCgpOyB9CisKIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdChEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgflNoYWRvd1Jvb3QoKTsKQEAgLTg0LDYgKzg5LDggQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgaGFzQ29udGVudEVsZW1lbnQoKSBjb25zdDsKIAorICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsK
KyAgICBTaGFkb3dSb290KiBtX25leHQ7CiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRzIDog
MTsKICAgICBib29sIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgOiAxOwogICAgIE93blB0cjxD
b250ZW50SW5jbHVzaW9uU2VsZWN0b3I+IG1faW5jbHVzaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3YTFmYjQzMGZiZDg2YzFmY2EyOTlhMDIxODEx
N2U1ZjY4OTlmNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdExpc3QuY3BwCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworU2hhZG93Um9vdExpc3Q6OlNoYWRvd1Jvb3RMaXN0KEVsZW1lbnQqIGhvc3QpCisg
ICAgOiBtX2hvc3QoaG9zdCkKK3sKKyAgICBBU1NFUlQoaG9zdCk7Cit9CisKK1NoYWRvd1Jvb3RM
aXN0Ojp+U2hhZG93Um9vdExpc3QoKQoreworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
K30KKworc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwg
U2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFz
aGFkb3dSb290KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChzaGFkb3dSb290LT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoc2hhZG93Um9vdC0+ZG9jdW1lbnQo
KSAhPSBkb2N1bWVudCkgeworICAgICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFNo
YWRvd1Jvb3RMaXN0OjphZGRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gcHJwU2hh
ZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gRklYTUU6IFdlIGRvbid0IHN1
cHBvcnQgbXVsdGlwbGUgc2hhZG93IHJvb3Qgc3VidHJlZXMgeWV0LgorICAgIEFTU0VSVCghaGFz
U2hhZG93Um9vdCgpKTsKKworICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290ID0gcHJw
U2hhZG93Um9vdDsKKyAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChob3N0KCktPmRvY3VtZW50
KCksIHNoYWRvd1Jvb3QuZ2V0KCksIGVjKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaGFk
b3dSb290cy5wdXNoKHNoYWRvd1Jvb3QuZ2V0KCkpOworICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRv
d0hvc3QoaG9zdCgpKTsKKworICAgIGlmIChob3N0KCktPmluRG9jdW1lbnQoKSkKKyAgICAgICAg
c2hhZG93Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICBpZiAoaG9zdCgpLT5hdHRh
Y2hlZCgpKSB7CisgICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsKKyAgICAgICAgZm9y
IChOb2RlKiBjaGlsZCA9IGhvc3QoKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAgIGNoaWxkLT5kZXRhY2goKTsKKyAgICB9Cit9
CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlbW92ZVNoYWRvd1Jvb3QoKQoreworICAgIGlmICgh
aGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoUmVmUHRyPFNoYWRv
d1Jvb3Q+IG9sZFJvb3QgPSBtX3NoYWRvd1Jvb3RzLnJlbW92ZUhlYWQoKSkgeworICAgICAgICBo
b3N0KCktPmRvY3VtZW50KCktPnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKG9sZFJvb3QuZ2V0
KCkpOworCisgICAgICAgIC8vIFJlbW92ZSBmcm9tIHJlbmRlcmluZyB0cmVlCisgICAgICAgIGlm
IChvbGRSb290LT5hdHRhY2hlZCgpKQorICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7CisK
KyAgICAgICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKKyAgICAgICAgaG9zdCgpLT5kb2N1
bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0KCkpOworICAgICAgICBpZiAob2xkUm9v
dC0+aW5Eb2N1bWVudCgpKQorICAgICAgICAgICAgb2xkUm9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVu
dCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbVRyZWUo
dHJ1ZSk7CisgICAgICAgIGlmIChob3N0KCktPmF0dGFjaGVkKCkpIHsKKyAgICAgICAgICAgIGZv
ciAoTm9kZSogY2hpbGQgPSBob3N0KCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLT5hdHRhY2hl
ZCgpKQorICAgICAgICAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwMmZhNDdiNjExYWQ0MjIzZDczNWY5ODY4Zjk2YzRlMGJjZjAwODEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaApA
QCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTaGFkb3dSb290TGlzdF9oCisjZGVmaW5lIFNoYWRv
d1Jvb3RMaXN0X2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlIDx3dGYv
RG91Ymx5TGlua2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2hhZG93Um9vdDsKK2NsYXNzIEVsZW1lbnQ7CisKK2Ns
YXNzIFNoYWRvd1Jvb3RMaXN0IHsKK3B1YmxpYzoKKyAgICBTaGFkb3dSb290TGlzdChFbGVtZW50
Kik7CisKKyAgICB+U2hhZG93Um9vdExpc3QoKTsKKworICAgIEVsZW1lbnQqIGhvc3QoKSBjb25z
dDsKKworICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0
U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKTsKKworICAg
IHZvaWQgYWRkU2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHBycFNoYWRvd1Jvb3Qs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKworcHJpdmF0
ZToKKyAgICBFbGVtZW50KiBtX2hvc3Q7CisgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290
PiBtX3NoYWRvd1Jvb3RzOworfTsKKworaW5saW5lIEVsZW1lbnQqIFNoYWRvd1Jvb3RMaXN0Ojpo
b3N0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ob3N0OworfQorCitpbmxpbmUgYm9vbCBTaGFk
b3dSb290TGlzdDo6aGFzU2hhZG93Um9vdCgpCit7CisgICAgcmV0dXJuICFtX3NoYWRvd1Jvb3Rz
LmlzRW1wdHkoKTsKK30KKworaW5saW5lIFNoYWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0Ojp5b3Vu
Z2VzdFNoYWRvd1Jvb3QoKQoreworICAgIHJldHVybiBtX3NoYWRvd1Jvb3RzLmhlYWQoKTsKK30K
KworaW5saW5lIFNoYWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0OjpvbGRlc3RTaGFkb3dSb290KCkK
K3sKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy50YWlsKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126462</attachid>
            <date>2012-02-09 23:13:47 -0800</date>
            <delta_ts>2012-02-10 02:02:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78069-20120210161343.patch</filename>
            <type>text/plain</type>
            <size>42447</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmVmMjM2MjgwZTdkMDE5MGJmZjdlMjhlZmU5NjlmNDkyMmVlNzc5Li4yNjc3ODJjZTQxNzE3ZDVh
Nzk4Yzc0OGUyZDUxNDA0OTAzMjNhNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG91Ymx5TGlua2VkTGlzdCBzaG91bGQg
aGF2ZSB0YWlsKCkgbWV0aG9kIHRvIHRha2UgdGhlIGxhc3QgZWxlbWVudC4KKworICAgICAgICAq
IHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAg
ICAgICAgKFdURjo6Ojp0YWlsKToKKyAgICAgICAgKFdURik6CisKIDIwMTItMDItMDggIE9saXZl
ciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXaG9vcHMsIGZpeCB0aGUgYnVp
bGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0OWZkMzA2OTQ1ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIy
Mi4uMjFlNmIyZTdjZGE3YzFlMmQwYTUyNDFkZDRjZWUxYmU4MGZiNDVlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDcyIEBACisyMDEyLTAyLTA5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIFNoYWRvd1Jvb3RMaXN0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0byBp
bXBsZW1lbnQgbXVsdGlwbGUgc2hhZG93IHN1YnRyZWVzLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW50cm9kdWNlcyBhIHNoYWRvdyByb290IGxpc3QuIFNoYWRvd1Jvb3RMaXN0IGlzIGEgZG91Ymx5
IGxpbmtlZCBsaXN0LAorICAgICAgICBhbmQgZWFjaCBzaGFkb3cgcm9vdCBub3cgaGFzIGEgeW91
bmdlciBzaGFkb3cgcm9vdCBhbmQgb2xkZXIgc2hhZG93IHJvb3QsCisgICAgICAgIHdoaWNoIGFy
ZSBhIHByZXZpb3VzIGVsZW1lbnQgYW5kIGEgbmV4dCBlbGVtZW50IHJlc3BlY3RpdmVseS4KKwor
ICAgICAgICBIb3dldmVyLCBTaGFkb3dSb290TGlzdCBkb2VzIG5vdCBoYXZlIG1vcmUgdGhhbiBv
bmUgc2hhZG93IHJvb3Qgbm93LgorICAgICAgICBUaGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBhIHNl
cmllcyBvZiBjb21pbmcgcGF0Y2hlcy4KKworICAgICAgICBFbGVtZW50OjpzaGFkb3dSb290KCks
IHNldFNoYWRvd1Jvb3QoKSwgZW5zdXJlU2hhZG93Um9vdCgpLCBhbmQgcmVtb3ZlU2hhZG93Um9v
dCgpIGFyZQorICAgICAgICBlbXVsYXRlZCB1c2luZyBTaGFkb3dSb290TGlzdCBmb3Igd2hpbGUu
IFRoZXNlIEFQSSB3aWxsIGJlIHJlcGxhY2VkIHRvIHVzZSBTaGFkb3dSb290TGlzdC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAgIFJldHJ1
bnMgdHJ1ZSBpZiBhbiBlbGVtZW50IGhhcyBhIHNoYWRvd1Jvb3QuCisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpzaGFkb3dSb290TGlzdCk6CisgICAgICAgICAgR2V0cyBzaGFkb3cgcm9vdCBs
aXN0LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdExpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6CisgICAgICAgICAgR2V0cyB0
aGUgZmlyc3Qgc2hhZG93IHJvb3QgZnJvbSB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QpOgorICAgICAgICAgIFNldHMgdGhlIGZp
cnN0IHNoYWRvdyByb290IHRvIHRoZSBzaGFkb3cgcm9vdCBsaXN0LgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAgICAgICAgUmVtb3ZlcyBhbGwgdGhl
IHNoYWRvdyByb290cyBpbiB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAg
KiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEpOgorICAgICAg
ICAgIEhhcyBzaGFkb3cgcm9vdCBsaXN0cyBpbnN0ZWFkIG9mIHNoYWRvdyByb290LgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjp+RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAg
KiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpTaGFk
b3dSb290KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp5b3VuZ2VyU2hhZG93Um9vdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpvbGRlclNoYWRvd1Jvb3QpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6U2hhZG93Um9vdExpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6On5TaGFkb3dSb290TGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExp
c3Q6OmFkZFNoYWRvd1Jvb3QpOgorICAgICAgICAgIEFkZCBhIHNoYWRvdyByb290IGludG8gdGhl
IGxpc3QuIEN1cnJlbnRseSB3ZSBsaW1pdCB0aGUgbGlzdCBjYW4gaGF2ZSBvbmx5IG9uZSBzaGFk
b3cgcm9vdC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpyZW1vdmVTaGFkb3dS
b290KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0Ojpob3N0KToKKyAgICAgICAgICBBIGhvc3QgZWxlbWVudCB3aGljaCBoYXMg
dGhpcyBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0Ojpo
YXNTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0Ojp5b3VuZ2Vz
dFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6Om9sZGVzdFNo
YWRvd1Jvb3QpOgorCiAyMDEyLTAyLTA5ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIFRyZWVPcmRlckl0ZXJhdG9yIGFuZCBpdGVyYXRlIG92ZXIgdGhl
IGNoaWxkIGJveGVzIGRpcmVjdGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJs
eUxpbmtlZExpc3QuaAppbmRleCAzNjFkNzFkN2I1NzMyNjc5NzllNDRjNGI3ZDZmYjM4NmQ2MGY5
N2I4Li5jZDA2N2VmMGE4NzY4YWZiNGQwMGM1NTczM2I1MDE1ZTI0OWUzMDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaApAQCAtNzcsNiArNzcsOCBA
QCBwdWJsaWM6CiAgICAgVCogaGVhZCgpIGNvbnN0OwogICAgIFQqIHJlbW92ZUhlYWQoKTsKIAor
ICAgIFQqIHRhaWwoKSBjb25zdDsKKwogICAgIHZvaWQgcHVzaChUKik7CiAgICAgdm9pZCBhcHBl
bmQoVCopOwogICAgIHZvaWQgcmVtb3ZlKFQqKTsKQEAgLTExNiw2ICsxMTgsMTEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIFQqIERvdWJseUxpbmtlZExpc3Q8VD46OmhlYWQoKSBjb25z
dAogICAgIHJldHVybiBtX2hlYWQ7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBU
KiBEb3VibHlMaW5rZWRMaXN0PFQ+Ojp0YWlsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90YWls
OworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBEb3VibHlMaW5rZWRMaXN0
PFQ+OjpwdXNoKFQqIG5vZGUpCiB7CiAgICAgaWYgKCFtX2hlYWQpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggNDNhN2YyMTIxMDcwYmJlOTBhNDAwZjQzM2M2M2JhZTIzOWJiNjY4OS4uM2NlMDE5
N2MyMjJkMDAyNjg2NGQ2MDgyZTgyOTBkZTdkNDBiZTg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTYwMCw2ICs2MDAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1NlY3VyaXR5
Q29udGV4dC5jcHAKICAgICBkb20vU2VsZWN0b3JRdWVyeS5jcHAKICAgICBkb20vU2hhZG93Um9v
dC5jcHAKKyAgICBkb20vU2hhZG93Um9vdExpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJp
bmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAKICAgICBkb20vU3RhdGlj
Tm9kZUxpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1OGQ5ZTlhNGVh
MDAxNGY0MTgwNmZjNGU4NGE3OGQzMjNlNTdkYmEwLi4xODc3MjVkNDE4OGI5Mzk1ZmMwYWFmODg0
YzIzMjI1YTE1NGNiZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE2NTks
NiArMTY1OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdExpc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RhdGlj
SGFzaFNldE5vZGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBhNzJhMThkYWFjNmZiOTM2NjVl
MjNlNzBiZGYyN2I1YzcwZDEzZTg3Li5hMWNjN2MzZmI0ZmJkMmIwNDI5NTRlYTc3ZjA2ZGFhODVi
YTgzMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTU2Niw2ICs1NjYsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwK
ICAgICBkb20vU2hhZG93Um9vdC5jcHAgXAorICAgIGRvbS9TaGFkb3dSb290TGlzdC5jcHAgXAog
ICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNw
cCBcCiAgICAgZG9tL1N0eWxlZEVsZW1lbnQuY3BwIFwKQEAgLTE2NjksNiArMTY3MCw3IEBAIEhF
QURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAogICAgIGRvbS9T
ZWxlY3RvclF1ZXJ5LmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAorICAgIGRvbS9TaGFkb3dS
b290TGlzdC5oIFwKICAgICBkb20vU3BhY2VTcGxpdFN0cmluZy5oIFwKICAgICBkb20vU3RhdGlj
Tm9kZUxpc3QuaCBcCiAgICAgZG9tL1N0eWxlZEVsZW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggOTBjZDhlMTQ4ZTY2OWFlZmMzYTI1ZTE4OGNlZTQ2YmRhZThmNjVmMS4uYTFiMzM1YmM0MmU0
MjliNGE0MWM5N2ZjZjA5NTYyMzc1OTQ1ZTQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE5LDYg
KzYxOSw3IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCiAg
ICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93
Um9vdC5oJywKKyAgICAgICAgICAgICdkb20vU2hhZG93Um9vdExpc3QuaCcsCiAgICAgICAgICAg
ICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC01MDk1LDYgKzUwOTYsOCBAQAog
ICAgICAgICAgICAgJ2RvbS9TZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFk
b3dSb290LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCisgICAgICAgICAg
ICAnZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3RM
aXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9T
dGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDIwNDIyMjA0NTJhMmVjNWNlNDM1MGVhNThk
YmNiNGE0NjBlYzM2NS4uOGViZWExMWY1MzI3Y2M1ZjExZGU2OTk0ZTMxMGQ2ZmM0YmQ4MTA3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtODQ2NCw2ICs4NDY0LDggQEAKIAkJNTdCNzkxQTIxNEM2QTYyOTAwRjIwMkQxIC8qIENv
bnRlbnRTZWxlY3RvclF1ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bnRlbnRTZWxlY3RvclF1ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3Qjc5
MUE3MTRDNkE2MzMwMEYyMDJEMSAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTENvbnRlbnRFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCNzkxQTgxNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxD
b250ZW50RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQ29u
dGVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdCNzk0QTUxNEU0
RjI2ODAwRjIwMkQxIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNoYWRvd1Jvb3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTdCNzk0QTYxNEU0RjI2ODAwRjIwMkQxIC8qIFNoYWRvd1Jvb3RMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3RMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVl
Vmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVW
aWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTA1QURCRTEzMDJGM0NF
MDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MEUx
QjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM5ODEsMTMgKzEzOTgzLDEzIEBACiAJCTFDNUZBRUNBMERDRkQ4Qzkw
MEQ1OEY3OCAvKiBJbnNwZWN0b3IgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCTU3M0QxMzQ1MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVp
bGRlci5jcHAgKi8sCi0JCQkJNTczRDEzNDYxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5
cGVCdWlsZGVyLmggKi8sCiAJCQkJN0E1NjNFNTQxMkRFMzJCMDAwRjQ1MzZEIC8qIEluamVjdGVk
U2NyaXB0U291cmNlLmggKi8sCiAJCQkJNEY3MDdBOTcxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQk0RjcwN0E5ODExRUY2Nzk0MDBBQ0RB
NjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCAqLywKIAkJCQk0RjRGNUZGQTExQ0JE
MkQyMDBBMTg2QkYgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwICovLAogCQkJCTRGNEY1RkZDMTFD
QkQzMDEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICovLAorCQkJCTU3M0QxMzQ1MTRD
RTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHAgKi8sCisJCQkJNTczRDEz
NDYxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmggKi8sCiAJCQkJN0Ew
RTc2RDgxMEJGMDU5ODAwQTAyNzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCAqLywKIAkJ
CQk3QTBFNzZEOTEwQkYwNTk4MDBBMDI3NkUgLyogSlNJbmplY3RlZFNjcmlwdEhvc3QuaCAqLywK
IAkJCQk3QTBFNzcxQzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
Y3BwICovLApAQCAtMTQwMTQsOCArMTQwMTYsOCBAQAogCQkJCTdBQUJBMjU4MTRCQzYxMzMwMEFB
OUExMSAvKiBET01FZGl0b3IuaCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyog
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2Rjgg
LyogRE9NTm9kZUhpZ2hsaWdodGVyLmggKi8sCi0JCQkJN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVB
IC8qIERPTVBhdGNoU3VwcG9ydC5oICovLAogCQkJCTdBNTQ4ODE2MTRFNDMyQTEwMDZBRTA1QSAv
KiBET01QYXRjaFN1cHBvcnQuY3BwICovLAorCQkJCTdBNTQ4ODE1MTRFNDMyQTEwMDZBRTA1QSAv
KiBET01QYXRjaFN1cHBvcnQuaCAqLywKIAkJCQlGMzVBRTVBQjE0OTI1RjVCMDA0RDU3NzYgLyog
RE9NV3JhcHBlclZpc2l0b3IuaCAqLywKIAkJCQk1OTEzQTIzRjEzRDQ5RUJBMDBGNUIwNUMgLyog
SWRlbnRpZmllcnNGYWN0b3J5LmNwcCAqLywKIAkJCQk1OTEzQTI0MDEzRDQ5RUJBMDBGNUIwNUMg
LyogSWRlbnRpZmllcnNGYWN0b3J5LmggKi8sCkBAIC0xNzE2OCwxMyArMTcxNzAsMTMgQEAKIAkJ
QTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUwQ0MwODk5MTRDNkU5OUMwMDE3QUI1MSAvKiBD
dXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCAqLywKIAkJCQk0OUVDRUI1QzE0OTk3OTBEMDBD
REQzQTQgLyogYXJtICovLAogCQkJCTUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21G
aWx0ZXJNZXNoLmNwcCAqLywKIAkJCQk1MEQ0MDVGODE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9t
RmlsdGVyTWVzaC5oICovLAotCQkJCTUwOUNDOUZBMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21G
aWx0ZXJQYXJhbWV0ZXIuaCAqLywKKwkJCQk1MENDMDg5OTE0QzZFOTlDMDAxN0FCNTEgLyogQ3Vz
dG9tRmlsdGVyTnVtYmVyUGFyYW1ldGVyLmggKi8sCiAJCQkJNTBDQzBBMzgxNEM2RjVCMTAwMTdB
QjUxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJNTBBQ0UyQ0ExNEI1RDc5
MzAwNDQ2NjY2IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAorCQkJCTUwOUNDOUZBMTRD
MDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCAqLywKIAkJCQk1MDNEMENB
NzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgKi8sCiAJCQkJNTAz
RDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLywKIAkJCQk1
MDNEMENBOTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oICov
LApAQCAtMjAwMTgsOCArMjAwMjAsNiBAQAogCQkJCUE4MEU2Q0QyMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NNZWRpYVJ1bGUuY3BwICovLAogCQkJCUE4MEU2Q0Q5MEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NNZWRpYVJ1bGUuaCAqLywKIAkJCQk4NUM1NkNBMjBBQTg5QzEwMDBEOTU3NTUgLyogQ1NTTWVk
aWFSdWxlLmlkbCAqLywKLQkJCQlBODBFNkRGOTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9w
ZXJ0eVNldC5jcHAgKi8sCi0JCQkJQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJv
cGVydHlTZXQuaCAqLywKIAkJCQlBODBFNzM0NzBBMTk5Qzc3MDA3RkI4QzUgLyogQ1NTTmFtZXNw
YWNlLmggKi8sCiAJCQkJRjk4RkZGNDIxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3Bw
ICovLAogCQkJCUY5OEZGRjQzMTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggKi8sCkBA
IC0yMDEzNSw2ICsyMDEzNSw4IEBACiAJCQkJMEZGNTAyNkUxMDJCQTk2NjAwNjZGMzlBIC8qIFN0
eWxlTWVkaWEuY3BwICovLAogCQkJCTBGRjUwMjZGMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1l
ZGlhLmggKi8sCiAJCQkJMEZGNTAyNzAxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaWRs
ICovLAorCQkJCUE4MEU2REY5MEExOTkwNjcwMDdGQjhDNSAvKiBTdHlsZVByb3BlcnR5U2V0LmNw
cCAqLywKKwkJCQlBODBFNkRGQTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5o
ICovLAogCQkJCUE4RUE4MDA1MEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmNwcCAqLywK
IAkJCQlBOEVBODAwNDBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5oICovLAogCQkJCTg1
MDY1NkRDMEFBQjQ0RDkwMDJEMTVDMCAvKiBTdHlsZVNoZWV0LmlkbCAqLywKQEAgLTIwNjc1LDYg
KzIwNjc3LDggQEAKIAkJCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5j
cHAgKi8sCiAJCQkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCAqLywK
IAkJCQlBN0RCNDE4MTE0Q0UxRjBBMDBBMkUzMTYgLyogU2hhZG93Um9vdC5pZGwgKi8sCisJCQkJ
NTdCNzk0QTUxNEU0RjI2ODAwRjIwMkQxIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLywKKwkJCQk1
N0I3OTRBNjE0RTRGMjY4MDBGMjAyRDEgLyogU2hhZG93Um9vdExpc3QuaCAqLywKIAkJCQlEMDFB
MjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8sCiAJCQkJRDAx
QTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLywKIAkJCQlDRUEz
OTQ5QTExRDQ1Q0RBMDAzMDk0Q0YgLyogU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCAqLywKQEAg
LTIxMzIwLDcgKzIxMzI0LDYgQEAKIAkJCQlBODBFNkQwODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
SW5pdGlhbFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5
Q0UgLyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZE
MDMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTgwRTZERkMwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MEU3MzRFMEExOTlDNzcwMDdGQjhDNSAvKiBDU1NOYW1lc3BhY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwMDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1
bGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEzNTgsNyArMjEzNjEsOSBAQAogCQkJCUJDMjI3MkFE
MEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkNE
MzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUwRDQwNUZBMTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MENDMDg5QTE0QzZFOTlDMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyTnVtYmVy
UGFyYW1ldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MEFDRTJDQjE0QjVENzkzMDA0NDY2NjYg
LyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDlDQzlGQjE0
QzA2OUVEMDBCQkVDQkQgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MDNEMENBQjE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTAzRDBDQUMxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRl
clByb2dyYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNjEyMTQ3RDQ5REUwMEQz
MEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjE2ODAsNiAr
MjE2ODUsNyBAQAogCQkJCTg1OTg5RENGMEFDQzhCQkQwMEEwQkM1MSAvKiBET01PdmVyZmxvd0V2
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QkQ2MTA0NEEwMUUwMEVBRUI1
MiAvKiBET01QYWdlVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNF
ODBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QTU0
ODgxNzE0RTQzMkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOUM2RTRFQzBENzQ1RTJCMDA2NDQyRTkgLyogRE9NUGx1Z2luLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOUM2RTRGMDBENzQ1RTM4MDA2NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMUEzN0JCMDk3QzcxNUYwMDE5RjNEOCAvKiBET01Qcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTIyMDE4LDYgKzIyMDI0LDggQEAKIAkJCQkzMTZGRTA4MjBFNkND
QzI4MDBCRjYwODggLyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OTgzOTE1MDBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0
cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1MjBGMUU3NkI0MDBDMjM3ODIgLyogRE9N
V2ViS2l0Q1NTTWF0cml4SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCThBRDBBNTk2MTRD
ODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4QUQwQTU5ODE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZUlu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTYxMUU2MTBFMUM0RTE0MDBGNkE1NzkgLyog
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNjExRTYz
MEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4QTE5NTkzMjE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2ViS2l0
TmFtZWRGbG93LmggaW4gSGVhZGVycyAqLywKQEAgLTIyMDYyLDYgKzIyMDcwLDcgQEAKIAkJCQk0
QkFFOTVCMTBCMkZBOUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwNzA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNGNjg3OEExNEQzMkVGRjAwMzQwRjM5IC8qIEVsZW1l
bnRBdHRyaWJ1dGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk2M0Y1RDRGNzBFOEM0QjcxMDBD
MEJEMDQgLyogRWxlbWVudFJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDE1RjE4NDBE
OUExQTgzMDAzM0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOENGRjZCRTBBMTU2MTE4MDAwQTQyMzQgLyogRWxsaXBzaXNCb3guaCBpbiBIZWFkZXJzICov
LApAQCAtMjIyMjksNiArMjIyMzgsNyBAQAogCQkJCUJDRTA0QzhBMERBRkY3QTAwMDdBMEY0MSAv
KiBHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgz
NCAvKiBHZW5lcmF0b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTYyMkE4
RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFODBEN0M2MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNTJCRkNFQjEyOEFCRjIxMDBGRDMzOEQgLyog
R2VvbG9jYXRpb25DbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNDc2LDYgKzIyNDg2
LDcgQEAKIAkJCQlGMzQ0QzcxNDExMjVCODJDMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcw
RjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0FDRDg4RDQxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1
NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUE1
MURENjE0ODUwNkE5MDBBRDI3NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjMwMTAsNiArMjMwMjEsNyBAQAogCQkJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4
OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
NzQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDk4MzkxNDAwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4QUQwQTU5NTE0Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJL
aXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTYxMUU1QjBFMUM0REUwMDBG
NkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9p
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMyODksNiArMjMzMDEsNyBAQAogCQkJCTUxNEM3Njc1
MENFOTIzQTEwMDdFRjNDRCAvKiBQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxQTA1MjU2MTA1ODg3NDAwMENDOUU5NSAvKiBQcm90ZWN0aW9uU3BhY2VIYXNoLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUY4RTExQTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEQ2ODc3OTBFRDdBRTRGMDA2RUE5NzggLyog
UHVyZ2VhYmxlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTMzQ0QwMTEyN0YzNDBEMDBC
RThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjM0NjQs
NiArMjM0NzcsNyBAQAogCQkJCUE4Q0ZGNUUxMEExNTVBMDUwMDBBNDIzNCAvKiBSb290SW5saW5l
Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDOTBFRjg2RDQ3MDA5RDBDQUYgLyogUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzNGOTVGRjEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEIzNTg4
MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzYzQTI0
ODBGNzE2NDY2MDBDMDlENUEgLyogUnVuTG9vcFRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTU2OUQxRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE1NjlEMjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIzNTE2LDYgKzIzNTMwLDEyIEBACiAJCQkJMEZFNzE0MDYxNDIxNzBCODAw
REIzM0JBIC8qIFNjcm9sbGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ5MjVC
NjgwRjY0RDRERDAwQjg0N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUE4NEYwNTE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFBRjYyRUU4MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxp
bmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFGNjJGMjYxNERBRkVBMTAwNDE1
NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFBQUREQTQxNERC
NDA5RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBQUFE
REU0MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUFBQURERTkxNERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlTWFjLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQUFBRERCRjE0REM2NDA3MDBBRjY0QjMgLyogU2Nyb2xsaW5n
VHJlZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0MwOUM4NjBCMDY1N0FBMDA1QUJENEQg
LyogU2Nyb2xsVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1
OTc1OSAvKiBTY3JvbGxWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0REMjEyNTFGMTJE
MDAzRUYyNjkgLyogU2VhcmNoSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNjQxLDYg
KzIzNjYxLDcgQEAKIAkJCQlCQzVFQjcyQTBFODFERTgxMDBCMjU5NjUgLyogU3R5bGVNYXJxdWVl
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNTAyNzIxMDJCQTk2QTAwNjZGMzlBIC8qIFN0
eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNzRFMEU4MUUwNjcwMEIyNTk2NSAv
KiBTdHlsZU11bHRpQ29sRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTZERkMwQTE5OTA2
NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3
MkU0MEU4MkVFOUIwMEU3Rjk3NSAvKiBTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzIyNzJCRDBFODJFQUFFMDBFN0Y5NzUgLyogU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjcyODcwRTgyRTcwNzAwRTdGOTc1IC8q
IFN0eWxlUmVmbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDE0NSwyMyArMjQxNjYsNiBA
QAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21G
aWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUwQ0MwODlBMTRDNkU5OUMwMDE3
QUI1MSAvKiBDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk4QUQwQTU5NTE0Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4g
SGVhZGVycyAqLywKLQkJCQk4QUQwQTU5NjE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NT
UmVnaW9uUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEFEMEE1OTgxNEM4ODM1ODAwMEQ4M0M1
IC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MDcyMEIwQTExNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkyQ0Y2ODc4QTE0RDMyRUZGMDAzNDBGMzkgLyogRWxlbWVudEF0dHJpYnV0ZURh
dGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBRjYyRUU4MTREQTIyQTcwMDQxNTU2QyAvKiBTY3Jv
bGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUFGNjJGMjYxNERBRkVBMTAw
NDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUFBQUREQTQx
NERCNDA5RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTFB
QUFEREJGMTREQzY0MDcwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTFBQUFEREU0MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMUFBQURERTkxNERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGlu
Z1RyZWVOb2RlTWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RC
OTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0E1NDg1ODAxNEUw
MkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTdB
NTQ4ODE3MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjQ3MjksNyArMjQ3MzMsNiBAQAogCQkJCUE4MEU2RDAyMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NJbml0aWFsVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3NzJFMTYxMzMxNjJD
MjAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgwRTZDRkMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlBODBFNkRGQjBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGOThGRkY0NDExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01V
dGlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNTBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTUGFnZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3NzJCM0QwQzRFQTkxRTAwODMy
ODVGIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0OTU0LDYgKzI0OTU3LDcg
QEAKIAkJCQk4NUM3RjVEMTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCUUxMjg0QkQ1MTA0NEEwMUUwMEVBRUI1MiAvKiBET01QYWdlVHJh
bnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRTUzRTcwQThEMThFNzAwMjI5
NDdEIC8qIERPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QTU0ODgxODE0RTQzMkEx
MDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZF
NEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTlDNkU0RUYwRDc0NUUzODAwNjQ0MkU5IC8qIERPTVBsdWdpbkFycmF5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1RjU2QTdCMEE5OENFMzcwMEFEQjYwQSAvKiBET01Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI1MTU0LDYgKzI1MTU4LDcgQEAKIAkJCQk5M0Ez
OEI0QjBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFRDUwMURDNjBCMjQ5RjI5MDBBRTE4RDkgLyogRWRpdG9yTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8qIEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMkNGNjg3ODgxNEQzMkVCNTAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVE
YXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNkNCMEExNTYxQ0QwMDBBNDIzNCAvKiBF
bGxpcHNpc0JveC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCQjEyNTFGMTJEMDAzRUYy
NjkgLyogRW1haWxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdFQzEwQTE5
NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1
Mjg5LDYgKzI1Mjk0LDcgQEAKIAkJCQk1MUM4MUI4OTBDNDQyMkY3MDAxOUVDRTMgLyogRlRQRGly
ZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MzJFODQ5MEM1MTQ5M0YwMEIx
NTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0ODFGMDMxNDZC
NUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRTgwRDdDNTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDUyQkZDRTkxMjhBQkYxNTAwRkQzMzhEIC8qIEdl
b2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzU2Q0IyMTEwRDVB
QzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjU1MTEsNiArMjU1MTcsNyBAQAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJ
bnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2
MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdBNTQ4NTdGMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNw
ZWN0b3JIaXN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQ0Q4OEQzMTRDMDhCRDYwMDg0
RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
MEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdBQTUxREQ1MTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTIyLDYgKzI1NTI5LDcgQEAKIAkJ
CQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4Mjg4OUI0QzEzQzYyMzkyMDA5QTYxNTYgLyogSW5zcGVjdG9yU3R5
bGVUZXh0RWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NDEzM0FBMTAyRTAwRjQwMDA3
NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3
M0QxMzQ3MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0RjMyODlCNTExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODEwQzFCMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzUwQjczNTEzRjEzNzdE
MDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2
MzcxLDYgKzI2Mzc5LDcgQEAKIAkJCQk0OTU4NzgyMTEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZv
cm1DQUFuaW1hdGlvbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5NTg3ODIyMTJBNTdEREYw
MDcyMzhBQyAvKiBQbGF0Zm9ybUNBTGF5ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREVB
NzYzMDE0NjA4QTUzMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NBLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNEQUE4RDBBMTRENzFCMkUwMDYxRUE2MCAvKiBQbGF0Zm9ybUNsb2NrQ00ubW0gaW4g
U291cmNlcyAqLywKIAkJCQlCQzVDNzYyQTE0OTdGRTE0MDBCQzQ3NzUgLyogUGxhdGZvcm1FdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FBNDg2RjE0QTA1MjUzMDA4OEZBQzQgLyogUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUJGNzAwRjBGRTg2
RjYxMDA1RThERUMgLyogUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNjUzMiw4ICsyNjU0MSw4IEBACiAJCQkJQThDRkY1RTcwQTE1NUEwNTAwMEE0MjM0
IC8qIFJvb3RJbmxpbmVCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTExQzgwRUY4NkQ0
NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQkMwQjM1ODMxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDNjNBMjQ5MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5M
b29wVGltZXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxRTBEN0UyQjgyMDA3QzM5
ODMgLyogcnVudGltZV9hcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQyMDBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjU4
MCw2ICsyNjU4OSwxNSBAQAogCQkJCTBGRTcxNDA1MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxi
YXJUaGVtZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ5MjVCNjcwRjY0RDRERDAwQjg0
N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQTg0RjA0MTQz
QkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTFBRjYyRUU3MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUY2MkVFNjE0REEyMkE3MDA0MTU1NkMgLyogU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQUY2MkYyNTE0REFG
RTlFMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFB
RjYyRjI0MTREQUZFOTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWRNYWMubW0gaW4gU291cmNl
cyAqLywKKwkJCQkxQUFBRERBMzE0REI0MDlGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxQUFBRERFMzE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5n
VHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBQURERTgxNERDOERGODAwQUY2NEIz
IC8qIFNjcm9sbGluZ1RyZWVOb2RlTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBQUREQkUx
NERDNjQwNzAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQUFBREREQTE0REM3NEVDMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZVN0YXRlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNDQxQzQwRThCNjVEMDAwNTUzMjBGIC8qIFNjcm9sbFZp
ZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1MzY3NkIwOUFFRDg4QjAwRDM1Q0Q2IC8qIFNj
cm9sbFZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0REMTEyNTFGMTJEMDAzRUYy
NjkgLyogU2VhcmNoSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY2OTMsNiArMjY3
MTEsNyBAQAogCQkJCUJDNUVCNzI5MEU4MURFODEwMEIyNTk2NSAvKiBTdHlsZU1hcnF1ZWVEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjUwMjcxMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHls
ZU1lZGlhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCNzREMEU4MUUwNjcwMEIyNTk2NSAv
KiBTdHlsZU11bHRpQ29sRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODBFNkRGQjBBMTk5
MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzIyNzJFMzBFODJFRTlCMDBFN0Y5NzUgLyogU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIyNzJCQzBFODJFQUFFMDBFN0Y5NzUgLyogU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBODAwRDBBMTk1MTZFMDBB
OEVGNUYgLyogU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3MDg1LDIxICsyNzEw
NCw2IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVk
aXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTczRDEzNDcxNENFMzlGRjAwNTdBQkNB
IC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA3MjBCMEEw
MTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkyQ0Y2ODc4ODE0RDMyRUI1MDAzNDBGMzkgLyogRWxlbWVudEF0dHJpYnV0ZURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMUFGNjJFRTYxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUFGNjJFRTcxNERBMjJBNzAw
NDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFB
RjYyRjI0MTREQUZFOTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWRNYWMubW0gaW4gU291cmNl
cyAqLywKLQkJCQkxQUY2MkYyNTE0REFGRTlFMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTFBQUFEREEzMTREQjQwOUYwMEFGNjRCMyAvKiBTY3JvbGxp
bmdUcmVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFBQUFEREJFMTREQzY0MDcwMEFGNjRCMyAv
KiBTY3JvbGxpbmdUcmVlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUFBQUREREExNERD
NzRFQzAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVTdGF0ZU1hYy5tbSBpbiBTb3VyY2VzICovLAot
CQkJCTFBQUFEREUzMTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxQUFBRERFODE0REM4REY4MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJl
ZU5vZGVNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQk3QTU0ODU3RjE0RTAyRDUxMDA2QUUwNUEg
LyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREFBOEQwQTE0RDcx
QjJFMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJN0E1
NDg4MTgxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAzNTVmMzhhZGJlNGQyZGZhM2NjY2MyMDQ5YTRl
YjYxZmY4NjZmNGJlLi5mZDc1ZWRhMThjYzUzNjNlM2Y1OTAwODMzNjljNDM2NGViMjllMzQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
V2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgpA
QCAtMTE1Miw0NiArMTE1Myw0MSBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hh
bmdlIGNoYW5nZSkKICAgICAgICAgZGlkUmVjYWxjU3R5bGUoY2hhbmdlKTsKIH0KIAotU2hhZG93
Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgpIGNvbnN0Citib29sIEVsZW1lbnQ6Omhhc1NoYWRv
d1Jvb3QoKSBjb25zdAogewotICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+
bV9zaGFkb3dSb290IDogMDsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dS
b290TGlzdCgpKQorICAgICAgICByZXR1cm4gbGlzdC0+aGFzU2hhZG93Um9vdCgpOworICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50
KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCitT
aGFkb3dSb290TGlzdCogRWxlbWVudDo6c2hhZG93Um9vdExpc3QoKSBjb25zdAogewotICAgIGlm
ICghc2hhZG93Um9vdCkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKCFoYXNSYXJlRGF0
YSgpKQorICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChzaGFkb3dSb290LT5zaGFkb3dIb3N0
KCkpIHsKLSAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93Um9vdExpc3Q7
Cit9CiAKLSAgICBpZiAoc2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgewotICAg
ICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KK1NoYWRvd1Jvb3RMaXN0KiBFbGVtZW50OjplbnN1cmVTaGFkb3dSb290TGlzdCgpCit7Cisg
ICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKKyAgICBpZiAoZGF0
YS0+bV9zaGFkb3dSb290TGlzdCkKKyAgICAgICAgcmV0dXJuIGRhdGEtPm1fc2hhZG93Um9vdExp
c3Q7CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZGF0YS0+bV9zaGFkb3dSb290TGlz
dCA9IG5ldyBTaGFkb3dSb290TGlzdCh0aGlzKTsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFk
b3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gcHJwU2hhZG93Um9vdCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitTaGFkb3dSb290KiBFbGVtZW50OjpzaGFkb3dSb290KCkgY29uc3QKIHsKLSAgICBS
ZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCA9IHBycFNoYWRvd1Jvb3Q7Ci0gICAgaWYgKCF2
YWxpZGF0ZVNoYWRvd1Jvb3QoZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5nZXQoKSwgZWMpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICByZW1vdmVTaGFkb3dSb290KCk7CisgICAgaWYgKFNoYWRvd1Jv
b3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgcmV0dXJuIGxpc3QtPnlv
dW5nZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiAwOworfQogCi0gICAgZW5zdXJlUmFyZURh
dGEoKS0+bV9zaGFkb3dSb290ID0gc2hhZG93Um9vdC5nZXQoKTsKLSAgICBzaGFkb3dSb290LT5z
ZXRTaGFkb3dIb3N0KHRoaXMpOwotICAgIGlmIChpbkRvY3VtZW50KCkpCi0gICAgICAgIHNoYWRv
d1Jvb3QtPmluc2VydGVkSW50b0RvY3VtZW50KCk7Ci0gICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAg
ICAgICAgc2hhZG93Um9vdC0+bGF6eUF0dGFjaCgpOwotICAgICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAg
ICAgICAgICAgIGNoaWxkLT5kZXRhY2goKTsKLSAgICB9Cit2b2lkIEVsZW1lbnQ6OnNldFNoYWRv
d1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBwcnBTaGFkb3dSb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBlbnN1cmVTaGFkb3dSb290TGlzdCgpLT5yZW1vdmVTaGFkb3dSb290KCk7
CisgICAgZW5zdXJlU2hhZG93Um9vdExpc3QoKS0+YWRkU2hhZG93Um9vdChwcnBTaGFkb3dSb290
LCBlYyk7CiB9CiAKIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQpAQCAt
MTIwNCwzMCArMTIwMCw4IEBAIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3Qo
KQogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQogewotICAgIGlmICghaGFzUmFy
ZURhdGEoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0g
cmFyZURhdGEoKTsKLSAgICBpZiAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBkYXRhLT5t
X3NoYWRvd1Jvb3QpIHsKLSAgICAgICAgZGF0YS0+bV9zaGFkb3dSb290ID0gMDsKLSAgICAgICAg
ZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5nZXQoKSk7Ci0K
LSAgICAgICAgLy8gUmVtb3ZlIGZyb20gcmVuZGVyaW5nIHRyZWUKLSAgICAgICAgaWYgKG9sZFJv
b3QtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBvbGRSb290LT5kZXRhY2goKTsKLQotICAgICAg
ICBvbGRSb290LT5zZXRTaGFkb3dIb3N0KDApOwotICAgICAgICBkb2N1bWVudCgpLT5hZG9wdElm
TmVlZGVkKG9sZFJvb3QuZ2V0KCkpOwotICAgICAgICBpZiAob2xkUm9vdC0+aW5Eb2N1bWVudCgp
KQotICAgICAgICAgICAgb2xkUm9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7Ci0gICAgICAg
IGlmIChhdHRhY2hlZCgpKSB7Ci0gICAgICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAg
ICAgICBpZiAoIWNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgICAgICAgICBjaGlsZC0+
bGF6eUF0dGFjaCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChTaGFkb3dSb290TGlzdCog
c2hhZG93TGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHNoYWRvd0xpc3QtPnJlbW92
ZVNoYWRvd1Jvb3QoKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5MzgxZTJmNTgxNTg3ZDczMjU3
MGE4MzE0OTQyODM0ODQxOTdmODI5Li42M2IwNjk1OGY0NzBkY2FmMWRkYjZjYzBkOTA4NjhlMjE2
NWU4MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRE9NVG9r
ZW5MaXN0OwogY2xhc3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNo
YWRvd1Jvb3Q7CitjbGFzcyBTaGFkb3dSb290TGlzdDsKIGNsYXNzIFdlYktpdEFuaW1hdGlvbkxp
c3Q7CiAKIGVudW0gU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlIHsKQEAgLTI1NCw2ICsyNTUsMTIg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5n
ZSA9IE5vQ2hhbmdlKTsKIAorICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OworICAgIFNo
YWRvd1Jvb3RMaXN0KiBzaGFkb3dSb290TGlzdCgpIGNvbnN0OworICAgIFNoYWRvd1Jvb3RMaXN0
KiBlbnN1cmVTaGFkb3dSb290TGlzdCgpOworCisgICAgLy8gRklYTUU6IFRoZXNlIEFQSSB3aWxs
IGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMwogICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBj
b25zdDsKICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIFNoYWRvd1Jvb3QqIGVuc3VyZVNoYWRvd1Jvb3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBjYTMyMTE1ZTYxODQ2NDg3YzE5MWQ5ZmFh
Mjg0NzA2ZjJlZTAyYWY4Li43MmEyOGI3M2ExZTBlNjU3MWViNjQzMTA5NGVmZTcyMmM3NDVjZDFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0yNywxMiArMjcsMTEgQEAK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNs
dWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTaGFkb3dS
b290OwotCiBjbGFzcyBFbGVtZW50UmFyZURhdGEgOiBwdWJsaWMgTm9kZVJhcmVEYXRhIHsKIHB1
YmxpYzoKICAgICBFbGVtZW50UmFyZURhdGEoKTsKQEAgLTcyLDcgKzcxLDcgQEAgcHVibGljOgog
CiAgICAgTGF5b3V0U2l6ZSBtX21pbmltdW1TaXplRm9yUmVzaXppbmc7CiAgICAgUmVmUHRyPFJl
bmRlclN0eWxlPiBtX2NvbXB1dGVkU3R5bGU7Ci0gICAgU2hhZG93Um9vdCogbV9zaGFkb3dSb290
OworICAgIFNoYWRvd1Jvb3RMaXN0KiBtX3NoYWRvd1Jvb3RMaXN0OwogICAgIEF0b21pY1N0cmlu
ZyBtX3NoYWRvd1BzZXVkb0lkOwogCiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKQEAgLTk2LDcg
Kzk1LDcgQEAgaW5saW5lIEludFNpemUgZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKQog
CiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEoKQogICAgIDogbV9taW5p
bXVtU2l6ZUZvclJlc2l6aW5nKGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkpCi0gICAg
LCBtX3NoYWRvd1Jvb3QoMCkKKyAgICAsIG1fc2hhZG93Um9vdExpc3QoMCkKICNpZiBFTkFCTEUo
U1RZTEVfU0NPUEVEKQogICAgICwgbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKDAp
CiAjZW5kaWYKQEAgLTEwOSw3ICsxMDgsNyBAQCBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjpFbGVt
ZW50UmFyZURhdGEoKQogCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjp+RWxlbWVudFJhcmVEYXRh
KCkKIHsKLSAgICBBU1NFUlQoIW1fc2hhZG93Um9vdCk7CisgICAgQVNTRVJUKCFtX3NoYWRvd1Jv
b3RMaXN0IHx8ICFtX3NoYWRvd1Jvb3RMaXN0LT5oYXNTaGFkb3dSb290KCkpOwogfQogCiBpbmxp
bmUgdm9pZCBFbGVtZW50UmFyZURhdGE6OnJlc2V0Q29tcHV0ZWRTdHlsZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKaW5kZXggMjkwYmUzZjZkNDUyNzk3MWQyODkwNmJhZTNiN2I4ODAwNjIy
MDhiMi4uMjhjZjBmNDFkMjlmMDI3ZWRkZDliMGMyOGY1MGQ1NWRhYmM2ZDY2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcApAQCAtNDEsNiArNDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IERvY3Vt
ZW50RnJhZ21lbnQoZG9jdW1lbnQsIENyZWF0ZVNoYWRvd1Jvb3QpCiAgICAgLCBUcmVlU2NvcGUo
dGhpcykKKyAgICAsIG1fcHJldigwKQorICAgICwgbV9uZXh0KDApCiAgICAgLCBtX2FwcGx5QXV0
aG9yU2hlZXRzKGZhbHNlKQogICAgICwgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudChmYWxzZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDQwMWVlNWU5ZDY2NTVlMTYwMmQxMzc0ZmQ5
NDc4ZjVlYTQ2NTYwZjUuLmFkY2Q0MTBiNjQxMjMxNjg4NmFlOWYzODU4MGNmMzQ0YTg5MzMwMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAi
VHJlZVNjb3BlLmgiCisjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zNyw3ICszOCw4IEBAIGNsYXNzIENvbnRlbnRJbmNsdXNpb25T
ZWxlY3RvcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogCi1j
bGFzcyBTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2Nv
cGUgeworY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJsaWMg
VHJlZVNjb3BlLCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD4geworICAg
IGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+OwogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCop
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShFbGVtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwpAQCAtNzMsNiArNzUsOSBAQCBwdWJsaWM6CiAgICAgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yKiBpbmNsdXNpb25zKCkgY29uc3Q7CiAgICAgQ29udGVudEluY2x1c2lvblNl
bGVjdG9yKiBlbnN1cmVJbmNsdXNpb25zKCk7CiAKKyAgICBTaGFkb3dSb290KiB5b3VuZ2VyU2hh
ZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIHByZXYoKTsgfQorICAgIFNoYWRvd1Jvb3QqIG9sZGVy
U2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG5leHQoKTsgfQorCiBwcml2YXRlOgogICAgIFNo
YWRvd1Jvb3QoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CkBAIC04NCw2
ICs4OSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7
CiAKKyAgICBTaGFkb3dSb290KiBtX3ByZXY7CisgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAg
IGJvb2wgbV9hcHBseUF1dGhvclNoZWV0cyA6IDE7CiAgICAgYm9vbCBtX25lZWRzUmVjYWxjdWxh
dGVDb250ZW50IDogMTsKICAgICBPd25QdHI8Q29udGVudEluY2x1c2lvblNlbGVjdG9yPiBtX2lu
Y2x1c2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
N2ExZmI0MzBmYmQ4NmMxZmNhMjk5YTAyMTgxMTdlNWY2ODk5Zjc3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApAQCAtMCwwICsxLDExMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgorCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NoYWRvd1Jvb3RMaXN0OjpTaGFk
b3dSb290TGlzdChFbGVtZW50KiBob3N0KQorICAgIDogbV9ob3N0KGhvc3QpCit7CisgICAgQVNT
RVJUKGhvc3QpOworfQorCitTaGFkb3dSb290TGlzdDo6flNoYWRvd1Jvb3RMaXN0KCkKK3sKKyAg
ICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7Cit9CisKK3N0YXRpYyBib29sIHZhbGlkYXRlU2hh
ZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghc2hhZG93Um9vdCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBpZiAoc2hhZG93Um9vdC0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGVjID0g
SElFUkFSQ0hZX1JFUVVFU1RfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgaWYgKHNoYWRvd1Jvb3QtPmRvY3VtZW50KCkgIT0gZG9jdW1lbnQpIHsKKyAgICAgICAgZWMg
PSBXUk9OR19ET0NVTUVOVF9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6YWRkU2hhZG93Um9vdChQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHBycFNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IG11bHRpcGxlIHNoYWRvdyByb290IHN1
YnRyZWVzIHlldC4KKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisKKyAgICBSZWZQdHI8
U2hhZG93Um9vdD4gc2hhZG93Um9vdCA9IHBycFNoYWRvd1Jvb3Q7CisgICAgaWYgKCF2YWxpZGF0
ZVNoYWRvd1Jvb3QoaG9zdCgpLT5kb2N1bWVudCgpLCBzaGFkb3dSb290LmdldCgpLCBlYykpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fc2hhZG93Um9vdHMucHVzaChzaGFkb3dSb290LmdldCgp
KTsKKyAgICBzaGFkb3dSb290LT5zZXRTaGFkb3dIb3N0KGhvc3QoKSk7CisKKyAgICBpZiAoaG9z
dCgpLT5pbkRvY3VtZW50KCkpCisgICAgICAgIHNoYWRvd1Jvb3QtPmluc2VydGVkSW50b0RvY3Vt
ZW50KCk7CisgICAgaWYgKGhvc3QoKS0+YXR0YWNoZWQoKSkgeworICAgICAgICBzaGFkb3dSb290
LT5sYXp5QXR0YWNoKCk7CisgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBob3N0KCktPmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAg
ICBjaGlsZC0+ZGV0YWNoKCk7CisgICAgfQorfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpyZW1v
dmVTaGFkb3dSb290KCkKK3sKKyAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKFJlZlB0cjxTaGFkb3dSb290PiBvbGRSb290ID0gbV9zaGFkb3dSb290
cy5yZW1vdmVIZWFkKCkpIHsKKyAgICAgICAgaG9zdCgpLT5kb2N1bWVudCgpLT5yZW1vdmVGb2N1
c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKKworICAgICAgICAvLyBSZW1vdmUgZnJv
bSByZW5kZXJpbmcgdHJlZQorICAgICAgICBpZiAob2xkUm9vdC0+YXR0YWNoZWQoKSkKKyAgICAg
ICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOworCisgICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hv
c3QoMCk7CisgICAgICAgIGhvc3QoKS0+ZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRlZChvbGRSb290
LmdldCgpKTsKKyAgICAgICAgaWYgKG9sZFJvb3QtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IG9sZFJvb3QtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgb2xkUm9vdC0+cmVtb3ZlZEZyb21UcmVlKHRydWUpOworICAgICAgICBpZiAoaG9zdCgpLT5h
dHRhY2hlZCgpKSB7CisgICAgICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdCgpLT5maXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgY2hp
bGQtPmxhenlBdHRhY2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDJmYTQ3YjYxMWFk
NDIyM2Q3MzVmOTg2OGY5NmM0ZTBiY2YwMDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2hh
ZG93Um9vdExpc3RfaAorI2RlZmluZSBTaGFkb3dSb290TGlzdF9oCisKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRv
d1Jvb3Q7CitjbGFzcyBFbGVtZW50OworCitjbGFzcyBTaGFkb3dSb290TGlzdCB7CitwdWJsaWM6
CisgICAgU2hhZG93Um9vdExpc3QoRWxlbWVudCopOworCisgICAgflNoYWRvd1Jvb3RMaXN0KCk7
CisKKyAgICBFbGVtZW50KiBob3N0KCkgY29uc3Q7CisKKyAgICBib29sIGhhc1NoYWRvd1Jvb3Qo
KTsKKyAgICBTaGFkb3dSb290KiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290
KiBvbGRlc3RTaGFkb3dSb290KCk7CisKKyAgICB2b2lkIGFkZFNoYWRvd1Jvb3QoUGFzc1JlZlB0
cjxTaGFkb3dSb290PiBwcnBTaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBy
ZW1vdmVTaGFkb3dSb290KCk7CisKK3ByaXZhdGU6CisgICAgRWxlbWVudCogbV9ob3N0OworICAg
IERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKK307CisKK2lubGlu
ZSBFbGVtZW50KiBTaGFkb3dSb290TGlzdDo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
aG9zdDsKK30KKworaW5saW5lIGJvb2wgU2hhZG93Um9vdExpc3Q6Omhhc1NoYWRvd1Jvb3QoKQor
eworICAgIHJldHVybiAhbV9zaGFkb3dSb290cy5pc0VtcHR5KCk7Cit9CisKK2lubGluZSBTaGFk
b3dSb290KiBTaGFkb3dSb290TGlzdDo6eW91bmdlc3RTaGFkb3dSb290KCkKK3sKKyAgICByZXR1
cm4gbV9zaGFkb3dSb290cy5oZWFkKCk7Cit9CisKK2lubGluZSBTaGFkb3dSb290KiBTaGFkb3dS
b290TGlzdDo6b2xkZXN0U2hhZG93Um9vdCgpCit7CisgICAgcmV0dXJuIG1fc2hhZG93Um9vdHMu
dGFpbCgpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126479</attachid>
            <date>2012-02-10 02:02:17 -0800</date>
            <delta_ts>2012-02-10 03:45:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78069-20120210190216.patch</filename>
            <type>text/plain</type>
            <size>40474</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDBhZTk1NDE4MWYyNjRjZTA5ZTdlZTFmNzNmNzliY2QzOTk1YzlkLi4wZTM2M2Y5MzhhYmM5OThm
ZTdlMjdlMDI2NDJlMzhjM2RmMDI2NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG91Ymx5TGlua2VkTGlzdCBzaG91bGQg
aGF2ZSB0YWlsKCkgbWV0aG9kIHRvIHRha2UgdGhlIGxhc3QgZWxlbWVudC4KKworICAgICAgICAq
IHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAg
ICAgICAgKFdURjo6Ojp0YWlsKToKKyAgICAgICAgKFdURik6CisKIDIwMTItMDItMDkgIEFuZHkg
V2luZ28gIDx3aW5nb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEVsaW1pbmF0ZSBkZWFkIGNvZGUg
aW4gQnl0ZWNvZGVHZW5lcmF0b3I6OnJlc29sdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE4Y2FlMzQ1YTkz
MDQxNmViMDAzY2U3MmJjN2I3YzRjYzQ3YTdhMTkuLjUyMWI3YzcxNWM4MjZhNWJmMmQ1ZmI3MGQ5
NGQzZjU0MDdjMDMxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMi0wMi0xMCAg
U2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEludHJvZHVj
ZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG8gaW1wbGVtZW50IG11bHRpcGxlIHNoYWRvdyBzdWJ0
cmVlcy4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBzaGFkb3cgcm9vdCBsaXN0
LiBTaGFkb3dSb290TGlzdCBpcyBhIGRvdWJseSBsaW5rZWQgbGlzdCwKKyAgICAgICAgYW5kIGVh
Y2ggc2hhZG93IHJvb3Qgbm93IGhhcyBhIHlvdW5nZXIgc2hhZG93IHJvb3QgYW5kIG9sZGVyIHNo
YWRvdyByb290LAorICAgICAgICB3aGljaCBhcmUgYSBwcmV2aW91cyBlbGVtZW50IGFuZCBhIG5l
eHQgZWxlbWVudCByZXNwZWN0aXZlbHkuCisgICAgICAgIFNpbmNlIGEgdmlzdWFsIHRyZWUgdHJh
dmVyc2FsLCB3aGljaCB3aWxsIGJlIGludHJvZHVjZWQgaW4gY29taW5nIHBhdGNoZXMsIHdpbGwg
bmVlZCBhIG9sZGVyIHNoYWRvdyByb290LAorICAgICAgICB3ZSBtYWtlIGEgc2hhZG93IHJvb3Qg
bGlzdCBhIGRvdWJseSBsaW5rZWQgbGlzdC4KKworICAgICAgICBIb3dldmVyLCBTaGFkb3dSb290
TGlzdCBkb2VzIG5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgc2hhZG93IHJvb3Qgbm93LgorICAgICAg
ICBUaGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBhIHNlcmllcyBvZiBjb21pbmcgcGF0Y2hlcy4KKwor
ICAgICAgICBFbGVtZW50OjpzaGFkb3dSb290KCksIHNldFNoYWRvd1Jvb3QoKSwgZW5zdXJlU2hh
ZG93Um9vdCgpLCBhbmQgcmVtb3ZlU2hhZG93Um9vdCgpIGFyZQorICAgICAgICBlbXVsYXRlZCB1
c2luZyBTaGFkb3dSb290TGlzdCBmb3IgYSB3aGlsZS4gVGhlc2UgQVBJIHdpbGwgYmUgcmVwbGFj
ZWQgdG8gU2hhZG93Um9vdExpc3QgQVBJIGxhdGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
bm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6aGFzU2hhZG93Um9vdCk6CisgICAgICAgICAgUmV0cnVucyB0cnVlIGlmIGFuIGVsZW1l
bnQgaGFzIGEgc2hhZG93Um9vdC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Jv
b3RMaXN0KToKKyAgICAgICAgICBHZXRzIHNoYWRvdyByb290IGxpc3QgaWYgYW55LgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6CisgICAgICAgICAgR2V0cyB0aGUgZmly
c3Qgc2hhZG93IHJvb3QgZnJvbSB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QpOgorICAgICAgICAgIFNldHMgdGhlIGZpcnN0IHNo
YWRvdyByb290IHRvIHRoZSBzaGFkb3cgcm9vdCBsaXN0LgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIHNoYWRv
dyByb290cyBpbiB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20v
RWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEpOgorICAgICAgICAgIEhh
cyBzaGFkb3cgcm9vdCBsaXN0cyBpbnN0ZWFkIG9mIHNoYWRvdyByb290LgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudFJhcmVEYXRhOjp+RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20v
U2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290
KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6On5TaGFkb3dSb290KToKKyAgICAgICAg
KiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290Ojp5b3VuZ2VyU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSb290OjpvbGRlclNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290TGlz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290TGlzdDo6U2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dExpc3Q6On5TaGFkb3dSb290TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlz
dDo6cHVzaFNoYWRvd1Jvb3QpOgorICAgICAgICAgIEFkZHMgYSBzaGFkb3cgcm9vdCBpbnRvIHRo
ZSBsaXN0LiBDdXJyZW50bHkgd2UgbGltaXQgdGhlIGxpc3QgY2FuIGhhdmUgb25seSBvbmUgc2hh
ZG93IHJvb3QuCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9v
dCk6CisgICAgICAgICAgUmVtb3ZlcyBhbmQgcmV0dXJucyB0aGUgeW91bmdlc3Qgc2hhZG93IHJv
b3QgaWYgYW55LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290TGlzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoU2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93Um9vdExpc3Q6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290TGlzdDo6b2xkZXN0U2hhZG93Um9vdCk6CisKIDIwMTItMDItMDkgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlcGxhY2UgW0N1c3RvbUFyZ3Vt
ZW50SGFuZGxpbmddIHdpdGggW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91Ymx5TGlua2VkTGlzdC5oCmluZGV4IDM2MWQ3
MWQ3YjU3MzI2Nzk3OWU0NGM0YjdkNmZiMzg2ZDYwZjk3YjguLmNkMDY3ZWYwYTg3NjhhZmI0ZDAw
YzU1NzMzYjUwMTVlMjQ5ZTMwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvRG91Ymx5TGlua2VkTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91
Ymx5TGlua2VkTGlzdC5oCkBAIC03Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICBUKiBoZWFkKCkg
Y29uc3Q7CiAgICAgVCogcmVtb3ZlSGVhZCgpOwogCisgICAgVCogdGFpbCgpIGNvbnN0OworCiAg
ICAgdm9pZCBwdXNoKFQqKTsKICAgICB2b2lkIGFwcGVuZChUKik7CiAgICAgdm9pZCByZW1vdmUo
VCopOwpAQCAtMTE2LDYgKzExOCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCog
RG91Ymx5TGlua2VkTGlzdDxUPjo6aGVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGVhZDsKIH0K
IAordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQqIERvdWJseUxpbmtlZExpc3Q8VD46OnRh
aWwoKSBjb25zdAoreworICAgIHJldHVybiBtX3RhaWw7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSB2b2lkIERvdWJseUxpbmtlZExpc3Q8VD46OnB1c2goVCogbm9kZSkKIHsKICAg
ICBpZiAoIW1faGVhZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4YzMxNWQ2MjczMTc4MDcw
MjlmNTM0ODBiNTcwNTZkMWMzZWYxMjNiLi40MWI1NTg1ZTk1ODE0N2M4NzYxYmI4MTMxYmMxMWVi
OWEwNGUyZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAwLDYgKzYwMCw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcAogICAgIGRvbS9TZWxl
Y3RvclF1ZXJ5LmNwcAogICAgIGRvbS9TaGFkb3dSb290LmNwcAorICAgIGRvbS9TaGFkb3dSb290
TGlzdC5jcHAKICAgICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKICAgICBkb20vU3RhdGljSGFz
aFNldE5vZGVMaXN0LmNwcAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IDg0NDhiM2FjOTY2ODJhZTVjZGNiYWJjMzA1MzQ0M2ZkNjcw
ZGFlYjAuLjgzNWU3NmZkNzY1ZmI2MmQ4ZjU2NjBiMWQwMzBhMjFlNTkyNTAyMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTY1OSw2ICsxNjU5LDggQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5n
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUyNzczNTE3NTA5MjQuLmIw
YjNiOWNkNzYxMzRjNWNmNGMyNmUzZGM4YzFkZjkwODUzODdmODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
NTY2LDYgKzU2Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3Bw
IFwKICAgICBkb20vU2VsZWN0b3JRdWVyeS5jcHAgXAogICAgIGRvbS9TaGFkb3dSb290LmNwcCBc
CisgICAgZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcu
Y3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVu
dC5jcHAgXApAQCAtMTY2OSw2ICsxNjcwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuaCBcCiAgICAgZG9t
L1NoYWRvd1Jvb3QuaCBcCisgICAgZG9tL1NoYWRvd1Jvb3RMaXN0LmggXAogICAgIGRvbS9TcGFj
ZVNwbGl0U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKICAgICBkb20vU3R5
bGVkRWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3OGE4NWMwZDMxZTA5MWQ4OWZiYzgw
YjEyOTYyMzc1ZTU1YWMzZTc5Li45ZTg3NjMzZDY5ZDBkNGYxYmRkNjBkMGVhYjQ5ZDc3MjMyMWFh
YTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTksNiArNjE5LDcgQEAKICAgICAgICAgICAgICdk
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVu
bmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAorICAgICAgICAgICAgJ2Rv
bS9TaGFkb3dSb290TGlzdC5oJywKICAgICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5o
JywKICAgICAgICAgICAgICdkb20vU3R5bGVkRWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20v
VGV4dC5oJywKQEAgLTUwOTgsNiArNTA5OSw4IEBACiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9y
UXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuY3BwJywKICAgICAgICAgICAg
ICdkb20vU2hhZG93Um9vdC5oJywKKyAgICAgICAgICAgICdkb20vU2hhZG93Um9vdExpc3QuY3Bw
JywKKyAgICAgICAgICAgICdkb20vU2hhZG93Um9vdExpc3QuaCcsCiAgICAgICAgICAgICAnZG9t
L1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5v
ZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiY2MxZTRhZTliYzFkYjhiNjlhNWE3ZDE4YzdkODI3ZGJiZTFmZGExLi42MGNkNTE5YjNi
M2NhZWMyMDRjM2QyMTBhZjc4YzViMzRhNjg0ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NDcwLDYgKzg0NzAsOCBAQAog
CQk1N0I3OTFBMjE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudFNlbGVjdG9yUXVlcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCNzkxQTcxNEM2QTYzMzAwRjIwMkQxIC8qIEhU
TUxDb250ZW50RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIVE1MQ29udGVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
N0I3OTFBODE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1N0I3OTRBNTE0RTRGMjY4MDBGMjAyRDEgLyogU2hhZG93Um9v
dExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Um9v
dExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0I3OTRBNjE0RTRGMjY4
MDBGMjAyRDEgLyogU2hhZG93Um9vdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2hhZG93Um9vdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkw
NUFEQkQxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MVHJlZVZpZXdlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU5MDVBREJFMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwRTFCNDgxMUU0RUY0QjAwNjlGNzg0IC8qIERl
dmljZU9yaWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzk4NywxMyAr
MTM5ODksMTMgQEAKIAkJMUM1RkFFQ0EwRENGRDhDOTAwRDU4Rjc4IC8qIEluc3BlY3RvciAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTczRDEzNDUxNENF
MzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmNwcCAqLywKLQkJCQk1NzNEMTM0
NjE0Q0UzOUZGMDA1N0FCQ0EgLyogSW5zcGVjdG9yVHlwZUJ1aWxkZXIuaCAqLywKIAkJCQk3QTU2
M0U1NDEyREUzMkIwMDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCAqLywKIAkJCQk0
RjcwN0E5NzExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3Bw
ICovLAogCQkJCTRGNzA3QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlci5oICovLAogCQkJCTRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBJbnNwZWN0b3JG
cm9udGVuZC5jcHAgKi8sCiAJCQkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIEluc3BlY3Rv
ckZyb250ZW5kLmggKi8sCisJCQkJNTczRDEzNDUxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3Rv
clR5cGVCdWlsZGVyLmNwcCAqLywKKwkJCQk1NzNEMTM0NjE0Q0UzOUZGMDA1N0FCQ0EgLyogSW5z
cGVjdG9yVHlwZUJ1aWxkZXIuaCAqLywKIAkJCQk3QTBFNzZEODEwQkYwNTk4MDBBMDI3NkUgLyog
SlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwICovLAogCQkJCTdBMEU3NkQ5MTBCRjA1OTgwMEEwMjc2
RSAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oICovLAogCQkJCTdBMEU3NzFDMTBDMDBEQjEwMEEw
Mjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCkBAIC0xNDAyMCw4ICsxNDAy
Miw4IEBACiAJCQkJN0FBQkEyNTgxNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5oICovLAog
CQkJCTRGMTQ0MjI2MTMzOUZENjIwMEUwRDZGOCAvKiBET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwICov
LAogCQkJCTRGMTQ0MjI3MTMzOUZENjIwMEUwRDZGOCAvKiBET01Ob2RlSGlnaGxpZ2h0ZXIuaCAq
LywKLQkJCQk3QTU0ODgxNTE0RTQzMkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmggKi8s
CiAJCQkJN0E1NDg4MTYxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5jcHAgKi8s
CisJCQkJN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oICovLAog
CQkJCUYzNUFFNUFCMTQ5MjVGNUIwMDRENTc3NiAvKiBET01XcmFwcGVyVmlzaXRvci5oICovLAog
CQkJCTU5MTNBMjNGMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuY3BwICov
LAogCQkJCTU5MTNBMjQwMTNENDlFQkEwMEY1QjA1QyAvKiBJZGVudGlmaWVyc0ZhY3RvcnkuaCAq
LywKQEAgLTE3MTc3LDEzICsxNzE3OSwxMyBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEg
LyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJNTBDQzA4OTkxNEM2RTk5QzAwMTdBQjUxIC8qIEN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRl
ci5oICovLAogCQkJCTQ5RUNFQjVDMTQ5OTc5MEQwMENERDNBNCAvKiBhcm0gKi8sCiAJCQkJNTBE
NDA1RjcxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guY3BwICovLAogCQkJCTUw
RDQwNUY4MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggKi8sCi0JCQkJNTA5
Q0M5RkExNEMwNjlFRDAwQkJFQ0JEIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlci5oICovLAorCQkJ
CTUwQ0MwODk5MTRDNkU5OUMwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIu
aCAqLywKIAkJCQk1MENDMEEzODE0QzZGNUIxMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uLmNwcCAqLywKIAkJCQk1MEFDRTJDQTE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmggKi8sCisJCQkJNTA5Q0M5RkExNEMwNjlFRDAwQkJFQ0JEIC8qIEN1c3RvbUZp
bHRlclBhcmFtZXRlci5oICovLAogCQkJCTUwM0QwQ0E3MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0
b21GaWx0ZXJQcm9ncmFtLmNwcCAqLywKIAkJCQk1MDNEMENBODE0QjVCMDg3MDBGMzJGNTcgLyog
Q3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovLAogCQkJCTUwM0QwQ0E5MTRCNUIwODcwMEYzMkY1NyAv
KiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggKi8sCkBAIC0yMDAyNyw4ICsyMDAyOSw2IEBA
CiAJCQkJQTgwRTZDRDIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5jcHAgKi8sCiAJ
CQkJQTgwRTZDRDkwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5oICovLAogCQkJCTg1
QzU2Q0EyMEFBODlDMTAwMEQ5NTc1NSAvKiBDU1NNZWRpYVJ1bGUuaWRsICovLAotCQkJCUE4MEU2
REY5MEExOTkwNjcwMDdGQjhDNSAvKiBTdHlsZVByb3BlcnR5U2V0LmNwcCAqLywKLQkJCQlBODBF
NkRGQTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5oICovLAogCQkJCUE4MEU3
MzQ3MEExOTlDNzcwMDdGQjhDNSAvKiBDU1NOYW1lc3BhY2UuaCAqLywKIAkJCQlGOThGRkY0MjEx
QTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgKi8sCiAJCQkJRjk4RkZGNDMxMUEyNjc2
MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuaCAqLywKQEAgLTIwMTQ0LDYgKzIwMTQ0LDggQEAKIAkJ
CQkwRkY1MDI2RTEwMkJBOTY2MDA2NkYzOUEgLyogU3R5bGVNZWRpYS5jcHAgKi8sCiAJCQkJMEZG
NTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCAqLywKIAkJCQkwRkY1MDI3MDEw
MkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5pZGwgKi8sCisJCQkJQTgwRTZERjkwQTE5OTA2
NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuY3BwICovLAorCQkJCUE4MEU2REZBMEExOTkw
NjcwMDdGQjhDNSAvKiBTdHlsZVByb3BlcnR5U2V0LmggKi8sCiAJCQkJQThFQTgwMDUwQTE5NTE2
RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuY3BwICovLAogCQkJCUE4RUE4MDA0MEExOTUxNkUwMEE4
RUY1RiAvKiBTdHlsZVNoZWV0LmggKi8sCiAJCQkJODUwNjU2REMwQUFCNDREOTAwMkQxNUMwIC8q
IFN0eWxlU2hlZXQuaWRsICovLApAQCAtMjA2ODQsNiArMjA2ODYsOCBAQAogCQkJCUE2RDE2OTYx
MTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKIAkJCQlBNkQxNjk2MzEzNDZC
NEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUE3REI0MTgxMTRDRTFGMEEwMEEy
RTMxNiAvKiBTaGFkb3dSb290LmlkbCAqLywKKwkJCQk1N0I3OTRBNTE0RTRGMjY4MDBGMjAyRDEg
LyogU2hhZG93Um9vdExpc3QuY3BwICovLAorCQkJCTU3Qjc5NEE2MTRFNEYyNjgwMEYyMDJEMSAv
KiBTaGFkb3dSb290TGlzdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBT
cGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyog
U3BhY2VTcGxpdFN0cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEwMDMwOTRDRiAvKiBT
dGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwICovLApAQCAtMjEzMjksNyArMjEzMzMsNiBAQAogCQkJ
CUE4MEU2RDA4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNzcyRTEzMTMzMTYyMEMwMDFFQzlDRSAvKiBDU1NMaW5lQm94Q29udGFpblZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwMzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
TWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkRGQzBBMTk5MDY3MDA3RkI4QzUg
LyogU3R5bGVQcm9wZXJ0eVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTczNEUwQTE5OUM3
NzAwN0ZCOEM1IC8qIENTU05hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjk4RkZGNDUx
MUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2
RDAwMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MTM2Nyw3ICsyMTM3MCw5IEBACiAJCQkJQkMyMjcyQUQwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNv
ckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyQ0QzMjVBMTE1N0U1N0MwMDYzQjBBNyAvKiBD
dXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBENDA1RkExNDdEMzFGMzAwRDMwQkI1
IC8qIEN1c3RvbUZpbHRlck1lc2guaCBpbiBIZWFkZXJzICovLAorCQkJCTUwQ0MwODlBMTRDNkU5
OUMwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUwQUNFMkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21G
aWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwM0QwQ0FCMTRCNUIwODcwMEYz
MkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDNEMENB
QzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTBENDA2MTIxNDdENDlERTAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlclNoYWRl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTY4OSw2ICsyMTY5NCw3IEBACiAJCQkJODU5ODlEQ0Yw
QUNDOEJCRDAwQTBCQzUxIC8qIERPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTEyODRCRDYxMDQ0QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0U4MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01Q
YXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdBNTQ4ODE3MTRFNDMyQTEwMDZBRTA1QSAvKiBE
T01QYXRjaFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNEVDMEQ3NDVFMkIwMDY0
NDJFOSAvKiBET01QbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNEYwMEQ3NDVFMzgw
MDY0NDJFOSAvKiBET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTM3QkIw
OTdDNzE1RjAwMTlGM0Q4IC8qIERPTVByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjIwMjcs
NiArMjIwMzMsOCBAQAogCQkJCTMxNkZFMDgyMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01XZWJLaXRD
U1NLZXlmcmFtZXNSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5ODM5MTUwMEYx
RTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NNYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5ODM5MTUyMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NNYXRyaXhJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOEFEMEE1OTYxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktp
dENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCThBRDBBNTk4MTRDODgzNTgwMDBE
ODNDNSAvKiBET01XZWJLaXRDU1NSZWdpb25SdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNjExRTYxMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2MTFFNjMwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMTk1
OTMyMTQ3RUExNkUwMEQxRUE2MSAvKiBET01XZWJLaXROYW1lZEZsb3cuaCBpbiBIZWFkZXJzICov
LApAQCAtMjIwNzEsNiArMjIwNzksNyBAQAogCQkJCTRCQUU5NUIxMEIyRkE5Q0UwMEFFRDhBMCAv
KiBFZGl0b3JEZWxldGVBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRkRBRkNBMEIxMTMw
NzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QzRBODA3MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQky
Q0Y2ODc4QTE0RDMyRUZGMDAzNDBGMzkgLyogRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTYzRjVENEY3MEU4QzRCNzEwMEMwQkQwNCAvKiBFbGVtZW50UmFyZURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0MTVGMTg0MEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50
VGltZUNvbnRyb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNkJFMEExNTYxMTgwMDBBNDIz
NCAvKiBFbGxpcHNpc0JveC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjIzOCw2ICsyMjI0Nyw3IEBA
CiAJCQkJQkNFMDRDOEEwREFGRjdBMDAwN0EwRjQxIC8qIEdlbmVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZElt
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2Vu
ZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MEQ3QzYwRTlD
MUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0Iy
MzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCBp
biBIZWFkZXJzICovLApAQCAtMjI0ODUsNiArMjI0OTUsNyBAQAogCQkJCUYzNDRDNzE0MTEyNUI4
MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTdBNTQ4NTgwMTRFMDJENTEw
MDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUNEODhE
NDE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTUxREQ2MTQ4NTA2QTkwMEFEMjc1MiAvKiBJ
bnNwZWN0b3JNZW1vcnlBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzAxOSw2ICsyMzAzMCw3
IEBACiAJCQkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3NDBFNkNDQkVFMDBCRjYwODggLyogSlNX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE0MDBGMUU3
Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXguaCBpbiBIZWFkZXJzICovLAorCQkJCThB
RDBBNTk1MTRDODgzMzYwMDBEODNDNSAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNjExRTVCMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNkYwOTAyRDE0MzI3RDRGMDA2ODU4NDkg
LyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTRCRDc5
RTBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzI5OCw2ICsyMzMxMCw3IEBACiAJCQkJNTE0Qzc2NzUwQ0U5MjNBMTAwN0VGM0NEIC8qIFByb3Rl
Y3Rpb25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBMDUyNTYxMDU4ODc0MDAwQ0M5RTk1
IC8qIFByb3RlY3Rpb25TcGFjZUhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjhFMTFBMTI1
NjU5MjYwMDIzMEZGNyAvKiBQcm94eVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTBGQjA4
NEIxNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0RDY4Nzc5MEVEN0FFNEYwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdFMzNDRDAxMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzQ3Myw2ICsyMzQ4Niw3IEBACiAJCQkJQThDRkY1
RTEwQTE1NUEwNTAwMEE0MjM0IC8qIFJvb3RJbmxpbmVCb3guaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5RTkxMUM5MEVGODZENDcwMDlEMENBRiAvKiBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVj
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxv
b3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDNjNBMjQ4MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5M
b29wVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDFGMEQ3RTJCODIwMDdDMzk4MyAv
KiBydW50aW1lX2FycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQyMTBEN0UyQjgyMDA3
QzM5ODMgLyogcnVudGltZV9tZXRob2QuaCBpbiBIZWFkZXJzICovLApAQCAtMjM1MjUsNiArMjM1
MzksMTIgQEAKIAkJCQkwRkU3MTQwNjE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVN
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDkyNUI2ODBGNjRENEREMDBCODQ3RjAgLyogU2Ny
b2xsQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTg0RjA1MTQzQkE3QkQwMDUxRDE1
MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFG
NjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQUFBRERBNDE0REI0MDlGMDBBRjY0QjMgLyogU2Nyb2xsaW5n
VHJlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFBQURERTQxNERDOEM4RjAwQUY2NEIzIC8qIFNj
cm9sbGluZ1RyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQUFBRERFOTE0REM4REY4MDBB
RjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBQUFE
REJGMTREQzY0MDcwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlU3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzQzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM2RDZFMjYwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY1NUIzREQyMTI1MUYxMkQwMDNFRjI2OSAvKiBTZWFyY2hJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjM2NTAsNiArMjM2NzAsNyBAQAogCQkJCUJDNUVCNzJB
MEU4MURFODEwMEIyNTk2NSAvKiBTdHlsZU1hcnF1ZWVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkY1MDI3MjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1RUI3NEUwRTgxRTA2NzAwQjI1OTY1IC8qIFN0eWxlTXVsdGlDb2xEYXRhLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBODBFNkRGQzBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0
eVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjcyRTQwRTgyRUU5QjAwRTdGOTc1IC8qIFN0
eWxlUmFyZUluaGVyaXRlZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MkJEMEU4MkVB
QUUwMEU3Rjk3NSAvKiBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzIyNzI4NzBFODJFNzA3MDBFN0Y5NzUgLyogU3R5bGVSZWZsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI0MTU0LDI1ICsyNDE3NSw2IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAw
MkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYx
MkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3
MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTA5
Q0M5RkIxNEMwNjlFRDAwQkJFQ0JEIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTBDQzA4OUExNEM2RTk5QzAwMTdBQjUxIC8qIEN1c3RvbUZpbHRlck51bWJl
clBhcmFtZXRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJB
IC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovLAotCQkJCThBRDBBNTk1MTRDODgzMzYwMDBEODND
NSAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFkZXJzICovLAotCQkJCThBRDBBNTk2
MTRDODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk4QUQwQTU5ODE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVs
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTUg
LyogR2VuZXJpY0V2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTJDRjY4NzhBMTREMzJF
RkYwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFk
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxQUFBRERBNDE0REI0MDlGMDBBRjY0QjMgLyogU2Nyb2xs
aW5nVHJlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUFBQUREQkYxNERDNjQwNzAwQUY2NEIzIC8q
IFNjcm9sbGluZ1RyZWVTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUFBQURERTQxNERDOEM4
RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkxQUFB
RERFOTE0REM4REY4MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGVNYWMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9y
SGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0E1NDg4MTcxNEU0MzJBMTAwNkFFMDVBIC8q
IERPTVBhdGNoU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEE5NTdGMDcxNEUyNDEzMDAw
NDlEQkZCIC8qIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTRBREUyNUZBMTRFM0JCNEMwMDRDMjIxMyAvKiBXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNz
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjQ3NDAsNyArMjQ3NDIsNiBAQAogCQkJCUE4MEU2RDAy
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM3NzJFMTYxMzMxNjJDMjAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlh
UnVsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODBFNkRGQjBBMTk5MDY3MDA3RkI4QzUgLyog
U3R5bGVQcm9wZXJ0eVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGOThGRkY0NDExQTI2NzYy
MDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
NzJCM0QwQzRFQTkxRTAwODMyODVGIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI0OTY1LDYgKzI0OTY2LDcgQEAKIAkJCQk4NUM3RjVEMTBBQUZCOEQ5MDA0MDE0REQgLyogRE9N
T3ZlcmZsb3dFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxMjg0QkQ1MTA0NEEwMUUwMEVB
RUI1MiAvKiBET01QYWdlVHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFD
RTUzRTcwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3QTU0ODgxODE0RTQzMkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE5QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBET01QbHVnaW4uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUYwRDc0NUUzODAwNjQ0MkU5IC8qIERPTVBsdWdpbkFy
cmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjU2QTdCMEE5OENFMzcwMEFEQjYwQSAvKiBE
T01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI1MTY1LDYgKzI1
MTY3LDcgQEAKIAkJCQk5M0EzOEI0QjBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFRDUwMURDNjBCMjQ5RjI5MDBBRTE4RDkgLyogRWRpdG9y
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8qIEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNGNjg3ODgxNEQzMkVCNTAwMzQwRjM5IC8q
IEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNkNCMEEx
NTYxQ0QwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVC
M0RCQjEyNTFGMTJEMDAzRUYyNjkgLyogRW1haWxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThFQTdFQzEwQTE5NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI1MzAwLDYgKzI1MzAzLDcgQEAKIAkJCQk1MUM4MUI4OTBDNDQyMkY3
MDAxOUVDRTMgLyogRlRQRGlyZWN0b3J5UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0
MzJFODQ5MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ0ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5l
cmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwRDdDNTBFOUMxRjI1MDAw
RDZGNzUgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDUyQkZDRTkxMjhB
QkYxNTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzU2Q0IyMTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjU1MjIsNiArMjU1MjYsNyBAQAogCQkJCTRGNEY1RkZCMTFD
QkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdBNTQ4NTdGMTRFMDJE
NTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdB
Q0Q4OEQzMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyMEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTUxREQ1MTQ4NTA2QTkwMEFE
Mjc1MiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTMz
LDYgKzI1NTM4LDcgQEAKIAkJCQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4Mjg4OUI0QzEzQzYyMzkyMDA5QTYx
NTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1
NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTU3M0QxMzQ3MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBl
QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjMyODlCNTExQTQyQUFCMDA1QUJFN0Ug
LyogSW5zcGVjdG9yVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODEwQzFCMTM2NUE0
OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzUwQjczNTEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI2MzgyLDYgKzI2Mzg4LDcgQEAKIAkJCQk0OTU4NzgyMTEyQTU3RERG
MDA3MjM4QUMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5NTg3ODIyMTJBNTdEREYwMDcyMzhBQyAvKiBQbGF0Zm9ybUNBTGF5ZXJNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDREVBNzYzMDE0NjA4QTUzMDA4QjMxRjEgLyogUGxhdGZvcm1DbG9ja0NB
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQUE4RDBBMTRENzFCMkUwMDYxRUE2MCAvKiBQbGF0
Zm9ybUNsb2NrQ00ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzVDNzYyQTE0OTdGRTE0MDBCQzQ3
NzUgLyogUGxhdGZvcm1FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FBNDg2RjE0QTA1
MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk0MUJGNzAwRjBGRTg2RjYxMDA1RThERUMgLyogUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjU0Myw4ICsyNjU1MCw4IEBACiAJCQkJQThDRkY1
RTcwQTE1NUEwNTAwMEE0MjM0IC8qIFJvb3RJbmxpbmVCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDlFOTExQzgwRUY4NkQ0NzAwOUQwQ0FGIC8qIFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRl
ZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwQjM1ODMxNEM0Rjk1NDAwNTVFMjJBIC8q
IFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzBCMzU4MzE0QzRGOTU0MDA1
NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDNjNBMjQ5MEY3MTY0
NjYwMEMwOUQ1QSAvKiBSdW5Mb29wVGltZXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2
OUQxRTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTU2OUQyMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNjU5MSw2ICsyNjU5OCwxNSBAQAogCQkJCTBGRTcxNDA1MTQyMTcwQjgw
MERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ5
MjVCNjcwRjY0RDRERDAwQjg0N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBQTg0RjA0MTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29udHJv
bGxlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFBRjYyRUU3MTREQTIyQTcwMDQxNTU2QyAvKiBT
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUY2MkVFNjE0REEy
MkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gaW4gU291cmNlcyAqLywK
KwkJCQkxQUY2MkYyNTE0REFGRTlFMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFBRjYyRjI0MTREQUZFOTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJl
YWRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQUFBRERBMzE0REI0MDlGMDBBRjY0QjMgLyog
U2Nyb2xsaW5nVHJlZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUFBRERFMzE0REM4QzhGMDBB
RjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBQURE
RTgxNERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUFBQUREQkUxNERDNjQwNzAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVTdGF0ZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUFBREREQTE0REM3NEVDMDBBRjY0QjMgLyogU2Nyb2xs
aW5nVHJlZVN0YXRlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNDQxQzQwRThCNjVEMDAw
NTUzMjBGIC8qIFNjcm9sbFZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1MzY3NkIwOUFF
RDg4QjAwRDM1Q0Q2IC8qIFNjcm9sbFZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNTVC
M0REMTEyNTFGMTJEMDAzRUYyNjkgLyogU2VhcmNoSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjY3MDQsNiArMjY3MjAsNyBAQAogCQkJCUJDNUVCNzI5MEU4MURFODEwMEIyNTk2NSAv
KiBTdHlsZU1hcnF1ZWVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjUwMjcxMTAyQkE5
NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCNzRE
MEU4MUUwNjcwMEIyNTk2NSAvKiBTdHlsZU11bHRpQ29sRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBODBFNkRGQjBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIyNzJFMzBFODJFRTlCMDBFN0Y5NzUgLyogU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIyNzJCQzBFODJFQUFFMDBFN0Y5
NzUgLyogU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEVBODAwRDBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI3MDk2LDIyICsyNzExMyw2IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8q
IFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlD
MDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTczRDEz
NDcxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkyQ0Y2ODc4ODE0RDMyRUI1MDAzNDBGMzkgLyogRWxlbWVu
dEF0dHJpYnV0ZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUFGNjJFRTYxNERBMjJBNzAw
NDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MUFGNjJFRTcxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTFBRjYyRjI0MTREQUZFOTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJl
YWRNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQkxQUY2MkYyNTE0REFGRTlFMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFBQUFEREEzMTREQjQwOUYw
MEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFBQUFEREJF
MTREQzY0MDcwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMUFBQUREREExNERDNzRFQzAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVTdGF0ZU1hYy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCTFBQUFEREUzMTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxp
bmdUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQUFBRERFODE0REM4REY4MDBBRjY0
QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGVNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQk3QTU0ODU3
RjE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlDREFBOEQwQTE0RDcxQjJFMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJN0E1NDg4MTgxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0QTk1N0YwNjE0RTI0MTJBMDA0OURCRkIgLyogV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCAzNTVmMzhhZGJlNGQyZGZhM2NjY2MyMDQ5YTRlYjYxZmY4NjZmNGJlLi4w
ZTMyYTRjZWU2Mzk1MmYzMTg0OGMxMzg5YmI2NTg2NmY4NzBmZWRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xMTUyLDkgKzExNTIsMjYgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIGRpZFJlY2FsY1N0eWxlKGNoYW5nZSk7CiB9CiAK
K2Jvb2wgRWxlbWVudDo6aGFzU2hhZG93Um9vdCgpIGNvbnN0Cit7CisgICAgaWYgKFNoYWRvd1Jv
b3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgcmV0dXJuIGxpc3QtPmhh
c1NoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1NoYWRvd1Jvb3RMaXN0KiBF
bGVtZW50OjpzaGFkb3dSb290TGlzdCgpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNSYXJlRGF0YSgp
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiAmcmFyZURhdGEoKS0+bV9zaGFkb3dS
b290TGlzdDsKK30KKwogU2hhZG93Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgOiAw
OworICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAg
ICAgIHJldHVybiBsaXN0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKIH0K
IAogc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwgU2hh
ZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xMTc1LDE2ICsxMTky
LDE5IEBAIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQs
IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgRWxlbWVudDo6c2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHBycFNoYWRv
d1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBh
c3NSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBwcnBTaGFkb3dSb290OwogICAgIGlm
ICghdmFsaWRhdGVTaGFkb3dSb290KGRvY3VtZW50KCksIHNoYWRvd1Jvb3QuZ2V0KCksIGVjKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICBlbnN1
cmVSYXJlRGF0YSgpOworCiAgICAgcmVtb3ZlU2hhZG93Um9vdCgpOwogCi0gICAgZW5zdXJlUmFy
ZURhdGEoKS0+bV9zaGFkb3dSb290ID0gc2hhZG93Um9vdC5nZXQoKTsKICAgICBzaGFkb3dSb290
LT5zZXRTaGFkb3dIb3N0KHRoaXMpOworICAgIHNoYWRvd1Jvb3RMaXN0KCktPnB1c2hTaGFkb3dS
b290KHNoYWRvd1Jvb3QuZ2V0KCksIGVjKTsKKwogICAgIGlmIChpbkRvY3VtZW50KCkpCiAgICAg
ICAgIHNoYWRvd1Jvb3QtPmluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgaWYgKGF0dGFjaGVk
KCkpIHsKQEAgLTEyMDQsMTUgKzEyMjQsMTIgQEAgU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJl
U2hhZG93Um9vdCgpCiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCgpCiB7Ci0gICAg
aWYgKCFoYXNSYXJlRGF0YSgpKQorICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOwotICAgIGlm
IChSZWZQdHI8U2hhZG93Um9vdD4gb2xkUm9vdCA9IGRhdGEtPm1fc2hhZG93Um9vdCkgewotICAg
ICAgICBkYXRhLT5tX3NoYWRvd1Jvb3QgPSAwOworICAgIHdoaWxlIChSZWZQdHI8U2hhZG93Um9v
dD4gb2xkUm9vdCA9IHNoYWRvd1Jvb3RMaXN0KCktPnBvcFNoYWRvd1Jvb3QoKSkgewogICAgICAg
ICBkb2N1bWVudCgpLT5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsK
IAotICAgICAgICAvLyBSZW1vdmUgZnJvbSByZW5kZXJpbmcgdHJlZQogICAgICAgICBpZiAob2xk
Um9vdC0+YXR0YWNoZWQoKSkKICAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwogCkBAIC0x
MjIzLDkgKzEyNDAsMTAgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgb2xkUm9vdC0+cmVtb3ZlZEZyb21UcmVlKHRydWUpOwogICAg
ICAgICBpZiAoYXR0YWNoZWQoKSkgewotICAgICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAg
ICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAgICAgICAgIGlmICghY2hpbGQtPmF0dGFjaGVk
KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5sYXp5QXR0YWNoKCk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5MzgxZTJmNTgx
NTg3ZDczMjU3MGE4MzE0OTQyODM0ODQxOTdmODI5Li4yMjhhZDhjMmYyYmUxNTIwZjBlNjBjNWY2
ZDE3OWYxNDZkNzBmNGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xh
c3MgRE9NVG9rZW5MaXN0OwogY2xhc3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSW50U2l6ZTsK
IGNsYXNzIFNoYWRvd1Jvb3Q7CitjbGFzcyBTaGFkb3dSb290TGlzdDsKIGNsYXNzIFdlYktpdEFu
aW1hdGlvbkxpc3Q7CiAKIGVudW0gU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlIHsKQEAgLTI1NCw2
ICsyNTUsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdm9pZCByZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAorICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0
OworICAgIFNoYWRvd1Jvb3RMaXN0KiBzaGFkb3dSb290TGlzdCgpIGNvbnN0OworCisgICAgLy8g
RklYTUU6IFRoZXNlIEFQSSB3aWxsIGJlIG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMxMwogICAgIFNoYWRv
d1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1Jl
ZlB0cjxTaGFkb3dSb290PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFNoYWRvd1Jvb3QqIGVuc3Vy
ZVNoYWRvd1Jvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBjYTMy
MTE1ZTYxODQ2NDg3YzE5MWQ5ZmFhMjg0NzA2ZjJlZTAyYWY4Li41Yjc1M2NkNzJiM2VlN2ZiMmI5
MjFmOWVjYTYxMDg2ZmFkYTllYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5o
CkBAIC0yNywxMiArMjcsMTEgQEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJTaGFk
b3dSb290TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBTaGFkb3dSb290OwotCiBjbGFzcyBFbGVtZW50UmFyZURhdGEgOiBwdWJs
aWMgTm9kZVJhcmVEYXRhIHsKIHB1YmxpYzoKICAgICBFbGVtZW50UmFyZURhdGEoKTsKQEAgLTcy
LDcgKzcxLDcgQEAgcHVibGljOgogCiAgICAgTGF5b3V0U2l6ZSBtX21pbmltdW1TaXplRm9yUmVz
aXppbmc7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2NvbXB1dGVkU3R5bGU7Ci0gICAgU2hh
ZG93Um9vdCogbV9zaGFkb3dSb290OworICAgIFNoYWRvd1Jvb3RMaXN0IG1fc2hhZG93Um9vdExp
c3Q7CiAgICAgQXRvbWljU3RyaW5nIG1fc2hhZG93UHNldWRvSWQ7CiAKICNpZiBFTkFCTEUoU1RZ
TEVfU0NPUEVEKQpAQCAtOTYsNyArOTUsNiBAQCBpbmxpbmUgSW50U2l6ZSBkZWZhdWx0TWluaW11
bVNpemVGb3JSZXNpemluZygpCiAKIGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJl
RGF0YSgpCiAgICAgOiBtX21pbmltdW1TaXplRm9yUmVzaXppbmcoZGVmYXVsdE1pbmltdW1TaXpl
Rm9yUmVzaXppbmcoKSkKLSAgICAsIG1fc2hhZG93Um9vdCgwKQogI2lmIEVOQUJMRShTVFlMRV9T
Q09QRUQpCiAgICAgLCBtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oMCkKICNlbmRp
ZgpAQCAtMTA5LDcgKzEwNyw3IEBAIGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJl
RGF0YSgpCiAKIGlubGluZSBFbGVtZW50UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEoKQogewot
ICAgIEFTU0VSVCghbV9zaGFkb3dSb290KTsKKyAgICBBU1NFUlQoIW1fc2hhZG93Um9vdExpc3Qu
aGFzU2hhZG93Um9vdCgpKTsKIH0KIAogaW5saW5lIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXNl
dENvbXB1dGVkU3R5bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDI5MGJlM2Y2
ZDQ1Mjc5NzFkMjg5MDZiYWUzYjdiODgwMDYyMjA4YjIuLjczYzQ5OGM1MjQ2YjM2NmE5ZGMwMzE0
MmI2ODBmMjNmMjQ3MDMxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTQxLDYg
KzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1
bWVudCogZG9jdW1lbnQpCiAgICAgOiBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBDcmVhdGVT
aGFkb3dSb290KQogICAgICwgVHJlZVNjb3BlKHRoaXMpCisgICAgLCBtX3ByZXYoMCkKKyAgICAs
IG1fbmV4dCgwKQogICAgICwgbV9hcHBseUF1dGhvclNoZWV0cyhmYWxzZSkKICAgICAsIG1fbmVl
ZHNSZWNhbGN1bGF0ZUNvbnRlbnQoZmFsc2UpCiB7CkBAIC01NSw2ICs1Nyw5IEBAIFNoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBTaGFkb3dSb290Ojp+U2hhZG93
Um9vdCgpCiB7CisgICAgQVNTRVJUKCFtX3ByZXYpOworICAgIEFTU0VSVCghbV9uZXh0KTsKKwog
ICAgIC8vIFdlIG11c3QgY2FsbCBjbGVhclJhcmVEYXRhKCkgaGVyZSBzaW5jZSBhIFNoYWRvd1Jv
b3QgY2xhc3MgaW5oZXJpdHMgVHJlZVNjb3BlCiAgICAgLy8gYXMgd2VsbCBhcyBOb2RlLiBTZWUg
YSBjb21tZW50IG9uIFRyZWVTY29wZS5oIGZvciB0aGUgcmVhc29uLgogICAgIGlmIChoYXNSYXJl
RGF0YSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNDAxZWU1ZTlkNjY1NWUxNjAyZDEz
NzRmZDk0NzhmNWVhNDY1NjBmNS4uYWRjZDQxMGI2NDEyMzE2ODg2YWU5ZjM4NTgwY2YzNDRhODkz
MzAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJUcmVlU2NvcGUuaCIKKyNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDcgKzM4LDggQEAgY2xhc3MgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7
CiAKLWNsYXNzIFNoYWRvd1Jvb3QgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCwgcHVibGljIFRy
ZWVTY29wZSB7CitjbGFzcyBTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1
YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dSb290PiB7
CisgICAgZnJpZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD47
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gY3JlYXRlKERvY3Vt
ZW50Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gY3JlYXRlKEVsZW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CkBAIC03Myw2ICs3NSw5IEBAIHB1YmxpYzoKICAgICBDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBjb25zdDsKICAgICBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3IqIGVuc3VyZUluY2x1c2lvbnMoKTsKIAorICAgIFNoYWRvd1Jvb3QqIHlvdW5n
ZXJTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gcHJldigpOyB9CisgICAgU2hhZG93Um9vdCog
b2xkZXJTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gbmV4dCgpOyB9CisKIHByaXZhdGU6CiAg
ICAgU2hhZG93Um9vdChEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflNoYWRvd1Jvb3QoKTsKQEAg
LTg0LDYgKzg5LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBj
b25zdDsKIAorICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKKyAgICBTaGFkb3dSb290KiBtX25leHQ7
CiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRzIDogMTsKICAgICBib29sIG1fbmVlZHNSZWNh
bGN1bGF0ZUNvbnRlbnQgOiAxOwogICAgIE93blB0cjxDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I+
IG1faW5jbHVzaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM2NGU2ZDBiODBhYmM2MmZjYzk0MWRhNzI0ODk0MjA5YjRiMWUxZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIK
KworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTaGFkb3dSb290TGlzdDo6
U2hhZG93Um9vdExpc3QoKQoreworfQorCitTaGFkb3dSb290TGlzdDo6flNoYWRvd1Jvb3RMaXN0
KCkKK3sKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7Cit9CisKK3ZvaWQgU2hhZG93Um9v
dExpc3Q6OnB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IG11bHRpcGxlIHNoYWRv
dyByb290IHN1YnRyZWVzIHlldC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jaGk/aWQ9Nzc1MDMKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisKKyAgICBt
X3NoYWRvd1Jvb3RzLnB1c2goc2hhZG93Um9vdCk7Cit9CisKK1NoYWRvd1Jvb3QqIFNoYWRvd1Jv
b3RMaXN0Ojpwb3BTaGFkb3dSb290KCkKK3sKKyAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyNTZl
Y2EzZDQzOGM1YTVkNTBjODI0ZmVjNmU0M2FlYTAwNmI1MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFNoYWRvd1Jvb3RMaXN0X2gKKyNkZWZpbmUgU2hhZG93Um9vdExpc3RfaAorCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTaGFkb3dSb290OworY2xhc3MgRWxlbWVudDsKKworY2xhc3MgU2hhZG93Um9vdExpc3Qgewor
cHVibGljOgorICAgIFNoYWRvd1Jvb3RMaXN0KCk7CisgICAgflNoYWRvd1Jvb3RMaXN0KCk7CisK
KyAgICBib29sIGhhc1NoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiB5b3VuZ2VzdFNoYWRv
d1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBvbGRlc3RTaGFkb3dSb290KCk7CisKKyAgICB2b2lk
IHB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqLCBFeGNlcHRpb25Db2RlJik7CisgICAgU2hhZG93
Um9vdCogcG9wU2hhZG93Um9vdCgpOworCitwcml2YXRlOgorICAgIERvdWJseUxpbmtlZExpc3Q8
U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKK307CisKK2lubGluZSBib29sIFNoYWRvd1Jvb3RM
aXN0OjpoYXNTaGFkb3dSb290KCkKK3sKKyAgICByZXR1cm4gIW1fc2hhZG93Um9vdHMuaXNFbXB0
eSgpOworfQorCitpbmxpbmUgU2hhZG93Um9vdCogU2hhZG93Um9vdExpc3Q6OnlvdW5nZXN0U2hh
ZG93Um9vdCgpCit7CisgICAgcmV0dXJuIG1fc2hhZG93Um9vdHMuaGVhZCgpOworfQorCitpbmxp
bmUgU2hhZG93Um9vdCogU2hhZG93Um9vdExpc3Q6Om9sZGVzdFNoYWRvd1Jvb3QoKQoreworICAg
IHJldHVybiBtX3NoYWRvd1Jvb3RzLnRhaWwoKTsKK30KKworfSAvLyBuYW1lc3BhY2UKKworI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126492</attachid>
            <date>2012-02-10 03:45:18 -0800</date>
            <delta_ts>2012-02-10 04:24:02 -0800</delta_ts>
            <desc>Test</desc>
            <filename>bug-78069-20120210204517.patch</filename>
            <type>text/plain</type>
            <size>41912</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDExNmYwMmYxODQxNjc0YjA1MTZkZjc0MWNmYzk0ODk3ZmU1MTljLi5iMDY0MGE0ZjU3YmM3MzQx
YjQ3NDA5NjdiN2E4YTlkZTJjY2NlMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG91Ymx5TGlua2VkTGlzdCBzaG91bGQg
aGF2ZSB0YWlsKCkgbWV0aG9kIHRvIHRha2UgdGhlIGxhc3QgZWxlbWVudC4KKworICAgICAgICAq
IHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAg
ICAgICAgKFdURjo6Ojp0YWlsKToKKyAgICAgICAgKFdURik6CisKIDIwMTItMDItMTAgIFJvbGFu
ZCBUYWthY3MgIDx0YWthY3Mucm9sYW5kQHN0dWQudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0
XSBHQyBzaG91bGQgYmUgcGFyYWxsZWwgb24gUXQgcGxhdGZvcm0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTdi
YzgwZTk2N2NlMDY3MjQ1ZjE4ODBjMjEwNDBkMWFhYjgzYmYxLi4yODFmODgyZWM0MjJhODc1NGNm
NjlmNDg4Y2M2OWVjN2U0YmI2NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTIt
MDItMTAgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJ
bnRyb2R1Y2UgU2hhZG93Um9vdExpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvIGltcGxlbWVudCBtdWx0aXBsZSBzaGFk
b3cgc3VidHJlZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2hhZG93IHJv
b3QgbGlzdC4gU2hhZG93Um9vdExpc3QgaXMgYSBkb3VibHkgbGlua2VkIGxpc3QsCisgICAgICAg
IGFuZCBlYWNoIHNoYWRvdyByb290IG5vdyBoYXMgYSB5b3VuZ2VyIHNoYWRvdyByb290IGFuZCBv
bGRlciBzaGFkb3cgcm9vdCwKKyAgICAgICAgd2hpY2ggYXJlIGEgcHJldmlvdXMgZWxlbWVudCBh
bmQgYSBuZXh0IGVsZW1lbnQgcmVzcGVjdGl2ZWx5LgorICAgICAgICBTaW5jZSBhIHZpc3VhbCB0
cmVlIHRyYXZlcnNhbCwgd2hpY2ggd2lsbCBiZSBpbnRyb2R1Y2VkIGluIGNvbWluZyBwYXRjaGVz
LCB3aWxsIG5lZWQgYSBvbGRlciBzaGFkb3cgcm9vdCwKKyAgICAgICAgd2UgbWFrZSBhIHNoYWRv
dyByb290IGxpc3QgYSBkb3VibHkgbGlua2VkIGxpc3QuCisKKyAgICAgICAgSG93ZXZlciwgU2hh
ZG93Um9vdExpc3QgZG9lcyBub3QgaGF2ZSBtb3JlIHRoYW4gb25lIHNoYWRvdyByb290IG5vdy4K
KyAgICAgICAgVGhpcyB3aWxsIGJlIGNoYW5nZWQgaW4gYSBzZXJpZXMgb2YgY29taW5nIHBhdGNo
ZXMuCisKKyAgICAgICAgRWxlbWVudDo6c2hhZG93Um9vdCgpLCBzZXRTaGFkb3dSb290KCksIGVu
c3VyZVNoYWRvd1Jvb3QoKSwgYW5kIHJlbW92ZVNoYWRvd1Jvb3QoKSBhcmUKKyAgICAgICAgZW11
bGF0ZWQgdXNpbmcgU2hhZG93Um9vdExpc3QgZm9yIGEgd2hpbGUuIFRoZXNlIEFQSSB3aWxsIGJl
IHJlcGxhY2VkIHRvIFNoYWRvd1Jvb3RMaXN0IEFQSSBsYXRlci4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAgIFJldHJ1bnMgdHJ1ZSBpZiBh
biBlbGVtZW50IGhhcyBhIHNoYWRvd1Jvb3QuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpz
aGFkb3dSb290TGlzdCk6CisgICAgICAgICAgR2V0cyBzaGFkb3cgcm9vdCBsaXN0IGlmIGFueS4K
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Jvb3QpOgorICAgICAgICAgIEdldHMg
dGhlIGZpcnN0IHNoYWRvdyByb290IGZyb20gdGhlIHNoYWRvdyByb290IGxpc3QuCisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpzZXRTaGFkb3dSb290KToKKyAgICAgICAgICBTZXRzIHRoZSBm
aXJzdCBzaGFkb3cgcm9vdCB0byB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAgIFJlbW92ZXMgYWxsIHRo
ZSBzaGFkb3cgcm9vdHMgaW4gdGhlIHNoYWRvdyByb290IGxpc3QuCisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAg
ICAgICBIYXMgc2hhZG93IHJvb3QgbGlzdHMgaW5zdGVhZCBvZiBzaGFkb3cgcm9vdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6fkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hh
ZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp+U2hhZG93Um9vdCk6Cisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6eW91bmdlclNoYWRvd1Jvb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6b2xkZXJTaGFkb3dSb290KToKKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdExpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6OlNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0Ojp+U2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdExpc3Q6OnB1c2hTaGFkb3dSb290KToKKyAgICAgICAgICBBZGRzIGEgc2hhZG93IHJvb3Qg
aW50byB0aGUgbGlzdC4gQ3VycmVudGx5IHdlIGxpbWl0IHRoZSBsaXN0IGNhbiBoYXZlIG9ubHkg
b25lIHNoYWRvdyByb290LgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnBvcFNo
YWRvd1Jvb3QpOgorICAgICAgICAgIFJlbW92ZXMgYW5kIHJldHVybnMgdGhlIHlvdW5nZXN0IHNo
YWRvdyByb290IGlmIGFueS4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpoYXNTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3RMaXN0Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6Om9sZGVzdFNoYWRvd1Jvb3QpOgorCiAyMDEyLTAyLTEwICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIEpQRUcgZGVjb2RpbmcgcGVyZm9ybWFuY2Ugc29tZSBtb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRG91Ymx5TGlua2VkTGlzdC5oCmluZGV4IDM2MWQ3MWQ3YjU3MzI2Nzk3
OWU0NGM0YjdkNmZiMzg2ZDYwZjk3YjguLmNkMDY3ZWYwYTg3NjhhZmI0ZDAwYzU1NzMzYjUwMTVl
MjQ5ZTMwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91Ymx5TGlu
a2VkTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91Ymx5TGlua2VkTGlz
dC5oCkBAIC03Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICBUKiBoZWFkKCkgY29uc3Q7CiAgICAg
VCogcmVtb3ZlSGVhZCgpOwogCisgICAgVCogdGFpbCgpIGNvbnN0OworCiAgICAgdm9pZCBwdXNo
KFQqKTsKICAgICB2b2lkIGFwcGVuZChUKik7CiAgICAgdm9pZCByZW1vdmUoVCopOwpAQCAtMTE2
LDYgKzExOCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogRG91Ymx5TGlua2Vk
TGlzdDxUPjo6aGVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGVhZDsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIFQqIERvdWJseUxpbmtlZExpc3Q8VD46OnRhaWwoKSBjb25zdAor
eworICAgIHJldHVybiBtX3RhaWw7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2
b2lkIERvdWJseUxpbmtlZExpc3Q8VD46OnB1c2goVCogbm9kZSkKIHsKICAgICBpZiAoIW1faGVh
ZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4YzMxNWQ2MjczMTc4MDcwMjlmNTM0ODBiNTcw
NTZkMWMzZWYxMjNiLi40MWI1NTg1ZTk1ODE0N2M4NzYxYmI4MTMxYmMxMWViOWEwNGUyZTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAwLDYgKzYwMCw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmNw
cAogICAgIGRvbS9TaGFkb3dSb290LmNwcAorICAgIGRvbS9TaGFkb3dSb290TGlzdC5jcHAKICAg
ICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKICAgICBkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0
LmNwcAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDg0NDhiM2FjOTY2ODJhZTVjZGNiYWJjMzA1MzQ0M2ZkNjcwZGFlYjAuLjgzNWU3
NmZkNzY1ZmI2MmQ4ZjU2NjBiMWQwMzBhMjFlNTkyNTAyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMTY1OSw2ICsxNjU5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290TGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmlu
Zy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUyNzczNTE3NTA5MjQuLmIwYjNiOWNkNzYxMzRj
NWNmNGMyNmUzZGM4YzFkZjkwODUzODdmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTY2LDYgKzU2Niw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwIFwKICAgICBkb20v
U2VsZWN0b3JRdWVyeS5jcHAgXAogICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCisgICAgZG9tL1No
YWRvd1Jvb3RMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBk
b20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAt
MTY2OSw2ICsxNjcwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuaCBcCiAgICAgZG9tL1NoYWRvd1Jvb3Qu
aCBcCisgICAgZG9tL1NoYWRvd1Jvb3RMaXN0LmggXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5n
LmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZDgzOWM1M2Q5Y2NmNTg5MGUyMDJjNjVmMzhhNjAy
NTUyZmQ3MjBhMi4uODFmNGExN2Y0ZGQxYmEzMzkyMmNhZmQ3YTkwMzJlZTk0YjFkOWNkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0OSw3ICsxNDksOCBAQCBfX1pON1dlYkNvcmUxMFNjcm9s
bFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJzRWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIz
c2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRFYmIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzI0d2lu
ZG93UmVzaXplclJlY3RDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzhhZGRDaGls
ZEVOM1dURjEwUGFzc1JlZlB0cklOU182V2lkZ2V0RUVFCi1fX1pON1dlYkNvcmUxMFNoYWRvd1Jv
b3Q2Y3JlYXRlRVBOU183RWxlbWVudEVSaQorX19aTjdXZWJDb3JlMTBTaGFkb3dSb290Cis2Y3Jl
YXRlRVBOU183RWxlbWVudEVSaQogX19aTjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlMTBoYW5kQ3Vyc29yRXYKIF9fWk43V2ViQ29yZTEwc2V0Q29va2ll
c0VQTlNfOERvY3VtZW50RVJLTlNfNEtVUkxFUktOM1dURjZTdHJpbmdFCkBAIC00NjksNiArNDcw
LDEwIEBAIF9fWk43V2ViQ29yZTE1UmVzb3VyY2VSZXF1ZXN0MjFodHRwUGlwZWxpbmluZ0VuYWJs
ZWRFdgogX19aTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3QyNHNldEhUVFBQaXBlbGluaW5nRW5h
YmxlZEViCiBfX1pON1dlYkNvcmUxNVNjcm9sbEFsaWdubWVudDE3YWxpZ25DZW50ZXJBbHdheXNF
CiBfX1pON1dlYkNvcmUxNVNjcm9sbEFsaWdubWVudDE5YWxpZ25Ub0VkZ2VJZk5lZWRlZEUKK19f
Wk43V2ViQ29yZTE0U2hhZG93Um9vdExpc3QxM3BvcFNoYWRvd1Jvb3RFdgorX19aTjdXZWJDb3Jl
MTRTaGFkb3dSb290TGlzdDE0cHVzaFNoYWRvd1Jvb3RFUE5TXzEwU2hhZG93Um9vdEVSaQorX19a
TjdXZWJDb3JlMTRTaGFkb3dSb290TGlzdEMxRXYKK19fWk43V2ViQ29yZTE0U2hhZG93Um9vdExp
c3REMUV2CiBfX1pON1dlYkNvcmUxNVN0cmluZ1RydW5jYXRvcjEzcmlnaHRUcnVuY2F0ZUVSS04z
V1RGNlN0cmluZ0VmUktOU180Rm9udEVOUzBfMjRFbmFibGVSb3VuZGluZ0hhY2tzT3JOb3RFCiBf
X1pON1dlYkNvcmUxNVN0cmluZ1RydW5jYXRvcjE0Y2VudGVyVHJ1bmNhdGVFUktOM1dURjZTdHJp
bmdFZlJLTlNfNEZvbnRFTlMwXzI0RW5hYmxlUm91bmRpbmdIYWNrc09yTm90RQogX19aTjdXZWJD
b3JlMTVTdHJpbmdUcnVuY2F0b3I1d2lkdGhFUktOM1dURjZTdHJpbmdFUktOU180Rm9udEVOUzBf
MjRFbmFibGVSb3VuZGluZ0hhY2tzT3JOb3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzhhODVjMGQz
MWUwOTFkODlmYmM4MGIxMjk2MjM3NWU1NWFjM2U3OS4uOWU4NzYzM2Q2OWQwZDRmMWJkZDYwZDBl
YWI0OWQ3NzIzMjFhYWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE5LDYgKzYxOSw3IEBACiAg
ICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCiAgICAgICAgICAgICAn
ZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5oJywKKyAg
ICAgICAgICAgICdkb20vU2hhZG93Um9vdExpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNl
U3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcsCiAgICAg
ICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC01MDk4LDYgKzUwOTksOCBAQAogICAgICAgICAgICAg
J2RvbS9TZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcs
CiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCisgICAgICAgICAgICAnZG9tL1NoYWRv
d1Jvb3RMaXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3RMaXN0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0
YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYmNjMWU0YWU5YmMxZGI4YjY5YTVhN2QxOGM3ZDgyN2RiYmUxZmRh
MS4uNjBjZDUxOWIzYjNjYWVjMjA0YzNkMjEwYWY3OGM1YjM0YTY4NDg1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ3MCw2
ICs4NDcwLDggQEAKIAkJNTdCNzkxQTIxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRTZWxlY3Rv
clF1ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3Qjc5MUE3MTRDNkE2MzMw
MEYyMDJEMSAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSFRNTENvbnRlbnRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTdCNzkxQTgxNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxDb250ZW50RWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQ29udGVudEVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdCNzk0QTUxNEU0RjI2ODAwRjIwMkQx
IC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNoYWRvd1Jvb3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdC
Nzk0QTYxNEU0RjI2ODAwRjIwMkQxIC8qIFNoYWRvd1Jvb3RMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3RMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU5MDVBREJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyog
WE1MVHJlZVZpZXdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVl
Vmlld2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIw
MDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTM5ODcsMTMgKzEzOTg5LDEzIEBACiAJCTFDNUZBRUNBMERDRkQ4QzkwMEQ1OEY3OCAvKiBJ
bnNwZWN0b3IgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJ
CTU3M0QxMzQ1MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHAgKi8s
Ci0JCQkJNTczRDEzNDYxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmgg
Ki8sCiAJCQkJN0E1NjNFNTQxMkRFMzJCMDAwRjQ1MzZEIC8qIEluamVjdGVkU2NyaXB0U291cmNl
LmggKi8sCiAJCQkJNEY3MDdBOTcxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyLmNwcCAqLywKIAkJCQk0RjcwN0E5ODExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuaCAqLywKIAkJCQk0RjRGNUZGQTExQ0JEMkQyMDBBMTg2QkYg
LyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwICovLAogCQkJCTRGNEY1RkZDMTFDQkQzMDEwMEExODZC
RiAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICovLAorCQkJCTU3M0QxMzQ1MTRDRTM5RkYwMDU3QUJD
QSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHAgKi8sCisJCQkJNTczRDEzNDYxNENFMzlGRjAw
NTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmggKi8sCiAJCQkJN0EwRTc2RDgxMEJGMDU5
ODAwQTAyNzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCAqLywKIAkJCQk3QTBFNzZEOTEw
QkYwNTk4MDBBMDI3NkUgLyogSlNJbmplY3RlZFNjcmlwdEhvc3QuaCAqLywKIAkJCQk3QTBFNzcx
QzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwICovLApAQCAt
MTQwMjAsOCArMTQwMjIsOCBAQAogCQkJCTdBQUJBMjU4MTRCQzYxMzMwMEFBOUExMSAvKiBET01F
ZGl0b3IuaCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hs
aWdodGVyLmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhp
Z2hsaWdodGVyLmggKi8sCi0JCQkJN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNo
U3VwcG9ydC5oICovLAogCQkJCTdBNTQ4ODE2MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1
cHBvcnQuY3BwICovLAorCQkJCTdBNTQ4ODE1MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1
cHBvcnQuaCAqLywKIAkJCQlGMzVBRTVBQjE0OTI1RjVCMDA0RDU3NzYgLyogRE9NV3JhcHBlclZp
c2l0b3IuaCAqLywKIAkJCQk1OTEzQTIzRjEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmllcnNG
YWN0b3J5LmNwcCAqLywKIAkJCQk1OTEzQTI0MDEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmll
cnNGYWN0b3J5LmggKi8sCkBAIC0xNzE3NywxMyArMTcxNzksMTMgQEAKIAkJQTc1RThCN0YwRTFE
RTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotCQkJCTUwQ0MwODk5MTRDNkU5OUMwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJO
dW1iZXJQYXJhbWV0ZXIuaCAqLywKIAkJCQk0OUVDRUI1QzE0OTk3OTBEMDBDREQzQTQgLyogYXJt
ICovLAogCQkJCTUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNw
cCAqLywKIAkJCQk1MEQ0MDVGODE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyTWVzaC5o
ICovLAotCQkJCTUwOUNDOUZBMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXIuaCAqLywKKwkJCQk1MENDMDg5OTE0QzZFOTlDMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyTnVt
YmVyUGFyYW1ldGVyLmggKi8sCiAJCQkJNTBDQzBBMzgxNEM2RjVCMTAwMTdBQjUxIC8qIEN1c3Rv
bUZpbHRlck9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJNTBBQ0UyQ0ExNEI1RDc5MzAwNDQ2NjY2IC8q
IEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAorCQkJCTUwOUNDOUZBMTRDMDY5RUQwMEJCRUNC
RCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCAqLywKIAkJCQk1MDNEMENBNzE0QjVCMDg3MDBG
MzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgKi8sCiAJCQkJNTAzRDBDQTgxNEI1QjA4
NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLywKIAkJCQk1MDNEMENBOTE0QjVC
MDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oICovLApAQCAtMjAwMjcs
OCArMjAwMjksNiBAQAogCQkJCUE4MEU2Q0QyMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NNZWRpYVJ1
bGUuY3BwICovLAogCQkJCUE4MEU2Q0Q5MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NNZWRpYVJ1bGUu
aCAqLywKIAkJCQk4NUM1NkNBMjBBQTg5QzEwMDBEOTU3NTUgLyogQ1NTTWVkaWFSdWxlLmlkbCAq
LywKLQkJCQlBODBFNkRGOTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5jcHAg
Ki8sCi0JCQkJQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuaCAq
LywKIAkJCQlBODBFNzM0NzBBMTk5Qzc3MDA3RkI4QzUgLyogQ1NTTmFtZXNwYWNlLmggKi8sCiAJ
CQkJRjk4RkZGNDIxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3BwICovLAogCQkJCUY5
OEZGRjQzMTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggKi8sCkBAIC0yMDE0NCw2ICsy
MDE0NCw4IEBACiAJCQkJMEZGNTAyNkUxMDJCQTk2NjAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuY3Bw
ICovLAogCQkJCTBGRjUwMjZGMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmggKi8sCiAJ
CQkJMEZGNTAyNzAxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaWRsICovLAorCQkJCUE4
MEU2REY5MEExOTkwNjcwMDdGQjhDNSAvKiBTdHlsZVByb3BlcnR5U2V0LmNwcCAqLywKKwkJCQlB
ODBFNkRGQTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5oICovLAogCQkJCUE4
RUE4MDA1MEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQlBOEVBODAw
NDBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5oICovLAogCQkJCTg1MDY1NkRDMEFBQjQ0
RDkwMDJEMTVDMCAvKiBTdHlsZVNoZWV0LmlkbCAqLywKQEAgLTIwNjg0LDYgKzIwNjg2LDggQEAK
IAkJCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi8sCiAJCQkJ
QTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCAqLywKIAkJCQlBN0RCNDE4
MTE0Q0UxRjBBMDBBMkUzMTYgLyogU2hhZG93Um9vdC5pZGwgKi8sCisJCQkJNTdCNzk0QTUxNEU0
RjI2ODAwRjIwMkQxIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLywKKwkJCQk1N0I3OTRBNjE0RTRG
MjY4MDBGMjAyRDEgLyogU2hhZG93Um9vdExpc3QuaCAqLywKIAkJCQlEMDFBMjdBQjEwQzlCRkQ4
MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8sCiAJCQkJRDAxQTI3QUMxMEM5QkZE
ODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLywKIAkJCQlDRUEzOTQ5QTExRDQ1Q0RB
MDAzMDk0Q0YgLyogU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCAqLywKQEAgLTIxMzI5LDcgKzIx
MzMzLDYgQEAKIAkJCQlBODBFNkQwODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyogQ1NTTGlu
ZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZEMDMwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU01lZGlhUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgwRTZERkMwQTE5
OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
MEU3MzRFMEExOTlDNzcwMDdGQjhDNSAvKiBDU1NOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkQwMDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjEzNjcsNyArMjEzNzAsOSBAQAogCQkJCUJDMjI3MkFEMEU4MkU4RjMwMEU3
Rjk3NSAvKiBDdXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkNEMzI1QTExNTdFNTdD
MDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNUZBMTQ3
RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MENDMDg5QTE0QzZFOTlDMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyTnVtYmVyUGFyYW1ldGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MEFDRTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmls
dGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDlDQzlGQjE0QzA2OUVEMDBCQkVD
QkQgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDNEMENB
QjE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTAzRDBDQUMxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNjEyMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0
b21GaWx0ZXJTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjE2ODksNiArMjE2OTQsNyBAQAog
CQkJCTg1OTg5RENGMEFDQzhCQkQwMEEwQkM1MSAvKiBET01PdmVyZmxvd0V2ZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QkQ2MTA0NEEwMUUwMEVBRUI1MiAvKiBET01QYWdl
VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNFODBBOEQxOEU3MDAy
Mjk0N0QgLyogRE9NUGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QTU0ODgxNzE0RTQzMkEx
MDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTRF
QzBENzQ1RTJCMDA2NDQyRTkgLyogRE9NUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2
RTRGMDBENzQ1RTM4MDA2NDQyRTkgLyogRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMUEzN0JCMDk3QzcxNUYwMDE5RjNEOCAvKiBET01Qcml2YXRlLmggaW4gSGVhZGVycyAq
LywKQEAgLTIyMDI3LDYgKzIyMDMzLDggQEAKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODgg
LyogRE9NV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0OTgzOTE1MDBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OTgzOTE1MjBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0
cml4SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCThBRDBBNTk2MTRDODgzNTgwMDBEODND
NSAvKiBET01XZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4QUQwQTU5
ODE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTYxMUU2MTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNjExRTYzMEUxQzRFMTQwMEY2
QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4QTE5NTkzMjE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2ViS2l0TmFtZWRGbG93Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIyMDcxLDYgKzIyMDc5LDcgQEAKIAkJCQk0QkFFOTVCMTBCMkZB
OUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEM0QTgwNzA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkNGNjg3OEExNEQzMkVGRjAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk2M0Y1RDRGNzBFOEM0QjcxMDBDMEJEMDQgLyogRWxl
bWVudFJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDE1RjE4NDBEOUExQTgzMDAzM0NF
OTcgLyogRWxlbWVudFRpbWVDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjZCRTBB
MTU2MTE4MDAwQTQyMzQgLyogRWxsaXBzaXNCb3guaCBpbiBIZWFkZXJzICovLApAQCAtMjIyMzgs
NiArMjIyNDcsNyBAQAogCQkJCUJDRTA0QzhBMERBRkY3QTAwMDdBMEY0MSAvKiBHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHZW5lcmF0
b3JHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTYyMkE4RkYxMjJDNDRBNjAw
QTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzIwQjBBMTE0
RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEN0M2MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNTJCRkNFQjEyOEFCRjIxMDBGRDMzOEQgLyogR2VvbG9jYXRpb25D
bGllbnRNb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNDg1LDYgKzIyNDk1LDcgQEAKIAkJCQlG
MzQ0QzcxNDExMjVCODJDMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcwRjEwQzAwQTg4MDBB
MDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QTU0
ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0FDRDg4RDQxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUE1MURENjE0ODUwNkE5
MDBBRDI3NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMw
MTksNiArMjMwMzAsNyBAQAogCQkJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktp
dENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwNzQwRTZDQ0JFRTAw
QkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDk4MzkxNDAwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4QUQwQTU5NTE0Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NSZWdpb25S
dWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTYxMUU1QjBFMUM0REUwMDBGNkE1NzkgLyogSlNX
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMkQxNDMy
N0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjMyOTgsNiArMjMzMTAsNyBAQAogCQkJCTUxNEM3Njc1MENFOTIzQTEwMDdF
RjNDRCAvKiBQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTA1MjU2MTA1
ODg3NDAwMENDOUU5NSAvKiBQcm90ZWN0aW9uU3BhY2VIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUY4RTExQTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNEQ2ODc3OTBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVy
Z2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2
IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjM0NzMsNiArMjM0ODYsNyBA
QAogCQkJCUE4Q0ZGNUUxMEExNTVBMDUwMDBBNDIzNCAvKiBSb290SW5saW5lQm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OUU5MTFDOTBFRjg2RDQ3MDA5RDBDQUYgLyogUm90YXRlVHJhbnNmb3Jt
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkg
LyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMEIzNTg4MTRDNEY5ODMwMDU1
RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzYzQTI0ODBGNzE2NDY2MDBD
MDlENUEgLyogUnVuTG9vcFRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxRjBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlE
MjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmggaW4gSGVhZGVycyAqLywKQEAg
LTIzNTI1LDYgKzIzNTM5LDEyIEBACiAJCQkJMEZFNzE0MDYxNDIxNzBCODAwREIzM0JBIC8qIFNj
cm9sbGJhclRoZW1lTW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ5MjVCNjgwRjY0RDRERDAw
Qjg0N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE4NEYwNTE0
M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFBRjYyRUU4MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFGNjJGMjYxNERBRkVBMTAwNDE1NTZDIC8qIFNjcm9s
bGluZ1RocmVhZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFBQUREQTQxNERCNDA5RjAwQUY2NEIz
IC8qIFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBQUFEREU0MTREQzhDOEYw
MEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFBQURE
RTkxNERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlTWFjLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQUFBRERCRjE0REM2NDA3MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZVN0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0MwOUM4NjBCMDY1N0FBMDA1QUJENEQgLyogU2Nyb2xsVHlw
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3Jv
bGxWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0REMjEyNTFGMTJEMDAzRUYyNjkgLyog
U2VhcmNoSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNjUwLDYgKzIzNjcwLDcgQEAK
IAkJCQlCQzVFQjcyQTBFODFERTgxMDBCMjU5NjUgLyogU3R5bGVNYXJxdWVlRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZGNTAyNzIxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNUVCNzRFMEU4MUUwNjcwMEIyNTk2NSAvKiBTdHlsZU11bHRp
Q29sRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTZERkMwQTE5OTA2NzAwN0ZCOEM1IC8q
IFN0eWxlUHJvcGVydHlTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MkU0MEU4MkVFOUIw
MEU3Rjk3NSAvKiBTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzIyNzJCRDBFODJFQUFFMDBFN0Y5NzUgLyogU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMyMjcyODcwRTgyRTcwNzAwRTdGOTc1IC8qIFN0eWxlUmVmbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDE1NCwyNSArMjQxNzUsNiBAQAogCQkJCUUxQkU1
MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUwQ0MwODlBMTRDNkU5OUMwMDE3QUI1MSAvKiBDdXN0
b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMEIzNTg4MTRD
NEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKLQkJCQk4QUQwQTU5NTE0
Qzg4MzM2MDAwRDgzQzUgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywK
LQkJCQk4QUQwQTU5NjE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOEFEMEE1OTgxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktp
dENTU1JlZ2lvblJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDcyMEIwQTExNEQz
MzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKLQkJCQky
Q0Y2ODc4QTE0RDMyRUZGMDAzNDBGMzkgLyogRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTFBRjYyRUU4MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGlu
YXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUFGNjJGMjYxNERBRkVBMTAwNDE1NTZDIC8qIFNj
cm9sbGluZ1RocmVhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUFBQUREQTQxNERCNDA5RjAwQUY2
NEIzIC8qIFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBQUFEREJGMTREQzY0
MDcwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTFB
QUFEREU0MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMUFBQURERTkxNERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlTWFj
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGlj
VVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0E1NDg1ODAxNEUwMkQ1MTAwNkFFMDVB
IC8qIEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTdBNTQ4ODE3MTRFNDMy
QTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTRBOTU3
RjA3MTRFMjQxMzAwMDQ5REJGQiAvKiBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0QURFMjVGQTE0RTNCQjRDMDA0QzIyMTMgLyogV2ViU29ja2V0RXh0
ZW5zaW9uUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI0NzQwLDcgKzI0NzQyLDYgQEAK
IAkJCQlBODBFNkQwMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNzcyRTE2MTMzMTYyQzIwMDFFQzlDRSAvKiBDU1NMaW5lQm94Q29u
dGFpblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0ZDMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NNZWRpYVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgwRTZERkIwQTE5OTA2
NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjk4
RkZGNDQxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgwRTZDRjUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNzcyQjNEMEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NQYXJzZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNDk2NSw2ICsyNDk2Niw3IEBACiAJCQkJODVDN0Y1RDEwQUFGQjhEOTAw
NDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJE
NTEwNDRBMDFFMDBFQUVCNTIgLyogRE9NUGFnZVRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQ0U1M0U3MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0E1NDg4MTgxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTRFQjBENzQ1RTJCMDA2NDQyRTkgLyogRE9N
UGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVGMEQ3NDVFMzgwMDY0NDJFOSAv
KiBET01QbHVnaW5BcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUY1NkE3QjBBOThDRTM3
MDBBREI2MEEgLyogRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yNTE2NSw2ICsyNTE2Nyw3IEBACiAJCQkJOTNBMzhCNEIwRDBFNTgwODAwNjg3MkMyIC8qIEVk
aXRvckNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1MDFEQzYwQjI0OUYyOTAwQUUx
OEQ5IC8qIEVkaXRvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODA4MDlENTYzMjcw
MDAzQUM4RCAvKiBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDRjY4Nzg4MTREMzJF
QjUwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOENGRjZDQjBBMTU2MUNEMDAwQTQyMzQgLyogRWxsaXBzaXNCb3guY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjU1QjNEQkIxMjUxRjEyRDAwM0VGMjY5IC8qIEVtYWlsSW5wdXRUeXBlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4RUE3RUMxMEExOTQ1RDAwMEE4RUY1RiAvKiBFbnRpdHlSZWZl
cmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTMwMCw2ICsyNTMwMyw3IEBACiAJCQkJNTFD
ODFCODkwQzQ0MjJGNzAwMTlFQ0UzIC8qIEZUUERpcmVjdG9yeVBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDMyRTg0OTBDNTE0OTNGMDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJENDgxRjAzMTQ2QjVDNjUwMEFBNzgzNCAvKiBHZW5lcmF0b3JH
ZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2
NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MEQ3
QzUwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA1MkJGQ0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9u
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTIyLDYgKzI1NTI2LDcgQEAKIAkJ
CQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjM0NEM3NTgxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwRTc3MEUxMEMwMEE4ODAw
QTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3
QTU0ODU3RjE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8q
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUE1MURE
NTE0ODUwNkE5MDBBRDI3NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNTUzMyw2ICsyNTUzOCw3IEBACiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlE
IC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODI4ODlCNEMx
M0M2MjM5MjAwOUE2MTU2IC8qIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzNEMTM0NzE0Q0UzOUZGMDA1N0FCQ0EgLyog
SW5zcGVjdG9yVHlwZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEYzMjg5QjUxMUE0
MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
MzgxMEMxQjEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjM1MEI3MzUxM0YxMzc3RDAwODgwQzQzIC8qIEluc3RydW1lbnRpbmdB
Z2VudHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjM4Miw2ICsyNjM4OCw3IEBACiAJCQkJNDk1
ODc4MjExMkE1N0RERjAwNzIzOEFDIC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk0OTU4NzgyMjEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZvcm1DQUxheWVy
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RFQTc2MzAxNDYwOEE1MzAwOEIzMUYxIC8qIFBs
YXRmb3JtQ2xvY2tDQS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREFBOEQwQTE0RDcxQjJFMDA2
MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1Qzc2MkEx
NDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBQTQ4NkYxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDFCRjcwMEYwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY1NDMsOCArMjY1NTAsOCBA
QAogCQkJCUE4Q0ZGNUU3MEExNTVBMDUwMDBBNDIzNCAvKiBSb290SW5saW5lQm94LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ5RTkxMUM4MEVGODZENDcwMDlEMENBRiAvKiBSb3RhdGVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczRjk1RkUxMkM5N0JGRTAwMzFB
QUY5IC8qIFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMEIzNTgzMTRDNEY5
NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwQjM1ODcx
NEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwQjM1
ODMxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QzYzQTI0OTBGNzE2NDY2MDBDMDlENUEgLyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE1NjlEMUUwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0
aG9kLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY1OTEsNiArMjY1OTgsMTUgQEAKIAkJCQkwRkU3
MTQwNTE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTVEOTI1QjY3MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxCZWhhdmlvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUE4NEYwNDE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsRWxh
c3RpY2l0eUNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQUY2MkVFNzE0REEyMkE3
MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUFGNjJFRTYxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUFGNjJGMjUxNERBRkU5RTAwNDE1NTZDIC8qIFNjcm9sbGluZ1Ro
cmVhZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUY2MkYyNDE0REFGRTkxMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBQUREQTMxNERCNDA5
RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBQURE
RTMxNERDOEM4RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFBQUFEREU4MTREQzhERjgwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZU1hYy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTFBQUFEREJFMTREQzY0MDcwMEFGNjRCMyAvKiBTY3JvbGxp
bmdUcmVlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFBQUREREExNERDNzRFQzAwQUY2
NEIzIC8qIFNjcm9sbGluZ1RyZWVTdGF0ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMjQ0
MUM0MEU4QjY1RDAwMDU1MzIwRiAvKiBTY3JvbGxWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzNTM2NzZCMDlBRUQ4OEIwMEQzNUNENiAvKiBTY3JvbGxWaWV3TWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjU1QjNERDExMjUxRjEyRDAwM0VGMjY5IC8qIFNlYXJjaElucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI2NzA0LDYgKzI2NzIwLDcgQEAKIAkJCQlCQzVFQjcyOTBFODFE
RTgxMDBCMjU5NjUgLyogU3R5bGVNYXJxdWVlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkY1MDI3MTEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzVFQjc0RDBFODFFMDY3MDBCMjU5NjUgLyogU3R5bGVNdWx0aUNvbERhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTgwRTZERkIwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVy
dHlTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMjcyRTMwRTgyRUU5QjAwRTdGOTc1IC8q
IFN0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMjcyQkMw
RTgyRUFBRTAwRTdGOTc1IC8qIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThFQTgwMEQwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNzA5NiwyMiArMjcxMTMsNiBAQAogCQkJCUUxQkU1MTJEMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3
RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTU3M0QxMzQ3MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJp
Y0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMkNGNjg3ODgxNEQzMkVCNTAwMzQw
RjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFBRjYy
RUU2MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCTFBRjYyRUU3MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQUY2MkYyNDE0REFGRTkxMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUFGNjJGMjUxNERBRkU5
RTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQUFB
RERBMzE0REI0MDlGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkxQUFBRERCRTE0REM2NDA3MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZVN0YXRlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTFBQUFERERBMTREQzc0RUMwMEFGNjRCMyAvKiBTY3JvbGxpbmdU
cmVlU3RhdGVNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQkxQUFBRERFMzE0REM4QzhGMDBBRjY0
QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUFBQURERTgx
NERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2RlTWFjLm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJN0E1NDg1N0YxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQ0RBQThEMEExNEQ3MUIyRTAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xv
Y2tDTS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTdBNTQ4ODE4MTRFNDMyQTEwMDZBRTA1QSAvKiBE
T01QYXRjaFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNEE5NTdGMDYxNEUyNDEyQTAw
NDlEQkZCIC8qIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMzU1ZjM4YWRiZTRkMmRmYTNjY2NjMjA0OWE0ZWI2
MWZmODY2ZjRiZS4uMGUzMmE0Y2VlNjM5NTJmMzE4NDhjMTM4OWJiNjU4NjZmODcwZmVkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTE1Miw5ICsxMTUyLDI2IEBAIHZvaWQgRWxlbWVudDo6
cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBkaWRSZWNhbGNTdHlsZShj
aGFuZ2UpOwogfQogCitib29sIEVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QoKSBjb25zdAoreworICAg
IGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisgICAgICAgIHJl
dHVybiBsaXN0LT5oYXNTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTaGFk
b3dSb290TGlzdCogRWxlbWVudDo6c2hhZG93Um9vdExpc3QoKSBjb25zdAoreworICAgIGlmICgh
aGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gJnJhcmVEYXRh
KCktPm1fc2hhZG93Um9vdExpc3Q7Cit9CisKIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OnNoYWRvd1Jv
b3QoKSBjb25zdAogewotICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9z
aGFkb3dSb290IDogMDsKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dSb290
TGlzdCgpKQorICAgICAgICByZXR1cm4gbGlzdC0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAg
cmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChEb2N1bWVudCog
ZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAt
MTE3NSwxNiArMTE5MiwxOSBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1l
bnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcAogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dS
b290PiBwcnBTaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgRWxlbWVudDo6c2V0
U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290ID0gcHJwU2hhZG93
Um9vdDsKICAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChkb2N1bWVudCgpLCBzaGFkb3dSb290
LmdldCgpLCBlYykpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghaGFzUmFyZURhdGEoKSkK
KyAgICAgICAgZW5zdXJlUmFyZURhdGEoKTsKKwogICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKIAot
ICAgIGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93Um9vdCA9IHNoYWRvd1Jvb3QuZ2V0KCk7CiAg
ICAgc2hhZG93Um9vdC0+c2V0U2hhZG93SG9zdCh0aGlzKTsKKyAgICBzaGFkb3dSb290TGlzdCgp
LT5wdXNoU2hhZG93Um9vdChzaGFkb3dSb290LmdldCgpLCBlYyk7CisKICAgICBpZiAoaW5Eb2N1
bWVudCgpKQogICAgICAgICBzaGFkb3dSb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IGlmIChhdHRhY2hlZCgpKSB7CkBAIC0xMjA0LDE1ICsxMjI0LDEyIEBAIFNoYWRvd1Jvb3QqIEVs
ZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jv
b3QoKQogewotICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICBpZiAoIWhhc1NoYWRvd1Jvb3Qo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gcmFyZURh
dGEoKTsKLSAgICBpZiAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBkYXRhLT5tX3NoYWRv
d1Jvb3QpIHsKLSAgICAgICAgZGF0YS0+bV9zaGFkb3dSb290ID0gMDsKKyAgICB3aGlsZSAoUmVm
UHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBzaGFkb3dSb290TGlzdCgpLT5wb3BTaGFkb3dSb290
KCkpIHsKICAgICAgICAgZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xk
Um9vdC5nZXQoKSk7CiAKLSAgICAgICAgLy8gUmVtb3ZlIGZyb20gcmVuZGVyaW5nIHRyZWUKICAg
ICAgICAgaWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCiAgICAgICAgICAgICBvbGRSb290LT5kZXRh
Y2goKTsKIApAQCAtMTIyMyw5ICsxMjQwLDEwIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlU2hhZG93
Um9vdCgpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tVHJl
ZSh0cnVlKTsKICAgICAgICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgICAgIGZvciAoTm9k
ZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKQorICAgICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWNo
aWxkLT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5k
ZXggOTM4MWUyZjU4MTU4N2Q3MzI1NzBhODMxNDk0MjgzNDg0MTk3ZjgyOS4uMjI4YWQ4YzJmMmJl
MTUyMGYwZTYwYzVmNmQxNzlmMTQ2ZDcwZjRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00Miw2
ICs0Miw3IEBAIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNs
YXNzIEludFNpemU7CiBjbGFzcyBTaGFkb3dSb290OworY2xhc3MgU2hhZG93Um9vdExpc3Q7CiBj
bGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0
ZSB7CkBAIC0yNTQsNiArMjU1LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZvaWQg
cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKKyAgICBib29sIGhhc1NoYWRv
d1Jvb3QoKSBjb25zdDsKKyAgICBTaGFkb3dSb290TGlzdCogc2hhZG93Um9vdExpc3QoKSBjb25z
dDsKKworICAgIC8vIEZJWE1FOiBUaGVzZSBBUEkgd2lsbCBiZSBtb3ZlZCB0byBTaGFkb3dSb290
TGlzdC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzgz
MTMKICAgICBTaGFkb3dSb290KiBzaGFkb3dSb290KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaGFk
b3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFk
b3dSb290KiBlbnN1cmVTaGFkb3dSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmgKaW5kZXggY2EzMjExNWU2MTg0NjQ4N2MxOTFkOWZhYTI4NDcwNmYyZWUwMmFmOC4uNWI3NTNj
ZDcyYjNlZTdmYjJiOTIxZjllY2E2MTA4NmZhZGE5ZWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaApAQCAtMjcsMTIgKzI3LDExIEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCisj
aW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2hhZG93Um9vdDsKLQogY2xhc3MgRWxlbWVudFJh
cmVEYXRhIDogcHVibGljIE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVE
YXRhKCk7CkBAIC03Miw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFNpemUgbV9taW5p
bXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0
eWxlOwotICAgIFNoYWRvd1Jvb3QqIG1fc2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290TGlzdCBt
X3NoYWRvd1Jvb3RMaXN0OwogICAgIEF0b21pY1N0cmluZyBtX3NoYWRvd1BzZXVkb0lkOwogCiAj
aWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKQEAgLTk2LDcgKzk1LDYgQEAgaW5saW5lIEludFNpemUg
ZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKQogCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRh
OjpFbGVtZW50UmFyZURhdGEoKQogICAgIDogbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nKGRlZmF1
bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkpCi0gICAgLCBtX3NoYWRvd1Jvb3QoMCkKICNpZiBF
TkFCTEUoU1RZTEVfU0NPUEVEKQogICAgICwgbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxk
cmVuKDApCiAjZW5kaWYKQEAgLTEwOSw3ICsxMDcsNyBAQCBpbmxpbmUgRWxlbWVudFJhcmVEYXRh
OjpFbGVtZW50UmFyZURhdGEoKQogCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjp+RWxlbWVudFJh
cmVEYXRhKCkKIHsKLSAgICBBU1NFUlQoIW1fc2hhZG93Um9vdCk7CisgICAgQVNTRVJUKCFtX3No
YWRvd1Jvb3RMaXN0Lmhhc1NoYWRvd1Jvb3QoKSk7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRS
YXJlRGF0YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApp
bmRleCAyOTBiZTNmNmQ0NTI3OTcxZDI4OTA2YmFlM2I3Yjg4MDA2MjIwOGIyLi43M2M0OThjNTI0
NmIzNjZhOWRjMDMxNDJiNjgwZjIzZjI0NzAzMWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNoYWRvd1Jvb3Q6OlNo
YWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1
bWVudCwgQ3JlYXRlU2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29wZSh0aGlzKQorICAgICwgbV9w
cmV2KDApCisgICAgLCBtX25leHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTaGVldHMoZmFsc2Up
CiAgICAgLCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQogewpAQCAtNTUsNiArNTcs
OSBAQCBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKIAogU2hhZG93
Um9vdDo6flNoYWRvd1Jvb3QoKQogeworICAgIEFTU0VSVCghbV9wcmV2KTsKKyAgICBBU1NFUlQo
IW1fbmV4dCk7CisKICAgICAvLyBXZSBtdXN0IGNhbGwgY2xlYXJSYXJlRGF0YSgpIGhlcmUgc2lu
Y2UgYSBTaGFkb3dSb290IGNsYXNzIGluaGVyaXRzIFRyZWVTY29wZQogICAgIC8vIGFzIHdlbGwg
YXMgTm9kZS4gU2VlIGEgY29tbWVudCBvbiBUcmVlU2NvcGUuaCBmb3IgdGhlIHJlYXNvbi4KICAg
ICBpZiAoaGFzUmFyZURhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDQwMWVlNWU5
ZDY2NTVlMTYwMmQxMzc0ZmQ5NDc4ZjVlYTQ2NTYwZjUuLmFkY2Q0MTBiNjQxMjMxNjg4NmFlOWYz
ODU4MGNmMzQ0YTg5MzMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCisjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtl
ZExpc3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw3ICszOCw4IEBAIGNsYXNz
IENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTENv
bnRlbnRFbGVtZW50OwogCi1jbGFzcyBTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21l
bnQsIHB1YmxpYyBUcmVlU2NvcGUgeworY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVu
dEZyYWdtZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8
U2hhZG93Um9vdD4geworICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2Rl
PFNoYWRvd1Jvb3Q+OwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+
IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNy
ZWF0ZShFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzMsNiArNzUsOSBAQCBwdWJsaWM6
CiAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBpbmNsdXNpb25zKCkgY29uc3Q7CiAgICAg
Q29udGVudEluY2x1c2lvblNlbGVjdG9yKiBlbnN1cmVJbmNsdXNpb25zKCk7CiAKKyAgICBTaGFk
b3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIHByZXYoKTsgfQorICAg
IFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG5leHQoKTsgfQor
CiBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TaGFk
b3dSb290KCk7CkBAIC04NCw2ICs4OSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0NvbnRl
bnRFbGVtZW50KCkgY29uc3Q7CiAKKyAgICBTaGFkb3dSb290KiBtX3ByZXY7CisgICAgU2hhZG93
Um9vdCogbV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1dGhvclNoZWV0cyA6IDE7CiAgICAgYm9v
bCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKICAgICBPd25QdHI8Q29udGVudEluY2x1
c2lvblNlbGVjdG9yPiBtX2luY2x1c2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNjRlNmQwYjgwYWJjNjJmY2M5NDFkYTcyNDg5NDIwOWI0YjFlMWYz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNw
cApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3RMaXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2hh
ZG93Um9vdExpc3Q6OlNoYWRvd1Jvb3RMaXN0KCkKK3sKK30KKworU2hhZG93Um9vdExpc3Q6On5T
aGFkb3dSb290TGlzdCgpCit7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworfQorCit2
b2lkIFNoYWRvd1Jvb3RMaXN0OjpwdXNoU2hhZG93Um9vdChTaGFkb3dSb290KiBzaGFkb3dSb290
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBt
dWx0aXBsZSBzaGFkb3cgcm9vdCBzdWJ0cmVlcyB5ZXQuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2hpP2lkPTc3NTAzCisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290
KCkpOworCisgICAgbV9zaGFkb3dSb290cy5wdXNoKHNoYWRvd1Jvb3QpOworfQorCitTaGFkb3dS
b290KiBTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9vdCgpCit7CisgICAgaWYgKCFoYXNTaGFk
b3dSb290KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fc2hhZG93Um9vdHMu
cmVtb3ZlSGVhZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZhMjU2ZWNhM2Q0MzhjNWE1ZDUwYzgyNGZlYzZlNDNhZWEwMDZiNTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaApAQCAtMCwwICsx
LDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBTaGFkb3dSb290TGlzdF9oCisjZGVmaW5lIFNoYWRvd1Jvb3RMaXN0
X2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlIDx3dGYvRG91Ymx5TGlu
a2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2hhZG93Um9vdDsKK2NsYXNzIEVsZW1lbnQ7CisKK2NsYXNzIFNoYWRv
d1Jvb3RMaXN0IHsKK3B1YmxpYzoKKyAgICBTaGFkb3dSb290TGlzdCgpOworICAgIH5TaGFkb3dS
b290TGlzdCgpOworCisgICAgYm9vbCBoYXNTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCog
eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgp
OworCisgICAgdm9pZCBwdXNoU2hhZG93Um9vdChTaGFkb3dSb290KiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIFNoYWRvd1Jvb3QqIHBvcFNoYWRvd1Jvb3QoKTsKKworcHJpdmF0ZToKKyAgICBEb3Vi
bHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7Cit9OworCitpbmxpbmUgYm9v
bCBTaGFkb3dSb290TGlzdDo6aGFzU2hhZG93Um9vdCgpCit7CisgICAgcmV0dXJuICFtX3NoYWRv
d1Jvb3RzLmlzRW1wdHkoKTsKK30KKworaW5saW5lIFNoYWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0
Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QoKQoreworICAgIHJldHVybiBtX3NoYWRvd1Jvb3RzLmhlYWQo
KTsKK30KKworaW5saW5lIFNoYWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0OjpvbGRlc3RTaGFkb3dS
b290KCkKK3sKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy50YWlsKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126496</attachid>
            <date>2012-02-10 04:24:10 -0800</date>
            <delta_ts>2012-02-10 04:35:03 -0800</delta_ts>
            <desc>Test</desc>
            <filename>bug-78069-20120210212408.patch</filename>
            <type>text/plain</type>
            <size>24507</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDExNmYwMmYxODQxNjc0YjA1MTZkZjc0MWNmYzk0ODk3ZmU1MTljLi5iMDY0MGE0ZjU3YmM3MzQx
YjQ3NDA5NjdiN2E4YTlkZTJjY2NlMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG91Ymx5TGlua2VkTGlzdCBzaG91bGQg
aGF2ZSB0YWlsKCkgbWV0aG9kIHRvIHRha2UgdGhlIGxhc3QgZWxlbWVudC4KKworICAgICAgICAq
IHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAg
ICAgICAgKFdURjo6Ojp0YWlsKToKKyAgICAgICAgKFdURik6CisKIDIwMTItMDItMTAgIFJvbGFu
ZCBUYWthY3MgIDx0YWthY3Mucm9sYW5kQHN0dWQudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0
XSBHQyBzaG91bGQgYmUgcGFyYWxsZWwgb24gUXQgcGxhdGZvcm0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTdi
YzgwZTk2N2NlMDY3MjQ1ZjE4ODBjMjEwNDBkMWFhYjgzYmYxLi4yODFmODgyZWM0MjJhODc1NGNm
NjlmNDg4Y2M2OWVjN2U0YmI2NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTIt
MDItMTAgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJ
bnRyb2R1Y2UgU2hhZG93Um9vdExpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvIGltcGxlbWVudCBtdWx0aXBsZSBzaGFk
b3cgc3VidHJlZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2hhZG93IHJv
b3QgbGlzdC4gU2hhZG93Um9vdExpc3QgaXMgYSBkb3VibHkgbGlua2VkIGxpc3QsCisgICAgICAg
IGFuZCBlYWNoIHNoYWRvdyByb290IG5vdyBoYXMgYSB5b3VuZ2VyIHNoYWRvdyByb290IGFuZCBv
bGRlciBzaGFkb3cgcm9vdCwKKyAgICAgICAgd2hpY2ggYXJlIGEgcHJldmlvdXMgZWxlbWVudCBh
bmQgYSBuZXh0IGVsZW1lbnQgcmVzcGVjdGl2ZWx5LgorICAgICAgICBTaW5jZSBhIHZpc3VhbCB0
cmVlIHRyYXZlcnNhbCwgd2hpY2ggd2lsbCBiZSBpbnRyb2R1Y2VkIGluIGNvbWluZyBwYXRjaGVz
LCB3aWxsIG5lZWQgYSBvbGRlciBzaGFkb3cgcm9vdCwKKyAgICAgICAgd2UgbWFrZSBhIHNoYWRv
dyByb290IGxpc3QgYSBkb3VibHkgbGlua2VkIGxpc3QuCisKKyAgICAgICAgSG93ZXZlciwgU2hh
ZG93Um9vdExpc3QgZG9lcyBub3QgaGF2ZSBtb3JlIHRoYW4gb25lIHNoYWRvdyByb290IG5vdy4K
KyAgICAgICAgVGhpcyB3aWxsIGJlIGNoYW5nZWQgaW4gYSBzZXJpZXMgb2YgY29taW5nIHBhdGNo
ZXMuCisKKyAgICAgICAgRWxlbWVudDo6c2hhZG93Um9vdCgpLCBzZXRTaGFkb3dSb290KCksIGVu
c3VyZVNoYWRvd1Jvb3QoKSwgYW5kIHJlbW92ZVNoYWRvd1Jvb3QoKSBhcmUKKyAgICAgICAgZW11
bGF0ZWQgdXNpbmcgU2hhZG93Um9vdExpc3QgZm9yIGEgd2hpbGUuIFRoZXNlIEFQSSB3aWxsIGJl
IHJlcGxhY2VkIHRvIFNoYWRvd1Jvb3RMaXN0IEFQSSBsYXRlci4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAgIFJldHJ1bnMgdHJ1ZSBpZiBh
biBlbGVtZW50IGhhcyBhIHNoYWRvd1Jvb3QuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpz
aGFkb3dSb290TGlzdCk6CisgICAgICAgICAgR2V0cyBzaGFkb3cgcm9vdCBsaXN0IGlmIGFueS4K
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Jvb3QpOgorICAgICAgICAgIEdldHMg
dGhlIGZpcnN0IHNoYWRvdyByb290IGZyb20gdGhlIHNoYWRvdyByb290IGxpc3QuCisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpzZXRTaGFkb3dSb290KToKKyAgICAgICAgICBTZXRzIHRoZSBm
aXJzdCBzaGFkb3cgcm9vdCB0byB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAgIFJlbW92ZXMgYWxsIHRo
ZSBzaGFkb3cgcm9vdHMgaW4gdGhlIHNoYWRvdyByb290IGxpc3QuCisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAg
ICAgICBIYXMgc2hhZG93IHJvb3QgbGlzdHMgaW5zdGVhZCBvZiBzaGFkb3cgcm9vdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6fkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hh
ZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp+U2hhZG93Um9vdCk6Cisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6eW91bmdlclNoYWRvd1Jvb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6b2xkZXJTaGFkb3dSb290KToKKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdExpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6OlNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RMaXN0Ojp+U2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdExpc3Q6OnB1c2hTaGFkb3dSb290KToKKyAgICAgICAgICBBZGRzIGEgc2hhZG93IHJvb3Qg
aW50byB0aGUgbGlzdC4gQ3VycmVudGx5IHdlIGxpbWl0IHRoZSBsaXN0IGNhbiBoYXZlIG9ubHkg
b25lIHNoYWRvdyByb290LgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnBvcFNo
YWRvd1Jvb3QpOgorICAgICAgICAgIFJlbW92ZXMgYW5kIHJldHVybnMgdGhlIHlvdW5nZXN0IHNo
YWRvdyByb290IGlmIGFueS4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpoYXNTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3RMaXN0Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6Om9sZGVzdFNoYWRvd1Jvb3QpOgorCiAyMDEyLTAyLTEwICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIElu
Y3JlYXNlIEpQRUcgZGVjb2RpbmcgcGVyZm9ybWFuY2Ugc29tZSBtb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvRG91Ymx5TGlua2VkTGlzdC5oCmluZGV4IDM2MWQ3MWQ3YjU3MzI2Nzk3
OWU0NGM0YjdkNmZiMzg2ZDYwZjk3YjguLmNkMDY3ZWYwYTg3NjhhZmI0ZDAwYzU1NzMzYjUwMTVl
MjQ5ZTMwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91Ymx5TGlu
a2VkTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91Ymx5TGlua2VkTGlz
dC5oCkBAIC03Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICBUKiBoZWFkKCkgY29uc3Q7CiAgICAg
VCogcmVtb3ZlSGVhZCgpOwogCisgICAgVCogdGFpbCgpIGNvbnN0OworCiAgICAgdm9pZCBwdXNo
KFQqKTsKICAgICB2b2lkIGFwcGVuZChUKik7CiAgICAgdm9pZCByZW1vdmUoVCopOwpAQCAtMTE2
LDYgKzExOCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogRG91Ymx5TGlua2Vk
TGlzdDxUPjo6aGVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGVhZDsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIFQqIERvdWJseUxpbmtlZExpc3Q8VD46OnRhaWwoKSBjb25zdAor
eworICAgIHJldHVybiBtX3RhaWw7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2
b2lkIERvdWJseUxpbmtlZExpc3Q8VD46OnB1c2goVCogbm9kZSkKIHsKICAgICBpZiAoIW1faGVh
ZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4YzMxNWQ2MjczMTc4MDcwMjlmNTM0ODBiNTcw
NTZkMWMzZWYxMjNiLi40MWI1NTg1ZTk1ODE0N2M4NzYxYmI4MTMxYmMxMWViOWEwNGUyZTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAwLDYgKzYwMCw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmNw
cAogICAgIGRvbS9TaGFkb3dSb290LmNwcAorICAgIGRvbS9TaGFkb3dSb290TGlzdC5jcHAKICAg
ICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKICAgICBkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0
LmNwcAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDg0NDhiM2FjOTY2ODJhZTVjZGNiYWJjMzA1MzQ0M2ZkNjcwZGFlYjAuLjgzNWU3
NmZkNzY1ZmI2MmQ4ZjU2NjBiMWQwMzBhMjFlNTkyNTAyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMTY1OSw2ICsxNjU5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290TGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmlu
Zy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IDE0M2Y3OGNlZDcwY2FmOWU1NWFmMjFiMGZjMjUyNzczNTE3NTA5MjQuLmIwYjNiOWNkNzYxMzRj
NWNmNGMyNmUzZGM4YzFkZjkwODUzODdmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTY2LDYgKzU2Niw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwIFwKICAgICBkb20v
U2VsZWN0b3JRdWVyeS5jcHAgXAogICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCisgICAgZG9tL1No
YWRvd1Jvb3RMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBk
b20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAt
MTY2OSw2ICsxNjcwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuaCBcCiAgICAgZG9tL1NoYWRvd1Jvb3Qu
aCBcCisgICAgZG9tL1NoYWRvd1Jvb3RMaXN0LmggXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5n
LmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3OGE4NWMwZDMxZTA5MWQ4OWZiYzgwYjEyOTYyMzc1ZTU1
YWMzZTc5Li45ZTg3NjMzZDY5ZDBkNGYxYmRkNjBkMGVhYjQ5ZDc3MjMyMWFhYTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC02MTksNiArNjE5LDcgQEAKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAg
ICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290
TGlzdC5oJywKICAgICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5oJywKICAgICAgICAg
ICAgICdkb20vU3R5bGVkRWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vVGV4dC5oJywKQEAg
LTUwOTgsNiArNTA5OSw4IEBACiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9yUXVlcnkuaCcsCiAg
ICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuY3BwJywKICAgICAgICAgICAgICdkb20vU2hhZG93
Um9vdC5oJywKKyAgICAgICAgICAgICdkb20vU2hhZG93Um9vdExpc3QuY3BwJywKKyAgICAgICAg
ICAgICdkb20vU2hhZG93Um9vdExpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRT
dHJpbmcuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCcs
CiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiY2MxZTRh
ZTliYzFkYjhiNjlhNWE3ZDE4YzdkODI3ZGJiZTFmZGExLi41YzlmNTQ5NmZiNGNkZWNhODBkMmNm
ZmFlZTkxZjdlYThhZWYyN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjAyLDYgKzE2MDIsOCBAQAogCQk1M0M4Mjk4RTEz
RDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzQzgyOThDMTNEOEQ5MjcwMERFMkRFQiAvKiBS
ZW5kZXJGbGV4aWJsZUJveC5oICovOyB9OwogCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi87
IH07CiAJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDODA4NUY2MDM5
MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTU3MkU5MkZCMTRFNTQwNTgwMDg3RkZCQSAvKiBTaGFkb3dS
b290TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzJFOTJGOTE0RTU0MDU4MDA4N0ZGQkEgLyogU2hhZG93Um9vdExpc3QuY3BwICovOyB9Owor
CQk1NzJFOTJGQzE0RTU0MDU4MDA4N0ZGQkEgLyogU2hhZG93Um9vdExpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkU5MkZBMTRFNTQwNTgwMDg3
RkZCQSAvKiBTaGFkb3dSb290TGlzdC5oICovOyB9OwogCQk1NzNEMTM0NzE0Q0UzOUZGMDA1N0FC
Q0EgLyogSW5zcGVjdG9yVHlwZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTczRDEzNDUxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3Rv
clR5cGVCdWlsZGVyLmNwcCAqLzsgfTsKIAkJNTdCNzkxQTMxNEM2QTYyOTAwRjIwMkQxIC8qIENv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0I3OTE5RjE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmNwcCAqLzsgfTsKIAkJNTdCNzkxQTQxNEM2QTYyOTAwRjIwMkQxIC8qIENv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdCNzkxQTAxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvci5oICovOyB9OwpAQCAtODQ2Miw2ICs4NDY0LDggQEAKIAkJNTNDODI5OEMxM0Q4
RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlckZsZXhpYmxlQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFF1YWxp
ZmllZE5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVh
bGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKKwkJNTcyRTkyRjkxNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNoYWRvd1Jvb3RMaXN0
LmNwcDsgcGF0aCA9IGRvbS9TaGFkb3dSb290TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU3MkU5MkZBMTRFNTQwNTgwMDg3RkZCQSAvKiBTaGFkb3dSb290TGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFkb3dSb290TGlzdC5oOyBwYXRoID0g
ZG9tL1NoYWRvd1Jvb3RMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3M0Qx
MzQ1MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3M0QxMzQ2MTRDRTM5RkYwMDU3QUJDQSAvKiBJ
bnNwZWN0b3JUeXBlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JUeXBlQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0I3
OTE5RjE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM5MSw2ICsxMzM5NSw4IEBA
CiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3MkU5MkY5MTRFNTQwNTgwMDg3RkZCQSAv
KiBTaGFkb3dSb290TGlzdC5jcHAgKi8sCisJCQkJNTcyRTkyRkExNEU1NDA1ODAwODdGRkJBIC8q
IFNoYWRvd1Jvb3RMaXN0LmggKi8sCiAJCQkJNjVDOTdBRjIwOEVBOTA4ODAwQUNEMjczIC8qIGNv
bmZpZy5oICovLAogCQkJCUVERUM5ODAyMEFFRDdFMTcwMDU5MTM3RiAvKiBXZWJDb3JlUHJlZml4
LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3RkU0IC8qIERlcml2ZWRTb3VyY2VzLm1h
a2UgKi8sCkBAIC0yNDE3Myw2ICsyNDE3OSw3IEBACiAJCQkJN0E1NDg4MTcxNEU0MzJBMTAwNkFF
MDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE5NTdGMDcxNEUy
NDEzMDAwNDlEQkZCIC8qIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRBREUyNUZBMTRFM0JCNEMwMDRDMjIxMyAvKiBXZWJTb2NrZXRFeHRlbnNpb25Q
cm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkU5MkZDMTRFNTQwNTgwMDg3RkZCQSAv
KiBTaGFkb3dSb290TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzExMiw2ICsyNzExOSw3IEBA
CiAJCQkJQ0RBQThEMEExNEQ3MUIyRTAwNjFFQTYwIC8qIFBsYXRmb3JtQ2xvY2tDTS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdBNTQ4ODE4MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE5NTdGMDYxNEUyNDEyQTAwNDlEQkZCIC8qIFdl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcyRTky
RkIxNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggOGIxZWJiYjg4ODUxYzczMzA0NTk0MGMy
ODJjOGQyM2QxOTNlOWZhZC4uNWI4MTBjNTJmNDNiYjIxNjQ2OWEzYzUzZmJhN2NmMDE5NTcwYmY1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMTMsNiArMTEzLDcgQEAKICNp
bmNsdWRlICJTZWN1cml0eUNvbnRleHQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuY3Bw
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuY3BwIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmNw
cCIKICNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmNwcCIKICNpbmNsdWRlICJTdGF0aWNIYXNo
U2V0Tm9kZUxpc3QuY3BwIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCAzNTVmMzhhZGJlNGQyZGZhM2NjY2MyMDQ5YTRlYjYxZmY4NjZmNGJl
Li4zY2IxZTU3MWM3N2E3NjVjYTlkMzlkYzk1M2FlNjFjM2VjZTkyNWZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCkBAIC0xMTUyLDkgKzExNTIsMjYgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIGRpZFJlY2FsY1N0eWxlKGNoYW5nZSk7CiB9
CiAKK2Jvb2wgRWxlbWVudDo6aGFzU2hhZG93Um9vdCgpIGNvbnN0Cit7CisgICAgaWYgKFNoYWRv
d1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgcmV0dXJuIGxpc3Qt
Pmhhc1NoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1NoYWRvd1Jvb3RMaXN0
KiBFbGVtZW50OjpzaGFkb3dSb290TGlzdCgpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNSYXJlRGF0
YSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiAmcmFyZURhdGEoKS0+bV9zaGFk
b3dSb290TGlzdDsKK30KKwogU2hhZG93Um9vdCogRWxlbWVudDo6c2hhZG93Um9vdCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3Qg
OiAwOworICAgIGlmIChTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCisg
ICAgICAgIHJldHVybiBsaXN0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsK
IH0KIAogc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwg
U2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xMTc1LDE2ICsx
MTkyLDE5IEBAIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1l
bnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgRWxlbWVudDo6c2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHBycFNo
YWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290
KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBwcnBTaGFkb3dSb290OwogICAg
IGlmICghdmFsaWRhdGVTaGFkb3dSb290KGRvY3VtZW50KCksIHNoYWRvd1Jvb3QuZ2V0KCksIGVj
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICBl
bnN1cmVSYXJlRGF0YSgpOworCiAgICAgcmVtb3ZlU2hhZG93Um9vdCgpOwogCi0gICAgZW5zdXJl
UmFyZURhdGEoKS0+bV9zaGFkb3dSb290ID0gc2hhZG93Um9vdC5nZXQoKTsKICAgICBzaGFkb3dS
b290LT5zZXRTaGFkb3dIb3N0KHRoaXMpOworICAgIHNoYWRvd1Jvb3RMaXN0KCktPnB1c2hTaGFk
b3dSb290KHNoYWRvd1Jvb3QuZ2V0KCkpOworCiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAg
ICAgc2hhZG93Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICBpZiAoYXR0YWNoZWQo
KSkgewpAQCAtMTIwNCwxNSArMTIyNCwxMiBAQCBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1cmVT
aGFkb3dSb290KCkKIAogdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkKIHsKLSAgICBp
ZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCk7Ci0gICAgaWYg
KFJlZlB0cjxTaGFkb3dSb290PiBvbGRSb290ID0gZGF0YS0+bV9zaGFkb3dSb290KSB7Ci0gICAg
ICAgIGRhdGEtPm1fc2hhZG93Um9vdCA9IDA7CisgICAgd2hpbGUgKFJlZlB0cjxTaGFkb3dSb290
PiBvbGRSb290ID0gc2hhZG93Um9vdExpc3QoKS0+cG9wU2hhZG93Um9vdCgpKSB7CiAgICAgICAg
IGRvY3VtZW50KCktPnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKG9sZFJvb3QuZ2V0KCkpOwog
Ci0gICAgICAgIC8vIFJlbW92ZSBmcm9tIHJlbmRlcmluZyB0cmVlCiAgICAgICAgIGlmIChvbGRS
b290LT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7CiAKQEAgLTEy
MjMsOSArMTI0MCwxMCBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbVRyZWUodHJ1ZSk7CiAgICAg
ICAgIGlmIChhdHRhY2hlZCgpKSB7Ci0gICAgICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAg
ICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQo
KSkKICAgICAgICAgICAgICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2goKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDkzODFlMmY1ODE1
ODdkNzMyNTcwYTgzMTQ5NDI4MzQ4NDE5N2Y4MjkuLjIyOGFkOGMyZjJiZTE1MjBmMGU2MGM1ZjZk
MTc5ZjE0NmQ3MGY0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFz
cyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURhdGE7CiBjbGFzcyBJbnRTaXplOwog
Y2xhc3MgU2hhZG93Um9vdDsKK2NsYXNzIFNoYWRvd1Jvb3RMaXN0OwogY2xhc3MgV2ViS2l0QW5p
bWF0aW9uTGlzdDsKIAogZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewpAQCAtMjU0LDYg
KzI1NSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2b2lkIHJlY2FsY1N0eWxlKFN0
eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOwogCisgICAgYm9vbCBoYXNTaGFkb3dSb290KCkgY29uc3Q7
CisgICAgU2hhZG93Um9vdExpc3QqIHNoYWRvd1Jvb3RMaXN0KCkgY29uc3Q7CisKKyAgICAvLyBG
SVhNRTogVGhlc2UgQVBJIHdpbGwgYmUgbW92ZWQgdG8gU2hhZG93Um9vdExpc3QuCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzEzCiAgICAgU2hhZG93
Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2hhZG93Um9vdChQYXNzUmVm
UHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9vdCogZW5zdXJl
U2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IGNhMzIx
MTVlNjE4NDY0ODdjMTkxZDlmYWEyODQ3MDZmMmVlMDJhZjguLjViNzUzY2Q3MmIzZWU3ZmIyYjky
MWY5ZWNhNjEwODZmYWRhOWVjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgK
QEAgLTI3LDEyICsyNywxMSBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFNoYWRvd1Jvb3Q7Ci0KIGNsYXNzIEVsZW1lbnRSYXJlRGF0YSA6IHB1Ymxp
YyBOb2RlUmFyZURhdGEgewogcHVibGljOgogICAgIEVsZW1lbnRSYXJlRGF0YSgpOwpAQCAtNzIs
NyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBMYXlvdXRTaXplIG1fbWluaW11bVNpemVGb3JSZXNp
emluZzsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29tcHV0ZWRTdHlsZTsKLSAgICBTaGFk
b3dSb290KiBtX3NoYWRvd1Jvb3Q7CisgICAgU2hhZG93Um9vdExpc3QgbV9zaGFkb3dSb290TGlz
dDsKICAgICBBdG9taWNTdHJpbmcgbV9zaGFkb3dQc2V1ZG9JZDsKIAogI2lmIEVOQUJMRShTVFlM
RV9TQ09QRUQpCkBAIC05Niw3ICs5NSw2IEBAIGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVt
U2l6ZUZvclJlc2l6aW5nKCkKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVE
YXRhKCkKICAgICA6IG1fbWluaW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVG
b3JSZXNpemluZygpKQotICAgICwgbV9zaGFkb3dSb290KDApCiAjaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKICAgICAsIG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigwKQogI2VuZGlm
CkBAIC0xMDksNyArMTA3LDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVE
YXRhKCkKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6fkVsZW1lbnRSYXJlRGF0YSgpCiB7Ci0g
ICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3QpOworICAgIEFTU0VSVCghbV9zaGFkb3dSb290TGlzdC5o
YXNTaGFkb3dSb290KCkpOwogfQogCiBpbmxpbmUgdm9pZCBFbGVtZW50UmFyZURhdGE6OnJlc2V0
Q29tcHV0ZWRTdHlsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggMjkwYmUzZjZk
NDUyNzk3MWQyODkwNmJhZTNiN2I4ODAwNjIyMDhiMi4uNzNjNDk4YzUyNDZiMzY2YTlkYzAzMTQy
YjY4MGYyM2YyNDcwMzFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNDEsNiAr
NDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQsIENyZWF0ZVNo
YWRvd1Jvb3QpCiAgICAgLCBUcmVlU2NvcGUodGhpcykKKyAgICAsIG1fcHJldigwKQorICAgICwg
bV9uZXh0KDApCiAgICAgLCBtX2FwcGx5QXV0aG9yU2hlZXRzKGZhbHNlKQogICAgICwgbV9uZWVk
c1JlY2FsY3VsYXRlQ29udGVudChmYWxzZSkKIHsKQEAgLTU1LDYgKzU3LDkgQEAgU2hhZG93Um9v
dDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAKIFNoYWRvd1Jvb3Q6On5TaGFkb3dS
b290KCkKIHsKKyAgICBBU1NFUlQoIW1fcHJldik7CisgICAgQVNTRVJUKCFtX25leHQpOworCiAg
ICAgLy8gV2UgbXVzdCBjYWxsIGNsZWFyUmFyZURhdGEoKSBoZXJlIHNpbmNlIGEgU2hhZG93Um9v
dCBjbGFzcyBpbmhlcml0cyBUcmVlU2NvcGUKICAgICAvLyBhcyB3ZWxsIGFzIE5vZGUuIFNlZSBh
IGNvbW1lbnQgb24gVHJlZVNjb3BlLmggZm9yIHRoZSByZWFzb24uCiAgICAgaWYgKGhhc1JhcmVE
YXRhKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA0MDFlZTVlOWQ2NjU1ZTE2MDJkMTM3
NGZkOTQ3OGY1ZWE0NjU2MGY1Li5hZGNkNDEwYjY0MTIzMTY4ODZhZTlmMzg1ODBjZjM0NGE4OTMz
MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1
ZGUgIlRyZWVTY29wZS5oIgorI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNyArMzgsOCBAQCBjbGFzcyBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxDb250ZW50RWxlbWVudDsK
IAotY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJsaWMgVHJl
ZVNjb3BlIHsKK2NsYXNzIFNoYWRvd1Jvb3QgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCwgcHVi
bGljIFRyZWVTY29wZSwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+IHsK
KyAgICBmcmllbmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dSb290PjsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1l
bnQqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVhdGUoRWxlbWVudCos
IEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTczLDYgKzc1LDkgQEAgcHVibGljOgogICAgIENvbnRlbnRJ
bmNsdXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OwogICAgIENvbnRlbnRJbmNsdXNp
b25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwogCisgICAgU2hhZG93Um9vdCogeW91bmdl
clNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBwcmV2KCk7IH0KKyAgICBTaGFkb3dSb290KiBv
bGRlclNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBuZXh0KCk7IH0KKwogcHJpdmF0ZToKICAg
ICBTaGFkb3dSb290KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U2hhZG93Um9vdCgpOwpAQCAt
ODQsNiArODksOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYXNDb250ZW50RWxlbWVudCgpIGNv
bnN0OwogCisgICAgU2hhZG93Um9vdCogbV9wcmV2OworICAgIFNoYWRvd1Jvb3QqIG1fbmV4dDsK
ICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHMgOiAxOwogICAgIGJvb2wgbV9uZWVkc1JlY2Fs
Y3VsYXRlQ29udGVudCA6IDE7CiAgICAgT3duUHRyPENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcj4g
bV9pbmNsdXNpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODhlMGZiNWYxMzcwOWEwODdhMmM0NWYyNTA2NzY0NDZhNDQzMzFmMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290TGlzdC5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NoYWRvd1Jvb3RMaXN0OjpT
aGFkb3dSb290TGlzdCgpCit7Cit9CisKK1NoYWRvd1Jvb3RMaXN0Ojp+U2hhZG93Um9vdExpc3Qo
KQoreworICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKK30KKwordm9pZCBTaGFkb3dSb290
TGlzdDo6cHVzaFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogc2hhZG93Um9vdCkKK3sKKyAgICAvLyBG
SVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBtdWx0aXBsZSBzaGFkb3cgcm9vdCBzdWJ0cmVlcyB5ZXQu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2hpP2lkPTc3NTAzCisg
ICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworCisgICAgbV9zaGFkb3dSb290cy5wdXNoKHNo
YWRvd1Jvb3QpOworfQorCitTaGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9v
dCgpCit7CisgICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIG1fc2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhMDYzOTk2NGU0NmE1ZDI3MzM2OGEwNjk0
NWM3NzE5NDk3MzE2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdExpc3QuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTaGFkb3dSb290TGlzdF9o
CisjZGVmaW5lIFNoYWRvd1Jvb3RMaXN0X2gKKworI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRM
aXN0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTaGFkb3dSb290OworY2xhc3MgRWxlbWVudDsKKworY2xhc3MgU2hhZG93Um9v
dExpc3QgeworcHVibGljOgorICAgIFNoYWRvd1Jvb3RMaXN0KCk7CisgICAgflNoYWRvd1Jvb3RM
aXN0KCk7CisKKyAgICBib29sIGhhc1NoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiB5b3Vu
Z2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBvbGRlc3RTaGFkb3dSb290KCk7CisK
KyAgICB2b2lkIHB1c2hTaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKKyAgICBTaGFkb3dSb290KiBw
b3BTaGFkb3dSb290KCk7CisKK3ByaXZhdGU6CisgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dS
b290PiBtX3NoYWRvd1Jvb3RzOworfTsKKworaW5saW5lIGJvb2wgU2hhZG93Um9vdExpc3Q6Omhh
c1NoYWRvd1Jvb3QoKQoreworICAgIHJldHVybiAhbV9zaGFkb3dSb290cy5pc0VtcHR5KCk7Cit9
CisKK2lubGluZSBTaGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6eW91bmdlc3RTaGFkb3dSb290
KCkKK3sKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy5oZWFkKCk7Cit9CisKK2lubGluZSBTaGFk
b3dSb290KiBTaGFkb3dSb290TGlzdDo6b2xkZXN0U2hhZG93Um9vdCgpCit7CisgICAgcmV0dXJu
IG1fc2hhZG93Um9vdHMudGFpbCgpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126498</attachid>
            <date>2012-02-10 04:35:11 -0800</date>
            <delta_ts>2012-02-12 17:56:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78069-20120210213509.patch</filename>
            <type>text/plain</type>
            <size>24539</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDExNmYwMmYxODQxNjc0YjA1MTZkZjc0MWNmYzk0ODk3ZmU1MTljLi45MDQwYWQ3NzkwY2YwMTJm
ODhhNWMzNzdmNTAzYTkzNTcyOWNhZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wMi0xMCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG91Ymx5TGlua2VkTGlzdCBzaG91bGQg
aGF2ZSB0YWlsKCkgbWV0aG9kIHRvIHRha2UgdGhlIGxhc3QgZWxlbWVudC4KKworICAgICAgICAq
IHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg6CisgICAgICAgIChEb3VibHlMaW5rZWRMaXN0KToKKyAg
ICAgICAgKFdURjo6Ojp0YWlsKToKKyAgICAgICAgKFdURik6CisKIDIwMTItMDItMTAgIFJvbGFu
ZCBUYWthY3MgIDx0YWthY3Mucm9sYW5kQHN0dWQudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0
XSBHQyBzaG91bGQgYmUgcGFyYWxsZWwgb24gUXQgcGxhdGZvcm0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTdi
YzgwZTk2N2NlMDY3MjQ1ZjE4ODBjMjEwNDBkMWFhYjgzYmYxLi4xMjI2NGQwZWM5ZTMzYzA1YTA5
M2NjNzQzMGJlZTgxM2M2MDNmMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTIt
MDItMTAgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJ
bnRyb2R1Y2UgU2hhZG93Um9vdExpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvIGltcGxlbWVudCBtdWx0aXBsZSBzaGFk
b3cgc3VidHJlZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2hhZG93IHJv
b3QgbGlzdC4gU2hhZG93Um9vdExpc3QgaXMgYSBkb3VibHkgbGlua2VkIGxpc3QsCisgICAgICAg
IGFuZCBlYWNoIHNoYWRvdyByb290IG5vdyBoYXMgYSB5b3VuZ2VyIHNoYWRvdyByb290IGFuZCBv
bGRlciBzaGFkb3cgcm9vdCwKKyAgICAgICAgd2hpY2ggYXJlIGEgcHJldmlvdXMgZWxlbWVudCBh
bmQgYSBuZXh0IGVsZW1lbnQgcmVzcGVjdGl2ZWx5LgorICAgICAgICBTaW5jZSBhIHZpc3VhbCB0
cmVlIHRyYXZlcnNhbCwgd2hpY2ggd2lsbCBiZSBpbnRyb2R1Y2VkIGluIGNvbWluZyBwYXRjaGVz
LCB3aWxsIG5lZWQgYSBvbGRlciBzaGFkb3cgcm9vdCwKKyAgICAgICAgd2UgbWFrZSBhIHNoYWRv
dyByb290IGxpc3QgYSBkb3VibHkgbGlua2VkIGxpc3QuCisKKyAgICAgICAgSG93ZXZlciwgU2hh
ZG93Um9vdExpc3QgZG9lcyBub3QgaGF2ZSBtb3JlIHRoYW4gb25lIHNoYWRvdyByb290IG5vdy4K
KyAgICAgICAgVGhpcyB3aWxsIGJlIGNoYW5nZWQgaW4gYSBzZXJpZXMgb2YgY29taW5nIHBhdGNo
ZXMuCisKKyAgICAgICAgRWxlbWVudDo6c2hhZG93Um9vdCgpLCBzZXRTaGFkb3dSb290KCksIGVu
c3VyZVNoYWRvd1Jvb3QoKSwgYW5kIHJlbW92ZVNoYWRvd1Jvb3QoKSBhcmUKKyAgICAgICAgZW11
bGF0ZWQgdXNpbmcgU2hhZG93Um9vdExpc3QgZm9yIGEgd2hpbGUuIFRoZXNlIEFQSSB3aWxsIGJl
IHJlcGxhY2VkIHRvIFNoYWRvd1Jvb3RMaXN0IEFQSSBsYXRlci4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aGFzU2hhZG93Um9v
dCk6CisgICAgICAgICAgUmV0cnVucyB0cnVlIGlmIGFuIGVsZW1lbnQgaGFzIGEgc2hhZG93Um9v
dC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAg
ICBHZXRzIHNoYWRvdyByb290IGxpc3QgaWYgYW55LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6c2hhZG93Um9vdCk6CisgICAgICAgICAgR2V0cyB0aGUgZmlyc3Qgc2hhZG93IHJvb3QgZnJv
bSB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNo
YWRvd1Jvb3QpOgorICAgICAgICAgIFNldHMgdGhlIGZpcnN0IHNoYWRvdyByb290IHRvIHRoZSBz
aGFkb3cgcm9vdCBsaXN0LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93
Um9vdCk6CisgICAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIHNoYWRvdyByb290cyBpbiB0aGUgc2hh
ZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6
CisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJh
cmVEYXRhOjpFbGVtZW50UmFyZURhdGEpOgorICAgICAgICAgIEhhcyBzaGFkb3cgcm9vdCBsaXN0
cyBpbnN0ZWFkIG9mIHNoYWRvdyByb290LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVE
YXRhOjp+RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6On5TaGFkb3dSb290KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5o
OgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp5
b3VuZ2VyU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpvbGRlclNo
YWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290TGlzdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6U2hhZG93
Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6On5TaGFkb3dSb290
TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cHVzaFNoYWRvd1Jvb3Qp
OgorICAgICAgICAgIEFkZHMgYSBzaGFkb3cgcm9vdCBpbnRvIHRoZSBsaXN0LiBDdXJyZW50bHkg
d2UgbGltaXQgdGhlIGxpc3QgY2FuIGhhdmUgb25seSBvbmUgc2hhZG93IHJvb3QuCisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cG9wU2hhZG93Um9vdCk6CisgICAgICAgICAgUmVt
b3ZlcyBhbmQgcmV0dXJucyB0aGUgeW91bmdlc3Qgc2hhZG93IHJvb3QgaWYgYW55LgorICAgICAg
ICAqIGRvbS9TaGFkb3dSb290TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoU2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6
Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnlvdW5n
ZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6b2xkZXN0
U2hhZG93Um9vdCk6CisKIDIwMTItMDItMTAgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21h
aWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gSW5jcmVhc2UgSlBFRyBkZWNvZGluZyBwZXJm
b3JtYW5jZSBzb21lIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
RG91Ymx5TGlua2VkTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5r
ZWRMaXN0LmgKaW5kZXggMzYxZDcxZDdiNTczMjY3OTc5ZTQ0YzRiN2Q2ZmIzODZkNjBmOTdiOC4u
Y2QwNjdlZjBhODc2OGFmYjRkMDBjNTU3MzNiNTAxNWUyNDllMzA0OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKQEAgLTc3LDYgKzc3LDggQEAgcHVi
bGljOgogICAgIFQqIGhlYWQoKSBjb25zdDsKICAgICBUKiByZW1vdmVIZWFkKCk7CiAKKyAgICBU
KiB0YWlsKCkgY29uc3Q7CisKICAgICB2b2lkIHB1c2goVCopOwogICAgIHZvaWQgYXBwZW5kKFQq
KTsKICAgICB2b2lkIHJlbW92ZShUKik7CkBAIC0xMTYsNiArMTE4LDExIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBUKiBEb3VibHlMaW5rZWRMaXN0PFQ+OjpoZWFkKCkgY29uc3QKICAg
ICByZXR1cm4gbV9oZWFkOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogRG91
Ymx5TGlua2VkTGlzdDxUPjo6dGFpbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFpbDsKK30K
KwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgRG91Ymx5TGlua2VkTGlzdDxUPjo6
cHVzaChUKiBub2RlKQogewogICAgIGlmICghbV9oZWFkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDhjMzE1ZDYyNzMxNzgwNzAyOWY1MzQ4MGI1NzA1NmQxYzNlZjEyM2IuLjQxYjU1ODVlOTU4
MTQ3Yzg3NjFiYjgxMzFiYzExZWI5YTA0ZTJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02
MDAsNiArNjAwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9TZWN1cml0eUNvbnRl
eHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3Bw
CisgICAgZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNw
cAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05vZGVM
aXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggODQ0OGIzYWM5NjY4MmFl
NWNkY2JhYmMzMDUzNDQzZmQ2NzBkYWViMC4uODM1ZTc2ZmQ3NjVmYjYyZDhmNTY2MGIxZDAzMGEy
MWU1OTI1MDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjU5LDYgKzE2
NTksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rv
clF1ZXJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3RMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY0hhc2hT
ZXROb2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMTQzZjc4Y2VkNzBjYWY5ZTU1YWYyMWIw
ZmMyNTI3NzM1MTc1MDkyNC4uYjBiM2I5Y2Q3NjEzNGM1Y2Y0YzI2ZTNkYzhjMWRmOTA4NTM4N2Y4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCkBAIC01NjYsNiArNTY2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9t
L1NlY3VyaXR5Q29udGV4dC5jcHAgXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAg
ZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKyAgICBkb20vU2hhZG93Um9vdExpc3QuY3BwIFwKICAgICBk
b20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAgXAog
ICAgIGRvbS9TdHlsZWRFbGVtZW50LmNwcCBcCkBAIC0xNjY5LDYgKzE2NzAsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwKICAgICBkb20vU2VsZWN0
b3JRdWVyeS5oIFwKICAgICBkb20vU2hhZG93Um9vdC5oIFwKKyAgICBkb20vU2hhZG93Um9vdExp
c3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVM
aXN0LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc4
YTg1YzBkMzFlMDkxZDg5ZmJjODBiMTI5NjIzNzVlNTVhYzNlNzkuLjllODc2MzNkNjlkMGQ0ZjFi
ZGQ2MGQwZWFiNDlkNzcyMzIxYWFhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYxOSw2ICs2MTks
NyBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAogICAgICAg
ICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3Qu
aCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3RMaXN0LmgnLAogICAgICAgICAgICAgJ2Rv
bS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50Lmgn
LAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtNTA5OCw2ICs1MDk5LDggQEAKICAgICAg
ICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9v
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAorICAgICAgICAgICAgJ2Rv
bS9TaGFkb3dSb290TGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290TGlzdC5o
JywKICAgICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAnLAogICAgICAgICAgICAg
J2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGlj
SGFzaFNldE5vZGVMaXN0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJjYzFlNGFlOWJjMWRiOGI2OWE1YTdkMThjN2Q4Mjdk
YmJlMWZkYTEuLjVjOWY1NDk2ZmI0Y2RlY2E4MGQyY2ZmYWVlOTFmN2VhOGFlZjI3YjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE2MDIsNiArMTYwMiw4IEBACiAJCTUzQzgyOThFMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJG
bGV4aWJsZUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTNDODI5OEMxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi87IH07
CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkw
MDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAw
NzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1l
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcy
RTkyRkIxNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkU5MkY5MTRFNTQwNTgwMDg3RkZC
QSAvKiBTaGFkb3dSb290TGlzdC5jcHAgKi87IH07CisJCTU3MkU5MkZDMTRFNTQwNTgwMDg3RkZC
QSAvKiBTaGFkb3dSb290TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcyRTkyRkExNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0Lmgg
Ki87IH07CiAJCTU3M0QxMzQ3MTRDRTM5RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzNE
MTM0NTE0Q0UzOUZGMDA1N0FCQ0EgLyogSW5zcGVjdG9yVHlwZUJ1aWxkZXIuY3BwICovOyB9Owog
CQk1N0I3OTFBMzE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Qjc5MTlG
MTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovOyB9Owog
CQk1N0I3OTFBNDE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I3OTFBMDE0
QzZBNjI5MDBGMjAyRDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggKi87IH07CkBAIC04
NDYyLDYgKzg0NjQsOCBAQAogCQk1M0M4Mjk4QzEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxl
eGlibGVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRmxleGli
bGVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAw
NzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4
NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk1NzJFOTJGOTE0
RTU0MDU4MDA4N0ZGQkEgLyogU2hhZG93Um9vdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU2hhZG93Um9vdExpc3QuY3BwOyBwYXRoID0gZG9tL1NoYWRvd1Jv
b3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyRTkyRkExNEU1NDA1
ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFNoYWRvd1Jvb3RMaXN0Lmg7IHBhdGggPSBkb20vU2hhZG93Um9vdExpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczRDEzNDUxNENFMzlGRjAwNTdBQkNBIC8qIElu
c3BlY3RvclR5cGVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvclR5cGVCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTczRDEzNDYxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclR5cGVCdWlsZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3Qjc5MTlGMTRDNkE2MjkwMEYyMDJEMSAvKiBD
b250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzMzkxLDYgKzEzMzk1LDggQEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFB
QzA3IC8qIFdlYktpdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJNTcyRTkyRjkxNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLywK
KwkJCQk1NzJFOTJGQTE0RTU0MDU4MDA4N0ZGQkEgLyogU2hhZG93Um9vdExpc3QuaCAqLywKIAkJ
CQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIw
QUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBD
QTgyMDBCMTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTI0MTczLDYgKzI0MTc5
LDcgQEAKIAkJCQk3QTU0ODgxNzE0RTQzMkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0QTk1N0YwNzE0RTI0MTMwMDA0OURCRkIgLyogV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEFERTI1RkExNEUzQkI0
QzAwNEMyMjEzIC8qIFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTcyRTkyRkMxNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTI3MTEyLDYgKzI3MTE5LDcgQEAKIAkJCQlDREFBOEQwQTE0RDcxQjJFMDA2
MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NNLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E1NDg4MTgx
NEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0QTk1N0YwNjE0RTI0MTJBMDA0OURCRkIgLyogV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzJFOTJGQjE0RTU0MDU4MDA4N0ZGQkEgLyogU2hh
ZG93Um9vdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNw
cAppbmRleCA4YjFlYmJiODg4NTFjNzMzMDQ1OTQwYzI4MmM4ZDIzZDE5M2U5ZmFkLi41YjgxMGM1
MmY0M2JiMjE2NDY5YTNjNTNmYmE3Y2YwMTk1NzBiZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKQEAgLTExMyw2ICsxMTMsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5j
cHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5jcHAiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5j
cHAiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuY3BwIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRT
dHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAiCiAjaW5jbHVk
ZSAiU3RhdGljTm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDM1NWYzOGFk
YmU0ZDJkZmEzY2NjYzIwNDlhNGViNjFmZjg2NmY0YmUuLjNjYjFlNTcxYzc3YTc2NWNhOWQzOWRj
OTUzYWU2MWMzZWNlOTI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNTIsOSArMTE1
MiwyNiBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAg
ICAgICAgZGlkUmVjYWxjU3R5bGUoY2hhbmdlKTsKIH0KIAorYm9vbCBFbGVtZW50OjpoYXNTaGFk
b3dSb290KCkgY29uc3QKK3sKKyAgICBpZiAoU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dS
b290TGlzdCgpKQorICAgICAgICByZXR1cm4gbGlzdC0+aGFzU2hhZG93Um9vdCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworU2hhZG93Um9vdExpc3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0
KCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuICZyYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3RMaXN0OworfQorCiBTaGFkb3dS
b290KiBFbGVtZW50OjpzaGFkb3dSb290KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURh
dGEoKSA/IHJhcmVEYXRhKCktPm1fc2hhZG93Um9vdCA6IDA7CisgICAgaWYgKFNoYWRvd1Jvb3RM
aXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKKyAgICAgICAgcmV0dXJuIGxpc3QtPnlvdW5n
ZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgYm9vbCB2YWxpZGF0
ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTExNzUsMTYgKzExOTIsMTkgQEAgc3RhdGljIGJvb2wgdmFs
aWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9v
dCwgRXhjZXAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dS
b290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gcHJwU2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit2b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBz
aGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8U2hhZG93Um9vdD4g
c2hhZG93Um9vdCA9IHBycFNoYWRvd1Jvb3Q7CiAgICAgaWYgKCF2YWxpZGF0ZVNoYWRvd1Jvb3Qo
ZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5nZXQoKSwgZWMpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIGVuc3VyZVJhcmVEYXRhKCk7CisKICAgICBy
ZW1vdmVTaGFkb3dSb290KCk7CiAKLSAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3Qg
PSBzaGFkb3dSb290LmdldCgpOwogICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7
CisgICAgc2hhZG93Um9vdExpc3QoKS0+cHVzaFNoYWRvd1Jvb3Qoc2hhZG93Um9vdC5nZXQoKSk7
CisKICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICBzaGFkb3dSb290LT5pbnNlcnRlZElu
dG9Eb2N1bWVudCgpOwogICAgIGlmIChhdHRhY2hlZCgpKSB7CkBAIC0xMjA0LDE1ICsxMjI0LDEy
IEBAIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQogCiB2b2lkIEVsZW1l
bnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQogewotICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICBp
ZiAoIWhhc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRWxlbWVudFJhcmVE
YXRhKiBkYXRhID0gcmFyZURhdGEoKTsKLSAgICBpZiAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJv
b3QgPSBkYXRhLT5tX3NoYWRvd1Jvb3QpIHsKLSAgICAgICAgZGF0YS0+bV9zaGFkb3dSb290ID0g
MDsKKyAgICB3aGlsZSAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBzaGFkb3dSb290TGlz
dCgpLT5wb3BTaGFkb3dSb290KCkpIHsKICAgICAgICAgZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNl
ZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5nZXQoKSk7CiAKLSAgICAgICAgLy8gUmVtb3ZlIGZyb20g
cmVuZGVyaW5nIHRyZWUKICAgICAgICAgaWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCiAgICAgICAg
ICAgICBvbGRSb290LT5kZXRhY2goKTsKIApAQCAtMTIyMyw5ICsxMjQwLDEwIEBAIHZvaWQgRWxl
bWVudDo6cmVtb3ZlU2hhZG93Um9vdCgpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG9sZFJv
b3QtPnJlbW92ZWRGcm9tVHJlZSh0cnVlKTsKICAgICAgICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAg
ICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgICAgICAgICBpZiAoIWNoaWxkLT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgICAgICAgICBj
aGlsZC0+bGF6eUF0dGFjaCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggOTM4MWUyZjU4MTU4N2Q3MzI1NzBhODMxNDk0MjgzNDg0MTk3
ZjgyOS4uMjI4YWQ4YzJmMmJlMTUyMGYwZTYwYzVmNmQxNzlmMTQ2ZDcwZjRiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVs
ZW1lbnRSYXJlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBTaGFkb3dSb290OworY2xhc3Mg
U2hhZG93Um9vdExpc3Q7CiBjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBlbnVtIFNwZWxs
Y2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CkBAIC0yNTQsNiArMjU1LDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJT
dHlsZSopOwogICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAK
KyAgICBib29sIGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsKKyAgICBTaGFkb3dSb290TGlzdCogc2hh
ZG93Um9vdExpc3QoKSBjb25zdDsKKworICAgIC8vIEZJWE1FOiBUaGVzZSBBUEkgd2lsbCBiZSBt
b3ZlZCB0byBTaGFkb3dSb290TGlzdC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzgzMTMKICAgICBTaGFkb3dSb290KiBzaGFkb3dSb290KCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBTaGFkb3dSb290KiBlbnN1cmVTaGFkb3dSb290KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggY2EzMjExNWU2MTg0NjQ4N2MxOTFkOWZhYTI4NDcw
NmYyZWUwMmFmOC4uNWI3NTNjZDcyYjNlZTdmYjJiOTIxZjllY2E2MTA4NmZhZGE5ZWM3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMjcsMTIgKzI3LDExIEBACiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2hhZG93Um9vdDsK
LQogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGljIE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6
CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC03Miw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAg
IExheW91dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIFNoYWRvd1Jvb3QqIG1fc2hhZG93Um9vdDsKKyAg
ICBTaGFkb3dSb290TGlzdCBtX3NoYWRvd1Jvb3RMaXN0OwogICAgIEF0b21pY1N0cmluZyBtX3No
YWRvd1BzZXVkb0lkOwogCiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKQEAgLTk2LDcgKzk1LDYg
QEAgaW5saW5lIEludFNpemUgZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKQogCiBpbmxp
bmUgRWxlbWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEoKQogICAgIDogbV9taW5pbXVtU2l6
ZUZvclJlc2l6aW5nKGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkpCi0gICAgLCBtX3No
YWRvd1Jvb3QoMCkKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQogICAgICwgbV9udW1iZXJPZlNj
b3BlZEhUTUxTdHlsZUNoaWxkcmVuKDApCiAjZW5kaWYKQEAgLTEwOSw3ICsxMDcsNyBAQCBpbmxp
bmUgRWxlbWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEoKQogCiBpbmxpbmUgRWxlbWVudFJh
cmVEYXRhOjp+RWxlbWVudFJhcmVEYXRhKCkKIHsKLSAgICBBU1NFUlQoIW1fc2hhZG93Um9vdCk7
CisgICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3RMaXN0Lmhhc1NoYWRvd1Jvb3QoKSk7CiB9CiAKIGlu
bGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmNwcAppbmRleCAyOTBiZTNmNmQ0NTI3OTcxZDI4OTA2YmFlM2I3Yjg4MDA2
MjIwOGIyLi43M2M0OThjNTI0NmIzNjZhOWRjMDMxNDJiNjgwZjIzZjI0NzAzMWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogRG9j
dW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3JlYXRlU2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29w
ZSh0aGlzKQorICAgICwgbV9wcmV2KDApCisgICAgLCBtX25leHQoMCkKICAgICAsIG1fYXBwbHlB
dXRob3JTaGVldHMoZmFsc2UpCiAgICAgLCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNl
KQogewpAQCAtNTUsNiArNTcsOSBAQCBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBk
b2N1bWVudCkKIAogU2hhZG93Um9vdDo6flNoYWRvd1Jvb3QoKQogeworICAgIEFTU0VSVCghbV9w
cmV2KTsKKyAgICBBU1NFUlQoIW1fbmV4dCk7CisKICAgICAvLyBXZSBtdXN0IGNhbGwgY2xlYXJS
YXJlRGF0YSgpIGhlcmUgc2luY2UgYSBTaGFkb3dSb290IGNsYXNzIGluaGVyaXRzIFRyZWVTY29w
ZQogICAgIC8vIGFzIHdlbGwgYXMgTm9kZS4gU2VlIGEgY29tbWVudCBvbiBUcmVlU2NvcGUuaCBm
b3IgdGhlIHJlYXNvbi4KICAgICBpZiAoaGFzUmFyZURhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCmluZGV4IDQwMWVlNWU5ZDY2NTVlMTYwMmQxMzc0ZmQ5NDc4ZjVlYTQ2NTYwZjUuLmFkY2Q0
MTBiNjQxMjMxNjg4NmFlOWYzODU4MGNmMzQ0YTg5MzMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCisjaW5jbHVk
ZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
Nyw3ICszOCw4IEBAIGNsYXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcjsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogCi1jbGFzcyBTaGFkb3dSb290IDogcHVi
bGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUgeworY2xhc3MgU2hhZG93Um9v
dCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgRG91
Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD4geworICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRv
dWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+OwogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzMs
NiArNzUsOSBAQCBwdWJsaWM6CiAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBpbmNsdXNp
b25zKCkgY29uc3Q7CiAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBlbnN1cmVJbmNsdXNp
b25zKCk7CiAKKyAgICBTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0
dXJuIHByZXYoKTsgfQorICAgIFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsg
cmV0dXJuIG5leHQoKTsgfQorCiBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CkBAIC04NCw2ICs4OSw4IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7CiAKKyAgICBTaGFkb3dSb290KiBt
X3ByZXY7CisgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1dGhvclNo
ZWV0cyA6IDE7CiAgICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKICAgICBP
d25QdHI8Q29udGVudEluY2x1c2lvblNlbGVjdG9yPiBtX2luY2x1c2lvbnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGUwZmI1ZjEzNzA5YTA4N2EyYzQ1
ZjI1MDY3NjQ0NmE0NDMzMWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3RMaXN0LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworU2hhZG93Um9vdExpc3Q6OlNoYWRvd1Jvb3RMaXN0KCkKK3sKK30KKwor
U2hhZG93Um9vdExpc3Q6On5TaGFkb3dSb290TGlzdCgpCit7CisgICAgQVNTRVJUKCFoYXNTaGFk
b3dSb290KCkpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0OjpwdXNoU2hhZG93Um9vdChTaGFk
b3dSb290KiBzaGFkb3dSb290KQoreworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IG11
bHRpcGxlIHNoYWRvdyByb290IHN1YnRyZWVzIHlldC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jaGk/aWQ9Nzc1MDMKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3Qo
KSk7CisKKyAgICBtX3NoYWRvd1Jvb3RzLnB1c2goc2hhZG93Um9vdCk7Cit9CisKK1NoYWRvd1Jv
b3QqIFNoYWRvd1Jvb3RMaXN0Ojpwb3BTaGFkb3dSb290KCkKK3sKKyAgICBpZiAoIWhhc1NoYWRv
d1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy5y
ZW1vdmVIZWFkKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmEwNjM5OTY0ZTQ2YTVkMjczMzY4YTA2OTQ1Yzc3MTk0OTczMTY2YgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCkBAIC0wLDAgKzEs
NzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFNoYWRvd1Jvb3RMaXN0X2gKKyNkZWZpbmUgU2hhZG93Um9vdExpc3Rf
aAorCisjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1Jvb3Q7Citj
bGFzcyBFbGVtZW50OworCitjbGFzcyBTaGFkb3dSb290TGlzdCB7CitwdWJsaWM6CisgICAgU2hh
ZG93Um9vdExpc3QoKTsKKyAgICB+U2hhZG93Um9vdExpc3QoKTsKKworICAgIGJvb2wgaGFzU2hh
ZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9vdCgpOworICAgIFNo
YWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKTsKKworICAgIHZvaWQgcHVzaFNoYWRvd1Jvb3Qo
U2hhZG93Um9vdCopOworICAgIFNoYWRvd1Jvb3QqIHBvcFNoYWRvd1Jvb3QoKTsKKworcHJpdmF0
ZToKKyAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7Cit9Owor
CitpbmxpbmUgYm9vbCBTaGFkb3dSb290TGlzdDo6aGFzU2hhZG93Um9vdCgpCit7CisgICAgcmV0
dXJuICFtX3NoYWRvd1Jvb3RzLmlzRW1wdHkoKTsKK30KKworaW5saW5lIFNoYWRvd1Jvb3QqIFNo
YWRvd1Jvb3RMaXN0Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QoKQoreworICAgIHJldHVybiBtX3NoYWRv
d1Jvb3RzLmhlYWQoKTsKK30KKworaW5saW5lIFNoYWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0Ojpv
bGRlc3RTaGFkb3dSb290KCkKK3sKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy50YWlsKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126695</attachid>
            <date>2012-02-12 17:56:50 -0800</date>
            <delta_ts>2012-02-12 20:16:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78069-20120213105649.patch</filename>
            <type>text/plain</type>
            <size>24645</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
M2I0ZDRjMDYwOTU0MmZkYjJiM2NkMDg5OWRiNDNlZjA0NmI3NDEyLi4yN2Q3MWJkYTNhMThmYjVl
MDkzZWEwODU0YTI5NzkzNjg1Y2U0ZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wMi0xMCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSGFqaW1lIE1vcml0YS4KKworICAgICAgICBEb3VibHlMaW5rZWRMaXN0IHNob3VsZCBo
YXZlIHRhaWwoKSBtZXRob2QgdG8gdGFrZSB0aGUgbGFzdCBlbGVtZW50LgorCisgICAgICAgICog
d3RmL0RvdWJseUxpbmtlZExpc3QuaDoKKyAgICAgICAgKERvdWJseUxpbmtlZExpc3QpOgorICAg
ICAgICAoV1RGOjo6OnRhaWwpOgorICAgICAgICAoV1RGKToKKwogMjAxMi0wMi0xMiAgUmFwaGFl
bCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbQ01ha2Vd
IE1vdmUgc291cmNlIGZpbGVzIGluIFdURl9IRUFERVJTIHRvIFdURl9TT1VSQ0VTLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDQwNzUxOTU5OWJmNzUxMjcyOGNhMDJiYmJlMmVjNzY0ODMxY2E5NzUuLjFkN2NjMzU0
MTBlYTVhNTA1MDc3OGM5N2YwNWE5ZjQ1NTM0NWEyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxMi0wMi0xMCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgor
CisgICAgICAgIEludHJvZHVjZSBTaGFkb3dSb290TGlzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
SGFqaW1lIE1vcml0YS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0byBpbXBsZW1lbnQgbXVs
dGlwbGUgc2hhZG93IHN1YnRyZWVzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh
IHNoYWRvdyByb290IGxpc3QuIFNoYWRvd1Jvb3RMaXN0IGlzIGEgZG91Ymx5IGxpbmtlZCBsaXN0
LAorICAgICAgICBhbmQgZWFjaCBzaGFkb3cgcm9vdCBub3cgaGFzIGEgeW91bmdlciBzaGFkb3cg
cm9vdCBhbmQgb2xkZXIgc2hhZG93IHJvb3QsCisgICAgICAgIHdoaWNoIGFyZSBhIHByZXZpb3Vz
IGVsZW1lbnQgYW5kIGEgbmV4dCBlbGVtZW50IHJlc3BlY3RpdmVseS4KKyAgICAgICAgU2luY2Ug
YSB2aXN1YWwgdHJlZSB0cmF2ZXJzYWwsIHdoaWNoIHdpbGwgYmUgaW50cm9kdWNlZCBpbiBjb21p
bmcgcGF0Y2hlcywgd2lsbCBuZWVkIGEgb2xkZXIgc2hhZG93IHJvb3QsCisgICAgICAgIHdlIG1h
a2UgYSBzaGFkb3cgcm9vdCBsaXN0IGEgZG91Ymx5IGxpbmtlZCBsaXN0LgorCisgICAgICAgIEhv
d2V2ZXIsIFNoYWRvd1Jvb3RMaXN0IGRvZXMgbm90IGhhdmUgbW9yZSB0aGFuIG9uZSBzaGFkb3cg
cm9vdCBub3cuCisgICAgICAgIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGluIGEgc2VyaWVzIG9mIGNv
bWluZyBwYXRjaGVzLgorCisgICAgICAgIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSwgc2V0U2hhZG93
Um9vdCgpLCBlbnN1cmVTaGFkb3dSb290KCksIGFuZCByZW1vdmVTaGFkb3dSb290KCkgYXJlCisg
ICAgICAgIGVtdWxhdGVkIHVzaW5nIFNoYWRvd1Jvb3RMaXN0IGZvciBhIHdoaWxlLiBUaGVzZSBB
UEkgd2lsbCBiZSByZXBsYWNlZCB0byBTaGFkb3dSb290TGlzdCBBUEkgbGF0ZXIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omhh
c1NoYWRvd1Jvb3QpOgorICAgICAgICAgIFJldHJ1bnMgdHJ1ZSBpZiBhbiBlbGVtZW50IGhhcyBh
IHNoYWRvd1Jvb3QuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaGFkb3dSb290TGlzdCk6
CisgICAgICAgICAgR2V0cyBzaGFkb3cgcm9vdCBsaXN0IGlmIGFueS4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnNoYWRvd1Jvb3QpOgorICAgICAgICAgIEdldHMgdGhlIGZpcnN0IHNoYWRv
dyByb290IGZyb20gdGhlIHNoYWRvdyByb290IGxpc3QuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzZXRTaGFkb3dSb290KToKKyAgICAgICAgICBTZXRzIHRoZSBmaXJzdCBzaGFkb3cgcm9v
dCB0byB0aGUgc2hhZG93IHJvb3QgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJl
bW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAgIFJlbW92ZXMgYWxsIHRoZSBzaGFkb3cgcm9vdHMg
aW4gdGhlIHNoYWRvdyByb290IGxpc3QuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRS
YXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgICBIYXMgc2hhZG93
IHJvb3QgbGlzdHMgaW5zdGVhZCBvZiBzaGFkb3cgcm9vdC4KKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRSYXJlRGF0YTo6fkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp+U2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93Um9vdDo6eW91bmdlclNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dDo6b2xkZXJTaGFkb3dSb290KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExp
c3Q6OlNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0Ojp+
U2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnB1c2hT
aGFkb3dSb290KToKKyAgICAgICAgICBBZGRzIGEgc2hhZG93IHJvb3QgaW50byB0aGUgbGlzdC4g
Q3VycmVudGx5IHdlIGxpbWl0IHRoZSBsaXN0IGNhbiBoYXZlIG9ubHkgb25lIHNoYWRvdyByb290
LgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnBvcFNoYWRvd1Jvb3QpOgorICAg
ICAgICAgIFJlbW92ZXMgYW5kIHJldHVybnMgdGhlIHlvdW5nZXN0IHNoYWRvdyByb290IGlmIGFu
eS4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RMaXN0OjpoYXNTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RM
aXN0Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExp
c3Q6Om9sZGVzdFNoYWRvd1Jvb3QpOgorCiAyMDEyLTAyLTEyICBIYWppbWUgTW9ycml0YSAgPG1v
cnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBhZ2Ugc2hvdWxkIGhhdmUgbGVzcyBpbnRy
dXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkgaW1wbGVtZW50YXRpb24gb2JqZWN0cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvRG91Ymx5TGlua2VkTGlzdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmgKaW5kZXggMzYxZDcxZDdi
NTczMjY3OTc5ZTQ0YzRiN2Q2ZmIzODZkNjBmOTdiOC4uY2QwNjdlZjBhODc2OGFmYjRkMDBjNTU3
MzNiNTAxNWUyNDllMzA0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9E
b3VibHlMaW5rZWRMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Eb3VibHlM
aW5rZWRMaXN0LmgKQEAgLTc3LDYgKzc3LDggQEAgcHVibGljOgogICAgIFQqIGhlYWQoKSBjb25z
dDsKICAgICBUKiByZW1vdmVIZWFkKCk7CiAKKyAgICBUKiB0YWlsKCkgY29uc3Q7CisKICAgICB2
b2lkIHB1c2goVCopOwogICAgIHZvaWQgYXBwZW5kKFQqKTsKICAgICB2b2lkIHJlbW92ZShUKik7
CkBAIC0xMTYsNiArMTE4LDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBEb3Vi
bHlMaW5rZWRMaXN0PFQ+OjpoZWFkKCkgY29uc3QKICAgICByZXR1cm4gbV9oZWFkOwogfQogCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogRG91Ymx5TGlua2VkTGlzdDxUPjo6dGFpbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFpbDsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHZvaWQgRG91Ymx5TGlua2VkTGlzdDxUPjo6cHVzaChUKiBub2RlKQogewogICAgIGlm
ICghbV9oZWFkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDM0YjQ1NDkyYjg0YzFkZDJmZDM3
MGNlZDg1YWE1M2E2NWNlOWNjZmIuLmE3ZjkwZjFkNThmNDI0NWRhOTJmZGM3OTQzOWI3MTBmOWE1
ODJiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDAsNiArNjAwLDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwCiAgICAgZG9tL1NlbGVjdG9y
UXVlcnkuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCisgICAgZG9tL1NoYWRvd1Jvb3RMaXN0
LmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAogICAgIGRvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggMzQ4YTY1MWFlZTMzMGZjMTAwMWNhNWNlZjBlNDliMjEwZGJhYWI0
Yi4uN2EyN2U2YTQzNzg4NjExN2M4ZjQ1ZmM3ODk1NjAwOWFhNTdhY2E0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjU5LDYgKzE2NTksOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNw
bGl0U3RyaW5nLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggOGU0ZTkwN2MyNDBkYzg0NTQ1MjQyYzUyYzJiZjhiYzRjYWVkYWNkNS4uZmY2MGFj
M2FmMjg0ZTkzYmUyNzE3OTBiNThkNDI2ZDE4M2MwZTM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NjYs
NiArNTY2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgXAog
ICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKyAg
ICBkb20vU2hhZG93Um9vdExpc3QuY3BwIFwKICAgICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAg
XAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmNw
cCBcCkBAIC0xNjcwLDYgKzE2NzEsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIFwKICAgICBkb20vU2VsZWN0b3JRdWVyeS5oIFwKICAgICBkb20vU2hh
ZG93Um9vdC5oIFwKKyAgICBkb20vU2hhZG93Um9vdExpc3QuaCBcCiAgICAgZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAgIGRvbS9TdHlsZWRF
bGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDcxYzUyNjQxZDFlOGJlYTI0ZjRlNjM0MTMw
MmRlZjhlNTY0OTc5M2YuLjAwOWNjNDU2ZDVkZjBlOGMyMDg0ODIyMzk4YWExYjI0YzE0MDZiMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTYxOSw2ICs2MTksNyBAQAogICAgICAgICAgICAgJ2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIu
aCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCisgICAgICAgICAgICAnZG9tL1No
YWRvd1Jvb3RMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAog
ICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0
LmgnLApAQCAtNTEwMSw2ICs1MTAyLDggQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVy
eS5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9TaGFkb3dSb290LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290TGlzdC5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290TGlzdC5oJywKICAgICAgICAgICAgICdkb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxp
c3QuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhiNTE4Y2U1M2ZmMzdhOWU1MjIxNTc0NmE3ZGUwODI1YWE1MGIzN2MuLmVmNmZiMDFiYzJjMzg4
MzFmYmE0OTlkNjYyMTY5MzdmMDgxOWI5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2MDIsNiArMTYwMiw4IEBACiAJCTUz
QzgyOThFMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNDODI5OEMxM0Q4RDkyNzAwREUy
REVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDcz
NTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1l
LmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyRTkyRkIxNEU1NDA1ODAwODdGRkJBIC8q
IFNoYWRvd1Jvb3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MkU5MkY5MTRFNTQwNTgwMDg3RkZCQSAvKiBTaGFkb3dSb290TGlzdC5jcHAg
Ki87IH07CisJCTU3MkU5MkZDMTRFNTQwNTgwMDg3RkZCQSAvKiBTaGFkb3dSb290TGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRTkyRkExNEU1
NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmggKi87IH07CiAJCTU3M0QxMzQ3MTRDRTM5
RkYwMDU3QUJDQSAvKiBJbnNwZWN0b3JUeXBlQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzNEMTM0NTE0Q0UzOUZGMDA1N0FCQ0EgLyog
SW5zcGVjdG9yVHlwZUJ1aWxkZXIuY3BwICovOyB9OwogCQk1N0I3OTFBMzE0QzZBNjI5MDBGMjAy
RDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Qjc5MTlGMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovOyB9OwogCQk1N0I3OTFBNDE0QzZBNjI5MDBGMjAy
RDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I3OTFBMDE0QzZBNjI5MDBGMjAyRDEgLyogQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmggKi87IH07CkBAIC04NDY0LDYgKzg0NjYsOCBAQAogCQk1M0M4
Mjk4QzEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRmxleGlibGVCb3guaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlm
aWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OworCQk1NzJFOTJGOTE0RTU0MDU4MDA4N0ZGQkEgLyogU2hhZG93
Um9vdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhZG93
Um9vdExpc3QuY3BwOyBwYXRoID0gZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcyRTkyRkExNEU1NDA1ODAwODdGRkJBIC8qIFNoYWRvd1Jvb3RM
aXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYWRvd1Jvb3RMaXN0Lmg7
IHBhdGggPSBkb20vU2hhZG93Um9vdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTczRDEzNDUxNENFMzlGRjAwNTdBQkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclR5cGVCdWlsZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczRDEzNDYxNENFMzlGRjAwNTdB
QkNBIC8qIEluc3BlY3RvclR5cGVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluc3BlY3RvclR5cGVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3Qjc5MTlGMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudEluY2x1c2lv
blNlbGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMzk1LDYgKzEz
Mzk5LDggQEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTcyRTkyRjkxNEU1NDA1ODAw
ODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmNwcCAqLywKKwkJCQk1NzJFOTJGQTE0RTU0MDU4MDA4
N0ZGQkEgLyogU2hhZG93Um9vdExpc3QuaCAqLywKIAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0Qy
NzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNv
cmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLywKQEAgLTI0MTgwLDYgKzI0MTg2LDcgQEAKIAkJCQk3QTU0ODgxNzE0RTQz
MkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTk1
N0YwNzE0RTI0MTMwMDA0OURCRkIgLyogV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEFERTI1RkExNEUzQkI0QzAwNEMyMjEzIC8qIFdlYlNvY2tldEV4
dGVuc2lvblByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyRTkyRkMxNEU1NDA1ODAw
ODdGRkJBIC8qIFNoYWRvd1Jvb3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3MTIwLDYgKzI3
MTI3LDcgQEAKIAkJCQlDREFBOEQwQTE0RDcxQjJFMDA2MUVBNjAgLyogUGxhdGZvcm1DbG9ja0NN
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E1NDg4MTgxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBh
dGNoU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QTk1N0YwNjE0RTI0MTJBMDA0OURC
RkIgLyogV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1NzJFOTJGQjE0RTU0MDU4MDA4N0ZGQkEgLyogU2hhZG93Um9vdExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBkNjMwMjg3ZGM3N2FkZmJj
OWUwZGRmNTJiZTAwZTM3ZTQ0NzQyZjFmLi44ZWM0YmZiNmI3MTMyYTI3OGEwNjA0MTE1Y2VkYWNi
ZjM0MWRmZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTExNyw2ICsxMTcs
NyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JR
dWVyeS5jcHAiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5jcHAiCisjaW5jbHVkZSAiU2hhZG93Um9v
dExpc3QuY3BwIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0
YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuY3BwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDcwMDJjYTE2OGVjOTc3MzAwNGFjYmIxMTUzMDBlYzQ3
MDI0OTAwNDAuLjRjNWU0MWNjMzU4ZjFmYTVhNjgyOTZkZTBkZjc5NzBjOTBmNzViMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNTIsOSArMTE1MiwyNiBAQCB2b2lkIEVsZW1lbnQ6OnJl
Y2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgZGlkUmVjYWxjU3R5bGUoY2hh
bmdlKTsKIH0KIAorYm9vbCBFbGVtZW50OjpoYXNTaGFkb3dSb290KCkgY29uc3QKK3sKKyAgICBp
ZiAoU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dSb290TGlzdCgpKQorICAgICAgICByZXR1
cm4gbGlzdC0+aGFzU2hhZG93Um9vdCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworU2hhZG93
Um9vdExpc3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RMaXN0KCkgY29uc3QKK3sKKyAgICBpZiAoIWhh
c1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuICZyYXJlRGF0YSgp
LT5tX3NoYWRvd1Jvb3RMaXN0OworfQorCiBTaGFkb3dSb290KiBFbGVtZW50OjpzaGFkb3dSb290
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCktPm1fc2hh
ZG93Um9vdCA6IDA7CisgICAgaWYgKFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExp
c3QoKSkKKyAgICAgICAgcmV0dXJuIGxpc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOworICAgIHJl
dHVybiAwOwogfQogCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRv
Y3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEx
NzUsMTYgKzExOTIsMTkgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50
KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9v
dD4gcHJwU2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEVsZW1lbnQ6OnNldFNo
YWRvd1Jvb3QoUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBSZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93Um9vdCA9IHBycFNoYWRvd1Jv
b3Q7CiAgICAgaWYgKCF2YWxpZGF0ZVNoYWRvd1Jvb3QoZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5n
ZXQoKSwgZWMpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisg
ICAgICAgIGVuc3VyZVJhcmVEYXRhKCk7CisKICAgICByZW1vdmVTaGFkb3dSb290KCk7CiAKLSAg
ICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBzaGFkb3dSb290LmdldCgpOwogICAg
IHNoYWRvd1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7CisgICAgc2hhZG93Um9vdExpc3QoKS0+
cHVzaFNoYWRvd1Jvb3Qoc2hhZG93Um9vdC5nZXQoKSk7CisKICAgICBpZiAoaW5Eb2N1bWVudCgp
KQogICAgICAgICBzaGFkb3dSb290LT5pbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIGlmIChh
dHRhY2hlZCgpKSB7CkBAIC0xMjA0LDE1ICsxMjI0LDEyIEBAIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6
OmVuc3VyZVNoYWRvd1Jvb3QoKQogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQog
ewotICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gcmFyZURhdGEoKTsK
LSAgICBpZiAoUmVmUHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBkYXRhLT5tX3NoYWRvd1Jvb3Qp
IHsKLSAgICAgICAgZGF0YS0+bV9zaGFkb3dSb290ID0gMDsKKyAgICB3aGlsZSAoUmVmUHRyPFNo
YWRvd1Jvb3Q+IG9sZFJvb3QgPSBzaGFkb3dSb290TGlzdCgpLT5wb3BTaGFkb3dSb290KCkpIHsK
ICAgICAgICAgZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5n
ZXQoKSk7CiAKLSAgICAgICAgLy8gUmVtb3ZlIGZyb20gcmVuZGVyaW5nIHRyZWUKICAgICAgICAg
aWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCiAgICAgICAgICAgICBvbGRSb290LT5kZXRhY2goKTsK
IApAQCAtMTIyMyw5ICsxMjQwLDEwIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCgp
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tVHJlZSh0cnVl
KTsKICAgICAgICAgaWYgKGF0dGFjaGVkKCkpIHsKLSAgICAgICAgICAgIGZvciAoTm9kZSogY2hp
bGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQor
ICAgICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLT5h
dHRhY2hlZCgpKQogICAgICAgICAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYzUz
ZGNiYTViZmRjMjgzNjA2ZDY1ZDUyNTU5MzA5NzBiYzQ2MjY0Zi4uMTZmZDU2NzNmODU0ZGJmNWVj
MjllNjBjMTc0NTE2ZTFmMzhkYWQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00Miw2ICs0Miw3
IEBAIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIElu
dFNpemU7CiBjbGFzcyBTaGFkb3dSb290OworY2xhc3MgU2hhZG93Um9vdExpc3Q7CiBjbGFzcyBX
ZWJLaXRBbmltYXRpb25MaXN0OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CkBA
IC0yNTYsNiArMjU3LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZvaWQgcmVjYWxj
U3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKKyAgICBib29sIGhhc1NoYWRvd1Jvb3Qo
KSBjb25zdDsKKyAgICBTaGFkb3dSb290TGlzdCogc2hhZG93Um9vdExpc3QoKSBjb25zdDsKKwor
ICAgIC8vIEZJWE1FOiBUaGVzZSBBUEkgd2lsbCBiZSBtb3ZlZCB0byBTaGFkb3dSb290TGlzdC4K
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMTMKICAg
ICBTaGFkb3dSb290KiBzaGFkb3dSb290KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaGFkb3dSb290
KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290
KiBlbnN1cmVTaGFkb3dSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5k
ZXggY2EzMjExNWU2MTg0NjQ4N2MxOTFkOWZhYTI4NDcwNmYyZWUwMmFmOC4uNWI3NTNjZDcyYjNl
ZTdmYjJiOTIxZjllY2E2MTA4NmZhZGE5ZWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaApAQCAtMjcsMTIgKzI3LDExIEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCisjaW5jbHVk
ZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgU2hhZG93Um9vdDsKLQogY2xhc3MgRWxlbWVudFJhcmVEYXRh
IDogcHVibGljIE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7
CkBAIC03Miw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFNpemUgbV9taW5pbXVtU2l6
ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwot
ICAgIFNoYWRvd1Jvb3QqIG1fc2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290TGlzdCBtX3NoYWRv
d1Jvb3RMaXN0OwogICAgIEF0b21pY1N0cmluZyBtX3NoYWRvd1BzZXVkb0lkOwogCiAjaWYgRU5B
QkxFKFNUWUxFX1NDT1BFRCkKQEAgLTk2LDcgKzk1LDYgQEAgaW5saW5lIEludFNpemUgZGVmYXVs
dE1pbmltdW1TaXplRm9yUmVzaXppbmcoKQogCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjpFbGVt
ZW50UmFyZURhdGEoKQogICAgIDogbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nKGRlZmF1bHRNaW5p
bXVtU2l6ZUZvclJlc2l6aW5nKCkpCi0gICAgLCBtX3NoYWRvd1Jvb3QoMCkKICNpZiBFTkFCTEUo
U1RZTEVfU0NPUEVEKQogICAgICwgbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKDAp
CiAjZW5kaWYKQEAgLTEwOSw3ICsxMDcsNyBAQCBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjpFbGVt
ZW50UmFyZURhdGEoKQogCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjp+RWxlbWVudFJhcmVEYXRh
KCkKIHsKLSAgICBBU1NFUlQoIW1fc2hhZG93Um9vdCk7CisgICAgQVNTRVJUKCFtX3NoYWRvd1Jv
b3RMaXN0Lmhhc1NoYWRvd1Jvb3QoKSk7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0
YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAz
NGY2OTQ2NWRlOTdmM2NjMTRmZWUxZDQ5ZTQ1NTczYmU1YTcyY2RlLi40MTc1YzIyYjdiOTE3MDA0
YTM2OTgyNzExNGMwYWVjNjVlZDIxNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBA
IC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jv
b3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCwg
Q3JlYXRlU2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29wZSh0aGlzKQorICAgICwgbV9wcmV2KDAp
CisgICAgLCBtX25leHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTaGVldHMoZmFsc2UpCiAgICAg
LCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQogewpAQCAtNTUsNiArNTcsOSBAQCBT
aGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKIAogU2hhZG93Um9vdDo6
flNoYWRvd1Jvb3QoKQogeworICAgIEFTU0VSVCghbV9wcmV2KTsKKyAgICBBU1NFUlQoIW1fbmV4
dCk7CisKICAgICAvLyBXZSBtdXN0IGNhbGwgY2xlYXJSYXJlRGF0YSgpIGhlcmUgc2luY2UgYSBT
aGFkb3dSb290IGNsYXNzIGluaGVyaXRzIFRyZWVTY29wZQogICAgIC8vIGFzIHdlbGwgYXMgTm9k
ZS4gU2VlIGEgY29tbWVudCBvbiBUcmVlU2NvcGUuaCBmb3IgdGhlIHJlYXNvbi4KICAgICBpZiAo
aGFzUmFyZURhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDQwMWVlNWU5ZDY2NTVl
MTYwMmQxMzc0ZmQ5NDc4ZjVlYTQ2NTYwZjUuLmFkY2Q0MTBiNjQxMjMxNjg4NmFlOWYzODU4MGNm
MzQ0YTg5MzMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCisjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3Qu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw3ICszOCw4IEBAIGNsYXNzIENvbnRl
bnRJbmNsdXNpb25TZWxlY3RvcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTENvbnRlbnRF
bGVtZW50OwogCi1jbGFzcyBTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1
YmxpYyBUcmVlU2NvcGUgeworY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdt
ZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93
Um9vdD4geworICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRv
d1Jvb3Q+OwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0
ZShEb2N1bWVudCopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzMsNiArNzUsOSBAQCBwdWJsaWM6CiAgICAg
Q29udGVudEluY2x1c2lvblNlbGVjdG9yKiBpbmNsdXNpb25zKCkgY29uc3Q7CiAgICAgQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yKiBlbnN1cmVJbmNsdXNpb25zKCk7CiAKKyAgICBTaGFkb3dSb290
KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIHByZXYoKTsgfQorICAgIFNoYWRv
d1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG5leHQoKTsgfQorCiBwcml2
YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TaGFkb3dSb290
KCk7CkBAIC04NCw2ICs4OSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0NvbnRlbnRFbGVt
ZW50KCkgY29uc3Q7CiAKKyAgICBTaGFkb3dSb290KiBtX3ByZXY7CisgICAgU2hhZG93Um9vdCog
bV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1dGhvclNoZWV0cyA6IDE7CiAgICAgYm9vbCBtX25l
ZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKICAgICBPd25QdHI8Q29udGVudEluY2x1c2lvblNl
bGVjdG9yPiBtX2luY2x1c2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44OGUwZmI1ZjEzNzA5YTA4N2EyYzQ1ZjI1MDY3NjQ0NmE0NDMzMWYwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3RM
aXN0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2hhZG93Um9v
dExpc3Q6OlNoYWRvd1Jvb3RMaXN0KCkKK3sKK30KKworU2hhZG93Um9vdExpc3Q6On5TaGFkb3dS
b290TGlzdCgpCit7CisgICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworfQorCit2b2lkIFNo
YWRvd1Jvb3RMaXN0OjpwdXNoU2hhZG93Um9vdChTaGFkb3dSb290KiBzaGFkb3dSb290KQorewor
ICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IG11bHRpcGxlIHNoYWRvdyByb290IHN1YnRy
ZWVzIHlldC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jaGk/aWQ9
Nzc1MDMKKyAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisKKyAgICBtX3NoYWRvd1Jvb3Rz
LnB1c2goc2hhZG93Um9vdCk7Cit9CisKK1NoYWRvd1Jvb3QqIFNoYWRvd1Jvb3RMaXN0Ojpwb3BT
aGFkb3dSb290KCkKK3sKKyAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1YmNhYTUxYzhiOTE5OGZj
NDVkZDczOTM3YzI4ODU2NTllYTAzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290TGlzdC5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNoYWRvd1Jv
b3RMaXN0X2gKKyNkZWZpbmUgU2hhZG93Um9vdExpc3RfaAorCisjaW5jbHVkZSA8d3RmL0RvdWJs
eUxpbmtlZExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNoYWRvd1Jv
b3Q7CitjbGFzcyBFbGVtZW50OworCitjbGFzcyBTaGFkb3dSb290TGlzdCB7CitwdWJsaWM6Cisg
ICAgU2hhZG93Um9vdExpc3QoKTsKKyAgICB+U2hhZG93Um9vdExpc3QoKTsKKworICAgIGJvb2wg
aGFzU2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9vdCgpOwor
ICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKTsKKworICAgIHZvaWQgcHVzaFNoYWRv
d1Jvb3QoU2hhZG93Um9vdCopOworICAgIFNoYWRvd1Jvb3QqIHBvcFNoYWRvd1Jvb3QoKTsKKwor
cHJpdmF0ZToKKyAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2hhZG93Um9vdExpc3QpOworfTsKKworaW5saW5l
IGJvb2wgU2hhZG93Um9vdExpc3Q6Omhhc1NoYWRvd1Jvb3QoKQoreworICAgIHJldHVybiAhbV9z
aGFkb3dSb290cy5pc0VtcHR5KCk7Cit9CisKK2lubGluZSBTaGFkb3dSb290KiBTaGFkb3dSb290
TGlzdDo6eW91bmdlc3RTaGFkb3dSb290KCkKK3sKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy5o
ZWFkKCk7Cit9CisKK2lubGluZSBTaGFkb3dSb290KiBTaGFkb3dSb290TGlzdDo6b2xkZXN0U2hh
ZG93Um9vdCgpCit7CisgICAgcmV0dXJuIG1fc2hhZG93Um9vdHMudGFpbCgpOworfQorCit9IC8v
IG5hbWVzcGFjZQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>