<?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>124571</bug_id>
          
          <creation_ts>2013-11-19 02:38:00 -0800</creation_ts>
          <short_desc>Generate toHTMLFooElement() to clean up static_cast&lt;&gt;</short_desc>
          <delta_ts>2013-11-20 20:43:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>124669</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>952007</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 02:38:00 -0800</bug_when>
    <thetext>Though there are a lot of clean up commits before, there are still use of static_cast&lt;HTMLFooElement*&gt;. To clean up them, we need to generate toHTMLDetails|Meta|Summary|TableSection|TableCaptionElement().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952009</commentid>
    <comment_count>1</comment_count>
      <attachid>217282</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 02:40:18 -0800</bug_when>
    <thetext>Created attachment 217282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952025</commentid>
    <comment_count>2</comment_count>
      <attachid>217282</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-19 04:21:55 -0800</bug_when>
    <thetext>Comment on attachment 217282
Patch

Attachment 217282 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/28828050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952038</commentid>
    <comment_count>3</comment_count>
      <attachid>217288</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 05:03:36 -0800</bug_when>
    <thetext>Created attachment 217288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952104</commentid>
    <comment_count>4</comment_count>
      <attachid>217288</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-19 09:35:01 -0800</bug_when>
    <thetext>Comment on attachment 217288
Patch

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

Patch is fine as is. I see some obvious opportunities for cleanup that could be done as part of this or separately.

&gt; Source/WebCore/html/HTMLTableElement.cpp:76
&gt;      for (Node* child = firstChild(); child; child = child-&gt;nextSibling()) {
&gt;          if (child-&gt;hasTagName(captionTag))
&gt; -            return static_cast&lt;HTMLTableCaptionElement*&gt;(child);
&gt; +            return toHTMLTableCaptionElement(child);
&gt;      }
&gt;      return 0;

This entire function should just be:

    return childrenOfType&lt;HTMLTableCaptionElement&gt;(*this).first();

No need for a loop at all.

&gt; Source/WebCore/html/HTMLTableRowElement.cpp:84
&gt; +            HTMLTableSectionElement* section = toHTMLTableSectionElement(node);

Should use a reference rather than a pointer here for this local.

&gt; Source/WebCore/html/MediaDocument.cpp:96
&gt; +    HTMLSourceElement* source = toHTMLSourceElement(sourceElement.get());

Should use a reference rather than a pointer here for this local.

&gt; Source/WebCore/html/shadow/DetailsMarkerControl.cpp:67
&gt;      Element* element = shadowHost();
&gt; -    ASSERT_WITH_SECURITY_IMPLICATION(!element || element-&gt;hasTagName(summaryTag));
&gt; -    return static_cast&lt;HTMLSummaryElement*&gt;(element);
&gt; +    return toHTMLSummaryElement(element);

Doesn’t seem like we need the local variable here any more.

&gt; Source/WebCore/page/SpatialNavigation.cpp:761
&gt; +    return candidate.isFrameOwnerElement() ? toHTMLFrameOwnerElement(candidate.visibleNode) : 0;

nullptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952362</commentid>
    <comment_count>5</comment_count>
      <attachid>217367</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 18:27:55 -0800</bug_when>
    <thetext>Created attachment 217367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952363</commentid>
    <comment_count>6</comment_count>
      <attachid>217288</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 18:30:28 -0800</bug_when>
    <thetext>Comment on attachment 217288
Patch

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

Fixed all other nits.

&gt;&gt; Source/WebCore/html/HTMLTableElement.cpp:76
&gt;&gt;      return 0;
&gt; 
&gt; This entire function should just be:
&gt; 
&gt;     return childrenOfType&lt;HTMLTableCaptionElement&gt;(*this).first();
&gt; 
&gt; No need for a loop at all.

I would like to fix this on new bug. I&apos;m going to file a bug, then adding you to CC.

&gt;&gt; Source/WebCore/html/MediaDocument.cpp:96
&gt;&gt; +    HTMLSourceElement* source = toHTMLSourceElement(sourceElement.get());
&gt; 
&gt; Should use a reference rather than a pointer here for this local.

Darin, I&apos;d like to check if you mean below style before landing.

HTMLSourceElement&amp; source = *toHTMLSourceElement(sourceElement.get());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952371</commentid>
    <comment_count>7</comment_count>
      <attachid>217371</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 18:36:34 -0800</bug_when>
    <thetext>Created attachment 217371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952413</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 21:17:09 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; HTMLSourceElement&amp; source = *toHTMLSourceElement(sourceElement.get());

Darin, if this isn&apos;t correct, please let me know. I believe this patch is fine as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952428</commentid>
    <comment_count>9</comment_count>
      <attachid>217382</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-19 22:16:16 -0800</bug_when>
    <thetext>Created attachment 217382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952449</commentid>
    <comment_count>10</comment_count>
      <attachid>217382</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 23:19:16 -0800</bug_when>
    <thetext>Comment on attachment 217382
Patch

Clearing flags on attachment: 217382

Committed r159551: &lt;http://trac.webkit.org/changeset/159551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952450</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 23:19:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952653</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 10:14:49 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 124669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952659</commentid>
    <comment_count>13</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-20 10:18:25 -0800</bug_when>
    <thetext>This hits asserts

http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK2%20(Tests)/r159551%20(576)/results.html

ASSERTION FAILED: !node || (WebCore::isHTMLTableSectionElement(*node))
/Volumes/Data/slave/mavericks-debug/build/Source/WebCore/html/HTMLTableSectionElement.h(62) : WebCore::HTMLTableSectionElement *WebCore::toHTMLTableSectionElement(WebCore::Node *)
1   0x10b8f4f70 WTFCrash
2   0x10d118b0f WebCore::toHTMLTableSectionElement(WebCore::Node*)
3   0x10d115d5d WebCore::HTMLTableElement::tFoot() const
4   0x10d5aefcf WebCore::jsHTMLTableElementTFoot(JSC::ExecState*, JSC::JSValue, JSC::PropertyName)
5   0x10b2b554f JSC::PropertySlot::getValue(JSC::ExecState*, JSC::PropertyName) const
6   0x10b2d0153 JSC::JSValue::get(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;) const
7   0x10b715ccb llint_slow_path_get_by_id
8   0x10b7209af llint_op_get_by_id

Some of the assertions are probably wrong. Note that multiple tags map to HTMLTableSectionElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952688</commentid>
    <comment_count>14</comment_count>
      <attachid>217382</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-20 11:00:41 -0800</bug_when>
    <thetext>Comment on attachment 217382
Patch

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

&gt; Source/WebCore/html/HTMLTagNames.in:121
&gt; +tbody interfaceName=HTMLTableSectionElement, generateTypeHelpers

Aha. This is wrong, and I should have spotted that during my original review! tbody is only one of the three tags that maps to HTMLTableSectionElement

You should re-land this patch with the parts other than the HTMLTableSectionElement part, and then tackle that separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952897</commentid>
    <comment_count>15</comment_count>
      <attachid>217509</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-20 18:01:09 -0800</bug_when>
    <thetext>Created attachment 217509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952898</commentid>
    <comment_count>16</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-20 18:03:10 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 217382 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217382&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLTagNames.in:121
&gt; &gt; +tbody interfaceName=HTMLTableSectionElement, generateTypeHelpers
&gt; 
&gt; Aha. This is wrong, and I should have spotted that during my original review! tbody is only one of the three tags that maps to HTMLTableSectionElement
&gt; 
&gt; You should re-land this patch with the parts other than the HTMLTableSectionElement part, and then tackle that separately.

Darin, I&apos;m sorry. It was my fault. I remove to support toHTMLTableSectionElement() in this patch. I will take a look it on new bug. I will request a review after checking on Mac. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952907</commentid>
    <comment_count>17</comment_count>
      <attachid>217509</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-20 19:31:01 -0800</bug_when>
    <thetext>Comment on attachment 217509
Patch

There is no regression on Mac with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952908</commentid>
    <comment_count>18</comment_count>
      <attachid>217513</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-20 19:33:48 -0800</bug_when>
    <thetext>Created attachment 217513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952927</commentid>
    <comment_count>19</comment_count>
      <attachid>217513</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 20:43:25 -0800</bug_when>
    <thetext>Comment on attachment 217513
Patch

Clearing flags on attachment: 217513

Committed r159604: &lt;http://trac.webkit.org/changeset/159604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952928</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 20:43:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217282</attachid>
            <date>2013-11-19 02:40:18 -0800</date>
            <delta_ts>2013-11-19 05:03:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131119194016.patch</filename>
            <type>text/plain</type>
            <size>18452</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE0YTM4ZjE5ODkwYmU4
Njk1MWM3NDUxMDQzYjU1OGZkNzg5NTVmMS4uZTI1Nzk3NDRkZDcyNGEzOTdkMjkyNzliNzhmMGY1
NDViMDk4ZDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTE5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBs
b3Qgb2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1
c2Ugb2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2Ug
bmVlZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJs
ZVNlY3Rpb258VGFibGVDYXB0aW9uRWxlbWVudCgpLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwg
b3RoZXIgc3RhdGljX2Nhc3Q8PiBhcmUgcmVtb3ZlZCBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTERldGFp
bHNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgICog
aHRtbC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzaG91bGRBbGxvd1F1
aWNrVGltZUNsYXNzSWRRdWlyayk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1D
b250cm9sKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJh
Y2spOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQpOgorICAgICAgICAqIGh0
bWwvSFRNTFN1bW1hcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUYWJsZUVsZW1lbnQ6OnRIZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVs
ZW1lbnQ6OnRGb290KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RC
b2R5KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5kZXgpOgorICAgICAgICAqIGh0bWwv
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5p
bjoKKyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRldGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoYW5kbGVG
YWxsYmFja0NvbnRlbnQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50
KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyk6CisgICAgICAgICogcGFnZS9GcmFtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVu
dCk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpmcmFtZU93bmVyRWxlbWVudCk6CisKIDIwMTMtMTEtMTggIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIxNTk0MzAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCA2
MWIwM2Q0ZjBjYmYwZWRmM2Y2OGI4NzZlYzE1ODQ4NDA4Y2I1YWNiLi5jMTQyOGU2YTc5ZDY0YzMy
MWM0OTNiMWFkN2NhNTNiZmNiYjE2OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmgKQEAgLTQ0LDYgKzQ0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNPcGVu
OwogfTsKIAorTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRhaWxzRWxlbWVudCkKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERldGFpbHNFbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGVmYWI0MjA3YmM3NDYyYzkzN2Ex
MzM0OGNmNWZlMmVkNDVlNzcxODQuLjZmNTc3NjFmNmZlZWE5MjkwZGEyZGVhODM3YWMyYmJhNmY0
ZjM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzUw
OSw3ICszNTA5LDcgQEAgVVJMIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGls
ZChDb250ZW50VHlwZSogY29udGVudFR5cGUsIFN0cmluZyoga2UKICAgICAgICAgaWYgKG5vZGUu
cGFyZW50Tm9kZSgpICE9IHRoaXMpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBz
b3VyY2UgPSBzdGF0aWNfY2FzdDxIVE1MU291cmNlRWxlbWVudCo+KCZub2RlKTsKKyAgICAgICAg
c291cmNlID0gdG9IVE1MU291cmNlRWxlbWVudCgmbm9kZSk7CiAKICAgICAgICAgLy8gSWYgY2Fu
ZGlkYXRlIGRvZXMgbm90IGhhdmUgYSBzcmMgYXR0cmlidXRlLCBvciBpZiBpdHMgc3JjIGF0dHJp
YnV0ZSdzIHZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcgLi4uIGp1bXAgZG93biB0byB0aGUgZmFp
bGVkIHN0ZXAgYmVsb3cKICAgICAgICAgbWVkaWFVUkwgPSBzb3VyY2UtPmdldE5vbkVtcHR5VVJM
QXR0cmlidXRlKHNyY0F0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKaW5k
ZXggZjk3MTE5ZWIxNjE4YTU0OTk0ZTcyNWYxNDlkYzRjOWRhZjYxMThkZS4uN2U0MGRlOThkNjRl
OTU1YWJiMjkwNTRjOGJmM2Q0ZGM5OWQwMGIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5oCkBAIC00NCw2ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzKCk7
CiB9OwogCitOT0RFX1RZUEVfQ0FTVFMoSFRNTE1ldGFFbGVtZW50KQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcAppbmRleCBhZTVhNDY1YWU4NDE4ODRlMzllMDFjODEwYTI2MTJjYmE2MDRhYjBhLi5lOTlm
YTExNzc1MjM1ZmM5ZWI0ODk4M2U4ZGM3ZjFiYjVkOWM1YzA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtMjQzLDggKzI0Myw3IEBAIGJvb2wgSFRNTE9i
amVjdEVsZW1lbnQ6OnNob3VsZEFsbG93UXVpY2tUaW1lQ2xhc3NJZFF1aXJrKCkKICAgICBSZWZQ
dHI8Tm9kZUxpc3Q+IG1ldGFFbGVtZW50cyA9IGRvY3VtZW50KCkuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoSFRNTE5hbWVzOjptZXRhVGFnLmxvY2FsTmFtZSgpKTsKICAgICB1bnNpZ25lZCBsZW5ndGgg
PSBtZXRhRWxlbWVudHMtPmxlbmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTiht
ZXRhRWxlbWVudHMtPml0ZW0oaSktPmlzSFRNTEVsZW1lbnQoKSk7Ci0gICAgICAgIEhUTUxNZXRh
RWxlbWVudCogbWV0YUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1lbnQqPihtZXRh
RWxlbWVudHMtPml0ZW0oaSkpOworICAgICAgICBIVE1MTWV0YUVsZW1lbnQqIG1ldGFFbGVtZW50
ID0gdG9IVE1MTWV0YUVsZW1lbnQobWV0YUVsZW1lbnRzLT5pdGVtKGkpKTsKICAgICAgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKG1ldGFFbGVtZW50LT5uYW1lKCksICJnZW5lcmF0b3IiKSAmJiBt
ZXRhRWxlbWVudC0+Y29udGVudCgpLnN0YXJ0c1dpdGgoIk1hYyBPUyBYIFNlcnZlciBXZWIgU2Vy
dmljZXMgU2VydmVyIiwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCAzZTc3YzZhZGJk
YzU3ODIzN2MzNjJhZjllOWQyODI5MjlhZWJmMjc4Li5kNzlkMmY3ZTQzM2I2N2U0NzM2N2RjYzEz
YzY3NTJlYjEyZTM1ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcApAQCAtMzQ0LDcgKzM0NCw3IEBAIGJvb2wgSFRNTE9wdGlvbkVsZW1lbnQ6OmlzRGlzYWJs
ZWRGb3JtQ29udHJvbCgpIGNvbnN0CiAgICAgaWYgKCFwYXJlbnROb2RlKCkgfHwgIXBhcmVudE5v
ZGUoKS0+aXNIVE1MRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBIVE1M
RWxlbWVudCogcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4ocGFyZW50
Tm9kZSgpKTsKKyAgICBIVE1MRWxlbWVudCogcGFyZW50RWxlbWVudCA9IHRvSFRNTEVsZW1lbnQo
cGFyZW50Tm9kZSgpKTsKICAgICByZXR1cm4gaXNIVE1MT3B0R3JvdXBFbGVtZW50KHBhcmVudEVs
ZW1lbnQpICYmIHBhcmVudEVsZW1lbnQtPmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA1
NDc2ZWI1MTZlODY3MmI0ZDViNGJmMTg0MTMzZTZmZWUwMDk5NDc3Li4yNDM4ZGZlZGJmYjgyZDZm
Y2EyNzFjMjYxNmMxMDQ3OWE3ODY0N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTMyNCw3ICszMjQsNyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVy
KCkKIAogdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZXRDYWxsYmFjayhO
b2RlKiBuLCB1bnNpZ25lZCkKIHsKLSAgICBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50Kj4obiktPnVwZGF0ZVdpZGdldElmTmVjZXNzYXJ5KCk7CisgICAgdG9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KG4pLT51cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwogfQogCiB2b2lkIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IGRlODU5
OGU2NzFmMGE5MWJmZmVlNThkM2M4ZTE1YTZiYTk4OTU1NmMuLmJhMTlkMzM2NjFlYzNiMzYxMGU2
NGU3MzllMzQ3OTFkMzhmOGI1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5
RWxlbWVudC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgSFRNTERldGFpbHNFbGVtZW50KiBIVE1MU3Vt
bWFyeUVsZW1lbnQ6OmRldGFpbHNFbGVtZW50KCkgY29uc3QKICAgICBOb2RlKiBtYXlEZXRhaWxz
ID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cGFyZW50KHRoaXMpOwogICAgIGlmICghbWF5RGV0
YWlscyB8fCAhbWF5RGV0YWlscy0+aGFzVGFnTmFtZShkZXRhaWxzVGFnKSkKICAgICAgICAgcmV0
dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxEZXRhaWxzRWxlbWVudCo+KG1heURl
dGFpbHMpOworICAgIHJldHVybiB0b0hUTUxEZXRhaWxzRWxlbWVudChtYXlEZXRhaWxzKTsKIH0K
IAogYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmlzTWFpblN1bW1hcnkoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKaW5kZXggMjZhMTFkODNmMWI3MTQ1YzEw
MmMzNDU2NzUyM2ZkYmFiYmY2Y2Q2Ny4uMmNjZDlmYWRkMzQwMzQ5NWYyNWI5NDkxZDcwZGJhNjA0
ZmUxZDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCkBAIC00
Niw2ICs0Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZF
UlJJREU7CiB9OwogCitOT0RFX1RZUEVfQ0FTVFMoSFRNTFN1bW1hcnlFbGVtZW50KQorCiB9CiAK
ICNlbmRpZiAvLyBIVE1MU3VtbWFyeUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4IDQyMDEzZGUzZDdmY2JmMWRlOGU1MGRhNjhh
NTM1OWYyYmJlNTZkZDUuLjNiMmFmYjVmOWZhODc0YWQyOGMwNTY5NmIwYjgzNDdkMDM2Y2Q5YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKQEAg
LTQxLDYgKzQxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURFOwogfTsKIAorTk9ERV9U
WVBFX0NBU1RTKEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQorCiB9IC8vIG5hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCmluZGV4IDY1ZjYx
MjJlMzEwZWU3ZmRhYjRkMzRiYmRmM2FjMzg1ZDEwZDhmOGIuLjA1ZTVmZWQ1YjgxZWQwZjQxMzA3
YzQ0NDVjMmRjMTY1MDUzYjY3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcApAQCAtNzEsNyArNzEsNyBAQCBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCogSFRNTFRh
YmxlRWxlbWVudDo6Y2FwdGlvbigpIGNvbnN0CiB7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQotICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oY2hpbGQpOworICAgICAgICAg
ICAgcmV0dXJuIHRvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY2hpbGQpOwogICAgIH0KICAgICBy
ZXR1cm4gMDsKIH0KQEAgLTg2LDcgKzg2LDcgQEAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhU
TUxUYWJsZUVsZW1lbnQ6OnRIZWFkKCkgY29uc3QKIHsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0g
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAg
ICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUodGhlYWRUYWcpKQotICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oY2hpbGQpOworICAgICAgICAg
ICAgcmV0dXJuIHRvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY2hpbGQpOwogICAgIH0KICAgICBy
ZXR1cm4gMDsKIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCog
SFRNTFRhYmxlRWxlbWVudDo6dEZvb3QoKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQg
PSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAg
ICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZSh0Zm9vdFRhZykpCi0gICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihjaGlsZCk7CisgICAgICAg
ICAgICByZXR1cm4gdG9IVE1MVGFibGVTZWN0aW9uRWxlbWVudChjaGlsZCk7CiAgICAgfQogICAg
IHJldHVybiAwOwogfQpAQCAtMTc4LDcgKzE3OCw3IEBAIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
KiBIVE1MVGFibGVFbGVtZW50OjpsYXN0Qm9keSgpIGNvbnN0CiB7CiAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IGxhc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5n
KCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKHRib2R5VGFnKSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGNoaWxkKTsK
KyAgICAgICAgICAgIHJldHVybiB0b0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50KGNoaWxkKTsKICAg
ICB9CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVJvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dF
bGVtZW50LmNwcAppbmRleCA2NDllYzJmMzg2MGVkYjQ3OGI2NWRmY2ExY2E0OWQzNzhmMDBlYjlj
Li40YzRkOTc5MmNjMTBkMjVmZDg2ZWNjZDBiMWUyZDJkMWUzZmI3MDgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgaW50
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OnJvd0luZGV4KCkgY29uc3QKICAgICAKICAgICBmb3IgKE5v
ZGUgKm5vZGUgPSB0YWJsZS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNp
YmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0Ym9keVRhZykpIHsKLSAg
ICAgICAgICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWN0aW9uID0gc3RhdGljX2Nhc3Q8
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgICAgIEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50KiBzZWN0aW9uID0gdG9IVE1MVGFibGVTZWN0aW9uRWxlbWVudChub2RlKTsK
ICAgICAgICAgICAgIGZvciAoTm9kZSogcm93ID0gc2VjdGlvbi0+Zmlyc3RDaGlsZCgpOyByb3c7
IHJvdyA9IHJvdy0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAgICAgICAgIGlmIChyb3cgPT0g
dGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJJbmRleDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAppbmRleCBlZDg3Mjk0ZTg0NDA4Mzdm
ZDdhOTE2N2I1NjEzMTZlZWY3NjQ5ZGZmLi5iNzA1M2VkYWM1YzNhMmI4OTg3MDllMjdiMjFkYzky
NzAzNzNmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oCkBAIC01OSw2ICs1OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBTdHls
ZVByb3BlcnR5U2V0KiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBPVkVS
UklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVTZWN0aW9uRWxlbWVudCkKKwog
fSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5k
ZXggMzg5NDAzNGJiMzE3YWE0ZTNiMzJlYWQ5ZmEwMjk1ZjRmODRlMjFhYS4uNGNlNDJhZGVlNmI1
MzdhMDdlZWZhY2I0NWQ4MjA5MThiZTBkODcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFt
ZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAgYm9keSBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBiciBpbnRl
cmZhY2VOYW1lPUhUTUxCUkVsZW1lbnQKIGJ1dHRvbiBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQKIGNhbnZhcyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1jYXB0aW9uIGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQKK2NhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDYXB0
aW9uRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogY2VudGVyIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKIGNpdGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogY29kZSBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CkBAIC0zNSw3ICszNSw3IEBAIHdlYmtpdFNoYWRvd0NvbnRlbnQgaW50
ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1Y3RvcgogZGF0YWxpc3QgaW50ZXJmYWNl
TmFtZT1IVE1MRGF0YUxpc3RFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBTElTVF9FTEVNRU5ULCBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCiBkZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBkZWwgaW50
ZXJmYWNlTmFtZT1IVE1MTW9kRWxlbWVudAotZGV0YWlscyBjb25kaXRpb25hbD1ERVRBSUxTX0VM
RU1FTlQKK2RldGFpbHMgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVI
ZWxwZXJzIAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRpciBpbnRlcmZhY2VOYW1l
PUhUTUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKQEAgLTgyLDcgKzgyLDcgQEAgbWFwIGdlbmVyYXRl
VHlwZUhlbHBlcnMKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbWFycXVlZQogbWVu
dQotbWV0YQorbWV0YSBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBtZXRlciBpbnRlcmZhY2VOYW1lPUhU
TUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVSX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKIG5hdiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2JyIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKQEAgLTExNSwxMCArMTE1LDEwIEBAIHN0cmlrZSBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CiBzdHJvbmcgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc3R5bGUgY29uc3Ry
dWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwogc3ViIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN1bW1hcnkgaW50ZXJmYWNlTmFtZT1IVE1MU3VtbWFyeUVs
ZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9REVUQUlMU19F
TEVNRU5UCitzdW1tYXJ5IGludGVyZmFjZU5hbWU9SFRNTFN1bW1hcnlFbGVtZW50LCBKU0ludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQsIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVCwgZ2VuZXJh
dGVUeXBlSGVscGVycwogc3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxlIGdlbmVy
YXRlVHlwZUhlbHBlcnMKLXRib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQKK3Rib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQsIGdlbmVyYXRl
VHlwZUhlbHBlcnMKIHRkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQKIHRlbXBs
YXRlIGNvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHRl
eHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0b3JOZWVk
c0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURv
Y3VtZW50LmNwcAppbmRleCA4MzA3OGNiNzNmOTFhZTdjMjdkNTA1OTcyMDE4Yjk2MjE1NWM3MmRh
Li5iYzY2OGFlYjc2OTY0NmI4YmEzOWRlNzBhMDQxYWQ5Mjk1YWI3OTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBNZWRpYURvY3Vt
ZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgbV9tZWRpYUVsZW1lbnQt
PnNldEF0dHJpYnV0ZShuYW1lQXR0ciwgIm1lZGlhIik7CiAKICAgICBSZWZQdHI8RWxlbWVudD4g
c291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxz
ZSk7Ci0gICAgSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJjZSA9IHN0YXRpY19jYXN0PEhUTUxTb3Vy
Y2VFbGVtZW50Kj4oc291cmNlRWxlbWVudC5nZXQoKSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQq
IHNvdXJjZSA9IHRvSFRNTFNvdXJjZUVsZW1lbnQoc291cmNlRWxlbWVudC5nZXQoKSk7CiAgICAg
c291cmNlLT5zZXRTcmMoZG9jdW1lbnQoKS0+dXJsKCkpOwogCiAgICAgaWYgKERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIgPSBkb2N1bWVudCgpLT5sb2FkZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAppbmRleCA0N2JlMDEwYWZm
YTYyZDAyOTdiMjM4Zjg0OTg0YzQ0MGM5NDZlZjIyLi45ZGU0YzFmM2FhYjcxMGVhMTJjN2E1YmUx
NTU1NDJhNDJjZDcxN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCkBAIC02NCw4ICs2NCw3IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgRGV0YWlsc01hcmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIEhUTUxT
dW1tYXJ5RWxlbWVudCogRGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KCkKIHsK
ICAgICBFbGVtZW50KiBlbGVtZW50ID0gc2hhZG93SG9zdCgpOwotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoc3VtbWFy
eVRhZykpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU3VtbWFyeUVsZW1lbnQqPihlbGVt
ZW50KTsKKyAgICByZXR1cm4gdG9IVE1MU3VtbWFyeUVsZW1lbnQoZWxlbWVudCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDRlZWIxZDA0YmQzY2UzMjU5
Mjk5NzJhMTQ4ZTVhOTQzMmQzMzc5YjQuLmYzNDc0YzM3MDYzNWNkYzk3OWVmM2Q0Y2Q3M2YzODUy
ZDcwZDUxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtOTg2LDcg
Kzk4Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmhhbmRsZUZhbGxiYWNrQ29udGVudCgpCiAgICAg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9IG1fZnJhbWUub3duZXJFbGVtZW50KCk7CiAg
ICAgaWYgKCFvd25lciB8fCAhb3duZXItPmhhc1RhZ05hbWUob2JqZWN0VGFnKSkKICAgICAgICAg
cmV0dXJuOwotICAgIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4ob3duZXIpLT5yZW5k
ZXJGYWxsYmFja0NvbnRlbnQoKTsKKyAgICB0b0hUTUxPYmplY3RFbGVtZW50KG93bmVyKS0+cmVu
ZGVyRmFsbGJhY2tDb250ZW50KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnByb3Zpc2lvbmFs
TG9hZFN0YXJ0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzU0
Y2EyNWFmMzJkOWMzMmMyOWU5NjQxODhiMWI3Zjc3YTA5MzQ5Mi4uYWNhY2NmMjE3ZGU5NGM1Njkx
YjAwZjkxYTNjYzQ1OTJmNWRhOGIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwCkBAIC00MTYsNyArNDE2LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5n
QmVmb3JlTG9hZEV2ZW50KCkKICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBmYWxzZTsKICAg
ICAKICAgICBpZiAoaXNIVE1MT2JqZWN0RWxlbWVudChtX2VsZW1lbnQpKQotICAgICAgICBzdGF0
aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29u
dGVudCgpOworICAgICAgICB0b0hUTUxPYmplY3RFbGVtZW50KG1fZWxlbWVudCktPnJlbmRlckZh
bGxiYWNrQ29udGVudCgpOwogCiAgICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJv
dGVjdGlvbiByZWYtY291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVy
bmluZwogICAgIC8vIGZyb20gdGhpcyBmdW5jdGlvbiBhcyBkb2luZyBzbyBtaWdodCByZXN1bHQg
aW4gdGhlIGRlc3RydWN0aW9uIG9mIHRoaXMgSW1hZ2VMb2FkZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGY4NjZkY2ZkZmJiMjdjZWM1NjU5NjVjY2JjMzVjZDU3
ODI5OTg2ZGIuLmU5YzAyMGMyYmIzMjNhYzI2ZGRkNmE0ZGQ1MTI3NTg2N2E1YjFmYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgYm9v
bCBEcmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkt
PmlzUGx1Z2luRWxlbWVudCgpKSB7Ci0gICAgICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW4g
PSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luRWxlbWVudCo+KHJlc3VsdC5pbm5lck5vblNoYXJlZE5v
ZGUoKSk7CisgICAgICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW4gPSB0b0hUTUxQbHVnSW5F
bGVtZW50KHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSk7CiAgICAgICAgIGlmICghcGx1Z2lu
LT5jYW5Qcm9jZXNzRHJhZygpICYmICFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPnJlbmRl
cmVySXNFZGl0YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSBp
ZiAoIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCmluZGV4IDVjMDM2MTFlOGI3NTFmOTE2ZGUyZWQ0YjcyNmI2MzYxYjcy
ZmFhMTUuLmMwZGUwNmIxNDk1N2E3NzM5OWI3YmIzMmZjNzUwOThmNjFiOTFiNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCkBAIC0zODYsNyArMzg2LDcgQEAgU3RyaW5nIEZyYW1lOjpzZWFyY2hGb3JM
YWJlbHNCZWZvcmVFbGVtZW50KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMsIEVsZW1lbnQK
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChuLT5oYXNUYWdOYW1lKHRkVGFnKSAm
JiAhc3RhcnRpbmdUYWJsZUNlbGwpIHsKLSAgICAgICAgICAgIHN0YXJ0aW5nVGFibGVDZWxsID0g
c3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihuKTsKKyAgICAgICAgICAgIHN0YXJ0
aW5nVGFibGVDZWxsID0gdG9IVE1MVGFibGVDZWxsRWxlbWVudChuKTsKICAgICAgICAgfSBlbHNl
IGlmIChuLT5oYXNUYWdOYW1lKHRyVGFnKSAmJiBzdGFydGluZ1RhYmxlQ2VsbCkgewogICAgICAg
ICAgICAgU3RyaW5nIHJlc3VsdCA9IHNlYXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChyZWdFeHAuZ2V0
KCksIHN0YXJ0aW5nVGFibGVDZWxsLCByZXN1bHREaXN0YW5jZSk7CiAgICAgICAgICAgICBpZiAo
IXJlc3VsdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlv
bi5jcHAKaW5kZXggNTNmN2MzN2Q0YjQ1YTBmYzY1YzhiYzQ4OWYzZTBlMWFhZThlNzY4My4uNmQ3
OTQ0MDJlM2E3NzlmODYxZjY0MDE0NjE3ZDIyNjY0MzhkZDUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTc1OCw3ICs3NTgsNyBAQCBMYXlvdXRSZWN0
IHZpcnR1YWxSZWN0Rm9yQXJlYUVsZW1lbnRBbmREaXJlY3Rpb24oSFRNTEFyZWFFbGVtZW50KiBh
cmVhLCBGb2N1c0RpcgogCiBIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZyYW1lT3duZXJFbGVtZW50
KEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCiB7Ci0gICAgcmV0dXJuIGNhbmRpZGF0ZS5pc0Zy
YW1lT3duZXJFbGVtZW50KCkgPyBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihj
YW5kaWRhdGUudmlzaWJsZU5vZGUpIDogMDsKKyAgICByZXR1cm4gY2FuZGlkYXRlLmlzRnJhbWVP
d25lckVsZW1lbnQoKSA/IHRvSFRNTEZyYW1lT3duZXJFbGVtZW50KGNhbmRpZGF0ZS52aXNpYmxl
Tm9kZSkgOiAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217288</attachid>
            <date>2013-11-19 05:03:36 -0800</date>
            <delta_ts>2013-11-19 18:30:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131119220331.patch</filename>
            <type>text/plain</type>
            <size>18481</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgyMDQzYzM0MmVjOWQ1
