<?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>101060</bug_id>
          
          <creation_ts>2012-11-02 08:24:27 -0700</creation_ts>
          <short_desc>Fix the collapsing border code to handle mixed directionality at the row level</short_desc>
          <delta_ts>2012-11-04 23:55:57 -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>Tables</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79272</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757213</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-02 08:24:27 -0700</bug_when>
    <thetext>Our current border collapsing code wrongly ignores any direction queues below the table-row-group (section in WebKit speak).

Other browsers (and the specification) don&apos;t have this limitation. This is another step towards fixing bug 79272 and properly supporting mixed direction at the cell level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757237</commentid>
    <comment_count>1</comment_count>
      <attachid>172074</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-02 09:02:02 -0700</bug_when>
    <thetext>Created attachment 172074
Proposed change: fixed the collapsing border code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757262</commentid>
    <comment_count>2</comment_count>
      <attachid>172074</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-02 09:32:39 -0700</bug_when>
    <thetext>Comment on attachment 172074
Proposed change: fixed the collapsing border code.

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

r- for the test.

&gt; Source/WebCore/ChangeLog:43
&gt; +        Updated these functios to work with mixed directionality.

typo: functios

&gt; Source/WebCore/ChangeLog:56
&gt; +        This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
&gt; +        &apos;border-style: off | hidden&apos; should have a 0 width).

I don&apos;t see a test for this fix.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:1276
&gt; +    ASSERT_UNUSED(cell, cell-&gt;isFirstOrLastCellInRow());

this should just be an ASSERT now.

&gt; LayoutTests/fast/table/border-collapsing/table-ltr-rows-mixed-direction-expected.html:1
&gt; +&lt;!DOCTYPE&gt;

This doctype is quirksmode I believe. You should be using &lt;!DOCTYPE html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757310</commentid>
    <comment_count>3</comment_count>
      <attachid>172074</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-02 10:32:53 -0700</bug_when>
    <thetext>Comment on attachment 172074
Proposed change: fixed the collapsing border code.

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

&gt;&gt; Source/WebCore/ChangeLog:56
&gt;&gt; +        &apos;border-style: off | hidden&apos; should have a 0 width).
&gt; 
&gt; I don&apos;t see a test for this fix.

This is covered by LayoutTests/fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html which was showing a diff due to having a 3px hidden border returning a width of 3px instead of 0px.

&gt;&gt; LayoutTests/fast/table/border-collapsing/table-ltr-rows-mixed-direction-expected.html:1
&gt;&gt; +&lt;!DOCTYPE&gt;
&gt; 
&gt; This doctype is quirksmode I believe. You should be using &lt;!DOCTYPE html&gt;.

Good catch, dumb error. This should put the document in quirksmode per HTML5 parsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757314</commentid>
    <comment_count>4</comment_count>
      <attachid>172074</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-02 10:37:39 -0700</bug_when>
    <thetext>Comment on attachment 172074
Proposed change: fixed the collapsing border code.

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:56
&gt;&gt;&gt; +        &apos;border-style: off | hidden&apos; should have a 0 width).
&gt;&gt; 
&gt;&gt; I don&apos;t see a test for this fix.
&gt; 
&gt; This is covered by LayoutTests/fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html which was showing a diff due to having a 3px hidden border returning a width of 3px instead of 0px.

I don&apos;t see a diff for this in this patch. Maybe you forgot to include it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757338</commentid>
    <comment_count>5</comment_count>
      <attachid>172074</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-02 10:55:16 -0700</bug_when>
    <thetext>Comment on attachment 172074
Proposed change: fixed the collapsing border code.

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

&gt;&gt;&gt;&gt; Source/WebCore/ChangeLog:56
&gt;&gt;&gt;&gt; +        &apos;border-style: off | hidden&apos; should have a 0 width).
&gt;&gt;&gt; 
&gt;&gt;&gt; I don&apos;t see a test for this fix.
&gt;&gt; 
&gt;&gt; This is covered by LayoutTests/fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html which was showing a diff due to having a 3px hidden border returning a width of 3px instead of 0px.
&gt; 
&gt; I don&apos;t see a diff for this in this patch. Maybe you forgot to include it?

The test was showing a local diff before I touched CollapsedBorderValue::width. The diff was wrong and was what caused me to find this bug (ie that we could have a 3px hidden green border that would add 3px to our cell&apos;s logical width). The root cause of this change is that we are changing which borders are considered during resolution.

FWIW our collapsing border resolution code is not very air-tight due to its complexity and this should make it more robust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757349</commentid>
    <comment_count>6</comment_count>
      <attachid>172089</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-02 11:02:35 -0700</bug_when>
    <thetext>Created attachment 172089
Updated change: fixed per Ojan&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758280</commentid>
    <comment_count>7</comment_count>
      <attachid>172089</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-04 23:55:53 -0800</bug_when>
    <thetext>Comment on attachment 172089
Updated change: fixed per Ojan&apos;s comment.

Clearing flags on attachment: 172089

Committed r133439: &lt;http://trac.webkit.org/changeset/133439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758281</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-04 23:55:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172074</attachid>
            <date>2012-11-02 09:02:02 -0700</date>
            <delta_ts>2012-11-02 11:02:32 -0700</delta_ts>
            <desc>Proposed change: fixed the collapsing border code.</desc>
            <filename>bug-101060-20121102090022.patch</filename>
            <type>text/plain</type>
            <size>20569</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThhM2ExMWRiYmVhZjY3