Y2JhOTJiMmNhMWU4YWY4YTJlZDU1ZTU4NS4uZWYzYzZjMjA4ZTc5YWJiNmE2ODM4NWIzMjcxZGFl
YmFhNjYxMThlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTE5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBs
b3Qgb2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1
c2Ugb2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2Ug
bmVlZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJs
ZVNlY3Rpb258VGFibGVDYXB0aW9uRWxlbWVudCgpLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwg
b3RoZXIgc3RhdGljX2Nhc3Q8PiBhcmUgcmVtb3ZlZCBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTERldGFp
bHNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgICog
aHRtbC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzaG91bGRBbGxvd1F1
aWNrVGltZUNsYXNzSWRRdWlyayk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1D
b250cm9sKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJh
Y2spOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQpOgorICAgICAgICAqIGh0
bWwvSFRNTFN1bW1hcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUYWJsZUVsZW1lbnQ6OnRIZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVs
ZW1lbnQ6OnRGb290KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RC
b2R5KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5kZXgpOgorICAgICAgICAqIGh0bWwv
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5p
bjoKKyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRldGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoYW5kbGVG
YWxsYmFja0NvbnRlbnQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50
KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyk6CisgICAgICAgICogcGFnZS9GcmFtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVu
dCk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpmcmFtZU93bmVyRWxlbWVudCk6CisKIDIwMTMtMTEtMTkgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIG1vcmUgYXNzZXJ0aW9ucyB3aXRoIHNlY3Vy
aXR5IGltcGxpY2F0aW9ucyBpbiBEb2N1bWVudE9yZGVyZWRNYXAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5oCmluZGV4IDYxYjAzZDRmMGNiZjBlZGYzZjY4Yjg3NmVjMTU4
NDg0MDhjYjVhY2IuLmMxNDI4ZTZhNzlkNjRjMzIxYzQ5M2IxYWQ3Y2E1M2JmY2JiMTY4ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtNDQsNiArNDQsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc09wZW47CiB9OwogCitOT0RFX1RZUEVfQ0FTVFMoSFRN
TERldGFpbHNFbGVtZW50KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBI
VE1MRGV0YWlsc0VsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggZWZhYjQyMDdiYzc0NjJjOTM3YTEzMzQ4Y2Y1ZmUyZWQ0NWU3NzE4NC4uNmY1Nzc2
MWY2ZmVlYTkyOTBkYTJkZWE4MzdhYzJiYmE2ZjRmMzcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zNTA5LDcgKzM1MDksNyBAQCBVUkwgSFRNTE1lZGlh
RWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlwZSwg
U3RyaW5nKiBrZQogICAgICAgICBpZiAobm9kZS5wYXJlbnROb2RlKCkgIT0gdGhpcykKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHNvdXJjZSA9IHN0YXRpY19jYXN0PEhUTUxTb3Vy
Y2VFbGVtZW50Kj4oJm5vZGUpOworICAgICAgICBzb3VyY2UgPSB0b0hUTUxTb3VyY2VFbGVtZW50
KCZub2RlKTsKIAogICAgICAgICAvLyBJZiBjYW5kaWRhdGUgZG9lcyBub3QgaGF2ZSBhIHNyYyBh
dHRyaWJ1dGUsIG9yIGlmIGl0cyBzcmMgYXR0cmlidXRlJ3MgdmFsdWUgaXMgdGhlIGVtcHR5IHN0
cmluZyAuLi4ganVtcCBkb3duIHRvIHRoZSBmYWlsZWQgc3RlcCBiZWxvdwogICAgICAgICBtZWRp
YVVSTCA9IHNvdXJjZS0+Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoc3JjQXR0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCBmOTcxMTllYjE2MThhNTQ5OTRlNzI1ZjE0
OWRjNGM5ZGFmNjExOGRlLi43ZTQwZGU5OGQ2NGU5NTVhYmIyOTA1NGM4YmYzZDRkYzk5ZDAwYjIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTQ0LDYgKzQ0LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3MoKTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1M
TWV0YUVsZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGFlNWE0NjVhZTg0MTg4NGUz
OWUwMWM4MTBhMjYxMmNiYTYwNGFiMGEuLmU5OWZhMTE3NzUyMzVmYzllYjQ4OTgzZThkYzdmMWJi
NWQ5YzVjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBA
IC0yNDMsOCArMjQzLDcgQEAgYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6c2hvdWxkQWxsb3dRdWlj
a1RpbWVDbGFzc0lkUXVpcmsoKQogICAgIFJlZlB0cjxOb2RlTGlzdD4gbWV0YUVsZW1lbnRzID0g
ZG9jdW1lbnQoKS5nZXRFbGVtZW50c0J5VGFnTmFtZShIVE1MTmFtZXM6Om1ldGFUYWcubG9jYWxO
YW1lKCkpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1ldGFFbGVtZW50cy0+bGVuZ3RoKCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG1ldGFFbGVtZW50cy0+aXRlbShpKS0+aXNIVE1M
RWxlbWVudCgpKTsKLSAgICAgICAgSFRNTE1ldGFFbGVtZW50KiBtZXRhRWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KG1ldGFFbGVtZW50cy0+aXRlbShpKSk7CisgICAgICAg
IEhUTUxNZXRhRWxlbWVudCogbWV0YUVsZW1lbnQgPSB0b0hUTUxNZXRhRWxlbWVudChtZXRhRWxl
bWVudHMtPml0ZW0oaSkpOwogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWV0YUVsZW1l
bnQtPm5hbWUoKSwgImdlbmVyYXRvciIpICYmIG1ldGFFbGVtZW50LT5jb250ZW50KCkuc3RhcnRz
V2l0aCgiTWFjIE9TIFggU2VydmVyIFdlYiBTZXJ2aWNlcyBTZXJ2ZXIiLCBmYWxzZSkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuY3BwCmluZGV4IDNlNzdjNmFkYmRjNTc4MjM3YzM2MmFmOWU5ZDI4MjkyOWFlYmYy
NzguLmQ3OWQyZjdlNDMzYjY3ZTQ3MzY3ZGNjMTNjNjc1MmViMTJlMzVkNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zNDQsNyArMzQ0LDcgQEAgYm9v
bCBIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QKICAgICBp
ZiAoIXBhcmVudE5vZGUoKSB8fCAhcGFyZW50Tm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIEhUTUxFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOworICAgIEhUTUxFbGVtZW50KiBw
YXJlbnRFbGVtZW50ID0gdG9IVE1MRWxlbWVudChwYXJlbnROb2RlKCkpOwogICAgIHJldHVybiBp
c0hUTUxPcHRHcm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC0+aXNE
aXNhYmxlZEZvcm1Db250cm9sKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDU0NzZlYjUxNmU4NjcyYjRkNWI0YmYxODQxMzNl
NmZlZTAwOTk0NzcuLjI0MzhkZmVkYmZiODJkNmZjYTI3MWMyNjE2YzEwNDc5YTc4NjQ3ZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcApAQCAt
MzI0LDcgKzMyNCw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQogCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnVwZGF0ZVdpZGdldENhbGxiYWNrKE5vZGUqIG4sIHVuc2lnbmVkKQogewotICAgIHN0
YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihuKS0+dXBkYXRlV2lkZ2V0SWZOZWNl
c3NhcnkoKTsKKyAgICB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQobiktPnVwZGF0ZVdpZGdldElm
TmVjZXNzYXJ5KCk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25h
cHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggZGU4NTk4ZTY3MWYwYTkxYmZmZWU1OGQzYzhlMTVhNmJh
OTg5NTU2Yy4uYmExOWQzMzY2MWVjM2IzNjEwZTY0ZTczOWUzNDc5MWQzOGY4YjU0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtODgsNyArODgsNyBA
QCBIVE1MRGV0YWlsc0VsZW1lbnQqIEhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQo
KSBjb25zdAogICAgIE5vZGUqIG1heURldGFpbHMgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpw
YXJlbnQodGhpcyk7CiAgICAgaWYgKCFtYXlEZXRhaWxzIHx8ICFtYXlEZXRhaWxzLT5oYXNUYWdO
YW1lKGRldGFpbHNUYWcpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTERldGFpbHNFbGVtZW50Kj4obWF5RGV0YWlscyk7CisgICAgcmV0dXJuIHRvSFRNTERl
dGFpbHNFbGVtZW50KG1heURldGFpbHMpOwogfQogCiBib29sIEhUTUxTdW1tYXJ5RWxlbWVudDo6
aXNNYWluU3VtbWFyeSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuaAppbmRleCAyNmExMWQ4M2YxYjcxNDVjMTAyYzM0NTY3NTIzZmRiYWJiZjZjZDY3Li4yY2Nk
OWZhZGQzNDAzNDk1ZjI1Yjk0OTFkNzBkYmE2MDRmZTFkNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERTsKIH07CiAKK05PREVfVFlQRV9DQVNU
UyhIVE1MU3VtbWFyeUVsZW1lbnQpCisKIH0KIAogI2VuZGlmIC8vIEhUTUxTdW1tYXJ5RWxlbWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKaW5k
ZXggNDIwMTNkZTNkN2ZjYmYxZGU4ZTUwZGE2OGE1MzU5ZjJiYmU1NmRkNS4uM2IyYWZiNWY5ZmE4
NzRhZDI4YzA1Njk2YjBiODM0N2QwMzZjZDlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApAQCAtNDEsNiArNDEsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0JikgT1ZFUlJJREU7CiB9OwogCitOT0RFX1RZUEVfQ0FTVFMoSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNjVmNjEyMmUzMTBlZTdmZGFiNGQzNGJiZGYzYWMzODVk
MTBkOGY4Yi4uMDVlNWZlZDViODFlZDBmNDEzMDdjNDQ0NWMyZGMxNjUwNTNiNjc2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKCkgY29uc3QK
IHsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUoY2Fw
dGlvblRhZykpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQqPihjaGlsZCk7CisgICAgICAgICAgICByZXR1cm4gdG9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudChjaGlsZCk7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpAQCAtODYsNyArODYsNyBA
QCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6dEhlYWQoKSBjb25z
dAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZSh0
aGVhZFRhZykpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQqPihjaGlsZCk7CisgICAgICAgICAgICByZXR1cm4gdG9IVE1MVGFibGVTZWN0aW9u
RWxlbWVudChjaGlsZCk7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpAQCAtMTA3LDcgKzEwNyw3
IEBAIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0Rm9vdCgpIGNv
bnN0CiB7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1l
KHRmb290VGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0
aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0b0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xNzgsNyArMTc4
LDcgQEAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5
KCkgY29uc3QKIHsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbGFzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkgewogICAgICAgICBpZiAoY2hpbGQtPmhh
c1RhZ05hbWUodGJvZHlUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50Kj4oY2hpbGQpOworICAgICAgICAgICAgcmV0dXJuIHRvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQoY2hpbGQpOwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCmluZGV4IDY0OWVjMmYzODYw
ZWRiNDc4YjY1ZGZjYTFjYTQ5ZDM3OGYwMGViOWMuLjRjNGQ5NzkyY2MxMGQyNWZkODZlY2NkMGIx
ZTJkMmQxZTNmYjcwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVt
ZW50LmNwcApAQCAtODEsNyArODEsNyBAQCBpbnQgSFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5k
ZXgoKSBjb25zdAogICAgIAogICAgIGZvciAoTm9kZSAqbm9kZSA9IHRhYmxlLT5maXJzdENoaWxk
KCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChub2Rl
LT5oYXNUYWdOYW1lKHRib2R5VGFnKSkgewotICAgICAgICAgICAgSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqIHNlY3Rpb24gPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KG5v
ZGUpOworICAgICAgICAgICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNlY3Rpb24gPSB0b0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgZm9yIChOb2RlKiByb3cg
PSBzZWN0aW9uLT5maXJzdENoaWxkKCk7IHJvdzsgcm93ID0gcm93LT5uZXh0U2libGluZygpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHJvdyA9PSB0aGlzKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gckluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oCmluZGV4IGVkODcyOTRlODQ0MDgzN2ZkN2E5MTY3YjU2MTMxNmVlZjc2NDlkZmYuLmI3
MDUzZWRhYzVjM2EyYjg5ODcwOWUyN2IyMWRjOTI3MDM3M2ZiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKQEAgLTU5LDYgKzU5LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9uYWxQcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIE9WRVJSSURFOwogfTsKIAorTk9ERV9UWVBFX0NBU1RT
KEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KQorCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCAzODk0MDM0YmIzMTdhYTRlM2IzMmVhZDlm
YTAyOTVmNGY4NGUyMWFhLi40Y2U0MmFkZWU2YjUzN2EwN2VlZmFjYjQ1ZDgyMDkxOGJlMGQ4NzFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMjQsNyArMjQsNyBAQCBib2R5
IGdlbmVyYXRlVHlwZUhlbHBlcnMKIGJyIGludGVyZmFjZU5hbWU9SFRNTEJSRWxlbWVudAogYnV0
dG9uIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogY2FudmFzIGdlbmVyYXRlVHlwZUhlbHBl
cnMKLWNhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDYXB0aW9uRWxlbWVudAorY2FwdGlv
biBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCiBjZW50ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogY2l0ZSBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CiBjb2RlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKQEAgLTM1LDcgKzM1
LDcgQEAgd2Via2l0U2hhZG93Q29udGVudCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50LCBub0Nv
bnN0cnVjdG9yCiBkYXRhbGlzdCBpbnRlcmZhY2VOYW1lPUhUTUxEYXRhTGlzdEVsZW1lbnQsIGNv
bmRpdGlvbmFsPURBVEFMSVNUX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIGRkIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRlbCBpbnRlcmZhY2VOYW1lPUhUTUxNb2RFbGVtZW50Ci1k
ZXRhaWxzIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVAorZGV0YWlscyBjb25kaXRpb25hbD1E
RVRBSUxTX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMgCiBkZm4gaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogZGlyIGludGVyZmFjZU5hbWU9SFRNTERpcmVjdG9yeUVsZW1lbnQKIGRpdgpA
QCAtODIsNyArODIsNyBAQCBtYXAgZ2VuZXJhdGVUeXBlSGVscGVycwogbWFyayBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBtYXJxdWVlCiBtZW51Ci1tZXRhCittZXRhIGdlbmVyYXRlVHlwZUhl
bHBlcnMKIG1ldGVyIGludGVyZmFjZU5hbWU9SFRNTE1ldGVyRWxlbWVudCwgY29uZGl0aW9uYWw9
TUVURVJfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycwogbmF2IGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKIG5vYnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApAQCAtMTE1LDEwICsxMTUs
MTAgQEAgc3RyaWtlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHN0cm9uZyBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBzdHlsZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCiBzdWIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc3VtbWFy
eSBpbnRlcmZhY2VOYW1lPUhUTUxTdW1tYXJ5RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50LCBjb25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQKK3N1bW1hcnkgaW50ZXJmYWNlTmFt
ZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0
aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBzdXAgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAogdGFibGUgZ2VuZXJhdGVUeXBlSGVscGVycwotdGJvZHkgaW50ZXJm
YWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAordGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1M
VGFibGVTZWN0aW9uRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogdGQgaW50ZXJmYWNlTmFt
ZT1IVE1MVGFibGVDZWxsRWxlbWVudAogdGVtcGxhdGUgY29uZGl0aW9uYWw9VEVNUExBVEVfRUxF
TUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycwogdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4
dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IDgzMDc4Y2I3M2Y5
MWFlN2MyN2Q1MDU5NzIwMThiOTYyMTU1YzcyZGEuLmJjNjY4YWViNzY5NjQ2YjhiYTM5ZGU3MGEw
NDFhZDkyOTVhYjc5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAt
OTMsNyArOTMsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3Ry
dWN0dXJlKCkKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAibWVk
aWEiKTsKIAogICAgIFJlZlB0cjxFbGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChzb3VyY2VUYWcsIGZhbHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCog
c291cmNlID0gc3RhdGljX2Nhc3Q8SFRNTFNvdXJjZUVsZW1lbnQqPihzb3VyY2VFbGVtZW50Lmdl
dCgpKTsKKyAgICBIVE1MU291cmNlRWxlbWVudCogc291cmNlID0gdG9IVE1MU291cmNlRWxlbWVu
dChzb3VyY2VFbGVtZW50LmdldCgpKTsKICAgICBzb3VyY2UtPnNldFNyYyhkb2N1bWVudCgpLT51
cmwoKSk7CiAKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGRvY3VtZW50KCktPmxv
YWRlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01h
cmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwCmluZGV4IDQ3YmUwMTBhZmZhNjJkMDI5N2IyMzhmODQ5ODRjNDQwYzk0NmVm
MjIuLjlkZTRjMWYzYWFiNzEwZWExMmM3YTViZTE1NTU0MmE0MmNkNzE3Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAg
LTY0LDggKzY0LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBEZXRhaWxzTWFya2VyQ29udHJvbDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogSFRNTFN1bW1hcnlFbGVtZW50KiBEZXRhaWxzTWFya2Vy
Q29udHJvbDo6c3VtbWFyeUVsZW1lbnQoKQogewogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzaGFk
b3dIb3N0KCk7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIWVsZW1lbnQg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShzdW1tYXJ5VGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PEhUTUxTdW1tYXJ5RWxlbWVudCo+KGVsZW1lbnQpOworICAgIHJldHVybiB0b0hUTUxTdW1t
YXJ5RWxlbWVudChlbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggNGVlYjFkMDRiZDNjZTMyNTkyOTk3MmExNDhlNWE5NDMyZDMzNzliNC4uZjM0
NzRjMzcwNjM1Y2RjOTc5ZWYzZDRjZDczZjM4NTJkNzBkNTFiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC05ODYsNyArOTg2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
aGFuZGxlRmFsbGJhY2tDb250ZW50KCkKICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVy
ID0gbV9mcmFtZS5vd25lckVsZW1lbnQoKTsKICAgICBpZiAoIW93bmVyIHx8ICFvd25lci0+aGFz
VGFnTmFtZShvYmplY3RUYWcpKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8SFRN
TE9iamVjdEVsZW1lbnQqPihvd25lciktPnJlbmRlckZhbGxiYWNrQ29udGVudCgpOworICAgIHRv
SFRNTE9iamVjdEVsZW1lbnQob3duZXIpLT5yZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlcjo6cHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCAwMTFiY2RhMzE3YzUwZjQyNWRjMzgwNjMyMWZhMGY5
MzFlYmNlODU5Li5iNTNiODhhM2M4ODE2ZDAyOTUyZGNiMDNhYjI4NDBlNzY3NjM3OGE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lk
IEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKQogICAgIG1faGFz
UGVuZGluZ0xvYWRFdmVudCA9IGZhbHNlOwogICAgIAogICAgIGlmIChpc0hUTUxPYmplY3RFbGVt
ZW50KG1fZWxlbWVudCkpCi0gICAgICAgIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4o
bV9lbGVtZW50KS0+cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CisgICAgICAgIHRvSFRNTE9iamVj
dEVsZW1lbnQobV9lbGVtZW50KS0+cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiAKICAgICAvLyBP
bmx5IGNvbnNpZGVyIHVwZGF0aW5nIHRoZSBwcm90ZWN0aW9uIHJlZi1jb3VudCBvZiB0aGUgRWxl
bWVudCBpbW1lZGlhdGVseSBiZWZvcmUgcmV0dXJuaW5nCiAgICAgLy8gZnJvbSB0aGlzIGZ1bmN0
aW9uIGFzIGRvaW5nIHNvIG1pZ2h0IHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhpcyBJ
bWFnZUxvYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggN2Vi
MjQ5ZGY3ZmY5YjU1YThlY2U1YWU3ZmY0NzJlMGNkN2JhYzI0Ny4uODE2NTkzNDhlM2YyMTdmYTlm
MmFiYzU2YjZjZTNmOTIwYTdhZTE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKQEAgLTU1Miw3ICs1NTIsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjYW5Qcm9jZXNz
RHJhZyhEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYg
KHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+aXNQbHVnaW5FbGVtZW50KCkpIHsKLSAgICAg
ICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbiA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5FbGVt
ZW50Kj4ocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKTsKKyAgICAgICAgSFRNTFBsdWdJbkVs
ZW1lbnQqIHBsdWdpbiA9IHRvSFRNTFBsdWdJbkVsZW1lbnQocmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpKTsKICAgICAgICAgaWYgKCFwbHVnaW4tPmNhblByb2Nlc3NEcmFnKCkgJiYgIXJlc3Vs
dC5pbm5lck5vblNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9k
ZSgpLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggNjI0MWVl
M2M5NTJiNDYxNTVjMjkyMDZiMDhmOTAxZTAwZTUyZjU4MC4uZDIzYmE1ZjQyYWU0MDAwMDRlMGIx
ZmI2NGM5MjMwYzc3MjliODYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTM4Niw3ICszODYs
NyBAQCBTdHJpbmcgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0JlZm9yZUVsZW1lbnQoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGxhYmVscywgRWxlbWVudAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgaWYgKG4tPmhhc1RhZ05hbWUodGRUYWcpICYmICFzdGFydGluZ1RhYmxlQ2VsbCkgewotICAg
ICAgICAgICAgc3RhcnRpbmdUYWJsZUNlbGwgPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxl
bWVudCo+KG4pOworICAgICAgICAgICAgc3RhcnRpbmdUYWJsZUNlbGwgPSB0b0hUTUxUYWJsZUNl
bGxFbGVtZW50KG4pOwogICAgICAgICB9IGVsc2UgaWYgKG4tPmhhc1RhZ05hbWUodHJUYWcpICYm
IHN0YXJ0aW5nVGFibGVDZWxsKSB7CiAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc2VhcmNo
Rm9yTGFiZWxzQWJvdmVDZWxsKHJlZ0V4cC5nZXQoKSwgc3RhcnRpbmdUYWJsZUNlbGwsIHJlc3Vs
dERpc3RhbmNlKTsKICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAppbmRleCA1M2Y3YzM3ZDRiNDVhMGZj
NjVjOGJjNDg5ZjNlMGUxYWFlOGU3NjgzLi42ZDc5NDQwMmUzYTc3OWY4NjFmNjQwMTQ2MTdkMjI2
NjQzOGRkNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApA
QCAtNzU4LDcgKzc1OCw3IEBAIExheW91dFJlY3QgdmlydHVhbFJlY3RGb3JBcmVhRWxlbWVudEFu
ZERpcmVjdGlvbihIVE1MQXJlYUVsZW1lbnQqIGFyZWEsIEZvY3VzRGlyCiAKIEhUTUxGcmFtZU93
bmVyRWxlbWVudCogZnJhbWVPd25lckVsZW1lbnQoRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0ZSkK
IHsKLSAgICByZXR1cm4gY2FuZGlkYXRlLmlzRnJhbWVPd25lckVsZW1lbnQoKSA/IHN0YXRpY19j
YXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZS52aXNpYmxlTm9kZSkgOiAwOwor
ICAgIHJldHVybiBjYW5kaWRhdGUuaXNGcmFtZU93bmVyRWxlbWVudCgpID8gdG9IVE1MRnJhbWVP
d25lckVsZW1lbnQoY2FuZGlkYXRlLnZpc2libGVOb2RlKSA6IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217367</attachid>
            <date>2013-11-19 18:27:55 -0800</date>
            <delta_ts>2013-11-19 18:36:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131120112753.patch</filename>
            <type>text/plain</type>
            <size>19558</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ0NzJjOGE0MDVjYzMx
MmEyNTFlMDhmYmIyNzhkOGVkYzRjNTQwNi4uN2M3MGNkNTQ3YTBiZjY5ZTIxNGVkZmYzODc5NjM5
MzUyNmZiYzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTE5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBsb3Qg
b2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1c2Ug
b2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2UgbmVl
ZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJsZVNl
Y3Rpb258VGFibGVDYXB0aW9uRWxlbWVudCgpLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgb3Ro
ZXIgc3RhdGljX2Nhc3Q8PiBhcmUgcmVtb3ZlZCBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgICogaHRt
bC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzaG91bGRBbGxvd1F1aWNr
VGltZUNsYXNzSWRRdWlyayk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250
cm9sKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2sp
OgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTFN1bW1hcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWJsZUVsZW1lbnQ6OnRIZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1l
bnQ6OnRGb290KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5
KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5kZXgpOgorICAgICAgICAqIGh0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoK
KyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
dGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoYW5kbGVGYWxs
YmFja0NvbnRlbnQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KToK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudCk6
CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpmcmFtZU93bmVyRWxlbWVudCk6CisKIDIwMTMtMTEtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgV2F0Y2hwb2ludFNldDo6bm90aWZ5V3JpdGUo
KSBzaG91bGQgYmUgcmVuYW1lZCB0byBXYXRjaHBvaW50U2V0OjpmaXJlQWxsKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCmluZGV4IDYxYjAzZDRmMGNiZjBlZGYzZjY4
Yjg3NmVjMTU4NDg0MDhjYjVhY2IuLmMxNDI4ZTZhNzlkNjRjMzIxYzQ5M2IxYWQ3Y2E1M2JmY2Ji
MTY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtNDQs
NiArNDQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc09wZW47CiB9OwogCitOT0RFX1RZUEVf
Q0FTVFMoSFRNTERldGFpbHNFbGVtZW50KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBIVE1MRGV0YWlsc0VsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggZDExNDMxMDQ4ZTRjZDQ3NzcwMTY4NGI5NDZjMTFmYjJjODVkOGFm
NC4uYTBkOWI1MzY4NWVhMjc0NDY3NjI0ZDU1ZmM4NDhjYWQwMTZlNWM3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zNTE0LDcgKzM1MTQsNyBAQCBVUkwg
SFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250
ZW50VHlwZSwgU3RyaW5nKiBrZQogICAgICAgICBpZiAobm9kZS5wYXJlbnROb2RlKCkgIT0gdGhp
cykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHNvdXJjZSA9IHN0YXRpY19jYXN0
PEhUTUxTb3VyY2VFbGVtZW50Kj4oJm5vZGUpOworICAgICAgICBzb3VyY2UgPSB0b0hUTUxTb3Vy
Y2VFbGVtZW50KCZub2RlKTsKIAogICAgICAgICAvLyBJZiBjYW5kaWRhdGUgZG9lcyBub3QgaGF2
ZSBhIHNyYyBhdHRyaWJ1dGUsIG9yIGlmIGl0cyBzcmMgYXR0cmlidXRlJ3MgdmFsdWUgaXMgdGhl
IGVtcHR5IHN0cmluZyAuLi4ganVtcCBkb3duIHRvIHRoZSBmYWlsZWQgc3RlcCBiZWxvdwogICAg
ICAgICBtZWRpYVVSTCA9IHNvdXJjZS0+Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoc3JjQXR0cik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCBmOTcxMTllYjE2MThhNTQ5
OTRlNzI1ZjE0OWRjNGM5ZGFmNjExOGRlLi43ZTQwZGU5OGQ2NGU5NTVhYmIyOTA1NGM4YmYzZDRk
Yzk5ZDAwYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTQ0LDYg
KzQ0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3MoKTsKIH07CiAKK05PREVfVFlQRV9D
QVNUUyhIVE1MTWV0YUVsZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGFlNWE0NjVh
ZTg0MTg4NGUzOWUwMWM4MTBhMjYxMmNiYTYwNGFiMGEuLmY5NDY2MjMyOTY3YzViNTBmODU5NDA0
NTI2YjQ2OThiMzQ5YzI5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCkBAIC0yNDMsOSArMjQzLDggQEAgYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6c2hvdWxk
QWxsb3dRdWlja1RpbWVDbGFzc0lkUXVpcmsoKQogICAgIFJlZlB0cjxOb2RlTGlzdD4gbWV0YUVs
ZW1lbnRzID0gZG9jdW1lbnQoKS5nZXRFbGVtZW50c0J5VGFnTmFtZShIVE1MTmFtZXM6Om1ldGFU
YWcubG9jYWxOYW1lKCkpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1ldGFFbGVtZW50cy0+bGVu
Z3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG1ldGFFbGVtZW50cy0+aXRlbShp
KS0+aXNIVE1MRWxlbWVudCgpKTsKLSAgICAgICAgSFRNTE1ldGFFbGVtZW50KiBtZXRhRWxlbWVu
dCA9IHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KG1ldGFFbGVtZW50cy0+aXRlbShpKSk7
Ci0gICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZXRhRWxlbWVudC0+bmFtZSgpLCAiZ2Vu
ZXJhdG9yIikgJiYgbWV0YUVsZW1lbnQtPmNvbnRlbnQoKS5zdGFydHNXaXRoKCJNYWMgT1MgWCBT
ZXJ2ZXIgV2ViIFNlcnZpY2VzIFNlcnZlciIsIGZhbHNlKSkKKyAgICAgICAgSFRNTE1ldGFFbGVt
ZW50JiBtZXRhRWxlbWVudCA9ICp0b0hUTUxNZXRhRWxlbWVudChtZXRhRWxlbWVudHMtPml0ZW0o
aSkpOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWV0YUVsZW1lbnQubmFtZSgpLCAi
Z2VuZXJhdG9yIikgJiYgbWV0YUVsZW1lbnQuY29udGVudCgpLnN0YXJ0c1dpdGgoIk1hYyBPUyBY
IFNlcnZlciBXZWIgU2VydmljZXMgU2VydmVyIiwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcAppbmRleCAzZTc3YzZhZGJkYzU3ODIzN2MzNjJhZjllOWQyODI5MjlhZWJmMjc4Li45MTZk
MzUyMjI1NWM1ZWRlOGNkNzMzMjAwYzUxMmQwYTJlYmUxYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMzQ0LDggKzM0NCw4IEBAIGJvb2wgSFRNTE9w
dGlvbkVsZW1lbnQ6OmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0CiAgICAgaWYgKCFwYXJl
bnROb2RlKCkgfHwgIXBhcmVudE5vZGUoKS0+aXNIVE1MRWxlbWVudCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBIVE1MRWxlbWVudCogcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0
PEhUTUxFbGVtZW50Kj4ocGFyZW50Tm9kZSgpKTsKLSAgICByZXR1cm4gaXNIVE1MT3B0R3JvdXBF
bGVtZW50KHBhcmVudEVsZW1lbnQpICYmIHBhcmVudEVsZW1lbnQtPmlzRGlzYWJsZWRGb3JtQ29u
dHJvbCgpOworICAgIEhUTUxFbGVtZW50JiBwYXJlbnRFbGVtZW50ID0gKnRvSFRNTEVsZW1lbnQo
cGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gaXNIVE1MT3B0R3JvdXBFbGVtZW50KHBhcmVudEVs
ZW1lbnQpICYmIHBhcmVudEVsZW1lbnQuaXNEaXNhYmxlZEZvcm1Db250cm9sKCk7CiB9CiAKIE5v
ZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTE9wdGlvbkVsZW1lbnQ6Omluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDU0NzZlYjUxNmU4NjcyYjRk
NWI0YmYxODQxMzNlNmZlZTAwOTk0NzcuLjI0MzhkZmVkYmZiODJkNmZjYTI3MWMyNjE2YzEwNDc5
YTc4NjQ3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcApAQCAtMzI0LDcgKzMyNCw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQogCiB2b2lkIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVdpZGdldENhbGxiYWNrKE5vZGUqIG4sIHVuc2lnbmVk
KQogewotICAgIHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihuKS0+dXBkYXRl
V2lkZ2V0SWZOZWNlc3NhcnkoKTsKKyAgICB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQobiktPnVw
ZGF0ZVdpZGdldElmTmVjZXNzYXJ5KCk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6dXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggZGU4NTk4ZTY3MWYwYTkxYmZmZWU1
OGQzYzhlMTVhNmJhOTg5NTU2Yy4uYmExOWQzMzY2MWVjM2IzNjEwZTY0ZTczOWUzNDc5MWQzOGY4
YjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAt
ODgsNyArODgsNyBAQCBIVE1MRGV0YWlsc0VsZW1lbnQqIEhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0
YWlsc0VsZW1lbnQoKSBjb25zdAogICAgIE5vZGUqIG1heURldGFpbHMgPSBOb2RlUmVuZGVyaW5n
VHJhdmVyc2FsOjpwYXJlbnQodGhpcyk7CiAgICAgaWYgKCFtYXlEZXRhaWxzIHx8ICFtYXlEZXRh
aWxzLT5oYXNUYWdOYW1lKGRldGFpbHNUYWcpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTERldGFpbHNFbGVtZW50Kj4obWF5RGV0YWlscyk7CisgICAgcmV0
dXJuIHRvSFRNTERldGFpbHNFbGVtZW50KG1heURldGFpbHMpOwogfQogCiBib29sIEhUTUxTdW1t
YXJ5RWxlbWVudDo6aXNNYWluU3VtbWFyeSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuaAppbmRleCAyNmExMWQ4M2YxYjcxNDVjMTAyYzM0NTY3NTIzZmRiYWJi
ZjZjZDY3Li4yY2NkOWZhZGQzNDAzNDk1ZjI1Yjk0OTFkNzBkYmE2MDRmZTFkNGNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHJp
dmF0ZToKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERTsKIH07CiAKK05P
REVfVFlQRV9DQVNUUyhIVE1MU3VtbWFyeUVsZW1lbnQpCisKIH0KIAogI2VuZGlmIC8vIEhUTUxT
dW1tYXJ5RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmgKaW5kZXggNDIwMTNkZTNkN2ZjYmYxZGU4ZTUwZGE2OGE1MzU5ZjJiYmU1NmRkNS4u
M2IyYWZiNWY5ZmE4NzRhZDI4YzA1Njk2YjBiODM0N2QwMzZjZDlhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApAQCAtNDEsNiArNDEsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7CiB9OwogCitOT0RFX1RZUEVfQ0FTVFMoSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNjVmNjEyMmUzMTBlZTdmZGFiNGQz
NGJiZGYzYWMzODVkMTBkOGY4Yi4uMGQ2ODAwZWU1ZjEzMWY2ODNlNjJlNjNmM2QwOWZiMzI2MmZh
MTMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKKyNpbmNsdWRlICJFbGVt
ZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAg
LTcxLDcgKzcyLDcgQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6
OmNhcHRpb24oKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGls
ZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0
b0hUTUxUYWJsZUNhcHRpb25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9
CkBAIC04Niw3ICs4Nyw3IEBAIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVt
ZW50Ojp0SGVhZCgpIGNvbnN0CiB7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNo
aWxkLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0
b0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9
CkBAIC0xMDcsNyArMTA4LDcgQEAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVs
ZW1lbnQ6OnRGb290KCkgY29uc3QKIHsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAo
Y2hpbGQtPmhhc1RhZ05hbWUodGZvb3RUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oY2hpbGQpOworICAgICAgICAgICAgcmV0dXJu
IHRvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY2hpbGQpOwogICAgIH0KICAgICByZXR1cm4gMDsK
IH0KQEAgLTE3OCw3ICsxNzksNyBAQCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRNTFRhYmxl
RWxlbWVudDo6bGFzdEJvZHkoKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBsYXN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAg
ICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZSh0Ym9keVRhZykpCi0gICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihjaGlsZCk7CisgICAgICAgICAg
ICByZXR1cm4gdG9IVE1MVGFibGVTZWN0aW9uRWxlbWVudChjaGlsZCk7CiAgICAgfQogICAgIHJl
dHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAK
aW5kZXggNjQ5ZWMyZjM4NjBlZGI0NzhiNjVkZmNhMWNhNDlkMzc4ZjAwZWI5Yy4uMjUwNmNmNGZl
ZjU3YTFjZmExYzdhOGRjNmJkOGY1YzAyZmU0MTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCkBAIC04MSw4ICs4MSw4IEBAIGludCBIVE1MVGFibGVS
b3dFbGVtZW50Ojpyb3dJbmRleCgpIGNvbnN0CiAgICAgCiAgICAgZm9yIChOb2RlICpub2RlID0g
dGFibGUtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsK
ICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGJvZHlUYWcpKSB7Ci0gICAgICAgICAgICBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VjdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50Kj4obm9kZSk7Ci0gICAgICAgICAgICBmb3IgKE5vZGUqIHJvdyA9IHNlY3Rp
b24tPmZpcnN0Q2hpbGQoKTsgcm93OyByb3cgPSByb3ctPm5leHRTaWJsaW5nKCkpIHsKKyAgICAg
ICAgICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50JiBzZWN0aW9uID0gKnRvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQobm9kZSk7CisgICAgICAgICAgICBmb3IgKE5vZGUqIHJvdyA9IHNlY3Rpb24u
Zmlyc3RDaGlsZCgpOyByb3c7IHJvdyA9IHJvdy0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAg
ICAgICAgIGlmIChyb3cgPT0gdGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJJbmRl
eDsKICAgICAgICAgICAgICAgICBpZiAocm93LT5oYXNUYWdOYW1lKHRyVGFnKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAppbmRleCBlZDg3Mjk0ZTg0
NDA4MzdmZDdhOTE2N2I1NjEzMTZlZWY3NjQ5ZGZmLi5iNzA1M2VkYWM1YzNhMmI4OTg3MDllMjdi
MjFkYzkyNzAzNzNmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5oCkBAIC01OSw2ICs1OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25z
dCBTdHlsZVByb3BlcnR5U2V0KiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
KSBPVkVSUklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCkKKwogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMu
aW4KaW5kZXggMzg5NDAzNGJiMzE3YWE0ZTNiMzJlYWQ5ZmEwMjk1ZjRmODRlMjFhYS4uNGNlNDJh
ZGVlNmI1MzdhMDdlZWZhY2I0NWQ4MjA5MThiZTBkODcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFnTmFtZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAgYm9keSBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBi
ciBpbnRlcmZhY2VOYW1lPUhUTUxCUkVsZW1lbnQKIGJ1dHRvbiBjb25zdHJ1Y3Rvck5lZWRzRm9y
bUVsZW1lbnQKIGNhbnZhcyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1jYXB0aW9uIGludGVyZmFjZU5h
bWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQKK2NhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogY2VudGVyIGludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQKIGNpdGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogY29kZSBpbnRl
cmZhY2VOYW1lPUhUTUxFbGVtZW50CkBAIC0zNSw3ICszNSw3IEBAIHdlYmtpdFNoYWRvd0NvbnRl
bnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1Y3RvcgogZGF0YWxpc3QgaW50
ZXJmYWNlTmFtZT1IVE1MRGF0YUxpc3RFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBTElTVF9FTEVN
RU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBkZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBk
ZWwgaW50ZXJmYWNlTmFtZT1IVE1MTW9kRWxlbWVudAotZGV0YWlscyBjb25kaXRpb25hbD1ERVRB
SUxTX0VMRU1FTlQKK2RldGFpbHMgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0
ZVR5cGVIZWxwZXJzIAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRpciBpbnRlcmZh
Y2VOYW1lPUhUTUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKQEAgLTgyLDcgKzgyLDcgQEAgbWFwIGdl
bmVyYXRlVHlwZUhlbHBlcnMKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbWFycXVl
ZQogbWVudQotbWV0YQorbWV0YSBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBtZXRlciBpbnRlcmZhY2VO
YW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVSX0VMRU1FTlQsIGdlbmVyYXRl
VHlwZUhlbHBlcnMKIG5hdiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2JyIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKQEAgLTExNSwxMCArMTE1LDEwIEBAIHN0cmlrZSBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBzdHJvbmcgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc3R5bGUg
Y29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwogc3Vi
IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN1bW1hcnkgaW50ZXJmYWNlTmFtZT1IVE1MU3Vt
bWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9REVU
QUlMU19FTEVNRU5UCitzdW1tYXJ5IGludGVyZmFjZU5hbWU9SFRNTFN1bW1hcnlFbGVtZW50LCBK
U0ludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVCwg
Z2VuZXJhdGVUeXBlSGVscGVycwogc3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxl
IGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQKK3Rib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQsIGdl
bmVyYXRlVHlwZUhlbHBlcnMKIHRkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQK
IHRlbXBsYXRlIGNvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBl
cnMKIHRleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0
b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcAppbmRleCA4MzA3OGNiNzNmOTFhZTdjMjdkNTA1OTcyMDE4Yjk2MjE1
NWM3MmRhLi5jNzMyODhkYmFiZGJmNDFiNWU4ZmI2ZGYwMDA0ZWQxOTBmODYxMGZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTkzLDExICs5MywxMSBAQCB2b2lkIE1l
ZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBtX21lZGlh
RWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAibWVkaWEiKTsKIAogICAgIFJlZlB0cjxF
bGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChzb3VyY2VU
YWcsIGZhbHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCogc291cmNlID0gc3RhdGljX2Nhc3Q8
SFRNTFNvdXJjZUVsZW1lbnQqPihzb3VyY2VFbGVtZW50LmdldCgpKTsKLSAgICBzb3VyY2UtPnNl
dFNyYyhkb2N1bWVudCgpLT51cmwoKSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSA9
ICp0b0hUTUxTb3VyY2VFbGVtZW50KHNvdXJjZUVsZW1lbnQuZ2V0KCkpOworICAgIHNvdXJjZS5z
ZXRTcmMoZG9jdW1lbnQoKS0+dXJsKCkpOwogCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIgPSBkb2N1bWVudCgpLT5sb2FkZXIoKSkKLSAgICAgICAgc291cmNlLT5zZXRUeXBlKGxvYWRl
ci0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKKyAgICAgICAgc291cmNlLnNldFR5cGUobG9hZGVyLT5y
ZXNwb25zZU1JTUVUeXBlKCkpOwogCiAgICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENoaWxkKHNv
dXJjZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGJvZHktPmFwcGVuZENoaWxkKG1l
ZGlhRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5kZXggNDdiZTAxMGFmZmE2MmQw
Mjk3YjIzOGY4NDk4NGM0NDBjOTQ2ZWYyMi4uNTI3YTRkNjZmNGNkOTNmYTYwYzY0ZWZmZGFjY2Rm
MDY4ZmZlMjI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFp
bHNNYXJrZXJDb250cm9sLmNwcApAQCAtNjMsOSArNjMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcm
IERldGFpbHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIEhUTUxTdW1t
YXJ5RWxlbWVudCogRGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KCkKIHsKLSAg
ICBFbGVtZW50KiBlbGVtZW50ID0gc2hhZG93SG9zdCgpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoc3VtbWFyeVRh
ZykpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU3VtbWFyeUVsZW1lbnQqPihlbGVtZW50
KTsKKyAgICByZXR1cm4gdG9IVE1MU3VtbWFyeUVsZW1lbnQoc2hhZG93SG9zdCgpKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNGVlYjFkMDRiZDNjZTMy
NTkyOTk3MmExNDhlNWE5NDMyZDMzNzliNC4uZjM0NzRjMzcwNjM1Y2RjOTc5ZWYzZDRjZDczZjM4
NTJkNzBkNTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC05ODYs
NyArOTg2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6aGFuZGxlRmFsbGJhY2tDb250ZW50KCkKICAg
ICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gbV9mcmFtZS5vd25lckVsZW1lbnQoKTsK
ICAgICBpZiAoIW93bmVyIHx8ICFvd25lci0+aGFzVGFnTmFtZShvYmplY3RUYWcpKQogICAgICAg
ICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihvd25lciktPnJl
bmRlckZhbGxiYWNrQ29udGVudCgpOworICAgIHRvSFRNTE9iamVjdEVsZW1lbnQob3duZXIpLT5y
ZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6cHJvdmlzaW9u
YWxMb2FkU3RhcnRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCAw
MTFiY2RhMzE3YzUwZjQyNWRjMzgwNjMyMWZhMGY5MzFlYmNlODU5Li5iNTNiODhhM2M4ODE2ZDAy
OTUyZGNiMDNhYjI4NDBlNzY3NjM3OGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRp
bmdCZWZvcmVMb2FkRXZlbnQoKQogICAgIG1faGFzUGVuZGluZ0xvYWRFdmVudCA9IGZhbHNlOwog
ICAgIAogICAgIGlmIChpc0hUTUxPYmplY3RFbGVtZW50KG1fZWxlbWVudCkpCi0gICAgICAgIHN0
YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4obV9lbGVtZW50KS0+cmVuZGVyRmFsbGJhY2tD
b250ZW50KCk7CisgICAgICAgIHRvSFRNTE9iamVjdEVsZW1lbnQobV9lbGVtZW50KS0+cmVuZGVy
RmFsbGJhY2tDb250ZW50KCk7CiAKICAgICAvLyBPbmx5IGNvbnNpZGVyIHVwZGF0aW5nIHRoZSBw
cm90ZWN0aW9uIHJlZi1jb3VudCBvZiB0aGUgRWxlbWVudCBpbW1lZGlhdGVseSBiZWZvcmUgcmV0
dXJuaW5nCiAgICAgLy8gZnJvbSB0aGlzIGZ1bmN0aW9uIGFzIGRvaW5nIHNvIG1pZ2h0IHJlc3Vs
dCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhpcyBJbWFnZUxvYWRlci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggN2ViMjQ5ZGY3ZmY5YjU1YThlY2U1YWU3ZmY0NzJl
MGNkN2JhYzI0Ny4uNGMyODk1NzllNzEwM2IwNTI2YzljZTFlY2NkOWJiZTEzZWFhNTBiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTU1Miw4ICs1NTIsNyBAQCBi
b29sIERyYWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSYgZHJhZ0RhdGEpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUo
KS0+aXNQbHVnaW5FbGVtZW50KCkpIHsKLSAgICAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdp
biA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5FbGVtZW50Kj4ocmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpKTsKLSAgICAgICAgaWYgKCFwbHVnaW4tPmNhblByb2Nlc3NEcmFnKCkgJiYgIXJlc3Vs
dC5pbm5lck5vblNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCisgICAgICAgIGlm
ICghdG9IVE1MUGx1Z0luRWxlbWVudChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpLT5jYW5Q
cm9jZXNzRHJhZygpICYmICFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPnJlbmRlcmVySXNF
ZGl0YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSBpZiAoIXJl
c3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggNjI0MWVlM2M5NTJiNDYxNTVj
MjkyMDZiMDhmOTAxZTAwZTUyZjU4MC4uZDIzYmE1ZjQyYWU0MDAwMDRlMGIxZmI2NGM5MjMwYzc3
MjliODYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTM4Niw3ICszODYsNyBAQCBTdHJpbmcg
RnJhbWU6OnNlYXJjaEZvckxhYmVsc0JlZm9yZUVsZW1lbnQoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGxhYmVscywgRWxlbWVudAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKG4tPmhh
c1RhZ05hbWUodGRUYWcpICYmICFzdGFydGluZ1RhYmxlQ2VsbCkgewotICAgICAgICAgICAgc3Rh
cnRpbmdUYWJsZUNlbGwgPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KG4pOwor
ICAgICAgICAgICAgc3RhcnRpbmdUYWJsZUNlbGwgPSB0b0hUTUxUYWJsZUNlbGxFbGVtZW50KG4p
OwogICAgICAgICB9IGVsc2UgaWYgKG4tPmhhc1RhZ05hbWUodHJUYWcpICYmIHN0YXJ0aW5nVGFi
bGVDZWxsKSB7CiAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc2VhcmNoRm9yTGFiZWxzQWJv
dmVDZWxsKHJlZ0V4cC5nZXQoKSwgc3RhcnRpbmdUYWJsZUNlbGwsIHJlc3VsdERpc3RhbmNlKTsK
ICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAppbmRleCA1M2Y3YzM3ZDRiNDVhMGZjNjVjOGJjNDg5ZjNl
MGUxYWFlOGU3NjgzLi5kYTM3YzRiMTIwZjQzZWQxM2UxNWI4MzcyNGViMjllMDVlODBiNjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApAQCAtNzU4LDcgKzc1
OCw3IEBAIExheW91dFJlY3QgdmlydHVhbFJlY3RGb3JBcmVhRWxlbWVudEFuZERpcmVjdGlvbihI
VE1MQXJlYUVsZW1lbnQqIGFyZWEsIEZvY3VzRGlyCiAKIEhUTUxGcmFtZU93bmVyRWxlbWVudCog
ZnJhbWVPd25lckVsZW1lbnQoRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0ZSkKIHsKLSAgICByZXR1
cm4gY2FuZGlkYXRlLmlzRnJhbWVPd25lckVsZW1lbnQoKSA/IHN0YXRpY19jYXN0PEhUTUxGcmFt
ZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZS52aXNpYmxlTm9kZSkgOiAwOworICAgIHJldHVybiBj
YW5kaWRhdGUuaXNGcmFtZU93bmVyRWxlbWVudCgpID8gdG9IVE1MRnJhbWVPd25lckVsZW1lbnQo
Y2FuZGlkYXRlLnZpc2libGVOb2RlKSA6IG51bGxwdHI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217371</attachid>
            <date>2013-11-19 18:36:34 -0800</date>
            <delta_ts>2013-11-19 22:16:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131120113632.patch</filename>
            <type>text/plain</type>
            <size>19291</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMjFjNTc2MjkxMzhi