OGU3MTQxODdmYmQzNzVhYmRkNzVhMDRlZC4uMzE0ZjZlNWRkY2QxZGU2YTQwOWZkYWNlMWQyNTBh
NjMyYmJiOTA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTExLTAyICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB0aGUg
Y29sbGFwc2luZyBib3JkZXIgY29kZSB0byBoYW5kbGUgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgYXQg
dGhlIHJvdyBsZXZlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxMDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWZ0ZXIgYnVnIDg3OTAwLCB3ZSBzdXBwb3J0IG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0
IHRoZSByb3ctZ3JvdXAgbGV2ZWwuIEZvciBjb2hlcmVuY3kKKyAgICAgICAgLSBhcyB0aGUgdW5k
ZXJseWluZyBjb2RlIGRpZG4ndCBzdXBwb3J0IGl0IC0gd2Ugd2VyZSBhcnRpZmljaWFsbHkgaWdu
b3JpbmcgJ2RpcmVjdGlvbicKKyAgICAgICAgYmVsb3cgdGhlIHJvdy1ncm91cC4gVGhpcyBjaGFu
Z2UgcmVsYXhlcyB0aGUgcmVzdHJpY3Rpb24gYW5kIHBhdGNoZXMgdGhlIGNvbGxhcHNpbmcKKyAg
ICAgICAgYm9yZGVycyBjb2RlIHRvIHF1ZXJ5IHRoZSByaWdodCBzdHlsZSBhbmQgYm9yZGVyLgor
CisgICAgICAgIFRlc3RzOiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1y
b3dzLW1peGVkLWRpcmVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL3RhYmxlLXJ0bC1yb3ctbWl4ZWQtZGlyZWN0aW9uLmh0bWwKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZTo6dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGFibGU6OnRhYmxlRW5kQm9yZGVyQWRqb2luaW5nQ2VsbCk6CisgICAgICAgIENoYW5n
ZWQgdG8gcXVlcnkgdGhlIHJvdydzIGRpcmVjdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpo
YXNTdGFydEJvcmRlckFkam9pbmluZ1RhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlQ2VsbDo6aGFzRW5kQm9yZGVyQWRqb2luaW5nVGFibGUpOgorICAgICAgICBBZGRlZCAyIGhl
bHBlciBmdW5jdGlvbnMuIFRoZXkgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgY2VsbCdzIGJvcmRl
cgorICAgICAgICBhZGpvaW5zIHRoZSB0YWJsZS4gVGhpcyBjb2RlIGlzIHJlcXVpcmVkIGFzIHRo
ZSBsYXN0IGNlbGwncyBlbmQgYm9yZGVyCisgICAgICAgIGNhbiBiZSByZXNvbHZlZCBhZ2FpbnN0
IHRoZSBzdGFydCBib3JkZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6
Y29tcHV0ZUNvbGxhcHNlZFN0YXJ0Qm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZEVuZEJvcmRlcik6CisgICAgICAgIFVwZGF0ZWQgdGhl
c2UgZnVuY3Rpb25zIG5vdyB0aGF0IGJlaW5nIHRoZSBzdGFydCAvIGVuZCBjb2x1bW4gZG9lc24n
dCBtZWFuCisgICAgICAgIHRoYXQgd2UgaGF2ZSB0byByZXNvbHZlIGFnYWluc3QgdGhlIHJvdyAv
IHJvdy1ncm91cCAvIHRhYmxlJ3MgYm9yZGVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpzdHlsZUZv
ckNlbGxGbG93KToKKyAgICAgICAgVXBkYXRlZCB0byByZXR1cm4gdGhlIHJvdydzIHN0eWxlLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlUm93Ojpib3JkZXJBZGpvaW5pbmdTdGFydENlbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGVSb3c6OmJvcmRlckFkam9pbmluZ0VuZENlbGwpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGFibGVTZWN0aW9uOjpib3JkZXJBZGpvaW5pbmdTdGFydENlbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpib3JkZXJBZGpvaW5pbmdFbmRDZWxsKToKKyAg
ICAgICAgVXBkYXRlZCB0aGVzZSBmdW5jdGlvcyB0byB3b3JrIHdpdGggbWl4ZWQgZGlyZWN0aW9u
YWxpdHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6c2V0TG9naWNhbFBvc2l0aW9uRm9y
Q2VsbCk6CisgICAgICAgIENoYW5nZWQgdGhpcyBmdW5jdGlvbiB0byB1c2UgdGhlIHNlY3Rpb24n
cyBkaXJlY3Rpb24uIFRoaXMgaXMgd3JvbmcgYW5kIHNob3VsZCBiZSBjaGFuZ2VkCisgICAgICAg
IG9uY2Ugd2UgcHJvcGVybHkgZml4IHRoZSBjb2xsYXBzaW5nIGJvcmRlciBjb2RlLgorCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxvZ2ljYWxSZWN0Rm9yV3JpdGluZ01v
ZGVBbmREaXJlY3Rpb24pOgorICAgICAgICBBZGRlZCBhIEZJWE1FLgorCisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpD
b2xsYXBzZWRCb3JkZXJWYWx1ZTo6d2lkdGgpOgorICAgICAgICBUaGlzIGlzIGEgYnVnIGluIG91
ciBpbXBsZW1lbnRhdGlvbjogd2UgdXNlZCB0byByZXR1cm4gYSBub24temVybyB3aWR0aCBmb3Ig
aW5leGlzdGFudCBib3JkZXJzIChwZXIgQ1NTIDIuMSwKKyAgICAgICAgJ2JvcmRlci1zdHlsZTog
b2ZmIHwgaGlkZGVuJyBzaG91bGQgaGF2ZSBhIDAgd2lkdGgpLgorCiAyMDEyLTExLTAxICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1lbW9yeSBpbnN0
cnVtZW50YXRpb246IGRvIG5vdCBjYWxsIGNoZWNrQ291bnRlZE9iamVjdCB3aXRoIHdyb25nIHBv
aW50ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAppbmRleCAzNmJk
ODZhOWZmYWJiYzFiMmRmNjFiMmJjYzZjZTlhZGQ4MzNkNGNmLi45NDhiNTI2ZDM4MDliNzhhMjhk
OTBmOWIyZDdlYjEyN2QyYTkzZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKQEAgLTEzNDksNyArMTM0OSw3IEBAIFJlbmRlclRhYmxlKiBSZW5kZXJUYWJsZTo6
Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCoKIGNv
bnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZTo6dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0Nl
bGwoY29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogewogICAgIEFTU0VSVChjZWxs
LT5pc0ZpcnN0T3JMYXN0Q2VsbEluUm93KCkpOwotICAgIGlmIChoYXNTYW1lRGlyZWN0aW9uQXMo
Y2VsbC0+c2VjdGlvbigpKSkKKyAgICBpZiAoaGFzU2FtZURpcmVjdGlvbkFzKGNlbGwtPnJvdygp
KSkKICAgICAgICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlclN0YXJ0KCk7CiAKICAgICByZXR1cm4g
c3R5bGUoKS0+Ym9yZGVyRW5kKCk7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBjb25zdCBCb3JkZXJW
YWx1ZSYgUmVuZGVyVGFibGU6OnRhYmxlU3RhcnRCb3JkZXJBZGpvaW5pbmdDZWxsKGNvbnN0IFJl
bmRlclRhYmxlQwogY29uc3QgQm9yZGVyVmFsdWUmIFJlbmRlclRhYmxlOjp0YWJsZUVuZEJvcmRl
ckFkam9pbmluZ0NlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogewogICAg
IEFTU0VSVChjZWxsLT5pc0ZpcnN0T3JMYXN0Q2VsbEluUm93KCkpOwotICAgIGlmIChoYXNTYW1l
RGlyZWN0aW9uQXMoY2VsbC0+c2VjdGlvbigpKSkKKyAgICBpZiAoaGFzU2FtZURpcmVjdGlvbkFz
KGNlbGwtPnJvdygpKSkKICAgICAgICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlckVuZCgpOwogCiAg
ICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlclN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDY4MzMyMWFhN2EzY2EyOWNkZTM0NzllZDA3
MjI3NjEzZWIyNzNkNWUuLjY4OWNmOGEzOTA1OTRjY2I5NWEzZDExZjlhNDQ0MzgyZTcxZmViZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC00
NjAsNiArNDYwLDI4IEBAIHN0YXRpYyBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjaG9vc2VCb3JkZXIo
Y29uc3QgQ29sbGFwc2VkQm9yZGVyVmFsdWUmIGJvcmRlcjEsIGNvCiAgICAgcmV0dXJuIGJvcmRl
ci5zdHlsZSgpID09IEJISURERU4gPyBDb2xsYXBzZWRCb3JkZXJWYWx1ZSgpIDogYm9yZGVyOwog
fQogCitib29sIFJlbmRlclRhYmxlQ2VsbDo6aGFzU3RhcnRCb3JkZXJBZGpvaW5pbmdUYWJsZSgp
IGNvbnN0Cit7CisgICAgYm9vbCBpc1N0YXJ0Q29sdW1uID0gIWNvbCgpOworICAgIGJvb2wgaXNF
bmRDb2x1bW4gPSB0YWJsZSgpLT5jb2xUb0VmZkNvbChjb2woKSArIGNvbFNwYW4oKSAtIDEpID09
IHRhYmxlKCktPm51bUVmZkNvbHMoKSAtIDE7CisgICAgYm9vbCBoYXNTYW1lRGlyZWN0aW9uQXNU
YWJsZSA9IGhhc1NhbWVEaXJlY3Rpb25Bcyh0YWJsZSgpKTsKKworICAgIC8vIFRoZSB0YWJsZSBk
aXJlY3Rpb24gZGV0ZXJtaW5lcyB0aGUgcm93IGRpcmVjdGlvbi4gSW4gbWl4ZWQgZGlyZWN0aW9u
YWxpdHksIHdlIGNhbm5vdCBndWFyYW50ZWUgdGhhdAorICAgIC8vIHdlIGhhdmUgYSBjb21tb24g
Ym9yZGVyIHdpdGggdGhlIHRhYmxlICh0aGluayBhIGx0ciB0YWJsZSB3aXRoIHJ0bCBzdGFydCBj
ZWxsKS4KKyAgICByZXR1cm4gKGlzU3RhcnRDb2x1bW4gJiYgaGFzU2FtZURpcmVjdGlvbkFzVGFi
bGUpIHx8IChpc0VuZENvbHVtbiAmJiAhaGFzU2FtZURpcmVjdGlvbkFzVGFibGUpOworfQorCiti
b29sIFJlbmRlclRhYmxlQ2VsbDo6aGFzRW5kQm9yZGVyQWRqb2luaW5nVGFibGUoKSBjb25zdAor
eworICAgIGJvb2wgaXNTdGFydENvbHVtbiA9ICFjb2woKTsKKyAgICBib29sIGlzRW5kQ29sdW1u
ID0gdGFibGUoKS0+Y29sVG9FZmZDb2woY29sKCkgKyBjb2xTcGFuKCkgLSAxKSA9PSB0YWJsZSgp
LT5udW1FZmZDb2xzKCkgLSAxOworICAgIGJvb2wgaGFzU2FtZURpcmVjdGlvbkFzVGFibGUgPSBo
YXNTYW1lRGlyZWN0aW9uQXModGFibGUoKSk7CisKKyAgICAvLyBUaGUgdGFibGUgZGlyZWN0aW9u
IGRldGVybWluZXMgdGhlIHJvdyBkaXJlY3Rpb24uIEluIG1peGVkIGRpcmVjdGlvbmFsaXR5LCB3
ZSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQKKyAgICAvLyB3ZSBoYXZlIGEgY29tbW9uIGJvcmRlciB3
aXRoIHRoZSB0YWJsZSAodGhpbmsgYSBsdHIgdGFibGUgd2l0aCBsdHIgZW5kIGNlbGwpLgorICAg
IHJldHVybiAoaXNTdGFydENvbHVtbiAmJiAhaGFzU2FtZURpcmVjdGlvbkFzVGFibGUpIHx8IChp
c0VuZENvbHVtbiAmJiBoYXNTYW1lRGlyZWN0aW9uQXNUYWJsZSk7Cit9CisKIENvbGxhcHNlZEJv
cmRlclZhbHVlIFJlbmRlclRhYmxlQ2VsbDo6Y29sbGFwc2VkU3RhcnRCb3JkZXIoSW5jbHVkZUJv
cmRlckNvbG9yT3JOb3QgaW5jbHVkZUNvbG9yKSBjb25zdAogewogICAgIENvbGxhcHNlZEJvcmRl
clZhbHVlIHJlc3VsdCA9IGNvbXB1dGVDb2xsYXBzZWRTdGFydEJvcmRlcihpbmNsdWRlQ29sb3Ip
OwpAQCAtNDg2LDcgKzUwOCwxMCBAQCBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBSZW5kZXJUYWJsZUNl
bGw6OmNvbXB1dGVDb2xsYXBzZWRTdGFydEJvcmRlcihJbmNsdWRlQm9yZGVyQwogICAgICAgICBy
ZXN1bHQgPSBjaG9vc2VCb3JkZXIoY2VsbEJlZm9yZUFkam9pbmluZ0JvcmRlciwgcmVzdWx0KTsK
ICAgICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0gZWxzZSB7CisgICAgfQorCisgICAgYm9vbCBzdGFydEJvcmRlckFkam9pbnNUYWJs
ZSA9IGhhc1N0YXJ0Qm9yZGVyQWRqb2luaW5nVGFibGUoKTsKKyAgICBpZiAoc3RhcnRCb3JkZXJB
ZGpvaW5zVGFibGUpIHsKICAgICAgICAgLy8gKDMpIE91ciByb3cncyBzdGFydCBib3JkZXIuCiAg
ICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVl
KHJvdygpLT5ib3JkZXJBZGpvaW5pbmdTdGFydENlbGwodGhpcyksIGluY2x1ZGVDb2xvciA/IHBh
cmVudCgpLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5
KSA6IENvbG9yKCksIEJST1cpKTsKICAgICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCkBAIC01
NDUsNyArNTcwLDkgQEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUgUmVuZGVyVGFibGVDZWxsOjpjb21w
dXRlQ29sbGFwc2VkU3RhcnRCb3JkZXIoSW5jbHVkZUJvcmRlckMKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIH0KKworICAgIGlm
IChzdGFydEJvcmRlckFkam9pbnNUYWJsZSkgewogICAgICAgICAvLyAoNykgVGhlIHRhYmxlJ3Mg
c3RhcnQgYm9yZGVyLgogICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xs
YXBzZWRCb3JkZXJWYWx1ZSh0YWJsZS0+dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwodGhp
cyksIGluY2x1ZGVDb2xvciA/IHRhYmxlLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3Io
c3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJUQUJMRSkpOwogICAgICAgICBpZiAoIXJl
c3VsdC5leGlzdHMoKSkKQEAgLTU4NCw3ICs2MTEsMTAgQEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUg
UmVuZGVyVGFibGVDZWxsOjpjb21wdXRlQ29sbGFwc2VkRW5kQm9yZGVyKEluY2x1ZGVCb3JkZXJD
b2wKICAgICAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygpKQogICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgeworICAgIH0KKworICAgIGJvb2wg
ZW5kQm9yZGVyQWRqb2luc1RhYmxlID0gaGFzRW5kQm9yZGVyQWRqb2luaW5nVGFibGUoKTsKKyAg
ICBpZiAoZW5kQm9yZGVyQWRqb2luc1RhYmxlKSB7CiAgICAgICAgIC8vICgzKSBPdXIgcm93J3Mg
ZW5kIGJvcmRlci4KICAgICAgICAgcmVzdWx0ID0gY2hvb3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFw
c2VkQm9yZGVyVmFsdWUocm93KCktPmJvcmRlckFkam9pbmluZ0VuZENlbGwodGhpcyksIGluY2x1
ZGVDb2xvciA/IHBhcmVudCgpLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoZW5kQ29s
b3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCUk9XKSk7CiAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0
cygpKQpAQCAtNjQyLDcgKzY3Miw5IEBAIENvbGxhcHNlZEJvcmRlclZhbHVlIFJlbmRlclRhYmxl
Q2VsbDo6Y29tcHV0ZUNvbGxhcHNlZEVuZEJvcmRlcihJbmNsdWRlQm9yZGVyQ29sCiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKKyAgICB9
CisKKyAgICBpZiAoZW5kQm9yZGVyQWRqb2luc1RhYmxlKSB7CiAgICAgICAgIC8vICg3KSBUaGUg
dGFibGUncyBlbmQgYm9yZGVyLgogICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0
LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZSh0YWJsZS0+dGFibGVFbmRCb3JkZXJBZGpvaW5pbmdDZWxs
KHRoaXMpLCBpbmNsdWRlQ29sb3IgPyB0YWJsZS0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENv
bG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQlRBQkxFKSk7CiAgICAgICAgIGlmICgh
cmVzdWx0LmV4aXN0cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5oCmluZGV4IGYyOTAzYTM0NzQ3OGU1NTAzYTY4Y2U3MjczMWZkNzE1MTJiNzA5MTEuLjg3ZTZk
NTkxYzIzN2M1ZTU4MjM1MjA5OTk2YzdkYWExZjc2Yjg0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gb24gYWxsIHRhYmxlIHBhcnRzIGFuZCB3cml0aW5nLW1vZGUgb24gY2VsbHMuCiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlRm9yQ2VsbEZsb3coKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHNlY3Rpb24oKS0+c3R5bGUoKTsKKyAgICAgICAgcmV0dXJuIHJvdygpLT5zdHls
ZSgpOwogICAgIH0KIAogICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5pbmdUYWJs
ZVN0YXJ0KCkgY29uc3QKQEAgLTI0MCw2ICsyNDAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0
SW50cmluc2ljUGFkZGluZ0FmdGVyKGludCBwKSB7IG1faW50cmluc2ljUGFkZGluZ0FmdGVyID0g
cDsgfQogICAgIHZvaWQgc2V0SW50cmluc2ljUGFkZGluZyhpbnQgYmVmb3JlLCBpbnQgYWZ0ZXIp
IHsgc2V0SW50cmluc2ljUGFkZGluZ0JlZm9yZShiZWZvcmUpOyBzZXRJbnRyaW5zaWNQYWRkaW5n
QWZ0ZXIoYWZ0ZXIpOyB9CiAKKyAgICBib29sIGhhc1N0YXJ0Qm9yZGVyQWRqb2luaW5nVGFibGUo
KSBjb25zdDsKKyAgICBib29sIGhhc0VuZEJvcmRlckFkam9pbmluZ1RhYmxlKCkgY29uc3Q7CisK
ICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjb2xsYXBzZWRTdGFydEJvcmRlcihJbmNsdWRlQm9y
ZGVyQ29sb3JPck5vdCA9IEluY2x1ZGVCb3JkZXJDb2xvcikgY29uc3Q7CiAgICAgQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUgY29sbGFwc2VkRW5kQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2xvck9yTm90ID0g
SW5jbHVkZUJvcmRlckNvbG9yKSBjb25zdDsKICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjb2xs
YXBzZWRCZWZvcmVCb3JkZXIoSW5jbHVkZUJvcmRlckNvbG9yT3JOb3QgPSBJbmNsdWRlQm9yZGVy
Q29sb3IpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5j
cHAKaW5kZXggYzNhYWY4NTg2MmY4ZjhhYTJkNzRhNmY3YWZkNDVkY2M1YWFkYjY0Ny4uZjNjNDYy
ZTEzMWVlZmI4MGQwZTRmM2Y1ODk4MDNlMWI3MmFkMjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCkBAIC04NCwxNCArODQsMTQgQEAgdm9pZCBSZW5k
ZXJUYWJsZVJvdzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGQKIAogY29uc3QgQm9yZGVyVmFsdWUmIFJlbmRlclRhYmxlUm93Ojpib3Jk
ZXJBZGpvaW5pbmdTdGFydENlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAog
ewotICAgIEFTU0VSVF9VTlVTRUQoY2VsbCwgIXRhYmxlKCktPmNlbGxCZWZvcmUoY2VsbCkpOwor
ICAgIEFTU0VSVF9VTlVTRUQoY2VsbCwgY2VsbC0+aXNGaXJzdE9yTGFzdENlbGxJblJvdygpKTsK
ICAgICAvLyBGSVhNRTogaHR0cHM6Ly93ZWJraXQub3JnL2IvNzkyNzIgLSBBZGQgc3VwcG9ydCBm
b3IgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgYXQgdGhlIGNlbGwgbGV2ZWwuCiAgICAgcmV0dXJuIHN0
eWxlKCktPmJvcmRlclN0YXJ0KCk7CiB9CiAKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJs
ZVJvdzo6Ym9yZGVyQWRqb2luaW5nRW5kQ2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwqIGNlbGwp
IGNvbnN0CiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjZWxsLCAhdGFibGUoKS0+Y2VsbEFmdGVyKGNl
bGwpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIGNlbGwtPmlzRmlyc3RPckxhc3RDZWxsSW5S
b3coKSk7CiAgICAgLy8gRklYTUU6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzc5MjcyIC0gQWRkIHN1
cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRoZSBjZWxsIGxldmVsLgogICAgIHJl
dHVybiBzdHlsZSgpLT5ib3JkZXJFbmQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggMWQ2MjhmZTU5NGM2ODFmNzFjMTIwMTRh
ZWFmOWQxOGFlNWU4OGNlOS4uZTRhMzM5ODVmZjU2YjhjNjJiODRmY2IwMTQyMTVlZDZiYTE2MDU3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5j
cHAKQEAgLTk4Nyw2ICs5ODcsNyBAQCBMYXlvdXRSZWN0IFJlbmRlclRhYmxlU2VjdGlvbjo6bG9n
aWNhbFJlY3RGb3JXcml0aW5nTW9kZUFuZERpcmVjdGlvbihjb25zdCBMYXlvdQogICAgICAgICB0
YWJsZUFsaWduZWRSZWN0ID0gdGFibGVBbGlnbmVkUmVjdC50cmFuc3Bvc2VkUmVjdCgpOwogCiAg
ICAgY29uc3QgVmVjdG9yPGludD4mIGNvbHVtblBvcyA9IHRhYmxlKCktPmNvbHVtblBvc2l0aW9u
cygpOworICAgIC8vIEZJWE1FOiBUaGUgdGFibGUncyBkaXJlY3Rpb24gc2hvdWxkIGRldGVybWlu
ZSBvdXIgcm93J3MgZGlyZWN0aW9uLCBub3QgdGhlIHNlY3Rpb24ncyAoc2VlIGJ1ZyA5NjY5MSku
CiAgICAgaWYgKCFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgIHRh
YmxlQWxpZ25lZFJlY3Quc2V0WChjb2x1bW5Qb3NbY29sdW1uUG9zLnNpemUoKSAtIDFdIC0gdGFi
bGVBbGlnbmVkUmVjdC5tYXhYKCkpOwogCkBAIC0xMjY2LDE2ICsxMjY3LDE0IEBAIHVuc2lnbmVk
IFJlbmRlclRhYmxlU2VjdGlvbjo6bnVtQ29sdW1ucygpIGNvbnN0CiAKIGNvbnN0IEJvcmRlclZh
bHVlJiBSZW5kZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ1N0YXJ0Q2VsbChjb25zdCBS
ZW5kZXJUYWJsZUNlbGwqIGNlbGwpIGNvbnN0CiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjZWxsLCAh
dGFibGUoKS0+Y2VsbEJlZm9yZShjZWxsKSk7Ci0gICAgLy8gRklYTUU6IGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzc5MjcyIC0gQWRkIHN1cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRo
ZSBjZWxsIGxldmVsLgotICAgIHJldHVybiBzdHlsZSgpLT5ib3JkZXJTdGFydCgpOworICAgIEFT
U0VSVChjZWxsLT5pc0ZpcnN0T3JMYXN0Q2VsbEluUm93KCkpOworICAgIHJldHVybiBoYXNTYW1l
RGlyZWN0aW9uQXMoY2VsbCkgPyBzdHlsZSgpLT5ib3JkZXJTdGFydCgpIDogc3R5bGUoKS0+Ym9y
ZGVyRW5kKCk7CiB9CiAKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVNlY3Rpb246OmJv
cmRlckFkam9pbmluZ0VuZENlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAog
ewotICAgIEFTU0VSVF9VTlVTRUQoY2VsbCwgIXRhYmxlKCktPmNlbGxBZnRlcihjZWxsKSk7Ci0g
ICAgLy8gRklYTUU6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzc5MjcyIC0gQWRkIHN1cHBvcnQgZm9y
IG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRoZSBjZWxsIGxldmVsLgotICAgIHJldHVybiBzdHls
ZSgpLT5ib3JkZXJFbmQoKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIGNlbGwtPmlzRmlyc3RP
ckxhc3RDZWxsSW5Sb3coKSk7CisgICAgcmV0dXJuIGhhc1NhbWVEaXJlY3Rpb25BcyhjZWxsKSA/
IHN0eWxlKCktPmJvcmRlckVuZCgpIDogc3R5bGUoKS0+Ym9yZGVyU3RhcnQoKTsKIH0KIAogY29u
c3QgUmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0Um93Q2VsbEFkam9p
bmluZ1RhYmxlU3RhcnQoKSBjb25zdApAQCAtMTQyOSw3ICsxNDI4LDggQEAgdm9pZCBSZW5kZXJU
YWJsZVNlY3Rpb246OnNldExvZ2ljYWxQb3NpdGlvbkZvckNlbGwoUmVuZGVyVGFibGVDZWxsKiBj
ZWxsLCB1bnNpZ24KICAgICBMYXlvdXRQb2ludCBjZWxsTG9jYXRpb24oMCwgbV9yb3dQb3NbY2Vs
bC0+cm93SW5kZXgoKV0pOwogICAgIGludCBob3Jpem9udGFsQm9yZGVyU3BhY2luZyA9IHRhYmxl
KCktPmhCb3JkZXJTcGFjaW5nKCk7CiAKLSAgICBpZiAoIWNlbGwtPnN0eWxlRm9yQ2VsbEZsb3co
KS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgIC8vIEZJWE1FOiBUaGUgdGFibGUncyBk
aXJlY3Rpb24gc2hvdWxkIGRldGVybWluZSBvdXIgcm93J3MgZGlyZWN0aW9uLCBub3QgdGhlIHNl
Y3Rpb24ncyAoc2VlIGJ1ZyA5NjY5MSkuCisgICAgaWYgKCFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkpCiAgICAgICAgIGNlbGxMb2NhdGlvbi5zZXRYKHRhYmxlKCktPmNvbHVtblBv
c2l0aW9ucygpW3RhYmxlKCktPm51bUVmZkNvbHMoKV0gLSB0YWJsZSgpLT5jb2x1bW5Qb3NpdGlv
bnMoKVt0YWJsZSgpLT5jb2xUb0VmZkNvbChjZWxsLT5jb2woKSArIGNlbGwtPmNvbFNwYW4oKSld
ICsgaG9yaXpvbnRhbEJvcmRlclNwYWNpbmcpOwogICAgIGVsc2UKICAgICAgICAgY2VsbExvY2F0
aW9uLnNldFgodGFibGUoKS0+Y29sdW1uUG9zaXRpb25zKClbZWZmZWN0aXZlQ29sdW1uXSArIGhv
cml6b250YWxCb3JkZXJTcGFjaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9Db2xsYXBzZWRCb3JkZXJWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmgKaW5kZXggOThjZWUxYjA3ZTc1OGE4YjIy
ODlmNmU1MGNkNzc1Nzk0MjQxMGY5ZS4uMTIwMTczYmRhNzBjODQwY2FlMTg3ZWYyMTE2MWU3NzAz
ODcwYjY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbGxh
cHNlZEJvcmRlclZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Nv
bGxhcHNlZEJvcmRlclZhbHVlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKLSAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KKyAg
ICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUgPiBCSElEREVOID8gbV93
aWR0aCA6IDA7IH0KICAgICBFQm9yZGVyU3R5bGUgc3R5bGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxFQm9yZGVyU3R5bGU+KG1fc3R5bGUpOyB9CiAgICAgYm9vbCBleGlzdHMoKSBjb25z
dCB7IHJldHVybiBtX3ByZWNlZGVuY2UgIT0gQk9GRjsgfQogICAgIENvbG9yIGNvbG9yKCkgY29u
c3QgeyByZXR1cm4gQ29sb3IobV9jb2xvciwgbV9jb2xvcklzVmFsaWQpOyB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZm
MDhiOGMzOGZjZGZhMDVkODllYjhiM2MxYmYxZTAyNmNkODg3Yi4uNDdiNWQ0ZmMwMjc4MTU4NGVj
YWZmZGU3ZWM0YzcwYzYxZmY4YjI3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTAy
ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEZp
eCB0aGUgY29sbGFwc2luZyBib3JkZXIgY29kZSB0byBoYW5kbGUgbWl4ZWQgZGlyZWN0aW9uYWxp
dHkgYXQgdGhlIHJvdyBsZXZlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAxMDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dz
LW1peGVkLWRpcmVjdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dzLW1peGVkLWRpcmVjdGlvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLXJ0
bC1yb3ctbWl4ZWQtZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24u
aHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDEgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtTaGFkb3ddIEVsZW1lbnQgc2hvdWxkIGhhdmUgZ2V0dGVy
IGFuZCBzZXR0ZXIgb2YgYXR0cmlidXRlICdwc2V1ZG8nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dzLW1peGVkLWRpcmVj
dGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy90YWJsZS1sdHItcm93cy1taXhlZC1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNzRkN2JhZDRjM2VlZTY3ZDcxNzdlNDg2OGU0ZjRjMTNmMzFkODY0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy90YWJsZS1s
dHItcm93cy1taXhlZC1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8
IURPQ1RZUEU+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgordGFibGUgeworICAgIGJvcmRlci1j
b2xsYXBzZTogY29sbGFwc2U7CisgICAgYm9yZGVyOiAzcHggc29saWQgZ3JlZW47Cit9CisKK3Rk
IHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAxMDBweDsKK30KKzwvc3R5bGU+Cis8
aGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTA2MCI+MTAxMDYwPC9hPjogRml4IHRoZSBjb2xsYXBzaW5n
IGJvcmRlciBjb2RlIHRvIGhhbmRsZSBtaXhlZCBkaXJlY3Rpb25hbGl0eSBhdCB0aGUgcm93IGxl
dmVsPC9wPgorPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGEgdGFibGUgd2l0aCBkaXI9Imx0ciIg
YW5kIG1peGVkIGRpcmVjdGlvbmFsaXR5IG9uIHRoZSByb3cgd29ya3MgYXMgZXhwZWN0ZWQuPC9w
PgorPHA+VGhlIHRhYmxlIGJlbG93IHNob3VsZCBoYXZlIGEgM3B4IGdyZWVuIG91dGVyIGJvcmRl
ci48L3A+Cis8dGFibGU+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8
dGQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8
dHI+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAg
ICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICAg
IDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC90YWJs
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvdGFibGUtbHRyLXJvd3MtbWl4ZWQtZGlyZWN0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dzLW1p
eGVkLWRpcmVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YzM4ZmQ0NjdiODgwM2Q2N2U4OTZiZWYx
YjhlOTk2ODE1ZWJhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dzLW1peGVkLWRpcmVjdGlvbi5odG1sCkBA
IC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRT4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cit0YWJs
ZSB7CisgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKKyAgICBib3JkZXItbGVmdDogMnB4
IHNvbGlkIHJlZDsKKyAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZWQ7CisgICAgYm9yZGVy
LWJvdHRvbTogM3B4IHNvbGlkIGdyZWVuOworICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCBncmVl
bjsKK30KKworLmxlZnRHcmVlbkJvcmRlciB7CisgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCBn
cmVlbjsKK30KKworLnJpZ2h0R3JlZW5Cb3JkZXIgeworICAgIGJvcmRlci1yaWdodDogM3B4IHNv
bGlkIGdyZWVuOworfQorCit0ZCB7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMTAw
cHg7Cit9Cis8L3N0eWxlPgorPGhlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEwNjAiPjEwMTA2MDwvYT46
IEZpeCB0aGUgY29sbGFwc2luZyBib3JkZXIgY29kZSB0byBoYW5kbGUgbWl4ZWQgZGlyZWN0aW9u
YWxpdHkgYXQgdGhlIHJvdyBsZXZlbDwvcD4KKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIHRh
YmxlIHdpdGggZGlyPSJsdHIiIGFuZCBtaXhlZCBkaXJlY3Rpb25hbGl0eSBvbiB0aGUgcm93IHdv
cmtzIGFzIGV4cGVjdGVkLjwvcD4KKzxwPlRoZSB0YWJsZSBiZWxvdyBzaG91bGQgaGF2ZSBhIDNw
eCBncmVlbiBvdXRlciBib3JkZXIuPC9wPgorPHRhYmxlPgorICAgIDx0Ym9keSBjbGFzcz0icmln
aHRHcmVlbkJvcmRlciI+CisgICAgICAgIDx0ciBkaXI9InJ0bCI+CisgICAgICAgICAgICA8dGQg
Y2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAg
ICAgICA8L3RyPgorICAgICAgICA8dHIgY2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+CisgICAgICAg
ICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAg
ICAgICA8dHI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+PC90ZD4K
KyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8L3Rh
YmxlPgorPC90YWJsZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rp
b24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNp
bmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MTk2ZjkxNDQyYzQ2ZmMzMTJiMWE1NDU4ODE5ZWE5YWM4YzVlYTUxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy90YWJsZS1ydGwt
cm93LW1peGVkLWRpcmVjdGlvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9D
VFlQRT4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cit0YWJsZSB7CisgICAgYm9yZGVyLWNvbGxh
cHNlOiBjb2xsYXBzZTsKKyAgICBib3JkZXI6IDNweCBzb2xpZCBncmVlbjsKK30KKwordGQgewor
ICAgIGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6IDEwMHB4OworfQorPC9zdHlsZT4KKzxoZWFk
PgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAxMDYwIj4xMDEwNjA8L2E+OiBGaXggdGhlIGNvbGxhcHNpbmcgYm9y
ZGVyIGNvZGUgdG8gaGFuZGxlIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRoZSByb3cgbGV2ZWw8
L3A+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSB0YWJsZSB3aXRoIGRpcj0icnRsIiBhbmQg
bWl4ZWQgZGlyZWN0aW9uYWxpdHkgb24gdGhlIHJvdyB3b3JrcyBhcyBleHBlY3RlZC48L3A+Cis8
cD5UaGUgdGFibGUgYmVsb3cgc2hvdWxkIGhhdmUgYSAzcHggZ3JlZW4gb3V0ZXIgYm9yZGVyLjwv
cD4KKzx0YWJsZT4KKyAgICA8dGJvZHk+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZD48
L3RkPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4K
KyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwv
dHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgICAgPHRk
PjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZD48L3Rk
PgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKzwv
dGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rh
YmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLXJ0bC1yb3ctbWl4ZWQtZGlyZWN0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLXJ0bC1yb3ct
bWl4ZWQtZGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDczNjM4Yjg1NWVkZjA5ZGRmNjg1MDJl
YzU5MjYwYzQ5ZjBhYmI4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGFi
bGUvYm9yZGVyLWNvbGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24uaHRtbApA
QCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEU+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgordGFi
bGUgeworICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CisgICAgYm9yZGVyLWxlZnQ6IDJw
eCBzb2xpZCByZWQ7CisgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmVkOworICAgIGJvcmRl
ci1ib3R0b206IDNweCBzb2xpZCBncmVlbjsKKyAgICBib3JkZXItdG9wOiAzcHggc29saWQgZ3Jl
ZW47Cit9CisKKy5sZWZ0R3JlZW5Cb3JkZXIgeworICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQg
Z3JlZW47Cit9CisKKy5yaWdodEdyZWVuQm9yZGVyIHsKKyAgICBib3JkZXItcmlnaHQ6IDNweCBz
b2xpZCBncmVlbjsKK30KKwordGQgeworICAgIGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6IDEw
MHB4OworfQorPC9zdHlsZT4KKzxoZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMDYwIj4xMDEwNjA8L2E+
OiBGaXggdGhlIGNvbGxhcHNpbmcgYm9yZGVyIGNvZGUgdG8gaGFuZGxlIG1peGVkIGRpcmVjdGlv
bmFsaXR5IGF0IHRoZSByb3cgbGV2ZWw8L3A+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSB0
YWJsZSB3aXRoIGRpcj0icnRsIiBhbmQgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgb24gdGhlIHJvdyB3
b3JrcyBhcyBleHBlY3RlZC48L3A+Cis8cD5UaGUgdGFibGUgYmVsb3cgc2hvdWxkIGhhdmUgYSAz
cHggZ3JlZW4gb3V0ZXIgYm9yZGVyLjwvcD4KKzx0YWJsZSBkaXI9InJ0bCI+CisgICAgPHRib2R5
IGNsYXNzPSJyaWdodEdyZWVuQm9yZGVyIj4KKyAgICAgICAgPHRyIGRpcj0ibHRyIj4KKyAgICAg
ICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJsZWZ0R3JlZW5Cb3JkZXIi
PjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0ciBkaXI9InJ0bCI+CisgICAgICAgICAg
ICA8dGQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0ibGVmdEdyZWVuQm9yZGVyIj48L3Rk
PgorICAgICAgICA8L3RyPgorICAgICAgICA8dHIgZGlyPSJsdHIiIGNsYXNzPSJsZWZ0R3JlZW5C
b3JkZXIiPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAg
ICAgICAgPC90cj4KKyAgICAgICAgPHRyIGRpcj0icnRsIiBjbGFzcz0ibGVmdEdyZWVuQm9yZGVy
Ij4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAg
IDwvdHI+CisgICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172089</attachid>
            <date>2012-11-02 11:02:35 -0700</date>
            <delta_ts>2012-11-04 23:55:53 -0800</delta_ts>
            <desc>Updated change: fixed per Ojan&apos;s comment.</desc>
            <filename>bug-101060-20121102110055.patch</filename>
            <type>text/plain</type>
            <size>20729</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFmMjM4Mjk5MThjM2Yw