NzM4YTMwNTMwMjdjYWVkNWQ1YmVmZTE0NS4uNjFmMWJlZTRkZDhjYzczYjUxZGJhYzliMjY3M2E3
ZGI0OTBmMDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTE5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBsb3Qg
b2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1c2Ug
b2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2UgbmVl
ZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJsZVNl
Y3Rpb258VGFibGVDYXB0aW9uRWxlbWVudCgpLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgb3Ro
ZXIgc3RhdGljX2Nhc3Q8PiBhcmUgcmVtb3ZlZCBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgICogaHRt
bC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzaG91bGRBbGxvd1F1aWNr
VGltZUNsYXNzSWRRdWlyayk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250
cm9sKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2sp
OgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTFN1bW1hcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWJsZUVsZW1lbnQ6OnRIZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1l
bnQ6OnRGb290KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5
KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5kZXgpOgorICAgICAgICAqIGh0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoK
KyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
dGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoYW5kbGVGYWxs
YmFja0NvbnRlbnQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KToK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudCk6
CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpmcmFtZU93bmVyRWxlbWVudCk6CisKIDIwMTMtMTEtMTkgIFpodWFuZyBaaGlnYW5nICA8emh1
YW5nemdAY24uZnVqaXRzdS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHNwaW4gY29udHJvbCBv
biBXaW5DRSBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWls
c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5k
ZXggNjFiMDNkNGYwY2JmMGVkZjNmNjhiODc2ZWMxNTg0ODQwOGNiNWFjYi4uYzE0MjhlNmE3OWQ2
NGMzMjFjNDkzYjFhZDdjYTUzYmZjYmIxNjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5oCkBAIC00NCw2ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
T3BlbjsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1MRGV0YWlsc0VsZW1lbnQpCisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxEZXRhaWxzRWxlbWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkMTE0MzEwNDhlNGNkNDc3
NzAxNjg0Yjk0NmMxMWZiMmM4NWQ4YWY0Li5hMGQ5YjUzNjg1ZWEyNzQ0Njc2MjRkNTVmYzg0OGNh
ZDAxNmU1YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTM1MTQsNyArMzUxNCw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNl
Q2hpbGQoQ29udGVudFR5cGUqIGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgICAgIGlmIChu
b2RlLnBhcmVudE5vZGUoKSAhPSB0aGlzKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgc291cmNlID0gc3RhdGljX2Nhc3Q8SFRNTFNvdXJjZUVsZW1lbnQqPigmbm9kZSk7CisgICAg
ICAgIHNvdXJjZSA9IHRvSFRNTFNvdXJjZUVsZW1lbnQoJm5vZGUpOwogCiAgICAgICAgIC8vIElm
IGNhbmRpZGF0ZSBkb2VzIG5vdCBoYXZlIGEgc3JjIGF0dHJpYnV0ZSwgb3IgaWYgaXRzIHNyYyBh
dHRyaWJ1dGUncyB2YWx1ZSBpcyB0aGUgZW1wdHkgc3RyaW5nIC4uLiBqdW1wIGRvd24gdG8gdGhl
IGZhaWxlZCBzdGVwIGJlbG93CiAgICAgICAgIG1lZGlhVVJMID0gc291cmNlLT5nZXROb25FbXB0
eVVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5o
CmluZGV4IGY5NzExOWViMTYxOGE1NDk5NGU3MjVmMTQ5ZGM0YzlkYWY2MTE4ZGUuLjdlNDBkZTk4
ZDY0ZTk1NWFiYjI5MDU0YzhiZjNkNGRjOTlkMDBiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0YUVsZW1lbnQuaApAQCAtNDQsNiArNDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vz
cygpOwogfTsKIAorTk9ERV9UWVBFX0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKaW5kZXggYWU1YTQ2NWFlODQxODg0ZTM5ZTAxYzgxMGEyNjEyY2JhNjA0YWIwYS4u
Zjk0NjYyMzI5NjdjNWI1MGY4NTk0MDQ1MjZiNDY5OGIzNDljMjkzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTI0Myw5ICsyNDMsOCBAQCBib29sIEhU
TUxPYmplY3RFbGVtZW50OjpzaG91bGRBbGxvd1F1aWNrVGltZUNsYXNzSWRRdWlyaygpCiAgICAg
UmVmUHRyPE5vZGVMaXN0PiBtZXRhRWxlbWVudHMgPSBkb2N1bWVudCgpLmdldEVsZW1lbnRzQnlU
YWdOYW1lKEhUTUxOYW1lczo6bWV0YVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgdW5zaWduZWQgbGVu
Z3RoID0gbWV0YUVsZW1lbnRzLT5sZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04obWV0YUVsZW1lbnRzLT5pdGVtKGkpLT5pc0hUTUxFbGVtZW50KCkpOwotICAgICAgICBIVE1M
TWV0YUVsZW1lbnQqIG1ldGFFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4o
bWV0YUVsZW1lbnRzLT5pdGVtKGkpKTsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1l
dGFFbGVtZW50LT5uYW1lKCksICJnZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC0+Y29udGVudCgp
LnN0YXJ0c1dpdGgoIk1hYyBPUyBYIFNlcnZlciBXZWIgU2VydmljZXMgU2VydmVyIiwgZmFsc2Up
KQorICAgICAgICBIVE1MTWV0YUVsZW1lbnQmIG1ldGFFbGVtZW50ID0gKnRvSFRNTE1ldGFFbGVt
ZW50KG1ldGFFbGVtZW50cy0+aXRlbShpKSk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShtZXRhRWxlbWVudC5uYW1lKCksICJnZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC5jb250ZW50
KCkuc3RhcnRzV2l0aCgiTWFjIE9TIFggU2VydmVyIFdlYiBTZXJ2aWNlcyBTZXJ2ZXIiLCBmYWxz
ZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDNlNzdjNmFkYmRjNTc4MjM3YzM2MmFm
OWU5ZDI4MjkyOWFlYmYyNzguLjkxNmQzNTIyMjU1YzVlZGU4Y2Q3MzMyMDBjNTEyZDBhMmViZTFi
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zNDQs
OCArMzQ0LDggQEAgYm9vbCBIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9s
KCkgY29uc3QKICAgICBpZiAoIXBhcmVudE5vZGUoKSB8fCAhcGFyZW50Tm9kZSgpLT5pc0hUTUxF
bGVtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEhUTUxFbGVtZW50KiBwYXJl
bnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOwotICAg
IHJldHVybiBpc0hUTUxPcHRHcm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkgJiYgcGFyZW50RWxl
bWVudC0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCk7CisgICAgSFRNTEVsZW1lbnQmIHBhcmVudEVs
ZW1lbnQgPSAqdG9IVE1MRWxlbWVudChwYXJlbnROb2RlKCkpOworICAgIHJldHVybiBpc0hUTUxP
cHRHcm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC5pc0Rpc2FibGVk
Rm9ybUNvbnRyb2woKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBI
VE1MT3B0aW9uRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBv
aW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
aW5kZXggNTQ3NmViNTE2ZTg2NzJiNGQ1YjRiZjE4NDEzM2U2ZmVlMDA5OTQ3Ny4uMjQzOGRmZWRi
ZmI4MmQ2ZmNhMjcxYzI2MTZjMTA0NzlhNzg2NDdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0zMjQsNyArMzI0LDcgQEAgUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JS
ZW5kZXJlcigpCiAKIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2Fs
bGJhY2soTm9kZSogbiwgdW5zaWduZWQpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbklt
YWdlRWxlbWVudCo+KG4pLT51cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOworICAgIHRvSFRNTFBs
dWdJbkltYWdlRWxlbWVudChuKS0+dXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKIH0KIAogdm9p
ZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdl
PiBpbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRl
eCBkZTg1OThlNjcxZjBhOTFiZmZlZTU4ZDNjOGUxNWE2YmE5ODk1NTZjLi5iYTE5ZDMzNjYxZWMz
YjM2MTBlNjRlNzM5ZTM0NzkxZDM4ZjhiNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudCog
SFRNTFN1bW1hcnlFbGVtZW50OjpkZXRhaWxzRWxlbWVudCgpIGNvbnN0CiAgICAgTm9kZSogbWF5
RGV0YWlscyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnBhcmVudCh0aGlzKTsKICAgICBpZiAo
IW1heURldGFpbHMgfHwgIW1heURldGFpbHMtPmhhc1RhZ05hbWUoZGV0YWlsc1RhZykpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQq
PihtYXlEZXRhaWxzKTsKKyAgICByZXR1cm4gdG9IVE1MRGV0YWlsc0VsZW1lbnQobWF5RGV0YWls
cyk7CiB9CiAKIGJvb2wgSFRNTFN1bW1hcnlFbGVtZW50Ojppc01haW5TdW1tYXJ5KCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IDI2YTExZDgzZjFi
NzE0NWMxMDJjMzQ1Njc1MjNmZGJhYmJmNmNkNjcuLjJjY2Q5ZmFkZDM0MDM0OTVmMjViOTQ5MWQ3
MGRiYTYwNGZlMWQ0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aApAQCAtNDYsNiArNDYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNv
bnN0IE9WRVJSSURFOwogfTsKIAorTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkK
KwogfQogCiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCA0MjAxM2RlM2Q3ZmNiZjFkZThl
NTBkYTY4YTUzNTlmMmJiZTU2ZGQ1Li4zYjJhZmI1ZjlmYTg3NGFkMjhjMDU2OTZiMGI4MzQ3ZDAz
NmNkOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5oCkBAIC00MSw2ICs0MSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIH07CiAK
K05PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVDYXB0aW9uRWxlbWVudCkKKwogfSAvLyBuYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRl
eCA2NWY2MTIyZTMxMGVlN2ZkYWI0ZDM0YmJkZjNhYzM4NWQxMGQ4ZjhiLi4wNWU1ZmVkNWI4MWVk
MGY0MTMwN2M0NDQ1YzJkYzE2NTA1M2I2NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQq
IEhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24oKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hp
bGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7
CiAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAg
ICAgICAgICAgIHJldHVybiB0b0hUTUxUYWJsZUNhcHRpb25FbGVtZW50KGNoaWxkKTsKICAgICB9
CiAgICAgcmV0dXJuIDA7CiB9CkBAIC04Niw3ICs4Niw3IEBAIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVhZCgpIGNvbnN0CiB7CiAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAg
ICAgICAgICAgIHJldHVybiB0b0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50KGNoaWxkKTsKICAgICB9
CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRGb290KCkgY29uc3QKIHsKICAgICBmb3IgKE5vZGUq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkgewogICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUodGZvb3RUYWcpKQotICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oY2hpbGQpOwor
ICAgICAgICAgICAgcmV0dXJuIHRvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY2hpbGQpOwogICAg
IH0KICAgICByZXR1cm4gMDsKIH0KQEAgLTE3OCw3ICsxNzgsNyBAQCBIVE1MVGFibGVTZWN0aW9u
RWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6bGFzdEJvZHkoKSBjb25zdAogewogICAgIGZvciAo
Tm9kZSogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3Vz
U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZSh0Ym9keVRhZykpCi0g
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihj
aGlsZCk7CisgICAgICAgICAgICByZXR1cm4gdG9IVE1MVGFibGVTZWN0aW9uRWxlbWVudChjaGls
ZCk7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5jcHAKaW5kZXggNjQ5ZWMyZjM4NjBlZGI0NzhiNjVkZmNhMWNhNDlkMzc4
ZjAwZWI5Yy4uMjUwNmNmNGZlZjU3YTFjZmExYzdhOGRjNmJkOGY1YzAyZmU0MTNiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCkBAIC04MSw4ICs4MSw4
IEBAIGludCBIVE1MVGFibGVSb3dFbGVtZW50Ojpyb3dJbmRleCgpIGNvbnN0CiAgICAgCiAgICAg
Zm9yIChOb2RlICpub2RlID0gdGFibGUtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
Pm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGJvZHlUYWcp
KSB7Ci0gICAgICAgICAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VjdGlvbiA9IHN0YXRp
Y19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4obm9kZSk7Ci0gICAgICAgICAgICBmb3Ig
KE5vZGUqIHJvdyA9IHNlY3Rpb24tPmZpcnN0Q2hpbGQoKTsgcm93OyByb3cgPSByb3ctPm5leHRT
aWJsaW5nKCkpIHsKKyAgICAgICAgICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50JiBzZWN0aW9u
ID0gKnRvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQobm9kZSk7CisgICAgICAgICAgICBmb3IgKE5v
ZGUqIHJvdyA9IHNlY3Rpb24uZmlyc3RDaGlsZCgpOyByb3c7IHJvdyA9IHJvdy0+bmV4dFNpYmxp
bmcoKSkgewogICAgICAgICAgICAgICAgIGlmIChyb3cgPT0gdGhpcykKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJJbmRleDsKICAgICAgICAgICAgICAgICBpZiAocm93LT5oYXNUYWdOYW1l
KHRyVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
aAppbmRleCBlZDg3Mjk0ZTg0NDA4MzdmZDdhOTE2N2I1NjEzMTZlZWY3NjQ5ZGZmLi5iNzA1M2Vk
YWM1YzNhMmI4OTg3MDllMjdiMjFkYzkyNzAzNzNmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCkBAIC01OSw2ICs1OSw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBhZGRpdGlvbmFsUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoKSBPVkVSUklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1M
VGFibGVTZWN0aW9uRWxlbWVudCkKKwogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggMzg5NDAzNGJiMzE3YWE0ZTNiMzJlYWQ5ZmEwMjk1
ZjRmODRlMjFhYS4uNGNlNDJhZGVlNmI1MzdhMDdlZWZhY2I0NWQ4MjA5MThiZTBkODcxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAgYm9keSBnZW5l
cmF0ZVR5cGVIZWxwZXJzCiBiciBpbnRlcmZhY2VOYW1lPUhUTUxCUkVsZW1lbnQKIGJ1dHRvbiBj
b25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIGNhbnZhcyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1j
YXB0aW9uIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQKK2NhcHRpb24gaW50
ZXJmYWNlTmFtZT1IVE1MVGFibGVDYXB0aW9uRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwog
Y2VudGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGNpdGUgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAogY29kZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CkBAIC0zNSw3ICszNSw3IEBA
IHdlYmtpdFNoYWRvd0NvbnRlbnQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1
Y3RvcgogZGF0YWxpc3QgaW50ZXJmYWNlTmFtZT1IVE1MRGF0YUxpc3RFbGVtZW50LCBjb25kaXRp
b25hbD1EQVRBTElTVF9FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBkZCBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBkZWwgaW50ZXJmYWNlTmFtZT1IVE1MTW9kRWxlbWVudAotZGV0YWls
cyBjb25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQKK2RldGFpbHMgY29uZGl0aW9uYWw9REVUQUlM
U19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzIAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKIGRpciBpbnRlcmZhY2VOYW1lPUhUTUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKQEAgLTgy
LDcgKzgyLDcgQEAgbWFwIGdlbmVyYXRlVHlwZUhlbHBlcnMKIG1hcmsgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogbWFycXVlZQogbWVudQotbWV0YQorbWV0YSBnZW5lcmF0ZVR5cGVIZWxwZXJz
CiBtZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVS
X0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIG5hdiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiBub2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKQEAgLTExNSwxMCArMTE1LDEwIEBA
IHN0cmlrZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzdHJvbmcgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogc3R5bGUgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJh
dGVUeXBlSGVscGVycwogc3ViIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN1bW1hcnkgaW50
ZXJmYWNlTmFtZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dCwgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5UCitzdW1tYXJ5IGludGVyZmFjZU5hbWU9SFRN
TFN1bW1hcnlFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIGNvbmRpdGlvbmFs
PURFVEFJTFNfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycwogc3VwIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKIHRhYmxlIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRib2R5IGludGVyZmFjZU5h
bWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKK3Rib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHRkIGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlQ2VsbEVsZW1lbnQKIHRlbXBsYXRlIGNvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQs
IGdlbmVyYXRlVHlwZUhlbHBlcnMKIHRleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVh
RWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAppbmRleCA4MzA3OGNiNzNmOTFhZTdj
MjdkNTA1OTcyMDE4Yjk2MjE1NWM3MmRhLi5jNzMyODhkYmFiZGJmNDFiNWU4ZmI2ZGYwMDA0ZWQx
OTBmODYxMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTkzLDEx
ICs5MywxMSBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0
dXJlKCkKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAibWVkaWEi
KTsKIAogICAgIFJlZlB0cjxFbGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChzb3VyY2VUYWcsIGZhbHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCogc291
cmNlID0gc3RhdGljX2Nhc3Q8SFRNTFNvdXJjZUVsZW1lbnQqPihzb3VyY2VFbGVtZW50LmdldCgp
KTsKLSAgICBzb3VyY2UtPnNldFNyYyhkb2N1bWVudCgpLT51cmwoKSk7CisgICAgSFRNTFNvdXJj
ZUVsZW1lbnQmIHNvdXJjZSA9ICp0b0hUTUxTb3VyY2VFbGVtZW50KHNvdXJjZUVsZW1lbnQuZ2V0
KCkpOworICAgIHNvdXJjZS5zZXRTcmMoZG9jdW1lbnQoKS0+dXJsKCkpOwogCiAgICAgaWYgKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIgPSBkb2N1bWVudCgpLT5sb2FkZXIoKSkKLSAgICAgICAgc291
cmNlLT5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKKyAgICAgICAgc291cmNl
LnNldFR5cGUobG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCkpOwogCiAgICAgbV9tZWRpYUVsZW1l
bnQtPmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGJv
ZHktPmFwcGVuZENoaWxkKG1lZGlhRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5k
ZXggNDdiZTAxMGFmZmE2MmQwMjk3YjIzOGY4NDk4NGM0NDBjOTQ2ZWYyMi4uNTI3YTRkNjZmNGNk
OTNmYTYwYzY0ZWZmZGFjY2RmMDY4ZmZlMjI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAtNjMsOSArNjMsNyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIERldGFpbHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiAKIEhUTUxTdW1tYXJ5RWxlbWVudCogRGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1h
cnlFbGVtZW50KCkKIHsKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gc2hhZG93SG9zdCgpOwotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUoc3VtbWFyeVRhZykpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU3VtbWFy
eUVsZW1lbnQqPihlbGVtZW50KTsKKyAgICByZXR1cm4gdG9IVE1MU3VtbWFyeUVsZW1lbnQoc2hh
ZG93SG9zdCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5k
ZXggNGVlYjFkMDRiZDNjZTMyNTkyOTk3MmExNDhlNWE5NDMyZDMzNzliNC4uZjM0NzRjMzcwNjM1
Y2RjOTc5ZWYzZDRjZDczZjM4NTJkNzBkNTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC05ODYsNyArOTg2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6aGFuZGxlRmFs
bGJhY2tDb250ZW50KCkKICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gbV9mcmFt
ZS5vd25lckVsZW1lbnQoKTsKICAgICBpZiAoIW93bmVyIHx8ICFvd25lci0+aGFzVGFnTmFtZShv
YmplY3RUYWcpKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVs
ZW1lbnQqPihvd25lciktPnJlbmRlckZhbGxiYWNrQ29udGVudCgpOworICAgIHRvSFRNTE9iamVj
dEVsZW1lbnQob3duZXIpLT5yZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6cHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAppbmRleCAwMTFiY2RhMzE3YzUwZjQyNWRjMzgwNjMyMWZhMGY5MzFlYmNlODU5
Li5iNTNiODhhM2M4ODE2ZDAyOTUyZGNiMDNhYjI4NDBlNzY3NjM3OGE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIEltYWdlTG9h
ZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKQogICAgIG1faGFzUGVuZGluZ0xv
YWRFdmVudCA9IGZhbHNlOwogICAgIAogICAgIGlmIChpc0hUTUxPYmplY3RFbGVtZW50KG1fZWxl
bWVudCkpCi0gICAgICAgIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4obV9lbGVtZW50
KS0+cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CisgICAgICAgIHRvSFRNTE9iamVjdEVsZW1lbnQo
bV9lbGVtZW50KS0+cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiAKICAgICAvLyBPbmx5IGNvbnNp
ZGVyIHVwZGF0aW5nIHRoZSBwcm90ZWN0aW9uIHJlZi1jb3VudCBvZiB0aGUgRWxlbWVudCBpbW1l
ZGlhdGVseSBiZWZvcmUgcmV0dXJuaW5nCiAgICAgLy8gZnJvbSB0aGlzIGZ1bmN0aW9uIGFzIGRv
aW5nIHNvIG1pZ2h0IHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhpcyBJbWFnZUxvYWRl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggN2ViMjQ5ZGY3ZmY5
YjU1YThlY2U1YWU3ZmY0NzJlMGNkN2JhYzI0Ny4uNGMyODk1NzllNzEwM2IwNTI2YzljZTFlY2Nk
OWJiZTEzZWFhNTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAg
LTU1Miw4ICs1NTIsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyhEcmFn
RGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKHJlc3VsdC5p
bm5lck5vblNoYXJlZE5vZGUoKS0+aXNQbHVnaW5FbGVtZW50KCkpIHsKLSAgICAgICAgSFRNTFBs
dWdJbkVsZW1lbnQqIHBsdWdpbiA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5FbGVtZW50Kj4ocmVz
dWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKTsKLSAgICAgICAgaWYgKCFwbHVnaW4tPmNhblByb2Nl
c3NEcmFnKCkgJiYgIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRh
YmxlKCkpCisgICAgICAgIGlmICghdG9IVE1MUGx1Z0luRWxlbWVudChyZXN1bHQuaW5uZXJOb25T
aGFyZWROb2RlKCkpLT5jYW5Qcm9jZXNzRHJhZygpICYmICFyZXN1bHQuaW5uZXJOb25TaGFyZWRO
b2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0gZWxzZSBpZiAoIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0Vk
aXRhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXgg
NjI0MWVlM2M5NTJiNDYxNTVjMjkyMDZiMDhmOTAxZTAwZTUyZjU4MC4uZDIzYmE1ZjQyYWU0MDAw
MDRlMGIxZmI2NGM5MjMwYzc3MjliODYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTM4Niw3
ICszODYsNyBAQCBTdHJpbmcgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0JlZm9yZUVsZW1lbnQoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGxhYmVscywgRWxlbWVudAogICAgICAgICAgICAgYnJlYWs7CiAK
ICAgICAgICAgaWYgKG4tPmhhc1RhZ05hbWUodGRUYWcpICYmICFzdGFydGluZ1RhYmxlQ2VsbCkg
ewotICAgICAgICAgICAgc3RhcnRpbmdUYWJsZUNlbGwgPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVD
ZWxsRWxlbWVudCo+KG4pOworICAgICAgICAgICAgc3RhcnRpbmdUYWJsZUNlbGwgPSB0b0hUTUxU
YWJsZUNlbGxFbGVtZW50KG4pOwogICAgICAgICB9IGVsc2UgaWYgKG4tPmhhc1RhZ05hbWUodHJU
YWcpICYmIHN0YXJ0aW5nVGFibGVDZWxsKSB7CiAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0g
c2VhcmNoRm9yTGFiZWxzQWJvdmVDZWxsKHJlZ0V4cC5nZXQoKSwgc3RhcnRpbmdUYWJsZUNlbGws
IHJlc3VsdERpc3RhbmNlKTsKICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAppbmRleCA1M2Y3YzM3ZDRi
NDVhMGZjNjVjOGJjNDg5ZjNlMGUxYWFlOGU3NjgzLi5kYTM3YzRiMTIwZjQzZWQxM2UxNWI4Mzcy
NGViMjllMDVlODBiNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcApAQCAtNzU4LDcgKzc1OCw3IEBAIExheW91dFJlY3QgdmlydHVhbFJlY3RGb3JBcmVhRWxl
bWVudEFuZERpcmVjdGlvbihIVE1MQXJlYUVsZW1lbnQqIGFyZWEsIEZvY3VzRGlyCiAKIEhUTUxG
cmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lckVsZW1lbnQoRm9jdXNDYW5kaWRhdGUmIGNhbmRp
ZGF0ZSkKIHsKLSAgICByZXR1cm4gY2FuZGlkYXRlLmlzRnJhbWVPd25lckVsZW1lbnQoKSA/IHN0
YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZS52aXNpYmxlTm9kZSkg
OiAwOworICAgIHJldHVybiBjYW5kaWRhdGUuaXNGcmFtZU93bmVyRWxlbWVudCgpID8gdG9IVE1M
RnJhbWVPd25lckVsZW1lbnQoY2FuZGlkYXRlLnZpc2libGVOb2RlKSA6IG51bGxwdHI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217382</attachid>
            <date>2013-11-19 22:16:16 -0800</date>
            <delta_ts>2013-11-20 18:00:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131120151614.patch</filename>
            <type>text/plain</type>
            <size>19318</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5MTJiNWRmOGViMjhi
MDI3NmM2ZWVlYWViYTA1NDM2ODczOTYwMi4uNjFmOThiMzMzNDkxNTVkNjNjODQwYWE4OGIzNjA5
NGI3NTE1ZjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTExLTE5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBsb3Qg
b2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1c2Ug
b2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2UgbmVl
ZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJsZVNl
Y3Rpb258VGFibGVDYXB0aW9uRWxlbWVudCgpLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgb3Ro
ZXIgc3RhdGljX2Nhc3Q8PiBhcmUgcmVtb3ZlZCBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaGlsZCk6CisgICAgICAgICogaHRt
bC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzaG91bGRBbGxvd1F1aWNr
VGltZUNsYXNzSWRRdWlyayk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250
cm9sKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2sp
OgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTFN1bW1hcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWJsZUVsZW1lbnQ6OnRIZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1l
bnQ6OnRGb290KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5
KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5kZXgpOgorICAgICAgICAqIGh0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoK
KyAgICAgICAgKiBodG1sL01lZGlhRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
dGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoYW5kbGVGYWxs
YmFja0NvbnRlbnQpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KToK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudCk6
CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpmcmFtZU93bmVyRWxlbWVudCk6CisKIDIwMTMtMTEtMTkgIFNlb2tqdSBLd29uICA8c2Vva2p1
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZhbCBvZiByZWR1bmRhbnQgZnVuY3Rpb24gY2Fs
bCBpbiBFZGl0b3I6Omluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggNjFiMDNkNGYwY2JmMGVkZjNmNjhi
ODc2ZWMxNTg0ODQwOGNiNWFjYi4uYzE0MjhlNmE3OWQ2NGMzMjFjNDkzYjFhZDdjYTUzYmZjYmIx
NjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCkBAIC00NCw2
ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzT3BlbjsKIH07CiAKK05PREVfVFlQRV9D
QVNUUyhIVE1MRGV0YWlsc0VsZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEhUTUxEZXRhaWxzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAppbmRleCBkMTE0MzEwNDhlNGNkNDc3NzAxNjg0Yjk0NmMxMWZiMmM4NWQ4YWY0
Li5hMGQ5YjUzNjg1ZWEyNzQ0Njc2MjRkNTVmYzg0OGNhZDAxNmU1YzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM1MTQsNyArMzUxNCw3IEBAIFVSTCBI
VE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUqIGNvbnRl
bnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUoKSAhPSB0aGlz
KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc291cmNlID0gc3RhdGljX2Nhc3Q8
SFRNTFNvdXJjZUVsZW1lbnQqPigmbm9kZSk7CisgICAgICAgIHNvdXJjZSA9IHRvSFRNTFNvdXJj
ZUVsZW1lbnQoJm5vZGUpOwogCiAgICAgICAgIC8vIElmIGNhbmRpZGF0ZSBkb2VzIG5vdCBoYXZl
IGEgc3JjIGF0dHJpYnV0ZSwgb3IgaWYgaXRzIHNyYyBhdHRyaWJ1dGUncyB2YWx1ZSBpcyB0aGUg
ZW1wdHkgc3RyaW5nIC4uLiBqdW1wIGRvd24gdG8gdGhlIGZhaWxlZCBzdGVwIGJlbG93CiAgICAg
ICAgIG1lZGlhVVJMID0gc291cmNlLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IGY5NzExOWViMTYxOGE1NDk5
NGU3MjVmMTQ5ZGM0YzlkYWY2MTE4ZGUuLjdlNDBkZTk4ZDY0ZTk1NWFiYjI5MDU0YzhiZjNkNGRj
OTlkMDBiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtNDQsNiAr
NDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAorTk9ERV9UWVBFX0NB
U1RTKEhUTUxNZXRhRWxlbWVudCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYWU1YTQ2NWFl
ODQxODg0ZTM5ZTAxYzgxMGEyNjEyY2JhNjA0YWIwYS4uMDdmNTlhMTYxZmRjOTJkZTNmNTI3ZGEy
MDM0OWZlZGY4NWI4ZjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAKQEAgLTI0Myw5ICsyNDMsOCBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjpzaG91bGRB
bGxvd1F1aWNrVGltZUNsYXNzSWRRdWlyaygpCiAgICAgUmVmUHRyPE5vZGVMaXN0PiBtZXRhRWxl
bWVudHMgPSBkb2N1bWVudCgpLmdldEVsZW1lbnRzQnlUYWdOYW1lKEhUTUxOYW1lczo6bWV0YVRh
Zy5sb2NhbE5hbWUoKSk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbWV0YUVsZW1lbnRzLT5sZW5n
dGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obWV0YUVsZW1lbnRzLT5pdGVtKGkp
LT5pc0hUTUxFbGVtZW50KCkpOwotICAgICAgICBIVE1MTWV0YUVsZW1lbnQqIG1ldGFFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4obWV0YUVsZW1lbnRzLT5pdGVtKGkpKTsK
LSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1ldGFFbGVtZW50LT5uYW1lKCksICJnZW5l
cmF0b3IiKSAmJiBtZXRhRWxlbWVudC0+Y29udGVudCgpLnN0YXJ0c1dpdGgoIk1hYyBPUyBYIFNl
cnZlciBXZWIgU2VydmljZXMgU2VydmVyIiwgZmFsc2UpKQorICAgICAgICBIVE1MTWV0YUVsZW1l
bnQmIG1ldGFFbGVtZW50ID0gdG9IVE1MTWV0YUVsZW1lbnQoKm1ldGFFbGVtZW50cy0+aXRlbShp
KSk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZXRhRWxlbWVudC5uYW1lKCksICJn
ZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC5jb250ZW50KCkuc3RhcnRzV2l0aCgiTWFjIE9TIFgg
U2VydmVyIFdlYiBTZXJ2aWNlcyBTZXJ2ZXIiLCBmYWxzZSkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwCmluZGV4IDNlNzdjNmFkYmRjNTc4MjM3YzM2MmFmOWU5ZDI4MjkyOWFlYmYyNzguLmYyYjM2
MjRmN2MxZDlmMjU5MjQwNjgyMzhjMzkyZTI1ZTU0YTNmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zNDQsOCArMzQ0LDggQEAgYm9vbCBIVE1MT3B0
aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QKICAgICBpZiAoIXBhcmVu
dE5vZGUoKSB8fCAhcGFyZW50Tm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIEhUTUxFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
SFRNTEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOwotICAgIHJldHVybiBpc0hUTUxPcHRHcm91cEVs
ZW1lbnQocGFyZW50RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC0+aXNEaXNhYmxlZEZvcm1Db250
cm9sKCk7CisgICAgSFRNTEVsZW1lbnQmIHBhcmVudEVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KCpw
YXJlbnROb2RlKCkpOworICAgIHJldHVybiBpc0hUTUxPcHRHcm91cEVsZW1lbnQocGFyZW50RWxl
bWVudCkgJiYgcGFyZW50RWxlbWVudC5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsKIH0KIAogTm9k
ZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MT3B0aW9uRWxlbWVudDo6aW5zZXJ0
ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggNTQ3NmViNTE2ZTg2NzJiNGQ1
YjRiZjE4NDEzM2U2ZmVlMDA5OTQ3Ny4uMjQzOGRmZWRiZmI4MmQ2ZmNhMjcxYzI2MTZjMTA0Nzlh
Nzg2NDdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuY3BwCkBAIC0zMjQsNyArMzI0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpCiAKIHZvaWQgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2soTm9kZSogbiwgdW5zaWduZWQp
CiB7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KG4pLT51cGRhdGVX
aWRnZXRJZk5lY2Vzc2FyeSgpOworICAgIHRvSFRNTFBsdWdJbkltYWdlRWxlbWVudChuKS0+dXBk
YXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBkZTg1OThlNjcxZjBhOTFiZmZlZTU4
ZDNjOGUxNWE2YmE5ODk1NTZjLi5iYTE5ZDMzNjYxZWMzYjM2MTBlNjRlNzM5ZTM0NzkxZDM4Zjhi
NTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudCogSFRNTFN1bW1hcnlFbGVtZW50OjpkZXRh
aWxzRWxlbWVudCgpIGNvbnN0CiAgICAgTm9kZSogbWF5RGV0YWlscyA9IE5vZGVSZW5kZXJpbmdU
cmF2ZXJzYWw6OnBhcmVudCh0aGlzKTsKICAgICBpZiAoIW1heURldGFpbHMgfHwgIW1heURldGFp
bHMtPmhhc1RhZ05hbWUoZGV0YWlsc1RhZykpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQqPihtYXlEZXRhaWxzKTsKKyAgICByZXR1
cm4gdG9IVE1MRGV0YWlsc0VsZW1lbnQobWF5RGV0YWlscyk7CiB9CiAKIGJvb2wgSFRNTFN1bW1h
cnlFbGVtZW50Ojppc01haW5TdW1tYXJ5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5oCmluZGV4IDI2YTExZDgzZjFiNzE0NWMxMDJjMzQ1Njc1MjNmZGJhYmJm
NmNkNjcuLjJjY2Q5ZmFkZDM0MDM0OTVmMjViOTQ5MWQ3MGRiYTYwNGZlMWQ0Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAtNDYsNiArNDYsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOwogfTsKIAorTk9E
RV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKKwogfQogCiAjZW5kaWYgLy8gSFRNTFN1
bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuaAppbmRleCA0MjAxM2RlM2Q3ZmNiZjFkZThlNTBkYTY4YTUzNTlmMmJiZTU2ZGQ1Li4z
YjJhZmI1ZjlmYTg3NGFkMjhjMDU2OTZiMGI4MzQ3ZDAzNmNkOWFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00MSw2ICs0MSw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1MVGFi
bGVDYXB0aW9uRWxlbWVudCkKKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA2NWY2MTIyZTMxMGVlN2ZkYWI0ZDM0
YmJkZjNhYzM4NWQxMGQ4ZjhiLi4wNWU1ZmVkNWI4MWVkMGY0MTMwN2M0NDQ1YzJkYzE2NTA1M2I2
NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTcxLDcg
KzcxLDcgQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRp
b24oKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+aGFz
VGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1M
VGFibGVDYXB0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0b0hUTUxU
YWJsZUNhcHRpb25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC04
Niw3ICs4Niw3IEBAIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0
SGVhZCgpIGNvbnN0CiB7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5o
YXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1M
VGFibGVTZWN0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0b0hUTUxU
YWJsZVNlY3Rpb25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0x
MDcsNyArMTA3LDcgQEAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6
OnRGb290KCkgY29uc3QKIHsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoY2hpbGQt
Pmhhc1RhZ05hbWUodGZvb3RUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oY2hpbGQpOworICAgICAgICAgICAgcmV0dXJuIHRvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQoY2hpbGQpOwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KQEAg
LTE3OCw3ICsxNzgsNyBAQCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRNTFRhYmxlRWxlbWVu
dDo6bGFzdEJvZHkoKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBsYXN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgIGlm
IChjaGlsZC0+aGFzVGFnTmFtZSh0Ym9keVRhZykpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihjaGlsZCk7CisgICAgICAgICAgICByZXR1
cm4gdG9IVE1MVGFibGVTZWN0aW9uRWxlbWVudChjaGlsZCk7CiAgICAgfQogICAgIHJldHVybiAw
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKaW5kZXgg
NjQ5ZWMyZjM4NjBlZGI0NzhiNjVkZmNhMWNhNDlkMzc4ZjAwZWI5Yy4uODZlNWM1NmEzMmFjNTVj
ZjFhODRkMzBjNGUwYzdmZDIxODYzOGViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZVJvd0VsZW1lbnQuY3BwCkBAIC04MSw4ICs4MSw4IEBAIGludCBIVE1MVGFibGVSb3dFbGVt
ZW50Ojpyb3dJbmRleCgpIGNvbnN0CiAgICAgCiAgICAgZm9yIChOb2RlICpub2RlID0gdGFibGUt
PmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUodGJvZHlUYWcpKSB7Ci0gICAgICAgICAgICBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCogc2VjdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50Kj4obm9kZSk7Ci0gICAgICAgICAgICBmb3IgKE5vZGUqIHJvdyA9IHNlY3Rpb24tPmZp
cnN0Q2hpbGQoKTsgcm93OyByb3cgPSByb3ctPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAg
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50JiBzZWN0aW9uID0gdG9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudCgqbm9kZSk7CisgICAgICAgICAgICBmb3IgKE5vZGUqIHJvdyA9IHNlY3Rpb24uZmlyc3RD
aGlsZCgpOyByb3c7IHJvdyA9IHJvdy0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAgICAgICAg
IGlmIChyb3cgPT0gdGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJJbmRleDsKICAg
ICAgICAgICAgICAgICBpZiAocm93LT5oYXNUYWdOYW1lKHRyVGFnKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAppbmRleCBlZDg3Mjk0ZTg0NDA4Mzdm
ZDdhOTE2N2I1NjEzMTZlZWY3NjQ5ZGZmLi5iNzA1M2VkYWM1YzNhMmI4OTg3MDllMjdiMjFkYzky
NzAzNzNmYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oCkBAIC01OSw2ICs1OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBTdHls
ZVByb3BlcnR5U2V0KiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBPVkVS
UklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVTZWN0aW9uRWxlbWVudCkKKwog
fSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5k
ZXggMzg5NDAzNGJiMzE3YWE0ZTNiMzJlYWQ5ZmEwMjk1ZjRmODRlMjFhYS4uNGNlNDJhZGVlNmI1
MzdhMDdlZWZhY2I0NWQ4MjA5MThiZTBkODcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFt
ZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAgYm9keSBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBiciBpbnRl
cmZhY2VOYW1lPUhUTUxCUkVsZW1lbnQKIGJ1dHRvbiBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQKIGNhbnZhcyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1jYXB0aW9uIGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQKK2NhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDYXB0
aW9uRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwogY2VudGVyIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKIGNpdGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogY29kZSBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CkBAIC0zNSw3ICszNSw3IEBAIHdlYmtpdFNoYWRvd0NvbnRlbnQgaW50
ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1Y3RvcgogZGF0YWxpc3QgaW50ZXJmYWNl
TmFtZT1IVE1MRGF0YUxpc3RFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBTElTVF9FTEVNRU5ULCBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCiBkZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBkZWwgaW50
ZXJmYWNlTmFtZT1IVE1MTW9kRWxlbWVudAotZGV0YWlscyBjb25kaXRpb25hbD1ERVRBSUxTX0VM
RU1FTlQKK2RldGFpbHMgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVI
ZWxwZXJzIAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRpciBpbnRlcmZhY2VOYW1l
PUhUTUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKQEAgLTgyLDcgKzgyLDcgQEAgbWFwIGdlbmVyYXRl
VHlwZUhlbHBlcnMKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbWFycXVlZQogbWVu
dQotbWV0YQorbWV0YSBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBtZXRlciBpbnRlcmZhY2VOYW1lPUhU
TUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVSX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKIG5hdiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2JyIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKQEAgLTExNSwxMCArMTE1LDEwIEBAIHN0cmlrZSBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CiBzdHJvbmcgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc3R5bGUgY29uc3Ry
dWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwogc3ViIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN1bW1hcnkgaW50ZXJmYWNlTmFtZT1IVE1MU3VtbWFyeUVs
ZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9REVUQUlMU19F
TEVNRU5UCitzdW1tYXJ5IGludGVyZmFjZU5hbWU9SFRNTFN1bW1hcnlFbGVtZW50LCBKU0ludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQsIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVCwgZ2VuZXJh
dGVUeXBlSGVscGVycwogc3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHRhYmxlIGdlbmVy
YXRlVHlwZUhlbHBlcnMKLXRib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQKK3Rib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQsIGdlbmVyYXRl
VHlwZUhlbHBlcnMKIHRkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQKIHRlbXBs
YXRlIGNvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHRl
eHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0b3JOZWVk
c0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURv
Y3VtZW50LmNwcAppbmRleCA4MzA3OGNiNzNmOTFhZTdjMjdkNTA1OTcyMDE4Yjk2MjE1NWM3MmRh
Li42NzhjZjQxZDExNzc4OWExNzZmMDBhZTQ0Yjk0ZDYwMmI0OWYzZjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTkzLDExICs5MywxMSBAQCB2b2lkIE1lZGlhRG9j
dW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBtX21lZGlhRWxlbWVu
dC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAibWVkaWEiKTsKIAogICAgIFJlZlB0cjxFbGVtZW50
PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChzb3VyY2VUYWcsIGZh
bHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCogc291cmNlID0gc3RhdGljX2Nhc3Q8SFRNTFNv
dXJjZUVsZW1lbnQqPihzb3VyY2VFbGVtZW50LmdldCgpKTsKLSAgICBzb3VyY2UtPnNldFNyYyhk
b2N1bWVudCgpLT51cmwoKSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSA9IHRvSFRN
TFNvdXJjZUVsZW1lbnQoKnNvdXJjZUVsZW1lbnQpOworICAgIHNvdXJjZS5zZXRTcmMoZG9jdW1l
bnQoKS0+dXJsKCkpOwogCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBkb2N1bWVu
dCgpLT5sb2FkZXIoKSkKLSAgICAgICAgc291cmNlLT5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VN
SU1FVHlwZSgpKTsKKyAgICAgICAgc291cmNlLnNldFR5cGUobG9hZGVyLT5yZXNwb25zZU1JTUVU
eXBlKCkpOwogCiAgICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOwogICAgIGJvZHktPmFwcGVuZENoaWxkKG1lZGlhRWxlbWVudCwg
SUdOT1JFX0VYQ0VQVElPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5kZXggNDdiZTAxMGFmZmE2MmQwMjk3YjIzOGY4NDk4
NGM0NDBjOTQ2ZWYyMi4uNTI3YTRkNjZmNGNkOTNmYTYwYzY0ZWZmZGFjY2RmMDY4ZmZlMjI0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmNwcApAQCAtNjMsOSArNjMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIERldGFpbHNNYXJr
ZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIEhUTUxTdW1tYXJ5RWxlbWVudCog
RGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KCkKIHsKLSAgICBFbGVtZW50KiBl
bGVtZW50ID0gc2hhZG93SG9zdCgpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFlbGVtZW50IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoc3VtbWFyeVRhZykpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxIVE1MU3VtbWFyeUVsZW1lbnQqPihlbGVtZW50KTsKKyAgICByZXR1
cm4gdG9IVE1MU3VtbWFyeUVsZW1lbnQoc2hhZG93SG9zdCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNGVlYjFkMDRiZDNjZTMyNTkyOTk3MmExNDhl
NWE5NDMyZDMzNzliNC4uZjM0NzRjMzcwNjM1Y2RjOTc5ZWYzZDRjZDczZjM4NTJkNzBkNTFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC05ODYsNyArOTg2LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6aGFuZGxlRmFsbGJhY2tDb250ZW50KCkKICAgICBIVE1MRnJhbWVP
d25lckVsZW1lbnQqIG93bmVyID0gbV9mcmFtZS5vd25lckVsZW1lbnQoKTsKICAgICBpZiAoIW93
bmVyIHx8ICFvd25lci0+aGFzVGFnTmFtZShvYmplY3RUYWcpKQogICAgICAgICByZXR1cm47Ci0g
ICAgc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihvd25lciktPnJlbmRlckZhbGxiYWNr
Q29udGVudCgpOworICAgIHRvSFRNTE9iamVjdEVsZW1lbnQob3duZXIpLT5yZW5kZXJGYWxsYmFj
a0NvbnRlbnQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6cHJvdmlzaW9uYWxMb2FkU3RhcnRl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCAwMTFiY2RhMzE3YzUw
ZjQyNWRjMzgwNjMyMWZhMGY5MzFlYmNlODU5Li5iNTNiODhhM2M4ODE2ZDAyOTUyZGNiMDNhYjI4
NDBlNzY3NjM3OGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTQx
Nyw3ICs0MTcsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2Fk
RXZlbnQoKQogICAgIG1faGFzUGVuZGluZ0xvYWRFdmVudCA9IGZhbHNlOwogICAgIAogICAgIGlm
IChpc0hUTUxPYmplY3RFbGVtZW50KG1fZWxlbWVudCkpCi0gICAgICAgIHN0YXRpY19jYXN0PEhU
TUxPYmplY3RFbGVtZW50Kj4obV9lbGVtZW50KS0+cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7Cisg
ICAgICAgIHRvSFRNTE9iamVjdEVsZW1lbnQobV9lbGVtZW50KS0+cmVuZGVyRmFsbGJhY2tDb250
ZW50KCk7CiAKICAgICAvLyBPbmx5IGNvbnNpZGVyIHVwZGF0aW5nIHRoZSBwcm90ZWN0aW9uIHJl
Zi1jb3VudCBvZiB0aGUgRWxlbWVudCBpbW1lZGlhdGVseSBiZWZvcmUgcmV0dXJuaW5nCiAgICAg
Ly8gZnJvbSB0aGlzIGZ1bmN0aW9uIGFzIGRvaW5nIHNvIG1pZ2h0IHJlc3VsdCBpbiB0aGUgZGVz
dHJ1Y3Rpb24gb2YgdGhpcyBJbWFnZUxvYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKaW5kZXggN2ViMjQ5ZGY3ZmY5YjU1YThlY2U1YWU3ZmY0NzJlMGNkN2JhYzI0Ny4u
NGMyODk1NzllNzEwM2IwNTI2YzljZTFlY2NkOWJiZTEzZWFhNTBiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTU1Miw4ICs1NTIsNyBAQCBib29sIERyYWdDb250
cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgaWYgKHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+aXNQbHVnaW5F
bGVtZW50KCkpIHsKLSAgICAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbiA9IHN0YXRpY19j
YXN0PEhUTUxQbHVnSW5FbGVtZW50Kj4ocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKTsKLSAg
ICAgICAgaWYgKCFwbHVnaW4tPmNhblByb2Nlc3NEcmFnKCkgJiYgIXJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCisgICAgICAgIGlmICghdG9IVE1MUGx1
Z0luRWxlbWVudChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpLT5jYW5Qcm9jZXNzRHJhZygp
ICYmICFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSBpZiAoIXJlc3VsdC5pbm5lck5v
blNoYXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggNjI0MWVlM2M5NTJiNDYxNTVjMjkyMDZiMDhmOTAx
ZTAwZTUyZjU4MC4uZDIzYmE1ZjQyYWU0MDAwMDRlMGIxZmI2NGM5MjMwYzc3MjliODYyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKQEAgLTM4Niw3ICszODYsNyBAQCBTdHJpbmcgRnJhbWU6OnNlYXJj
aEZvckxhYmVsc0JlZm9yZUVsZW1lbnQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhYmVscywgRWxl
bWVudAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKG4tPmhhc1RhZ05hbWUodGRU
YWcpICYmICFzdGFydGluZ1RhYmxlQ2VsbCkgewotICAgICAgICAgICAgc3RhcnRpbmdUYWJsZUNl
bGwgPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KG4pOworICAgICAgICAgICAg
c3RhcnRpbmdUYWJsZUNlbGwgPSB0b0hUTUxUYWJsZUNlbGxFbGVtZW50KG4pOwogICAgICAgICB9
IGVsc2UgaWYgKG4tPmhhc1RhZ05hbWUodHJUYWcpICYmIHN0YXJ0aW5nVGFibGVDZWxsKSB7CiAg
ICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc2VhcmNoRm9yTGFiZWxzQWJvdmVDZWxsKHJlZ0V4
cC5nZXQoKSwgc3RhcnRpbmdUYWJsZUNlbGwsIHJlc3VsdERpc3RhbmNlKTsKICAgICAgICAgICAg
IGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZp
Z2F0aW9uLmNwcAppbmRleCA1M2Y3YzM3ZDRiNDVhMGZjNjVjOGJjNDg5ZjNlMGUxYWFlOGU3Njgz
Li5kYTM3YzRiMTIwZjQzZWQxM2UxNWI4MzcyNGViMjllMDVlODBiNjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcApAQCAtNzU4LDcgKzc1OCw3IEBAIExheW91
dFJlY3QgdmlydHVhbFJlY3RGb3JBcmVhRWxlbWVudEFuZERpcmVjdGlvbihIVE1MQXJlYUVsZW1l
bnQqIGFyZWEsIEZvY3VzRGlyCiAKIEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lckVs
ZW1lbnQoRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0ZSkKIHsKLSAgICByZXR1cm4gY2FuZGlkYXRl
LmlzRnJhbWVPd25lckVsZW1lbnQoKSA/IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVu
dCo+KGNhbmRpZGF0ZS52aXNpYmxlTm9kZSkgOiAwOworICAgIHJldHVybiBjYW5kaWRhdGUuaXNG
cmFtZU93bmVyRWxlbWVudCgpID8gdG9IVE1MRnJhbWVPd25lckVsZW1lbnQoY2FuZGlkYXRlLnZp
c2libGVOb2RlKSA6IG51bGxwdHI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217509</attachid>
            <date>2013-11-20 18:01:09 -0800</date>
            <delta_ts>2013-11-20 19:33:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131121110107.patch</filename>
            <type>text/plain</type>
            <size>16295</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI1YTdkOWUyM2ZjODhj