NzM0MmQ0ODEyNWZmMDk0MDkwZjkxZTVkOC4uNmFhMzBkNDAwNGY3YzUxZDIxOTE4MDhlOGFiNWMz
ZGRkNGExZTVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTExLTAyICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB0aGUg
Y29sbGFwc2luZyBib3JkZXIgY29kZSB0byBoYW5kbGUgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgYXQg
dGhlIHJvdyBsZXZlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxMDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWZ0ZXIgYnVnIDg3OTAwLCB3ZSBzdXBwb3J0IG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0
IHRoZSByb3ctZ3JvdXAgbGV2ZWwuIEZvciBjb2hlcmVuY3kKKyAgICAgICAgLSBhcyB0aGUgdW5k
ZXJseWluZyBjb2RlIGRpZG4ndCBzdXBwb3J0IGl0IC0gd2Ugd2VyZSBhcnRpZmljaWFsbHkgaWdu
b3JpbmcgJ2RpcmVjdGlvbicKKyAgICAgICAgYmVsb3cgdGhlIHJvdy1ncm91cC4gVGhpcyBjaGFu
Z2UgcmVsYXhlcyB0aGUgcmVzdHJpY3Rpb24gYW5kIHBhdGNoZXMgdGhlIGNvbGxhcHNpbmcKKyAg
ICAgICAgYm9yZGVycyBjb2RlIHRvIHF1ZXJ5IHRoZSByaWdodCBzdHlsZSBhbmQgYm9yZGVyLgor
CisgICAgICAgIFRlc3RzOiBmYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1y
b3dzLW1peGVkLWRpcmVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RhYmxlL2JvcmRl
ci1jb2xsYXBzaW5nL3RhYmxlLXJ0bC1yb3ctbWl4ZWQtZGlyZWN0aW9uLmh0bWwKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZTo6dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGFibGU6OnRhYmxlRW5kQm9yZGVyQWRqb2luaW5nQ2VsbCk6CisgICAgICAgIENoYW5n
ZWQgdG8gcXVlcnkgdGhlIHJvdydzIGRpcmVjdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpo
YXNTdGFydEJvcmRlckFkam9pbmluZ1RhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlQ2VsbDo6aGFzRW5kQm9yZGVyQWRqb2luaW5nVGFibGUpOgorICAgICAgICBBZGRlZCAyIGhl
bHBlciBmdW5jdGlvbnMuIFRoZXkgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgY2VsbCdzIGJvcmRl
cgorICAgICAgICBhZGpvaW5zIHRoZSB0YWJsZS4gVGhpcyBjb2RlIGlzIHJlcXVpcmVkIGFzIHRo
ZSBsYXN0IGNlbGwncyBlbmQgYm9yZGVyCisgICAgICAgIGNhbiBiZSByZXNvbHZlZCBhZ2FpbnN0
IHRoZSBzdGFydCBib3JkZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6
Y29tcHV0ZUNvbGxhcHNlZFN0YXJ0Qm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZEVuZEJvcmRlcik6CisgICAgICAgIFVwZGF0ZWQgdGhl
c2UgZnVuY3Rpb25zIG5vdyB0aGF0IGJlaW5nIHRoZSBzdGFydCAvIGVuZCBjb2x1bW4gZG9lc24n
dCBtZWFuCisgICAgICAgIHRoYXQgd2UgaGF2ZSB0byByZXNvbHZlIGFnYWluc3QgdGhlIHJvdyAv
IHJvdy1ncm91cCAvIHRhYmxlJ3MgYm9yZGVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpzdHlsZUZv
ckNlbGxGbG93KToKKyAgICAgICAgVXBkYXRlZCB0byByZXR1cm4gdGhlIHJvdydzIHN0eWxlLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlUm93Ojpib3JkZXJBZGpvaW5pbmdTdGFydENlbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGVSb3c6OmJvcmRlckFkam9pbmluZ0VuZENlbGwpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGFibGVTZWN0aW9uOjpib3JkZXJBZGpvaW5pbmdTdGFydENlbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpib3JkZXJBZGpvaW5pbmdFbmRDZWxsKToKKyAg
ICAgICAgVXBkYXRlZCB0aGVzZSBmdW5jdGlvbnMgdG8gd29yayB3aXRoIG1peGVkIGRpcmVjdGlv
bmFsaXR5LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OnNldExvZ2ljYWxQb3NpdGlvbkZv
ckNlbGwpOgorICAgICAgICBDaGFuZ2VkIHRoaXMgZnVuY3Rpb24gdG8gdXNlIHRoZSBzZWN0aW9u
J3MgZGlyZWN0aW9uLiBUaGlzIGlzIHdyb25nIGFuZCBzaG91bGQgYmUgY2hhbmdlZAorICAgICAg
ICBvbmNlIHdlIHByb3Blcmx5IGZpeCB0aGUgY29sbGFwc2luZyBib3JkZXIgY29kZS4KKworICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpsb2dpY2FsUmVjdEZvcldyaXRpbmdN
b2RlQW5kRGlyZWN0aW9uKToKKyAgICAgICAgQWRkZWQgYSBGSVhNRS4KKworICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9Db2xsYXBzZWRCb3JkZXJWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q29sbGFwc2VkQm9yZGVyVmFsdWU6OndpZHRoKToKKyAgICAgICAgVGhpcyBpcyBhIGJ1ZyBpbiBv
dXIgaW1wbGVtZW50YXRpb246IHdlIHVzZWQgdG8gcmV0dXJuIGEgbm9uLXplcm8gd2lkdGggZm9y
IGluZXhpc3RhbnQgYm9yZGVycyAocGVyIENTUyAyLjEsCisgICAgICAgICdib3JkZXItc3R5bGU6
IG9mZiB8IGhpZGRlbicgc2hvdWxkIGhhdmUgYSAwIHdpZHRoKS4gVGhpcyBpcyBjb3ZlcmVkIGJ5
IG91ciBleGlzdGluZyB0ZXN0cyAoYW1vbmcgb3RoZXJzIGJ5CisgICAgICAgIGZhc3QvdGFibGUv
Ym9yZGVyLWNvbGxhcHNpbmcvbGFzdC1jZWxsLWxlZnQtYm9yZGVyLWhpZGRlbi10YWJsZS1sdHIt
c2VjdGlvbi1ydGwuaHRtbCkuCisKIDIwMTItMTEtMDIgIEtldmluIEVsbGlzICA8a2V2ZXJzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBJbXJwb3ZlIHNjb3JpbmcgaW4gdG91Y2ggYWRqdXN0bWVu
dCB0byBhZGRyZXNzIGJpYXMgdG93YXJkcyBzbWFsbGVyIHRhcmdldHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAppbmRleCAzNmJkODZhOWZmYWJiYzFiMmRmNjFiMmJj
YzZjZTlhZGQ4MzNkNGNmLi45NDhiNTI2ZDM4MDliNzhhMjhkOTBmOWIyZDdlYjEyN2QyYTkzZTcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTEzNDksNyAr
MTM0OSw3IEBAIFJlbmRlclRhYmxlKiBSZW5kZXJUYWJsZTo6Y3JlYXRlQW5vbnltb3VzV2l0aFBh
cmVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCoKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5k
ZXJUYWJsZTo6dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwoY29uc3QgUmVuZGVyVGFibGVD
ZWxsKiBjZWxsKSBjb25zdAogewogICAgIEFTU0VSVChjZWxsLT5pc0ZpcnN0T3JMYXN0Q2VsbElu
Um93KCkpOwotICAgIGlmIChoYXNTYW1lRGlyZWN0aW9uQXMoY2VsbC0+c2VjdGlvbigpKSkKKyAg
ICBpZiAoaGFzU2FtZURpcmVjdGlvbkFzKGNlbGwtPnJvdygpKSkKICAgICAgICAgcmV0dXJuIHN0
eWxlKCktPmJvcmRlclN0YXJ0KCk7CiAKICAgICByZXR1cm4gc3R5bGUoKS0+Ym9yZGVyRW5kKCk7
CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBjb25zdCBCb3JkZXJWYWx1ZSYgUmVuZGVyVGFibGU6OnRh
YmxlU3RhcnRCb3JkZXJBZGpvaW5pbmdDZWxsKGNvbnN0IFJlbmRlclRhYmxlQwogY29uc3QgQm9y
ZGVyVmFsdWUmIFJlbmRlclRhYmxlOjp0YWJsZUVuZEJvcmRlckFkam9pbmluZ0NlbGwoY29uc3Qg
UmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogewogICAgIEFTU0VSVChjZWxsLT5pc0ZpcnN0
T3JMYXN0Q2VsbEluUm93KCkpOwotICAgIGlmIChoYXNTYW1lRGlyZWN0aW9uQXMoY2VsbC0+c2Vj
dGlvbigpKSkKKyAgICBpZiAoaGFzU2FtZURpcmVjdGlvbkFzKGNlbGwtPnJvdygpKSkKICAgICAg
ICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlckVuZCgpOwogCiAgICAgcmV0dXJuIHN0eWxlKCktPmJv
cmRlclN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwCmluZGV4IDY4MzMyMWFhN2EzY2EyOWNkZTM0NzllZDA3MjI3NjEzZWIyNzNkNWUuLjY4OWNm
OGEzOTA1OTRjY2I5NWEzZDExZjlhNDQ0MzgyZTcxZmViZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC00NjAsNiArNDYwLDI4IEBAIHN0YXRp
YyBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjaG9vc2VCb3JkZXIoY29uc3QgQ29sbGFwc2VkQm9yZGVy
VmFsdWUmIGJvcmRlcjEsIGNvCiAgICAgcmV0dXJuIGJvcmRlci5zdHlsZSgpID09IEJISURERU4g
PyBDb2xsYXBzZWRCb3JkZXJWYWx1ZSgpIDogYm9yZGVyOwogfQogCitib29sIFJlbmRlclRhYmxl
Q2VsbDo6aGFzU3RhcnRCb3JkZXJBZGpvaW5pbmdUYWJsZSgpIGNvbnN0Cit7CisgICAgYm9vbCBp
c1N0YXJ0Q29sdW1uID0gIWNvbCgpOworICAgIGJvb2wgaXNFbmRDb2x1bW4gPSB0YWJsZSgpLT5j
b2xUb0VmZkNvbChjb2woKSArIGNvbFNwYW4oKSAtIDEpID09IHRhYmxlKCktPm51bUVmZkNvbHMo
KSAtIDE7CisgICAgYm9vbCBoYXNTYW1lRGlyZWN0aW9uQXNUYWJsZSA9IGhhc1NhbWVEaXJlY3Rp
b25Bcyh0YWJsZSgpKTsKKworICAgIC8vIFRoZSB0YWJsZSBkaXJlY3Rpb24gZGV0ZXJtaW5lcyB0
aGUgcm93IGRpcmVjdGlvbi4gSW4gbWl4ZWQgZGlyZWN0aW9uYWxpdHksIHdlIGNhbm5vdCBndWFy
YW50ZWUgdGhhdAorICAgIC8vIHdlIGhhdmUgYSBjb21tb24gYm9yZGVyIHdpdGggdGhlIHRhYmxl
ICh0aGluayBhIGx0ciB0YWJsZSB3aXRoIHJ0bCBzdGFydCBjZWxsKS4KKyAgICByZXR1cm4gKGlz
U3RhcnRDb2x1bW4gJiYgaGFzU2FtZURpcmVjdGlvbkFzVGFibGUpIHx8IChpc0VuZENvbHVtbiAm
JiAhaGFzU2FtZURpcmVjdGlvbkFzVGFibGUpOworfQorCitib29sIFJlbmRlclRhYmxlQ2VsbDo6
aGFzRW5kQm9yZGVyQWRqb2luaW5nVGFibGUoKSBjb25zdAoreworICAgIGJvb2wgaXNTdGFydENv
bHVtbiA9ICFjb2woKTsKKyAgICBib29sIGlzRW5kQ29sdW1uID0gdGFibGUoKS0+Y29sVG9FZmZD
b2woY29sKCkgKyBjb2xTcGFuKCkgLSAxKSA9PSB0YWJsZSgpLT5udW1FZmZDb2xzKCkgLSAxOwor
ICAgIGJvb2wgaGFzU2FtZURpcmVjdGlvbkFzVGFibGUgPSBoYXNTYW1lRGlyZWN0aW9uQXModGFi
bGUoKSk7CisKKyAgICAvLyBUaGUgdGFibGUgZGlyZWN0aW9uIGRldGVybWluZXMgdGhlIHJvdyBk
aXJlY3Rpb24uIEluIG1peGVkIGRpcmVjdGlvbmFsaXR5LCB3ZSBjYW5ub3QgZ3VhcmFudGVlIHRo
YXQKKyAgICAvLyB3ZSBoYXZlIGEgY29tbW9uIGJvcmRlciB3aXRoIHRoZSB0YWJsZSAodGhpbmsg
YSBsdHIgdGFibGUgd2l0aCBsdHIgZW5kIGNlbGwpLgorICAgIHJldHVybiAoaXNTdGFydENvbHVt
biAmJiAhaGFzU2FtZURpcmVjdGlvbkFzVGFibGUpIHx8IChpc0VuZENvbHVtbiAmJiBoYXNTYW1l
RGlyZWN0aW9uQXNUYWJsZSk7Cit9CisKIENvbGxhcHNlZEJvcmRlclZhbHVlIFJlbmRlclRhYmxl
Q2VsbDo6Y29sbGFwc2VkU3RhcnRCb3JkZXIoSW5jbHVkZUJvcmRlckNvbG9yT3JOb3QgaW5jbHVk
ZUNvbG9yKSBjb25zdAogewogICAgIENvbGxhcHNlZEJvcmRlclZhbHVlIHJlc3VsdCA9IGNvbXB1
dGVDb2xsYXBzZWRTdGFydEJvcmRlcihpbmNsdWRlQ29sb3IpOwpAQCAtNDg2LDcgKzUwOCwxMCBA
QCBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBSZW5kZXJUYWJsZUNlbGw6OmNvbXB1dGVDb2xsYXBzZWRT
dGFydEJvcmRlcihJbmNsdWRlQm9yZGVyQwogICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIo
Y2VsbEJlZm9yZUFkam9pbmluZ0JvcmRlciwgcmVzdWx0KTsKICAgICAgICAgaWYgKCFyZXN1bHQu
ZXhpc3RzKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0gZWxzZSB7CisgICAg
fQorCisgICAgYm9vbCBzdGFydEJvcmRlckFkam9pbnNUYWJsZSA9IGhhc1N0YXJ0Qm9yZGVyQWRq
b2luaW5nVGFibGUoKTsKKyAgICBpZiAoc3RhcnRCb3JkZXJBZGpvaW5zVGFibGUpIHsKICAgICAg
ICAgLy8gKDMpIE91ciByb3cncyBzdGFydCBib3JkZXIuCiAgICAgICAgIHJlc3VsdCA9IGNob29z
ZUJvcmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKHJvdygpLT5ib3JkZXJBZGpvaW5p
bmdTdGFydENlbGwodGhpcyksIGluY2x1ZGVDb2xvciA/IHBhcmVudCgpLT5zdHlsZSgpLT52aXNp
dGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJST1cpKTsK
ICAgICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCkBAIC01NDUsNyArNTcwLDkgQEAgQ29sbGFw
c2VkQm9yZGVyVmFsdWUgUmVuZGVyVGFibGVDZWxsOjpjb21wdXRlQ29sbGFwc2VkU3RhcnRCb3Jk
ZXIoSW5jbHVkZUJvcmRlckMKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgeworICAgIH0KKworICAgIGlmIChzdGFydEJvcmRlckFkam9pbnNU
YWJsZSkgewogICAgICAgICAvLyAoNykgVGhlIHRhYmxlJ3Mgc3RhcnQgYm9yZGVyLgogICAgICAg
ICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZSh0YWJs
ZS0+dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwodGhpcyksIGluY2x1ZGVDb2xvciA/IHRh
YmxlLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6
IENvbG9yKCksIEJUQUJMRSkpOwogICAgICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKQEAgLTU4
NCw3ICs2MTEsMTAgQEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUgUmVuZGVyVGFibGVDZWxsOjpjb21w
dXRlQ29sbGFwc2VkRW5kQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2wKICAgICAgICAgICAgIGlmICgh
cmVzdWx0LmV4aXN0cygpKQogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
IH0KLSAgICB9IGVsc2UgeworICAgIH0KKworICAgIGJvb2wgZW5kQm9yZGVyQWRqb2luc1RhYmxl
ID0gaGFzRW5kQm9yZGVyQWRqb2luaW5nVGFibGUoKTsKKyAgICBpZiAoZW5kQm9yZGVyQWRqb2lu
c1RhYmxlKSB7CiAgICAgICAgIC8vICgzKSBPdXIgcm93J3MgZW5kIGJvcmRlci4KICAgICAgICAg
cmVzdWx0ID0gY2hvb3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFwc2VkQm9yZGVyVmFsdWUocm93KCkt
PmJvcmRlckFkam9pbmluZ0VuZENlbGwodGhpcyksIGluY2x1ZGVDb2xvciA/IHBhcmVudCgpLT5z
dHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoZW5kQ29sb3JQcm9wZXJ0eSkgOiBDb2xvcigp
LCBCUk9XKSk7CiAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygpKQpAQCAtNjQyLDcgKzY3Miw5
IEBAIENvbGxhcHNlZEJvcmRlclZhbHVlIFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNl
ZEVuZEJvcmRlcihJbmNsdWRlQm9yZGVyQ29sCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKKyAgICB9CisKKyAgICBpZiAoZW5kQm9yZGVy
QWRqb2luc1RhYmxlKSB7CiAgICAgICAgIC8vICg3KSBUaGUgdGFibGUncyBlbmQgYm9yZGVyLgog
ICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1
ZSh0YWJsZS0+dGFibGVFbmRCb3JkZXJBZGpvaW5pbmdDZWxsKHRoaXMpLCBpbmNsdWRlQ29sb3Ig
PyB0YWJsZS0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKGVuZENvbG9yUHJvcGVydHkp
IDogQ29sb3IoKSwgQlRBQkxFKSk7CiAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCmluZGV4IGYyOTAzYTM0NzQ3
OGU1NTAzYTY4Y2U3MjczMWZkNzE1MTJiNzA5MTEuLjg3ZTZkNTkxYzIzN2M1ZTU4MjM1MjA5OTk2
YzdkYWExZjc2Yjg0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgLy8gb24gYWxsIHRhYmxlIHBh
cnRzIGFuZCB3cml0aW5nLW1vZGUgb24gY2VsbHMuCiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0
eWxlRm9yQ2VsbEZsb3coKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHNlY3Rpb24oKS0+
c3R5bGUoKTsKKyAgICAgICAgcmV0dXJuIHJvdygpLT5zdHlsZSgpOwogICAgIH0KIAogICAgIGNv
bnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5pbmdUYWJsZVN0YXJ0KCkgY29uc3QKQEAgLTI0
MCw2ICsyNDAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW50cmluc2ljUGFkZGluZ0FmdGVy
KGludCBwKSB7IG1faW50cmluc2ljUGFkZGluZ0FmdGVyID0gcDsgfQogICAgIHZvaWQgc2V0SW50
cmluc2ljUGFkZGluZyhpbnQgYmVmb3JlLCBpbnQgYWZ0ZXIpIHsgc2V0SW50cmluc2ljUGFkZGlu
Z0JlZm9yZShiZWZvcmUpOyBzZXRJbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoYWZ0ZXIpOyB9CiAKKyAg
ICBib29sIGhhc1N0YXJ0Qm9yZGVyQWRqb2luaW5nVGFibGUoKSBjb25zdDsKKyAgICBib29sIGhh
c0VuZEJvcmRlckFkam9pbmluZ1RhYmxlKCkgY29uc3Q7CisKICAgICBDb2xsYXBzZWRCb3JkZXJW
YWx1ZSBjb2xsYXBzZWRTdGFydEJvcmRlcihJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCA9IEluY2x1
ZGVCb3JkZXJDb2xvcikgY29uc3Q7CiAgICAgQ29sbGFwc2VkQm9yZGVyVmFsdWUgY29sbGFwc2Vk
RW5kQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2xvck9yTm90ID0gSW5jbHVkZUJvcmRlckNvbG9yKSBj
b25zdDsKICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjb2xsYXBzZWRCZWZvcmVCb3JkZXIoSW5j
bHVkZUJvcmRlckNvbG9yT3JOb3QgPSBJbmNsdWRlQm9yZGVyQ29sb3IpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKaW5kZXggYzNhYWY4NTg2MmY4
ZjhhYTJkNzRhNmY3YWZkNDVkY2M1YWFkYjY0Ny4uZjNjNDYyZTEzMWVlZmI4MGQwZTRmM2Y1ODk4
MDNlMWI3MmFkMjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVS
b3cuY3BwCkBAIC04NCwxNCArODQsMTQgQEAgdm9pZCBSZW5kZXJUYWJsZVJvdzo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGQKIAogY29u
c3QgQm9yZGVyVmFsdWUmIFJlbmRlclRhYmxlUm93Ojpib3JkZXJBZGpvaW5pbmdTdGFydENlbGwo
Y29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogewotICAgIEFTU0VSVF9VTlVTRUQo
Y2VsbCwgIXRhYmxlKCktPmNlbGxCZWZvcmUoY2VsbCkpOworICAgIEFTU0VSVF9VTlVTRUQoY2Vs
bCwgY2VsbC0+aXNGaXJzdE9yTGFzdENlbGxJblJvdygpKTsKICAgICAvLyBGSVhNRTogaHR0cHM6
Ly93ZWJraXQub3JnL2IvNzkyNzIgLSBBZGQgc3VwcG9ydCBmb3IgbWl4ZWQgZGlyZWN0aW9uYWxp
dHkgYXQgdGhlIGNlbGwgbGV2ZWwuCiAgICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlclN0YXJ0KCk7
CiB9CiAKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5n
RW5kQ2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwqIGNlbGwpIGNvbnN0CiB7Ci0gICAgQVNTRVJU
X1VOVVNFRChjZWxsLCAhdGFibGUoKS0+Y2VsbEFmdGVyKGNlbGwpKTsKKyAgICBBU1NFUlRfVU5V
U0VEKGNlbGwsIGNlbGwtPmlzRmlyc3RPckxhc3RDZWxsSW5Sb3coKSk7CiAgICAgLy8gRklYTUU6
IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzc5MjcyIC0gQWRkIHN1cHBvcnQgZm9yIG1peGVkIGRpcmVj
dGlvbmFsaXR5IGF0IHRoZSBjZWxsIGxldmVsLgogICAgIHJldHVybiBzdHlsZSgpLT5ib3JkZXJF
bmQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5jcHAKaW5kZXggMWQ2MjhmZTU5NGM2ODFmNzFjMTIwMTRhZWFmOWQxOGFlNWU4OGNlOS4uYzg0
NTJhNDdjOWJjYjQ3NTY0NGM3YmZkOGU2NDc0N2E5NGM0MTFiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTk4Nyw2ICs5ODcsNyBA
QCBMYXlvdXRSZWN0IFJlbmRlclRhYmxlU2VjdGlvbjo6bG9naWNhbFJlY3RGb3JXcml0aW5nTW9k
ZUFuZERpcmVjdGlvbihjb25zdCBMYXlvdQogICAgICAgICB0YWJsZUFsaWduZWRSZWN0ID0gdGFi
bGVBbGlnbmVkUmVjdC50cmFuc3Bvc2VkUmVjdCgpOwogCiAgICAgY29uc3QgVmVjdG9yPGludD4m
IGNvbHVtblBvcyA9IHRhYmxlKCktPmNvbHVtblBvc2l0aW9ucygpOworICAgIC8vIEZJWE1FOiBU
aGUgdGFibGUncyBkaXJlY3Rpb24gc2hvdWxkIGRldGVybWluZSBvdXIgcm93J3MgZGlyZWN0aW9u
LCBub3QgdGhlIHNlY3Rpb24ncyAoc2VlIGJ1ZyA5NjY5MSkuCiAgICAgaWYgKCFzdHlsZSgpLT5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgIHRhYmxlQWxpZ25lZFJlY3Quc2V0WChj
b2x1bW5Qb3NbY29sdW1uUG9zLnNpemUoKSAtIDFdIC0gdGFibGVBbGlnbmVkUmVjdC5tYXhYKCkp
OwogCkBAIC0xMjY2LDE2ICsxMjY3LDE0IEBAIHVuc2lnbmVkIFJlbmRlclRhYmxlU2VjdGlvbjo6
bnVtQ29sdW1ucygpIGNvbnN0CiAKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVNlY3Rp
b246OmJvcmRlckFkam9pbmluZ1N0YXJ0Q2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwqIGNlbGwp
IGNvbnN0CiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjZWxsLCAhdGFibGUoKS0+Y2VsbEJlZm9yZShj
ZWxsKSk7Ci0gICAgLy8gRklYTUU6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzc5MjcyIC0gQWRkIHN1
cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRoZSBjZWxsIGxldmVsLgotICAgIHJl
dHVybiBzdHlsZSgpLT5ib3JkZXJTdGFydCgpOworICAgIEFTU0VSVChjZWxsLT5pc0ZpcnN0T3JM
YXN0Q2VsbEluUm93KCkpOworICAgIHJldHVybiBoYXNTYW1lRGlyZWN0aW9uQXMoY2VsbCkgPyBz
dHlsZSgpLT5ib3JkZXJTdGFydCgpIDogc3R5bGUoKS0+Ym9yZGVyRW5kKCk7CiB9CiAKIGNvbnN0
IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ0VuZENlbGwo
Y29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogewotICAgIEFTU0VSVF9VTlVTRUQo
Y2VsbCwgIXRhYmxlKCktPmNlbGxBZnRlcihjZWxsKSk7Ci0gICAgLy8gRklYTUU6IGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzc5MjcyIC0gQWRkIHN1cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5
IGF0IHRoZSBjZWxsIGxldmVsLgotICAgIHJldHVybiBzdHlsZSgpLT5ib3JkZXJFbmQoKTsKKyAg
ICBBU1NFUlQoY2VsbC0+aXNGaXJzdE9yTGFzdENlbGxJblJvdygpKTsKKyAgICByZXR1cm4gaGFz
U2FtZURpcmVjdGlvbkFzKGNlbGwpID8gc3R5bGUoKS0+Ym9yZGVyRW5kKCkgOiBzdHlsZSgpLT5i
b3JkZXJTdGFydCgpOwogfQogCiBjb25zdCBSZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlU2Vj
dGlvbjo6Zmlyc3RSb3dDZWxsQWRqb2luaW5nVGFibGVTdGFydCgpIGNvbnN0CkBAIC0xNDI5LDcg
KzE0MjgsOCBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6c2V0TG9naWNhbFBvc2l0aW9uRm9y
Q2VsbChSZW5kZXJUYWJsZUNlbGwqIGNlbGwsIHVuc2lnbgogICAgIExheW91dFBvaW50IGNlbGxM
b2NhdGlvbigwLCBtX3Jvd1Bvc1tjZWxsLT5yb3dJbmRleCgpXSk7CiAgICAgaW50IGhvcml6b250
YWxCb3JkZXJTcGFjaW5nID0gdGFibGUoKS0+aEJvcmRlclNwYWNpbmcoKTsKIAotICAgIGlmICgh
Y2VsbC0+c3R5bGVGb3JDZWxsRmxvdygpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAg
Ly8gRklYTUU6IFRoZSB0YWJsZSdzIGRpcmVjdGlvbiBzaG91bGQgZGV0ZXJtaW5lIG91ciByb3cn
cyBkaXJlY3Rpb24sIG5vdCB0aGUgc2VjdGlvbidzIChzZWUgYnVnIDk2NjkxKS4KKyAgICBpZiAo
IXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgY2VsbExvY2F0aW9u
LnNldFgodGFibGUoKS0+Y29sdW1uUG9zaXRpb25zKClbdGFibGUoKS0+bnVtRWZmQ29scygpXSAt
IHRhYmxlKCktPmNvbHVtblBvc2l0aW9ucygpW3RhYmxlKCktPmNvbFRvRWZmQ29sKGNlbGwtPmNv
bCgpICsgY2VsbC0+Y29sU3BhbigpKV0gKyBob3Jpem9udGFsQm9yZGVyU3BhY2luZyk7CiAgICAg
ZWxzZQogICAgICAgICBjZWxsTG9jYXRpb24uc2V0WCh0YWJsZSgpLT5jb2x1bW5Qb3NpdGlvbnMo
KVtlZmZlY3RpdmVDb2x1bW5dICsgaG9yaXpvbnRhbEJvcmRlclNwYWNpbmcpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbGxhcHNlZEJvcmRlclZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29sbGFwc2VkQm9yZGVyVmFsdWUuaApp
bmRleCA5OGNlZTFiMDdlNzU4YThiMjI4OWY2ZTUwY2Q3NzU3OTQyNDEwZjllLi4xMjAxNzNiZGE3
MGM4NDBjYWUxODdlZjIxMTYxZTc3MDM4NzBiNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvQ29sbGFwc2VkQm9yZGVyVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQ29sbGFwc2VkQm9yZGVyVmFsdWUuaApAQCAtNTEsNyArNTEs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV93aWR0aDsgfQorICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyByZXR1cm4g
bV9zdHlsZSA+IEJISURERU4gPyBtX3dpZHRoIDogMDsgfQogICAgIEVCb3JkZXJTdHlsZSBzdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCb3JkZXJTdHlsZT4obV9zdHlsZSk7IH0K
ICAgICBib29sIGV4aXN0cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlY2VkZW5jZSAhPSBCT0ZGOyB9
CiAgICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcihtX2NvbG9yLCBtX2NvbG9y
SXNWYWxpZCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxNzg5NzYyNzg2NmM3MmJlYzY0OGViNTA4NjhiN2VhYzdjYzFh
MzQ2Li4wY2JjNGYxOGMxODI1MTBmOWFkNGIwYTM1MGJmZDA3MzQ3MTdkMzVkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTItMTEtMDIgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRoZSBjb2xsYXBzaW5nIGJvcmRlciBjb2RlIHRvIGhh
bmRsZSBtaXhlZCBkaXJlY3Rpb25hbGl0eSBhdCB0aGUgcm93IGxldmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEwNjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvdGFibGUtbHRyLXJvd3MtbWl4ZWQtZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvdGFibGUtbHRyLXJv
d3MtbWl4ZWQtZGlyZWN0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGFibGUvYm9y
ZGVyLWNvbGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy90YWJsZS1y
dGwtcm93LW1peGVkLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wMiAgS2V2aW4g
RWxsaXMgIDxrZXZlcnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcnBvdmUgc2NvcmluZyBp
biB0b3VjaCBhZGp1c3RtZW50IHRvIGFkZHJlc3MgYmlhcyB0b3dhcmRzIHNtYWxsZXIgdGFyZ2V0
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcv
dGFibGUtbHRyLXJvd3MtbWl4ZWQtZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dzLW1peGVkLWRpcmVj
dGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkOTVjZmExYjVmNmRlZDgyNWZiMDgxZTZi
ZGY5NmFjYmJlNmJiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0ci1yb3dzLW1peGVkLWRpcmVjdGlvbi1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK3RhYmxlIHsKKyAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOworICAgIGJv
cmRlcjogM3B4IHNvbGlkIGdyZWVuOworfQorCit0ZCB7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICB3aWR0aDogMTAwcHg7Cit9Cis8L3N0eWxlPgorPGhlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9y
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEwNjAi
PjEwMTA2MDwvYT46IEZpeCB0aGUgY29sbGFwc2luZyBib3JkZXIgY29kZSB0byBoYW5kbGUgbWl4
ZWQgZGlyZWN0aW9uYWxpdHkgYXQgdGhlIHJvdyBsZXZlbDwvcD4KKzxwPlRoaXMgdGVzdCBjaGVj
a3MgdGhhdCBhIHRhYmxlIHdpdGggZGlyPSJsdHIiIGFuZCBtaXhlZCBkaXJlY3Rpb25hbGl0eSBv
biB0aGUgcm93IHdvcmtzIGFzIGV4cGVjdGVkLjwvcD4KKzxwPlRoZSB0YWJsZSBiZWxvdyBzaG91
bGQgaGF2ZSBhIDNweCBncmVlbiBvdXRlciBib3JkZXIuPC9wPgorPHRhYmxlPgorICAgIDx0Ym9k
eT4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8dGQ+
PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPjwvdGQ+
CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAg
ICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4K
KyAgICA8L3Rib2R5PgorPC90YWJsZT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL3RhYmxlLWx0
ci1yb3dzLW1peGVkLWRpcmVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy90YWJsZS1sdHItcm93cy1taXhlZC1kaXJlY3Rpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNTgyZDczOTJjMWQxMTQxYjA1ZTYzMmIzZjdiYzhkYzFmMTRlNGFlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy90YWJsZS1s
dHItcm93cy1taXhlZC1kaXJlY3Rpb24uaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cit0YWJsZSB7CisgICAgYm9yZGVyLWNvbGxh
cHNlOiBjb2xsYXBzZTsKKyAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHJlZDsKKyAgICBib3Jk
ZXItcmlnaHQ6IDJweCBzb2xpZCByZWQ7CisgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIGdy
ZWVuOworICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCBncmVlbjsKK30KKworLmxlZnRHcmVlbkJv
cmRlciB7CisgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCBncmVlbjsKK30KKworLnJpZ2h0R3Jl
ZW5Cb3JkZXIgeworICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkIGdyZWVuOworfQorCit0ZCB7
CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMTAwcHg7Cit9Cis8L3N0eWxlPgorPGhl
YWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDEwNjAiPjEwMTA2MDwvYT46IEZpeCB0aGUgY29sbGFwc2luZyBi
b3JkZXIgY29kZSB0byBoYW5kbGUgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgYXQgdGhlIHJvdyBsZXZl
bDwvcD4KKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIHRhYmxlIHdpdGggZGlyPSJsdHIiIGFu
ZCBtaXhlZCBkaXJlY3Rpb25hbGl0eSBvbiB0aGUgcm93IHdvcmtzIGFzIGV4cGVjdGVkLjwvcD4K
KzxwPlRoZSB0YWJsZSBiZWxvdyBzaG91bGQgaGF2ZSBhIDNweCBncmVlbiBvdXRlciBib3JkZXIu
PC9wPgorPHRhYmxlPgorICAgIDx0Ym9keSBjbGFzcz0icmlnaHRHcmVlbkJvcmRlciI+CisgICAg
ICAgIDx0ciBkaXI9InJ0bCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImxlZnRHcmVlbkJvcmRl
ciI+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8
dHIgY2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAg
ICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAg
ICA8dGQgY2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3Rk
PgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC90YWJsZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNv
bGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhl
ZC1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2YyZWZhNTM0ZDAyNmM1NWMy
OTBlMGU2MWU2ZmY0MjlkZDA4ODVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy90YWJsZS1ydGwtcm93LW1peGVkLWRpcmVjdGlvbi1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK3RhYmxlIHsKKyAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwor
ICAgIGJvcmRlcjogM3B4IHNvbGlkIGdyZWVuOworfQorCit0ZCB7CisgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICB3aWR0aDogMTAwcHg7Cit9Cis8L3N0eWxlPgorPGhlYWQ+Cis8Ym9keT4KKzxwPlRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDEwNjAiPjEwMTA2MDwvYT46IEZpeCB0aGUgY29sbGFwc2luZyBib3JkZXIgY29kZSB0byBoYW5k
bGUgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgYXQgdGhlIHJvdyBsZXZlbDwvcD4KKzxwPlRoaXMgdGVz
dCBjaGVja3MgdGhhdCBhIHRhYmxlIHdpdGggZGlyPSJydGwiIGFuZCBtaXhlZCBkaXJlY3Rpb25h
bGl0eSBvbiB0aGUgcm93IHdvcmtzIGFzIGV4cGVjdGVkLjwvcD4KKzxwPlRoZSB0YWJsZSBiZWxv
dyBzaG91bGQgaGF2ZSBhIDNweCBncmVlbiBvdXRlciBib3JkZXIuPC9wPgorPHRhYmxlPgorICAg
IDx0Ym9keT4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAg
ICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRk
PjwvdGQ+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRy
PgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAg
PC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8
dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorPC90YWJsZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxh
cHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvdGFibGUtcnRsLXJvdy1taXhlZC1kaXJlY3Rpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45YzJmNGFkZjVlZWQyN2UxOWY4MTI3ZWZlZjhmZTg5NzdhMTI4OTg2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFw
c2luZy90YWJsZS1ydGwtcm93LW1peGVkLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsNTIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3RhYmxlIHsKKyAgICBi
b3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOworICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgcmVk
OworICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHJlZDsKKyAgICBib3JkZXItYm90dG9tOiAz
cHggc29saWQgZ3JlZW47CisgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIGdyZWVuOworfQorCisu
bGVmdEdyZWVuQm9yZGVyIHsKKyAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIGdyZWVuOworfQor
CisucmlnaHRHcmVlbkJvcmRlciB7CisgICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgZ3JlZW47
Cit9CisKK3RkIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAxMDBweDsKK30KKzwv
c3R5bGU+Cis8aGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTA2MCI+MTAxMDYwPC9hPjogRml4IHRoZSBj
b2xsYXBzaW5nIGJvcmRlciBjb2RlIHRvIGhhbmRsZSBtaXhlZCBkaXJlY3Rpb25hbGl0eSBhdCB0
aGUgcm93IGxldmVsPC9wPgorPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGEgdGFibGUgd2l0aCBk
aXI9InJ0bCIgYW5kIG1peGVkIGRpcmVjdGlvbmFsaXR5IG9uIHRoZSByb3cgd29ya3MgYXMgZXhw
ZWN0ZWQuPC9wPgorPHA+VGhlIHRhYmxlIGJlbG93IHNob3VsZCBoYXZlIGEgM3B4IGdyZWVuIG91
dGVyIGJvcmRlci48L3A+Cis8dGFibGUgZGlyPSJydGwiPgorICAgIDx0Ym9keSBjbGFzcz0icmln
aHRHcmVlbkJvcmRlciI+CisgICAgICAgIDx0ciBkaXI9Imx0ciI+CisgICAgICAgICAgICA8dGQ+
PC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0ibGVmdEdyZWVuQm9yZGVyIj48L3RkPgorICAg
ICAgICA8L3RyPgorICAgICAgICA8dHIgZGlyPSJydGwiPgorICAgICAgICAgICAgPHRkPjwvdGQ+
CisgICAgICAgICAgICA8dGQgY2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+PC90ZD4KKyAgICAgICAg
PC90cj4KKyAgICAgICAgPHRyIGRpcj0ibHRyIiBjbGFzcz0ibGVmdEdyZWVuQm9yZGVyIj4KKyAg
ICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+
CisgICAgICAgIDx0ciBkaXI9InJ0bCIgY2xhc3M9ImxlZnRHcmVlbkJvcmRlciI+CisgICAgICAg
ICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAg
IDwvdGJvZHk+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>