ZGU2NTljODVlZGUwNzMzNjAyMWI0OTEzMC4uYTY5YmZmYzc1NmU0OWMwZTI0YjVmZjJmYzE2NDE4
MmFlMWVhYjY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTExLTIwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBsb3Qg
b2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1c2Ug
b2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2UgbmVl
ZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJsZUNh
cHRpb25FbGVtZW50KCkuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCBvdGhlciBzdGF0aWNfY2Fz
dDw+IGFyZSByZW1vdmVkIGFzIHdlbGwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhh
dmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNob3VsZEFsbG93UXVpY2tUaW1lQ2xhc3NJZFF1
aXJrKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojppc0Rpc2FibGVkRm9ybUNvbnRyb2wpOgorICAgICAg
ICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZXRDYWxsYmFjayk6CisgICAgICAgICog
aHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1bW1h
cnlFbGVtZW50OjpkZXRhaWxzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
YWJsZUVsZW1lbnQ6OmNhcHRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOgor
ICAgICAgICAqIGh0bWwvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0
YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmhhbmRsZUZhbGxi
YWNrQ29udGVudCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQpOgor
ICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OmNhblByb2Nlc3NEcmFnKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbGVtZW50KToK
KyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZyYW1lT3duZXJFbGVtZW50KToKKwogMjAxMy0xMS0yMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVhciBUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdt
ZW50OjptX2hvc3Qgd2hlbiBIVE1MVGVtcGxhdGVFbGVtZW50IGlzIGRlc3Ryb3llZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggNjFiMDNkNGYwY2JmMGVkZjNm
NjhiODc2ZWMxNTg0ODQwOGNiNWFjYi4uYzE0MjhlNmE3OWQ2NGMzMjFjNDkzYjFhZDdjYTUzYmZj
YmIxNjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCkBAIC00
NCw2ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzT3BlbjsKIH07CiAKK05PREVfVFlQ
RV9DQVNUUyhIVE1MRGV0YWlsc0VsZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEhUTUxEZXRhaWxzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBkMTE0MzEwNDhlNGNkNDc3NzAxNjg0Yjk0NmMxMWZiMmM4NWQ4
YWY0Li5hMGQ5YjUzNjg1ZWEyNzQ0Njc2MjRkNTVmYzg0OGNhZDAxNmU1YzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM1MTQsNyArMzUxNCw3IEBAIFVS
TCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUqIGNv
bnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUoKSAhPSB0
aGlzKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc291cmNlID0gc3RhdGljX2Nh
c3Q8SFRNTFNvdXJjZUVsZW1lbnQqPigmbm9kZSk7CisgICAgICAgIHNvdXJjZSA9IHRvSFRNTFNv
dXJjZUVsZW1lbnQoJm5vZGUpOwogCiAgICAgICAgIC8vIElmIGNhbmRpZGF0ZSBkb2VzIG5vdCBo
YXZlIGEgc3JjIGF0dHJpYnV0ZSwgb3IgaWYgaXRzIHNyYyBhdHRyaWJ1dGUncyB2YWx1ZSBpcyB0
aGUgZW1wdHkgc3RyaW5nIC4uLiBqdW1wIGRvd24gdG8gdGhlIGZhaWxlZCBzdGVwIGJlbG93CiAg
ICAgICAgIG1lZGlhVVJMID0gc291cmNlLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IGY5NzExOWViMTYxOGE1
NDk5NGU3MjVmMTQ5ZGM0YzlkYWY2MTE4ZGUuLjdlNDBkZTk4ZDY0ZTk1NWFiYjI5MDU0YzhiZjNk
NGRjOTlkMDBiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtNDQs
NiArNDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAorTk9ERV9UWVBF
X0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYWU1YTQ2
NWFlODQxODg0ZTM5ZTAxYzgxMGEyNjEyY2JhNjA0YWIwYS4uMDdmNTlhMTYxZmRjOTJkZTNmNTI3
ZGEyMDM0OWZlZGY4NWI4ZjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKQEAgLTI0Myw5ICsyNDMsOCBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjpzaG91
bGRBbGxvd1F1aWNrVGltZUNsYXNzSWRRdWlyaygpCiAgICAgUmVmUHRyPE5vZGVMaXN0PiBtZXRh
RWxlbWVudHMgPSBkb2N1bWVudCgpLmdldEVsZW1lbnRzQnlUYWdOYW1lKEhUTUxOYW1lczo6bWV0
YVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbWV0YUVsZW1lbnRzLT5s
ZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obWV0YUVsZW1lbnRzLT5pdGVt
KGkpLT5pc0hUTUxFbGVtZW50KCkpOwotICAgICAgICBIVE1MTWV0YUVsZW1lbnQqIG1ldGFFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4obWV0YUVsZW1lbnRzLT5pdGVtKGkp
KTsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1ldGFFbGVtZW50LT5uYW1lKCksICJn
ZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC0+Y29udGVudCgpLnN0YXJ0c1dpdGgoIk1hYyBPUyBY
IFNlcnZlciBXZWIgU2VydmljZXMgU2VydmVyIiwgZmFsc2UpKQorICAgICAgICBIVE1MTWV0YUVs
ZW1lbnQmIG1ldGFFbGVtZW50ID0gdG9IVE1MTWV0YUVsZW1lbnQoKm1ldGFFbGVtZW50cy0+aXRl
bShpKSk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZXRhRWxlbWVudC5uYW1lKCks
ICJnZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC5jb250ZW50KCkuc3RhcnRzV2l0aCgiTWFjIE9T
IFggU2VydmVyIFdlYiBTZXJ2aWNlcyBTZXJ2ZXIiLCBmYWxzZSkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDNlNzdjNmFkYmRjNTc4MjM3YzM2MmFmOWU5ZDI4MjkyOWFlYmYyNzguLmYy
YjM2MjRmN2MxZDlmMjU5MjQwNjgyMzhjMzkyZTI1ZTU0YTNmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zNDQsOCArMzQ0LDggQEAgYm9vbCBIVE1M
T3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QKICAgICBpZiAoIXBh
cmVudE5vZGUoKSB8fCAhcGFyZW50Tm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEhUTUxFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8SFRNTEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOwotICAgIHJldHVybiBpc0hUTUxPcHRHcm91
cEVsZW1lbnQocGFyZW50RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC0+aXNEaXNhYmxlZEZvcm1D
b250cm9sKCk7CisgICAgSFRNTEVsZW1lbnQmIHBhcmVudEVsZW1lbnQgPSB0b0hUTUxFbGVtZW50
KCpwYXJlbnROb2RlKCkpOworICAgIHJldHVybiBpc0hUTUxPcHRHcm91cEVsZW1lbnQocGFyZW50
RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsKIH0KIAog
Tm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MT3B0aW9uRWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBvaW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggNTQ3NmViNTE2ZTg2NzJi
NGQ1YjRiZjE4NDEzM2U2ZmVlMDA5OTQ3Ny4uMjQzOGRmZWRiZmI4MmQ2ZmNhMjcxYzI2MTZjMTA0
NzlhNzg2NDdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwCkBAIC0zMjQsNyArMzI0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpCiAKIHZvaWQgSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2soTm9kZSogbiwgdW5zaWdu
ZWQpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KG4pLT51cGRh
dGVXaWRnZXRJZk5lY2Vzc2FyeSgpOworICAgIHRvSFRNTFBsdWdJbkltYWdlRWxlbWVudChuKS0+
dXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBkZTg1OThlNjcxZjBhOTFiZmZl
ZTU4ZDNjOGUxNWE2YmE5ODk1NTZjLi5iYTE5ZDMzNjYxZWMzYjM2MTBlNjRlNzM5ZTM0NzkxZDM4
ZjhiNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBA
IC04OCw3ICs4OCw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudCogSFRNTFN1bW1hcnlFbGVtZW50Ojpk
ZXRhaWxzRWxlbWVudCgpIGNvbnN0CiAgICAgTm9kZSogbWF5RGV0YWlscyA9IE5vZGVSZW5kZXJp
bmdUcmF2ZXJzYWw6OnBhcmVudCh0aGlzKTsKICAgICBpZiAoIW1heURldGFpbHMgfHwgIW1heURl
dGFpbHMtPmhhc1RhZ05hbWUoZGV0YWlsc1RhZykpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQqPihtYXlEZXRhaWxzKTsKKyAgICBy
ZXR1cm4gdG9IVE1MRGV0YWlsc0VsZW1lbnQobWF5RGV0YWlscyk7CiB9CiAKIGJvb2wgSFRNTFN1
bW1hcnlFbGVtZW50Ojppc01haW5TdW1tYXJ5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IDI2YTExZDgzZjFiNzE0NWMxMDJjMzQ1Njc1MjNmZGJh
YmJmNmNkNjcuLjJjY2Q5ZmFkZDM0MDM0OTVmMjViOTQ5MWQ3MGRiYTYwNGZlMWQ0Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAtNDYsNiArNDYsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOwogfTsKIAor
Tk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKKwogfQogCiAjZW5kaWYgLy8gSFRN
TFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaAppbmRleCA0MjAxM2RlM2Q3ZmNiZjFkZThlNTBkYTY4YTUzNTlmMmJiZTU2ZGQ1
Li4zYjJhZmI1ZjlmYTg3NGFkMjhjMDU2OTZiMGI4MzQ3ZDAzNmNkOWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00MSw2ICs0MSw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhIVE1M
VGFibGVDYXB0aW9uRWxlbWVudCkKKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA2NWY2MTIyZTMxMGVlN2ZkYWI0
ZDM0YmJkZjNhYzM4NWQxMGQ4ZjhiLi42MTI5N2YwYmZmMWFmNGEzN2M1NzczODM0NzAwMDhlNGJk
MTBiMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTcx
LDcgKzcxLDcgQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OmNh
cHRpb24oKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+
aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0b0hU
TUxUYWJsZUNhcHRpb25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDM4OTQwMzRiYjMxN2FhNGUzYjMyZWFk
OWZhMDI5NWY0Zjg0ZTIxYWEuLmI4ZjJlNTM1MzhhZjk1ZGZhMjA2ZWFjMDIzYjg5NjY3ZDdkOTU3
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0yNCw3ICsyNCw3IEBAIGJv
ZHkgZ2VuZXJhdGVUeXBlSGVscGVycwogYnIgaW50ZXJmYWNlTmFtZT1IVE1MQlJFbGVtZW50CiBi
dXR0b24gY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiBjYW52YXMgZ2VuZXJhdGVUeXBlSGVs
cGVycwotY2FwdGlvbiBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNhcHRpb25FbGVtZW50CitjYXB0
aW9uIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKIGNlbnRlciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBjaXRlIGludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQKIGNvZGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApAQCAtMzUsNyAr
MzUsNyBAQCB3ZWJraXRTaGFkb3dDb250ZW50IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIG5v
Q29uc3RydWN0b3IKIGRhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxlbWVudCwg
Y29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycwogZGQgaW50
ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1lbnQK
LWRldGFpbHMgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5UCitkZXRhaWxzIGNvbmRpdGlvbmFs
PURFVEFJTFNfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycyAKIGRmbiBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CiBkaXIgaW50ZXJmYWNlTmFtZT1IVE1MRGlyZWN0b3J5RWxlbWVudAogZGl2
CkBAIC04Miw3ICs4Miw3IEBAIG1hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBtYXJrIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIG1hcnF1ZWUKIG1lbnUKLW1ldGEKK21ldGEgZ2VuZXJhdGVUeXBl
SGVscGVycwogbWV0ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJFbGVtZW50LCBjb25kaXRpb25h
bD1NRVRFUl9FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBuYXYgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogbm9iciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CkBAIC0xMTUsNyArMTE1
LDcgQEAgc3RyaWtlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHN0cm9uZyBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBzdHlsZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCiBzdWIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc3VtbWFy
eSBpbnRlcmZhY2VOYW1lPUhUTUxTdW1tYXJ5RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50LCBjb25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQKK3N1bW1hcnkgaW50ZXJmYWNlTmFt
ZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0
aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBzdXAgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAogdGFibGUgZ2VuZXJhdGVUeXBlSGVscGVycwogdGJvZHkgaW50ZXJm
YWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1
bWVudC5jcHAKaW5kZXggODMwNzhjYjczZjkxYWU3YzI3ZDUwNTk3MjAxOGI5NjIxNTVjNzJkYS4u
Njc4Y2Y0MWQxMTc3ODlhMTc2ZjAwYWU0NGI5NGQ2MDJiNDlmM2YyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC05MywxMSArOTMsMTEgQEAgdm9pZCBNZWRpYURvY3Vt
ZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgbV9tZWRpYUVsZW1lbnQt
PnNldEF0dHJpYnV0ZShuYW1lQXR0ciwgIm1lZGlhIik7CiAKICAgICBSZWZQdHI8RWxlbWVudD4g
c291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxz
ZSk7Ci0gICAgSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJjZSA9IHN0YXRpY19jYXN0PEhUTUxTb3Vy
Y2VFbGVtZW50Kj4oc291cmNlRWxlbWVudC5nZXQoKSk7Ci0gICAgc291cmNlLT5zZXRTcmMoZG9j
dW1lbnQoKS0+dXJsKCkpOworICAgIEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2UgPSB0b0hUTUxT
b3VyY2VFbGVtZW50KCpzb3VyY2VFbGVtZW50KTsKKyAgICBzb3VyY2Uuc2V0U3JjKGRvY3VtZW50
KCktPnVybCgpKTsKIAogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gZG9jdW1lbnQo
KS0+bG9hZGVyKCkpCi0gICAgICAgIHNvdXJjZS0+c2V0VHlwZShsb2FkZXItPnJlc3BvbnNlTUlN
RVR5cGUoKSk7CisgICAgICAgIHNvdXJjZS5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1FVHlw
ZSgpKTsKIAogICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50LCBJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICBib2R5LT5hcHBlbmRDaGlsZChtZWRpYUVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0
YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDQ3YmUwMTBhZmZhNjJkMDI5N2IyMzhmODQ5ODRj
NDQwYzk0NmVmMjIuLjUyN2E0ZDY2ZjRjZDkzZmE2MGM2NGVmZmRhY2NkZjA2OGZmZTIyNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9s
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAKQEAgLTYzLDkgKzYzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBEZXRhaWxzTWFya2Vy
Q29udHJvbDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiBIVE1MU3VtbWFyeUVsZW1lbnQqIERl
dGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCgpCiB7Ci0gICAgRWxlbWVudCogZWxl
bWVudCA9IHNoYWRvd0hvc3QoKTsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TighZWxlbWVudCB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKHN1bW1hcnlUYWcpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTFN1bW1hcnlFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgcmV0dXJu
IHRvSFRNTFN1bW1hcnlFbGVtZW50KHNoYWRvd0hvc3QoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDRlZWIxZDA0YmQzY2UzMjU5Mjk5NzJhMTQ4ZTVh
OTQzMmQzMzc5YjQuLmYzNDc0YzM3MDYzNWNkYzk3OWVmM2Q0Y2Q3M2YzODUyZDcwZDUxYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtOTg2LDcgKzk4Niw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmhhbmRsZUZhbGxiYWNrQ29udGVudCgpCiAgICAgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lciA9IG1fZnJhbWUub3duZXJFbGVtZW50KCk7CiAgICAgaWYgKCFvd25l
ciB8fCAhb3duZXItPmhhc1RhZ05hbWUob2JqZWN0VGFnKSkKICAgICAgICAgcmV0dXJuOwotICAg
IHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4ob3duZXIpLT5yZW5kZXJGYWxsYmFja0Nv
bnRlbnQoKTsKKyAgICB0b0hUTUxPYmplY3RFbGVtZW50KG93bmVyKS0+cmVuZGVyRmFsbGJhY2tD
b250ZW50KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMDExYmNkYTMxN2M1MGY0
MjVkYzM4MDYzMjFmYTBmOTMxZWJjZTg1OS4uYjUzYjg4YTNjODgxNmQwMjk1MmRjYjAzYWIyODQw
ZTc2NzYzNzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00MTcs
NyArNDE3LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9hZEV2
ZW50KCkKICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBmYWxzZTsKICAgICAKICAgICBpZiAo
aXNIVE1MT2JqZWN0RWxlbWVudChtX2VsZW1lbnQpKQotICAgICAgICBzdGF0aWNfY2FzdDxIVE1M
T2JqZWN0RWxlbWVudCo+KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29udGVudCgpOworICAg
ICAgICB0b0hUTUxPYmplY3RFbGVtZW50KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29udGVu
dCgpOwogCiAgICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJvdGVjdGlvbiByZWYt
Y291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVybmluZwogICAgIC8v
IGZyb20gdGhpcyBmdW5jdGlvbiBhcyBkb2luZyBzbyBtaWdodCByZXN1bHQgaW4gdGhlIGRlc3Ry
dWN0aW9uIG9mIHRoaXMgSW1hZ2VMb2FkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDdlYjI0OWRmN2ZmOWI1NWE4ZWNlNWFlN2ZmNDcyZTBjZDdiYWMyNDcuLjRj
Mjg5NTc5ZTcxMDNiMDUyNmM5Y2UxZWNjZDliYmUxM2VhYTUwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC01NTIsOCArNTUyLDcgQEAgYm9vbCBEcmFnQ29udHJv
bGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIGlmIChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPmlzUGx1Z2luRWxl
bWVudCgpKSB7Ci0gICAgICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW4gPSBzdGF0aWNfY2Fz
dDxIVE1MUGx1Z0luRWxlbWVudCo+KHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSk7Ci0gICAg
ICAgIGlmICghcGx1Z2luLT5jYW5Qcm9jZXNzRHJhZygpICYmICFyZXN1bHQuaW5uZXJOb25TaGFy
ZWROb2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpKQorICAgICAgICBpZiAoIXRvSFRNTFBsdWdJ
bkVsZW1lbnQocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKS0+Y2FuUHJvY2Vzc0RyYWcoKSAm
JiAhcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgaWYgKCFyZXN1bHQuaW5uZXJOb25T
aGFyZWROb2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDYyNDFlZTNjOTUyYjQ2MTU1YzI5MjA2YjA4ZjkwMWUw
MGU1MmY1ODAuLmQyM2JhNWY0MmFlNDAwMDA0ZTBiMWZiNjRjOTIzMGM3NzI5Yjg2MjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCkBAIC0zODYsNyArMzg2LDcgQEAgU3RyaW5nIEZyYW1lOjpzZWFyY2hG
b3JMYWJlbHNCZWZvcmVFbGVtZW50KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMsIEVsZW1l
bnQKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChuLT5oYXNUYWdOYW1lKHRkVGFn
KSAmJiAhc3RhcnRpbmdUYWJsZUNlbGwpIHsKLSAgICAgICAgICAgIHN0YXJ0aW5nVGFibGVDZWxs
ID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihuKTsKKyAgICAgICAgICAgIHN0
YXJ0aW5nVGFibGVDZWxsID0gdG9IVE1MVGFibGVDZWxsRWxlbWVudChuKTsKICAgICAgICAgfSBl
bHNlIGlmIChuLT5oYXNUYWdOYW1lKHRyVGFnKSAmJiBzdGFydGluZ1RhYmxlQ2VsbCkgewogICAg
ICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNlYXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChyZWdFeHAu
Z2V0KCksIHN0YXJ0aW5nVGFibGVDZWxsLCByZXN1bHREaXN0YW5jZSk7CiAgICAgICAgICAgICBp
ZiAoIXJlc3VsdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHAKaW5kZXggNTNmN2MzN2Q0YjQ1YTBmYzY1YzhiYzQ4OWYzZTBlMWFhZThlNzY4My4u
ZGEzN2M0YjEyMGY0M2VkMTNlMTViODM3MjRlYjI5ZTA1ZTgwYjY2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTc1OCw3ICs3NTgsNyBAQCBMYXlvdXRS
ZWN0IHZpcnR1YWxSZWN0Rm9yQXJlYUVsZW1lbnRBbmREaXJlY3Rpb24oSFRNTEFyZWFFbGVtZW50
KiBhcmVhLCBGb2N1c0RpcgogCiBIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZyYW1lT3duZXJFbGVt
ZW50KEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCiB7Ci0gICAgcmV0dXJuIGNhbmRpZGF0ZS5p
c0ZyYW1lT3duZXJFbGVtZW50KCkgPyBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQq
PihjYW5kaWRhdGUudmlzaWJsZU5vZGUpIDogMDsKKyAgICByZXR1cm4gY2FuZGlkYXRlLmlzRnJh
bWVPd25lckVsZW1lbnQoKSA/IHRvSFRNTEZyYW1lT3duZXJFbGVtZW50KGNhbmRpZGF0ZS52aXNp
YmxlTm9kZSkgOiBudWxscHRyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217513</attachid>
            <date>2013-11-20 19:33:48 -0800</date>
            <delta_ts>2013-11-20 20:43:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124571-20131121123346.patch</filename>
            <type>text/plain</type>
            <size>16298</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI1YTdkOWUyM2ZjODhj
ZGU2NTljODVlZGUwNzMzNjAyMWI0OTEzMC4uNjRlMzJmMzgzMDQyYzQ3M2FhNGMxYWI4MGM1NjI3
MTk5ZjdjNjhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTExLTIwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2VuZXJhdGUg
dG9IVE1MRm9vRWxlbWVudCgpIHRvIGNsZWFuIHVwIHN0YXRpY19jYXN0PD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDU3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRob3VnaCB0aGVyZSBhcmUgYSBs
b3Qgb2YgY2xlYW4gdXAgY29tbWl0cyBiZWZvcmUsIHRoZXJlIGFyZSBzdGlsbAorICAgICAgICB1
c2Ugb2Ygc3RhdGljX2Nhc3Q8SFRNTEZvb0VsZW1lbnQqPi4gVG8gY2xlYW4gdXAgdGhlbSwgd2Ug
bmVlZCB0byBnZW5lcmF0ZQorICAgICAgICB0b0hUTUxEZXRhaWxzfE1ldGF8U3VtbWFyeXxUYWJs
ZUNhcHRpb25FbGVtZW50KCkuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCBvdGhlciBzdGF0aWNf
Y2FzdDw+IGFyZSByZW1vdmVkIGFzIHdlbGwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBi
ZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoSFRNTE1lZGlh
RWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRh
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNob3VsZEFsbG93UXVpY2tUaW1lQ2xhc3NJ
ZFF1aXJrKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojppc0Rpc2FibGVkRm9ybUNvbnRyb2wpOgorICAg
ICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZXRDYWxsYmFjayk6CisgICAgICAg
ICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1
bW1hcnlFbGVtZW50OjpkZXRhaWxzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFRhZ05hbWVzLmlu
OgorICAgICAgICAqIGh0bWwvTWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGV0YWlsc01hcmtlckNvbnRyb2w6OnN1bW1hcnlFbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmhhbmRsZUZh
bGxiYWNrQ29udGVudCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQp
OgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RHJhZ0NvbnRyb2xsZXI6OmNhblByb2Nlc3NEcmFnKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbGVtZW50
KToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZyYW1lT3duZXJFbGVtZW50KToKKwogMjAxMy0xMS0yMCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVhciBUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZy
YWdtZW50OjptX2hvc3Qgd2hlbiBIVE1MVGVtcGxhdGVFbGVtZW50IGlzIGRlc3Ryb3llZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggNjFiMDNkNGYwY2JmMGVk
ZjNmNjhiODc2ZWMxNTg0ODQwOGNiNWFjYi4uYzE0MjhlNmE3OWQ2NGMzMjFjNDkzYjFhZDdjYTUz
YmZjYmIxNjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCkBA
IC00NCw2ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzT3BlbjsKIH07CiAKK05PREVf
VFlQRV9DQVNUUyhIVE1MRGV0YWlsc0VsZW1lbnQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEhUTUxEZXRhaWxzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAppbmRleCBkMTE0MzEwNDhlNGNkNDc3NzAxNjg0Yjk0NmMxMWZiMmM4
NWQ4YWY0Li5hMGQ5YjUzNjg1ZWEyNzQ0Njc2MjRkNTVmYzg0OGNhZDAxNmU1YzdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM1MTQsNyArMzUxNCw3IEBA
IFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUq
IGNvbnRlbnRUeXBlLCBTdHJpbmcqIGtlCiAgICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUoKSAh
PSB0aGlzKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc291cmNlID0gc3RhdGlj
X2Nhc3Q8SFRNTFNvdXJjZUVsZW1lbnQqPigmbm9kZSk7CisgICAgICAgIHNvdXJjZSA9IHRvSFRN
TFNvdXJjZUVsZW1lbnQoJm5vZGUpOwogCiAgICAgICAgIC8vIElmIGNhbmRpZGF0ZSBkb2VzIG5v
dCBoYXZlIGEgc3JjIGF0dHJpYnV0ZSwgb3IgaWYgaXRzIHNyYyBhdHRyaWJ1dGUncyB2YWx1ZSBp
cyB0aGUgZW1wdHkgc3RyaW5nIC4uLiBqdW1wIGRvd24gdG8gdGhlIGZhaWxlZCBzdGVwIGJlbG93
CiAgICAgICAgIG1lZGlhVVJMID0gc291cmNlLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNB
dHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IGY5NzExOWViMTYx
OGE1NDk5NGU3MjVmMTQ5ZGM0YzlkYWY2MTE4ZGUuLjdlNDBkZTk4ZDY0ZTk1NWFiYjI5MDU0Yzhi
ZjNkNGRjOTlkMDBiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAt
NDQsNiArNDQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAorTk9ERV9U
WVBFX0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYWU1
YTQ2NWFlODQxODg0ZTM5ZTAxYzgxMGEyNjEyY2JhNjA0YWIwYS4uMDdmNTlhMTYxZmRjOTJkZTNm
NTI3ZGEyMDM0OWZlZGY4NWI4ZjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHAKQEAgLTI0Myw5ICsyNDMsOCBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50Ojpz
aG91bGRBbGxvd1F1aWNrVGltZUNsYXNzSWRRdWlyaygpCiAgICAgUmVmUHRyPE5vZGVMaXN0PiBt
ZXRhRWxlbWVudHMgPSBkb2N1bWVudCgpLmdldEVsZW1lbnRzQnlUYWdOYW1lKEhUTUxOYW1lczo6
bWV0YVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbWV0YUVsZW1lbnRz
LT5sZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obWV0YUVsZW1lbnRzLT5p
dGVtKGkpLT5pc0hUTUxFbGVtZW50KCkpOwotICAgICAgICBIVE1MTWV0YUVsZW1lbnQqIG1ldGFF
bGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4obWV0YUVsZW1lbnRzLT5pdGVt
KGkpKTsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1ldGFFbGVtZW50LT5uYW1lKCks
ICJnZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC0+Y29udGVudCgpLnN0YXJ0c1dpdGgoIk1hYyBP
UyBYIFNlcnZlciBXZWIgU2VydmljZXMgU2VydmVyIiwgZmFsc2UpKQorICAgICAgICBIVE1MTWV0
YUVsZW1lbnQmIG1ldGFFbGVtZW50ID0gdG9IVE1MTWV0YUVsZW1lbnQoKm1ldGFFbGVtZW50cy0+
aXRlbShpKSk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZXRhRWxlbWVudC5uYW1l
KCksICJnZW5lcmF0b3IiKSAmJiBtZXRhRWxlbWVudC5jb250ZW50KCkuc3RhcnRzV2l0aCgiTWFj
IE9TIFggU2VydmVyIFdlYiBTZXJ2aWNlcyBTZXJ2ZXIiLCBmYWxzZSkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwCmluZGV4IDNlNzdjNmFkYmRjNTc4MjM3YzM2MmFmOWU5ZDI4MjkyOWFlYmYyNzgu
LmYyYjM2MjRmN2MxZDlmMjU5MjQwNjgyMzhjMzkyZTI1ZTU0YTNmMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zNDQsOCArMzQ0LDggQEAgYm9vbCBI
VE1MT3B0aW9uRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QKICAgICBpZiAo
IXBhcmVudE5vZGUoKSB8fCAhcGFyZW50Tm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIEhUTUxFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTEVsZW1lbnQqPihwYXJlbnROb2RlKCkpOwotICAgIHJldHVybiBpc0hUTUxPcHRH
cm91cEVsZW1lbnQocGFyZW50RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC0+aXNEaXNhYmxlZEZv
cm1Db250cm9sKCk7CisgICAgSFRNTEVsZW1lbnQmIHBhcmVudEVsZW1lbnQgPSB0b0hUTUxFbGVt
ZW50KCpwYXJlbnROb2RlKCkpOworICAgIHJldHVybiBpc0hUTUxPcHRHcm91cEVsZW1lbnQocGFy
ZW50RWxlbWVudCkgJiYgcGFyZW50RWxlbWVudC5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsKIH0K
IAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MT3B0aW9uRWxlbWVudDo6
aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBvaW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggNTQ3NmViNTE2ZTg2
NzJiNGQ1YjRiZjE4NDEzM2U2ZmVlMDA5OTQ3Ny4uMjQzOGRmZWRiZmI4MmQ2ZmNhMjcxYzI2MTZj
MTA0NzlhNzg2NDdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwCkBAIC0zMjQsNyArMzI0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpCiAKIHZvaWQg
SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2soTm9kZSogbiwgdW5z
aWduZWQpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KG4pLT51
cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOworICAgIHRvSFRNTFBsdWdJbkltYWdlRWxlbWVudChu
KS0+dXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKIH0KIAogdm9pZCBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBkZTg1OThlNjcxZjBhOTFi
ZmZlZTU4ZDNjOGUxNWE2YmE5ODk1NTZjLi5iYTE5ZDMzNjYxZWMzYjM2MTBlNjRlNzM5ZTM0Nzkx
ZDM4ZjhiNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
CkBAIC04OCw3ICs4OCw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudCogSFRNTFN1bW1hcnlFbGVtZW50
OjpkZXRhaWxzRWxlbWVudCgpIGNvbnN0CiAgICAgTm9kZSogbWF5RGV0YWlscyA9IE5vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWw6OnBhcmVudCh0aGlzKTsKICAgICBpZiAoIW1heURldGFpbHMgfHwgIW1h
eURldGFpbHMtPmhhc1RhZ05hbWUoZGV0YWlsc1RhZykpCiAgICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRGV0YWlsc0VsZW1lbnQqPihtYXlEZXRhaWxzKTsKKyAg
ICByZXR1cm4gdG9IVE1MRGV0YWlsc0VsZW1lbnQobWF5RGV0YWlscyk7CiB9CiAKIGJvb2wgSFRN
TFN1bW1hcnlFbGVtZW50Ojppc01haW5TdW1tYXJ5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IDI2YTExZDgzZjFiNzE0NWMxMDJjMzQ1Njc1MjNm
ZGJhYmJmNmNkNjcuLjJjY2Q5ZmFkZDM0MDM0OTVmMjViOTQ5MWQ3MGRiYTYwNGZlMWQ0Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAtNDYsNiArNDYsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOwogfTsK
IAorTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKKwogfQogCiAjZW5kaWYgLy8g
SFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaAppbmRleCA0MjAxM2RlM2Q3ZmNiZjFkZThlNTBkYTY4YTUzNTlmMmJiZTU2
ZGQ1Li4zYjJhZmI1ZjlmYTg3NGFkMjhjMDU2OTZiMGI4MzQ3ZDAzNmNkOWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00MSw2ICs0MSw4
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIH07CiAKK05PREVfVFlQRV9DQVNUUyhI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCkKKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA2NWY2MTIyZTMxMGVlN2Zk
YWI0ZDM0YmJkZjNhYzM4NWQxMGQ4ZjhiLi42MTI5N2YwYmZmMWFmNGEzN2M1NzczODM0NzAwMDhl
NGJkMTBiMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6
OmNhcHRpb24oKSBjb25zdAogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGls
ZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0
b0hUTUxUYWJsZUNhcHRpb25FbGVtZW50KGNoaWxkKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDM4OTQwMzRiYjMxN2FhNGUzYjMy
ZWFkOWZhMDI5NWY0Zjg0ZTIxYWEuLmI4ZjJlNTM1MzhhZjk1ZGZhMjA2ZWFjMDIzYjg5NjY3ZDdk
OTU3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0yNCw3ICsyNCw3IEBA
IGJvZHkgZ2VuZXJhdGVUeXBlSGVscGVycwogYnIgaW50ZXJmYWNlTmFtZT1IVE1MQlJFbGVtZW50
CiBidXR0b24gY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiBjYW52YXMgZ2VuZXJhdGVUeXBl
SGVscGVycwotY2FwdGlvbiBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Citj
YXB0aW9uIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKIGNlbnRlciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBjaXRlIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIGNvZGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApAQCAtMzUs
NyArMzUsNyBAQCB3ZWJraXRTaGFkb3dDb250ZW50IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQs
IG5vQ29uc3RydWN0b3IKIGRhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxlbWVu
dCwgY29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycwogZGQg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1l
bnQKLWRldGFpbHMgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5UCitkZXRhaWxzIGNvbmRpdGlv
bmFsPURFVEFJTFNfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycyAKIGRmbiBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBkaXIgaW50ZXJmYWNlTmFtZT1IVE1MRGlyZWN0b3J5RWxlbWVudAog
ZGl2CkBAIC04Miw3ICs4Miw3IEBAIG1hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBtYXJrIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG1hcnF1ZWUKIG1lbnUKLW1ldGEKK21ldGEgZ2VuZXJhdGVU
eXBlSGVscGVycwogbWV0ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJFbGVtZW50LCBjb25kaXRp
b25hbD1NRVRFUl9FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBuYXYgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAogbm9iciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CkBAIC0xMTUsNyAr
MTE1LDcgQEAgc3RyaWtlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHN0cm9uZyBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiBzdHlsZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2Vy
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBzdWIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc3Vt
bWFyeSBpbnRlcmZhY2VOYW1lPUhUTUxTdW1tYXJ5RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50LCBjb25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQKK3N1bW1hcnkgaW50ZXJmYWNl
TmFtZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29u
ZGl0aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiBzdXAgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogdGFibGUgZ2VuZXJhdGVUeXBlSGVscGVycwogdGJvZHkgaW50
ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAKaW5kZXggODMwNzhjYjczZjkxYWU3YzI3ZDUwNTk3MjAxOGI5NjIxNTVjNzJk
YS4uNjc4Y2Y0MWQxMTc3ODlhMTc2ZjAwYWU0NGI5NGQ2MDJiNDlmM2YyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC05MywxMSArOTMsMTEgQEAgdm9pZCBNZWRpYURv
Y3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgbV9tZWRpYUVsZW1l
bnQtPnNldEF0dHJpYnV0ZShuYW1lQXR0ciwgIm1lZGlhIik7CiAKICAgICBSZWZQdHI8RWxlbWVu
dD4gc291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBm
YWxzZSk7Ci0gICAgSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJjZSA9IHN0YXRpY19jYXN0PEhUTUxT
b3VyY2VFbGVtZW50Kj4oc291cmNlRWxlbWVudC5nZXQoKSk7Ci0gICAgc291cmNlLT5zZXRTcmMo
ZG9jdW1lbnQoKS0+dXJsKCkpOworICAgIEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2UgPSB0b0hU
TUxTb3VyY2VFbGVtZW50KCpzb3VyY2VFbGVtZW50KTsKKyAgICBzb3VyY2Uuc2V0U3JjKGRvY3Vt
ZW50KCktPnVybCgpKTsKIAogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gZG9jdW1l
bnQoKS0+bG9hZGVyKCkpCi0gICAgICAgIHNvdXJjZS0+c2V0VHlwZShsb2FkZXItPnJlc3BvbnNl
TUlNRVR5cGUoKSk7CisgICAgICAgIHNvdXJjZS5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1F
VHlwZSgpKTsKIAogICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50
LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBib2R5LT5hcHBlbmRDaGlsZChtZWRpYUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDQ3YmUwMTBhZmZhNjJkMDI5N2IyMzhmODQ5
ODRjNDQwYzk0NmVmMjIuLjUyN2E0ZDY2ZjRjZDkzZmE2MGM2NGVmZmRhY2NkZjA2OGZmZTIyNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAKQEAgLTYzLDkgKzYzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBEZXRhaWxzTWFy
a2VyQ29udHJvbDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiBIVE1MU3VtbWFyeUVsZW1lbnQq
IERldGFpbHNNYXJrZXJDb250cm9sOjpzdW1tYXJ5RWxlbWVudCgpCiB7Ci0gICAgRWxlbWVudCog
ZWxlbWVudCA9IHNoYWRvd0hvc3QoKTsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighZWxlbWVudCB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKHN1bW1hcnlUYWcpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFN1bW1hcnlFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgcmV0
dXJuIHRvSFRNTFN1bW1hcnlFbGVtZW50KHNoYWRvd0hvc3QoKSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDRlZWIxZDA0YmQzY2UzMjU5Mjk5NzJhMTQ4
ZTVhOTQzMmQzMzc5YjQuLmYzNDc0YzM3MDYzNWNkYzk3OWVmM2Q0Y2Q3M2YzODUyZDcwZDUxYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtOTg2LDcgKzk4Niw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmhhbmRsZUZhbGxiYWNrQ29udGVudCgpCiAgICAgSFRNTEZyYW1l
T3duZXJFbGVtZW50KiBvd25lciA9IG1fZnJhbWUub3duZXJFbGVtZW50KCk7CiAgICAgaWYgKCFv
d25lciB8fCAhb3duZXItPmhhc1RhZ05hbWUob2JqZWN0VGFnKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4ob3duZXIpLT5yZW5kZXJGYWxsYmFj
a0NvbnRlbnQoKTsKKyAgICB0b0hUTUxPYmplY3RFbGVtZW50KG93bmVyKS0+cmVuZGVyRmFsbGJh
Y2tDb250ZW50KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnByb3Zpc2lvbmFsTG9hZFN0YXJ0
ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMDExYmNkYTMxN2M1
MGY0MjVkYzM4MDYzMjFmYTBmOTMxZWJjZTg1OS4uYjUzYjg4YTNjODgxNmQwMjk1MmRjYjAzYWIy
ODQwZTc2NzYzNzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC00
MTcsNyArNDE3LDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9h
ZEV2ZW50KCkKICAgICBtX2hhc1BlbmRpbmdMb2FkRXZlbnQgPSBmYWxzZTsKICAgICAKICAgICBp
ZiAoaXNIVE1MT2JqZWN0RWxlbWVudChtX2VsZW1lbnQpKQotICAgICAgICBzdGF0aWNfY2FzdDxI
VE1MT2JqZWN0RWxlbWVudCo+KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29udGVudCgpOwor
ICAgICAgICB0b0hUTUxPYmplY3RFbGVtZW50KG1fZWxlbWVudCktPnJlbmRlckZhbGxiYWNrQ29u
dGVudCgpOwogCiAgICAgLy8gT25seSBjb25zaWRlciB1cGRhdGluZyB0aGUgcHJvdGVjdGlvbiBy
ZWYtY291bnQgb2YgdGhlIEVsZW1lbnQgaW1tZWRpYXRlbHkgYmVmb3JlIHJldHVybmluZwogICAg
IC8vIGZyb20gdGhpcyBmdW5jdGlvbiBhcyBkb2luZyBzbyBtaWdodCByZXN1bHQgaW4gdGhlIGRl
c3RydWN0aW9uIG9mIHRoaXMgSW1hZ2VMb2FkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCmluZGV4IDdlYjI0OWRmN2ZmOWI1NWE4ZWNlNWFlN2ZmNDcyZTBjZDdiYWMyNDcu
LjRjMjg5NTc5ZTcxMDNiMDUyNmM5Y2UxZWNjZDliYmUxM2VhYTUwYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC01NTIsOCArNTUyLDcgQEAgYm9vbCBEcmFnQ29u
dHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIGlmIChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPmlzUGx1Z2lu
RWxlbWVudCgpKSB7Ci0gICAgICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW4gPSBzdGF0aWNf
Y2FzdDxIVE1MUGx1Z0luRWxlbWVudCo+KHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSk7Ci0g
ICAgICAgIGlmICghcGx1Z2luLT5jYW5Qcm9jZXNzRHJhZygpICYmICFyZXN1bHQuaW5uZXJOb25T
aGFyZWROb2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpKQorICAgICAgICBpZiAoIXRvSFRNTFBs
dWdJbkVsZW1lbnQocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKS0+Y2FuUHJvY2Vzc0RyYWco
KSAmJiAhcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5yZW5kZXJlcklzRWRpdGFibGUoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgaWYgKCFyZXN1bHQuaW5uZXJO
b25TaGFyZWROb2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDYyNDFlZTNjOTUyYjQ2MTU1YzI5MjA2YjA4Zjkw
MWUwMGU1MmY1ODAuLmQyM2JhNWY0MmFlNDAwMDA0ZTBiMWZiNjRjOTIzMGM3NzI5Yjg2MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zODYsNyArMzg2LDcgQEAgU3RyaW5nIEZyYW1lOjpzZWFy
Y2hGb3JMYWJlbHNCZWZvcmVFbGVtZW50KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMsIEVs
ZW1lbnQKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChuLT5oYXNUYWdOYW1lKHRk
VGFnKSAmJiAhc3RhcnRpbmdUYWJsZUNlbGwpIHsKLSAgICAgICAgICAgIHN0YXJ0aW5nVGFibGVD
ZWxsID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihuKTsKKyAgICAgICAgICAg
IHN0YXJ0aW5nVGFibGVDZWxsID0gdG9IVE1MVGFibGVDZWxsRWxlbWVudChuKTsKICAgICAgICAg
fSBlbHNlIGlmIChuLT5oYXNUYWdOYW1lKHRyVGFnKSAmJiBzdGFydGluZ1RhYmxlQ2VsbCkgewog
ICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNlYXJjaEZvckxhYmVsc0Fib3ZlQ2VsbChyZWdF
eHAuZ2V0KCksIHN0YXJ0aW5nVGFibGVDZWxsLCByZXN1bHREaXN0YW5jZSk7CiAgICAgICAgICAg
ICBpZiAoIXJlc3VsdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5jcHAKaW5kZXggNTNmN2MzN2Q0YjQ1YTBmYzY1YzhiYzQ4OWYzZTBlMWFhZThlNzY4
My4uZGEzN2M0YjEyMGY0M2VkMTNlMTViODM3MjRlYjI5ZTA1ZTgwYjY2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTc1OCw3ICs3NTgsNyBAQCBMYXlv
dXRSZWN0IHZpcnR1YWxSZWN0Rm9yQXJlYUVsZW1lbnRBbmREaXJlY3Rpb24oSFRNTEFyZWFFbGVt
ZW50KiBhcmVhLCBGb2N1c0RpcgogCiBIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZyYW1lT3duZXJF
bGVtZW50KEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCiB7Ci0gICAgcmV0dXJuIGNhbmRpZGF0
ZS5pc0ZyYW1lT3duZXJFbGVtZW50KCkgPyBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1l
bnQqPihjYW5kaWRhdGUudmlzaWJsZU5vZGUpIDogMDsKKyAgICByZXR1cm4gY2FuZGlkYXRlLmlz
RnJhbWVPd25lckVsZW1lbnQoKSA/IHRvSFRNTEZyYW1lT3duZXJFbGVtZW50KGNhbmRpZGF0ZS52
aXNpYmxlTm9kZSkgOiBudWxscHRyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>