<?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>178001</bug_id>
          
          <creation_ts>2017-10-06 01:37:03 -0700</creation_ts>
          <short_desc>Focus navigation order in slot fallback contents is wrong</short_desc>
          <delta_ts>2018-08-22 12:59:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>Safari 11</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>elkurin</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>elkurin</cc>
    
    <cc>kochi</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1357515</commentid>
    <comment_count>0</comment_count>
    <who name="">elkurin</who>
    <bug_when>2017-10-06 01:37:03 -0700</bug_when>
    <thetext>By running &quot;focus-navigation-across-slots.html&quot; test in WebKit Layout Tests, it seems that the navigation order is not following the spec.
https://w3c.github.io/webcomponents/spec/shadow/#sequential-focus-navigation

According to the spec 5.3 Step 2, in focus navigation, the subtree whose root is the slot element which no element is assigned to is considered as one of the focus navigation scope. Elements inside slot fallback contents scope should be navigated sequential.
In this test, the order should be 14-&gt;17-&gt;15-&gt;13-&gt;16.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447182</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-01 22:41:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/42842997&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452516</commentid>
    <comment_count>2</comment_count>
      <attachid>347762</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 20:47:05 -0700</bug_when>
    <thetext>Created attachment 347762
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452521</commentid>
    <comment_count>3</comment_count>
      <attachid>347765</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 21:37:28 -0700</bug_when>
    <thetext>Created attachment 347765
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452570</commentid>
    <comment_count>4</comment_count>
      <attachid>347765</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-22 03:49:28 -0700</bug_when>
    <thetext>Comment on attachment 347765
Fixes the bug

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

&gt; Source/WebCore/page/FocusController.cpp:283
&gt; +        auto slot = makeRef(downcast&lt;HTMLSlotElement&gt;(element));
&gt; +        return FocusNavigationScope(slot, slot-&gt;assignedNodes() ? SlotKind::Assigned : SlotKind::Fallback);

makeRef here look unnecessary. FocusNavigationScope doesn&apos;t ref the slot so someone better be keeping it alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452758</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-22 12:56:33 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #4)
&gt; Comment on attachment 347765 [details]
&gt; Fixes the bug
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=347765&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FocusController.cpp:283
&gt; &gt; +        auto slot = makeRef(downcast&lt;HTMLSlotElement&gt;(element));
&gt; &gt; +        return FocusNavigationScope(slot, slot-&gt;assignedNodes() ? SlotKind::Assigned : SlotKind::Fallback);
&gt; 
&gt; makeRef here look unnecessary. FocusNavigationScope doesn&apos;t ref the slot so
&gt; someone better be keeping it alive.

I&apos;ll revert this change. I was trying to adopt Ref/RefPtr everywhere but decided to do it in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452759</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-22 12:59:26 -0700</bug_when>
    <thetext>Committed r235191: &lt;https://trac.webkit.org/changeset/235191&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347762</attachid>
            <date>2018-08-21 20:47:05 -0700</date>
            <delta_ts>2018-08-21 21:37:26 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip178001.patch</filename>
            <type>text/plain</type>
            <size>5556</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDIz
NTE1MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQAogewogICAgIGlmIChlbGVtZW50LnNoYWRvd1Jvb3Qo
KSAmJiAhaGFzQ3VzdG9tRm9jdXNMb2dpYyhlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgaWYgKGlzPEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTFNs
b3RFbGVtZW50PihlbGVtZW50KS5hc3NpZ25lZE5vZGVzKCkpIHsKKyAgICBpZiAoaXM8SFRNTFNs
b3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICBTaGFkb3dSb290KiByb290ID0gZWxlbWVu
dC5jb250YWluaW5nU2hhZG93Um9vdCgpOwogICAgICAgICBpZiAocm9vdCAmJiByb290LT5ob3N0
KCkgJiYgIWhhc0N1c3RvbUZvY3VzTG9naWMoKnJvb3QtPmhvc3QoKSkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTEzNSw3ICsxMzUsMTIgQEAKICAgICBpZiAoVU5MSUtFTFkobV9zbG90
RWxlbWVudCAmJiBtX3Nsb3RFbGVtZW50ID09IG5vZGUuYXNzaWduZWRTbG90KCkpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBub2RlLnBhcmVudE5vZGUoKTsKKyAgICBh
dXRvKiBwYXJlbnROb2RlID0gbm9kZS5wYXJlbnROb2RlKCk7CisgICAgaWYgKCFwYXJlbnROb2Rl
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoVU5MSUtFTFkoaXM8SFRNTFNsb3RF
bGVtZW50PigqcGFyZW50Tm9kZSkpICYmICFkb3duY2FzdDxIVE1MU2xvdEVsZW1lbnQ+KCpwYXJl
bnROb2RlKS5hc3NpZ25lZE5vZGVzKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBwYXJlbnROb2RlOwogfQogCiBOb2RlKiBGb2N1c05hdmlnYXRpb25TY29wZTo6bmV4dFNp
YmxpbmdJblNjb3BlKGNvbnN0IE5vZGUmIG5vZGUpIGNvbnN0CkBAIC0xNjYsNyArMTcxLDggQEAK
IHsKICAgICBpZiAoVU5MSUtFTFkobV9zbG90RWxlbWVudCkpIHsKICAgICAgICAgYXV0byogYXNz
aWduZU5vZGVzID0gbV9zbG90RWxlbWVudC0+YXNzaWduZWROb2RlcygpOwotICAgICAgICBBU1NF
UlQoYXNzaWduZU5vZGVzKTsKKyAgICAgICAgaWYgKCFhc3NpZ25lTm9kZXMpCisgICAgICAgICAg
ICByZXR1cm4gbV9zbG90RWxlbWVudC0+Zmlyc3RDaGlsZCgpOwogICAgICAgICByZXR1cm4gYXNz
aWduZU5vZGVzLT5maXJzdCgpOwogICAgIH0KICAgICBBU1NFUlQobV9yb290VHJlZVNjb3BlKTsK
QEAgLTE3Nyw3ICsxODMsOCBAQAogewogICAgIGlmIChVTkxJS0VMWShtX3Nsb3RFbGVtZW50KSkg
ewogICAgICAgICBhdXRvKiBhc3NpZ25lTm9kZXMgPSBtX3Nsb3RFbGVtZW50LT5hc3NpZ25lZE5v
ZGVzKCk7Ci0gICAgICAgIEFTU0VSVChhc3NpZ25lTm9kZXMpOworICAgICAgICBpZiAoIWFzc2ln
bmVOb2RlcykKKyAgICAgICAgICAgIHJldHVybiBtX3Nsb3RFbGVtZW50LT5sYXN0Q2hpbGQoKTsK
ICAgICAgICAgcmV0dXJuIGFzc2lnbmVOb2Rlcy0+bGFzdCgpOwogICAgIH0KICAgICBBU1NFUlQo
bV9yb290VHJlZVNjb3BlKTsKQEAgLTIzNSw4ICsyNDIsOSBAQAogRm9jdXNOYXZpZ2F0aW9uU2Nv
cGUgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2YoTm9kZSYgc3RhcnRpbmdOb2RlKQogewog
ICAgIEFTU0VSVChzdGFydGluZ05vZGUuaXNJblRyZWVTY29wZSgpKTsKLSAgICBOb2RlKiByb290
ID0gbnVsbHB0cjsKLSAgICBmb3IgKE5vZGUqIGN1cnJlbnROb2RlID0gJnN0YXJ0aW5nTm9kZTsg
Y3VycmVudE5vZGU7IGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudE5vZGUoKSkgewor
ICAgIFJlZlB0cjxOb2RlPiByb290ID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8Tm9kZT4gcGFyZW50
Tm9kZSA9IG51bGxwdHI7CisgICAgZm9yIChSZWZQdHI8Tm9kZT4gY3VycmVudE5vZGUgPSAmc3Rh
cnRpbmdOb2RlOyBjdXJyZW50Tm9kZTsgY3VycmVudE5vZGUgPSBwYXJlbnROb2RlKSB7CiAgICAg
ICAgIHJvb3QgPSBjdXJyZW50Tm9kZTsKICAgICAgICAgaWYgKEhUTUxTbG90RWxlbWVudCogc2xv
dCA9IGN1cnJlbnROb2RlLT5hc3NpZ25lZFNsb3QoKSkgewogICAgICAgICAgICAgaWYgKGlzRm9j
dXNTY29wZU93bmVyKCpzbG90KSkKQEAgLTI0NCw2ICsyNTIsMTEgQEAKICAgICAgICAgfQogICAg
ICAgICBpZiAoaXM8U2hhZG93Um9vdD4oY3VycmVudE5vZGUpKQogICAgICAgICAgICAgcmV0dXJu
IEZvY3VzTmF2aWdhdGlvblNjb3BlKGRvd25jYXN0PFNoYWRvd1Jvb3Q+KCpjdXJyZW50Tm9kZSkp
OworICAgICAgICBwYXJlbnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAg
ICAgLy8gVGhlIHNjb3BlIG9mIGEgZmFsbGJhY2sgY29udGVudCBvZiBhIEhUTUxTbG90RWxlbWVu
dCBpcyB0aGUgc2xvdCBlbGVtZW50CisgICAgICAgIC8vIGJ1dCB0aGUgc2NvcGUgb2YgYSBIVE1M
U2xvdEVsZW1lbnQgaXMgaXRzIHBhcmVudCBzY29wZS4KKyAgICAgICAgaWYgKHBhcmVudE5vZGUg
JiYgaXM8SFRNTFNsb3RFbGVtZW50PihwYXJlbnROb2RlKSAmJiAhZG93bmNhc3Q8SFRNTFNsb3RF
bGVtZW50PigqcGFyZW50Tm9kZSkuYXNzaWduZWROb2RlcygpKQorICAgICAgICAgICAgcmV0dXJu
IEZvY3VzTmF2aWdhdGlvblNjb3BlKGRvd25jYXN0PEhUTUxTbG90RWxlbWVudD4oKnBhcmVudE5v
ZGUpKTsKICAgICB9CiAgICAgQVNTRVJUKHJvb3QpOwogICAgIHJldHVybiBGb2N1c05hdmlnYXRp
b25TY29wZShyb290LT50cmVlU2NvcGUoKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vZm9jdXMtbmF2aWdhdGlvbi1hY3Jvc3Mtc2xvdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1uYXZpZ2F0aW9uLWFjcm9z
cy1zbG90cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIzNTE1MykKKysrIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9mb2N1cy1uYXZpZ2F0aW9uLWFjcm9zcy1zbG90cy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTE0LDE1ICsxNCwxNSBAQAogMTAuIENvbnRlbnQgaW4gc2xvdCAy
IHdpdGggdGFiaW5kZXg9MQogMTEuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MQog
MTIuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MAotMTMuIE5vbi1mb2N1c2FibGUg
c2xvdCBmYWxsYmFjayB3aXRoIHRhYmluZGV4PTEKLTE0LiBGb2N1c2FibGUgc2xvdCBlbGVtZW50
LgorMTMuIEZvY3VzYWJsZSBzbG90IGVsZW1lbnQuCisxNC4gRm9jdXNhYmxlIHNsb3QgZmFsbGJh
Y2sgY29udGVudCB3aXRoIHRhYmluZGV4PTAKIDE1LiBTaGFkb3cgY29udGVudCB3aXRoIHRhYmlu
ZGV4PTIKLTE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0wCi0x
Ny4gRm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgY29udGVudCB3aXRoIHRhYmluZGV4PTAKLTE2LiBO
b24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0wCisxNi4gTm9uLWZvY3Vz
YWJsZSBzbG90IGZhbGxiYWNrIHdpdGggdGFiaW5kZXg9MQorMTcuIE5vbi1mb2N1c2FibGUgc2xv
dCBmYWxsYmFjayB3aXRoIHRhYmluZGV4PTAKKzE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJh
Y2sgd2l0aCB0YWJpbmRleD0xCiAxNS4gU2hhZG93IGNvbnRlbnQgd2l0aCB0YWJpbmRleD0yCi0x
NC4gRm9jdXNhYmxlIHNsb3QgZWxlbWVudC4KLTEzLiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJh
Y2sgd2l0aCB0YWJpbmRleD0xCisxNC4gRm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgY29udGVudCB3
aXRoIHRhYmluZGV4PTAKKzEzLiBGb2N1c2FibGUgc2xvdCBlbGVtZW50LgogMTIuIENvbnRlbnQg
aW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MAogMTEuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFi
aW5kZXg9MQogMTAuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLW5hdmlnYXRpb24tYWNyb3NzLXNsb3RzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLW5hdmln
YXRpb24tYWNyb3NzLXNsb3RzLmh0bWwJKHJldmlzaW9uIDIzNTE1MykKKysrIExheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1uYXZpZ2F0aW9uLWFjcm9zcy1zbG90cy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDIsMTMgKzEwMiwxMyBAQAogICAgIHNoYWRvd1dpdGhTbG90RmFsbGJh
Y2suY2xvc2VkU2hhZG93Um9vdC5pbm5lckhUTUwgPSBgCiAgICAgICAgIDxzbG90IG5hbWU9InNs
b3QxIiBvbmZvY3VzPSJsb2codGhpcykiPgogICAgICAgICAgICAgTm9uLWZvY3VzYWJsZSBzbG90
IHNob3VsZCBub3QgYmUgZm9jdXNlZC4KLSAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9IjAiPjE2
LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0wPC9kaXY+Ci0gICAg
ICAgICAgICA8ZGl2IHRhYmluZGV4PSIxIj4xMy4gTm9uLWZvY3VzYWJsZSBzbG90IGZhbGxiYWNr
IHdpdGggdGFiaW5kZXg9MTwvZGl2PgorICAgICAgICAgICAgPGRpdiB0YWJpbmRleD0iMCI+MTcu
IE5vbi1mb2N1c2FibGUgc2xvdCBmYWxsYmFjayB3aXRoIHRhYmluZGV4PTA8L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgdGFiaW5kZXg9IjEiPjE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sg
d2l0aCB0YWJpbmRleD0xPC9kaXY+CiAgICAgICAgIDwvc2xvdD4KICAgICAgICAgPGRpdiB0YWJp
bmRleD0iMiIgb25mb2N1cz0ibG9nKHRoaXMpIj4xNS4gU2hhZG93IGNvbnRlbnQgd2l0aCB0YWJp
bmRleD0yPC9kaXY+CiAgICAgICAgIDxzbG90IG5hbWU9InNsb3QyIiB0YWJpbmRleD0iMSIgc3R5
bGU9ImRpc3BsYXk6YmxvY2s7IiBvbmZvY3VzPSJsb2codGhpcykiPgotICAgICAgICAgICAgMTQu
IEZvY3VzYWJsZSBzbG90IGVsZW1lbnQuCi0gICAgICAgICAgICA8ZGl2IHRhYmluZGV4PSIwIj4x
Ny4gRm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgY29udGVudCB3aXRoIHRhYmluZGV4PTA8L2Rpdj4K
KyAgICAgICAgICAgIDEzLiBGb2N1c2FibGUgc2xvdCBlbGVtZW50LgorICAgICAgICAgICAgPGRp
diB0YWJpbmRleD0iMCI+MTQuIEZvY3VzYWJsZSBzbG90IGZhbGxiYWNrIGNvbnRlbnQgd2l0aCB0
YWJpbmRleD0wPC9kaXY+CiAgICAgICAgIDwvc2xvdD5gOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZpcnN0JykuZm9jdXMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347765</attachid>
            <date>2018-08-21 21:37:28 -0700</date>
            <delta_ts>2018-08-22 03:49:28 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-178001-20180821213727.patch</filename>
            <type>text/plain</type>
            <size>12345</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNTE1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTA4LTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEZvY3VzIG5hdmlnYXRpb24gb3Jk
ZXIgaW4gc2xvdCBmYWxsYmFjayBjb250ZW50cyBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MDAxCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80Mjg0Mjk5Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgYnVnIGhlcmUgaXMgdGhhdCB3aGVuIGEgc2xvdCB1c2VzIGl0cyBmYWxsYmFj
ayBjb250ZW50LCB0aGUgZmFsbGJhY2sgY29udGVudCdzIGZvY3VzIG9yZGVyIGRvZXNuJ3QgZ2V0
CisgICAgICAgIGdyb3VwZWQgYnkgdGhhdCBvZiB0aGUgc2xvdC4gQ29uc2lkZXIgdGhlIGZvbGxv
d2luZyBET00gdHJlZToKKworICAgICAgICAtIFNoYWRvd1Jvb3QKKyAgICAgICAgICAgIC0gZGl2
IHRhYmluZGV4ID0gMgorICAgICAgICAgICAgLSBzbG90IHRhYmluZGV4ID0gMQorICAgICAgICAg
ICAgICAgIC0gc3BhbiB0YWJpbmRleCA9IDMKKworICAgICAgICBJbiB0aGlzIGV4YW1wbGUsIHRo
ZSBzZXF1ZW50aWFsIGZvY3VzIG5hdmlnYXRpb24gc2hvdWxkIGJlIHNsb3QsIHNwYW4sIHRoZW4g
ZGl2LiBFdmVuIHRob3VnaCBzcGFuIGhhcyB0YWJpbmRleAorICAgICAgICBvcmRlciBvZiAzLCB3
aGljaCBpcyBsb3dlciB0aGFuIHRoYXQgb2YgZGl2LCB0aGUgZmFsbGJhY2sgY29udGVudCBvZiB0
aGUgc2xvdCBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlcgorICAgICAgICBiZWZvcmUgdGhlIGZv
Y3VzIG1vdmVzIG91dCBvZiB0aGUgc2xvdCBjb250ZW50LgorCisgICAgICAgIEluIFdlYktpdCwg
dGhpcyBjb25jZXB0IG9mIGdyb3VwaW5nIGVsZW1lbnRzIGZvciB0aGUgc2VxdWVudGlhbCBmb2N1
cyBuYXZpZ2F0aW9uIG9yZGVyaW5nIGlzIGltcGxlbWVuZXRlZAorICAgICAgICBhcyBGb2N1c05h
dmlnYXRpb25TY29wZS4gQm90aCBTaGFkb3dSb290IGFuZCBIVE1MU2xvdEVsZW1lbnQgYXJlIHRy
ZWF0ZWQgYXMgYSBmb2N1cyBzY29wZSBvd25lciBidXQgd2UgaGFkCisgICAgICAgIGEgYnVnIHRo
YXQgYSBzbG90IGVsZW1lbnQgd2hpY2ggdXNlcyBpdHMgZmFsbGJhY2sgY29udGVudCB3YXMgbm90
IHRyZWF0ZWQgYXMgYSBmb2N1cyBzY29wZSBvd25lci4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHJlc3NlcyB0aGUgYnVnIGJ5IHRyZWF0aW5nIGEgc2xvdCB3aWNoIHVzZXMgaXRzIGZhbGxiYWNr
IGNvbnRlbnQgYXMgYSBmb2N1cyBzY29wZSBvd25lci4KKworICAgICAgICBUZXN0OiBmYXN0L3No
YWRvdy1kb20vZm9jdXMtbmF2aWdhdGlvbi1hY3Jvc3Mtc2xvdHMuaHRtbAorCisgICAgICAgICog
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNGb2N1c1Njb3Bl
T3duZXIpOiBUcmVhdCBhIHNsb3QgZWxtZW50IGhzIGEgZm9jdXMgc2NvcGUgb3duZXIgcmVnYXJk
bGVzcyBvZiB3aGV0aGVyIGl0IGhhcyBhc3NpZ25lZAorICAgICAgICBub2RlcyBvciBub3QuCisg
ICAgICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRpb25TY29wZTo6U2xvdEtpbmQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjptX3Nsb3RLaW5kKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c05hdmlnYXRpb25TY29wZTo6cGFyZW50SW5TY29w
ZSBjb25zdCk6IFJldHVybiBudWxsIGlmIGBub2RlYCBpcyBhIGNoaWxkIG9mIHRoZSBzbG90IGVs
ZW1lbnQgZm9yCisgICAgICAgIHdoaWNoIHRoaXMgRm9jdXNOYXZpZ2F0aW9uU2NvcGUgaXMgY3Jl
YXRlZCAoaS5lLiBgbm9kZWAgaXMgc2xvdCdzIGZhbGxiYWNrIGNvbnRlbnQpLgorICAgICAgICAo
V2ViQ29yZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZpcnN0Tm9kZUluU2NvcGUgY29uc3QpOiBS
ZXR1cm4gdGhlIGZpcnN0IGNoaWxkIG5vZGUgd2hlbiB0aGlzCisgICAgICAgIEZvY3VzTmF2aWdh
dGlvblNjb3BlIGlzIGZvciBhIHNsb3QgZWxlbWVudCB1c2luZyBpdHMgZmFsbGJhY2sgY29udGVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpsYXN0Tm9kZUluU2Nv
cGUgY29uc3QpOiBEaXR0byBmb3IgdGhlIGxhc3QgY2hpbGQuCisgICAgICAgIChXZWJDb3JlOjpG
b2N1c05hdmlnYXRpb25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2YpOiBUaGUgc2NvcGUgb2YgYSBjaGls
ZCBvZiBhIHNsb3QgZWxlbWVudCB3aGljaCB1c2VzIGl0cyBmYWxsYmFjayBjb250ZW50CisgICAg
ICAgIGlzIGl0cyBzbG90IGVsZW1lbnQgKGkuZS4gdGhlIGN1cnJlbnQgbm9kZSBpcyBhIGZhbGxi
YWNrIGNvbnRlbnQpLiBXZSBjYW4ndCBzaW1wbHkgY2hlY2sgdGhlIGN1cnJlbnQgbm9kZSBpcwor
ICAgICAgICBhIHNsb3QgZWxlbWVudCB3aGljaCB1c2VzIGEgZmFsbGJhY2sgY29udGVudCBzaW5j
ZSB0aGUgc2NvcGUgb2YgYSBzbG90IGVsZW1lbnQgaXMgdGhlIHBhcmVudCBzY29wZS4gZS5nLiBp
dHMKKyAgICAgICAgdHJlZSBzY29wZSBsaWtlIFNoYWRvd1Jvb3Qgb3IgRG9jdW1lbnQgaW5zaWRl
IHdoaWNoIHRoaXMgc2xvdCBlbGVtZW50IGFwcGVhcnMuCisgICAgICAgIChXZWJDb3JlOjpGb2N1
c05hdmlnYXRpb25TY29wZTo6c2NvcGVPd25lZEJ5U2NvcGVPd25lcik6IENyZWF0ZSB0aGUgYXBw
cm9wcmlhdGUgRm9jdXNOYXZpZ2F0aW9uU2NvcGUgYmFzZWQgb24KKyAgICAgICAgd2hldGhlciB0
aGUgc2xvdCBlbGVtZW50IGhhcyBhc3NpZ25lZCBvciBpdCB1c2VzIGl0cyBmYWxsYmFjayBjb250
ZW50LgorCiAyMDE4LTA4LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIFJlbW92ZSBfV0tBdHRhY2htZW50cyBh
bmQgbm90aWZ5IHRoZSBVSSBjbGllbnQgdXBvbiBtYWluZnJhbWUgbmF2aWdhdGlvbgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjM1MTUzKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0ZvY3VzU2NvcGVPd25lcihj
b24KIHsKICAgICBpZiAoZWxlbWVudC5zaGFkb3dSb290KCkgJiYgIWhhc0N1c3RvbUZvY3VzTG9n
aWMoZWxlbWVudCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChpczxIVE1MU2xvdEVs
ZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCkuYXNz
aWduZWROb2RlcygpKSB7CisgICAgaWYgKGlzPEhUTUxTbG90RWxlbWVudD4oZWxlbWVudCkpIHsK
ICAgICAgICAgU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3Qo
KTsKICAgICAgICAgaWYgKHJvb3QgJiYgcm9vdC0+aG9zdCgpICYmICFoYXNDdXN0b21Gb2N1c0xv
Z2ljKCpyb290LT5ob3N0KCkpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC05Nyw2ICs5
Nyw4IEBAIHB1YmxpYzoKICAgICBOb2RlKiBsYXN0Q2hpbGRJblNjb3BlKGNvbnN0IE5vZGUmKSBj
b25zdDsKIAogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFNsb3RLaW5kIDogdWludDhfdCB7IEFz
c2lnbmVkLCBGYWxsYmFjayB9OworCiAgICAgTm9kZSogZmlyc3RDaGlsZEluU2NvcGUoY29uc3Qg
Tm9kZSYpIGNvbnN0OwogCiAgICAgTm9kZSogcGFyZW50SW5TY29wZShjb25zdCBOb2RlJikgY29u
c3Q7CkBAIC0xMDUsMTEgKzEwNywxMSBAQCBwcml2YXRlOgogICAgIE5vZGUqIHByZXZpb3VzU2li
bGluZ0luU2NvcGUoY29uc3QgTm9kZSYpIGNvbnN0OwogCiAgICAgZXhwbGljaXQgRm9jdXNOYXZp
Z2F0aW9uU2NvcGUoVHJlZVNjb3BlJik7Ci0KLSAgICBleHBsaWNpdCBGb2N1c05hdmlnYXRpb25T
Y29wZShIVE1MU2xvdEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBGb2N1c05hdmlnYXRpb25TY29w
ZShIVE1MU2xvdEVsZW1lbnQmLCBTbG90S2luZCk7CiAKICAgICBUcmVlU2NvcGUqIG1fcm9vdFRy
ZWVTY29wZSB7IG51bGxwdHIgfTsKICAgICBIVE1MU2xvdEVsZW1lbnQqIG1fc2xvdEVsZW1lbnQg
eyBudWxscHRyIH07CisgICAgU2xvdEtpbmQgbV9zbG90S2luZCB7IFNsb3RLaW5kOjpBc3NpZ25l
ZCB9OwogfTsKIAogLy8gRklYTUU6IEZvY3VzIG5hdmlnYXRpb24gc2hvdWxkIHdvcmsgd2l0aCBz
aGFkb3cgdHJlZXMgdGhhdCBoYXZlIHNsb3RzLgpAQCAtMTMyLDggKzEzNCwxNyBAQCBOb2RlKiBG
b2N1c05hdmlnYXRpb25TY29wZTo6cGFyZW50SW5TY29wCiAgICAgaWYgKG1fcm9vdFRyZWVTY29w
ZSAmJiAmbV9yb290VHJlZVNjb3BlLT5yb290Tm9kZSgpID09ICZub2RlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIGlmIChVTkxJS0VMWShtX3Nsb3RFbGVtZW50ICYmIG1fc2xvdEVs
ZW1lbnQgPT0gbm9kZS5hc3NpZ25lZFNsb3QoKSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIGlmIChVTkxJS0VMWShtX3Nsb3RFbGVtZW50KSkgeworICAgICAgICBpZiAobV9zbG90S2lu
ZCA9PSBTbG90S2luZDo6QXNzaWduZWQpIHsKKyAgICAgICAgICAgIGlmIChtX3Nsb3RFbGVtZW50
ID09IG5vZGUuYXNzaWduZWRTbG90KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQobV9zbG90S2luZCA9PSBTbG90
S2luZDo6RmFsbGJhY2spOworICAgICAgICAgICAgYXV0byogcGFyZW50Tm9kZSA9IG5vZGUucGFy
ZW50Tm9kZSgpOworICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgPT0gbV9zbG90RWxlbWVudCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KIAogICAg
IHJldHVybiBub2RlLnBhcmVudE5vZGUoKTsKIH0KQEAgLTE2Niw4ICsxNzcsMTIgQEAgTm9kZSog
Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZpcnN0Tm9kZUluUwogewogICAgIGlmIChVTkxJS0VMWSht
X3Nsb3RFbGVtZW50KSkgewogICAgICAgICBhdXRvKiBhc3NpZ25lTm9kZXMgPSBtX3Nsb3RFbGVt
ZW50LT5hc3NpZ25lZE5vZGVzKCk7Ci0gICAgICAgIEFTU0VSVChhc3NpZ25lTm9kZXMpOwotICAg
ICAgICByZXR1cm4gYXNzaWduZU5vZGVzLT5maXJzdCgpOworICAgICAgICBpZiAobV9zbG90S2lu
ZCA9PSBTbG90S2luZDo6QXNzaWduZWQpIHsKKyAgICAgICAgICAgIEFTU0VSVChhc3NpZ25lTm9k
ZXMpOworICAgICAgICAgICAgcmV0dXJuIGFzc2lnbmVOb2Rlcy0+Zmlyc3QoKTsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlQobV9zbG90S2luZCA9PSBTbG90S2luZDo6RmFsbGJhY2spOworICAg
ICAgICByZXR1cm4gbV9zbG90RWxlbWVudC0+Zmlyc3RDaGlsZCgpOwogICAgIH0KICAgICBBU1NF
UlQobV9yb290VHJlZVNjb3BlKTsKICAgICByZXR1cm4gJm1fcm9vdFRyZWVTY29wZS0+cm9vdE5v
ZGUoKTsKQEAgLTE3Nyw4ICsxOTIsMTIgQEAgTm9kZSogRm9jdXNOYXZpZ2F0aW9uU2NvcGU6Omxh
c3ROb2RlSW5TYwogewogICAgIGlmIChVTkxJS0VMWShtX3Nsb3RFbGVtZW50KSkgewogICAgICAg
ICBhdXRvKiBhc3NpZ25lTm9kZXMgPSBtX3Nsb3RFbGVtZW50LT5hc3NpZ25lZE5vZGVzKCk7Ci0g
ICAgICAgIEFTU0VSVChhc3NpZ25lTm9kZXMpOwotICAgICAgICByZXR1cm4gYXNzaWduZU5vZGVz
LT5sYXN0KCk7CisgICAgICAgIGlmIChtX3Nsb3RLaW5kID09IFNsb3RLaW5kOjpBc3NpZ25lZCkg
eworICAgICAgICAgICAgQVNTRVJUKGFzc2lnbmVOb2Rlcyk7CisgICAgICAgICAgICByZXR1cm4g
YXNzaWduZU5vZGVzLT5sYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKG1fc2xvdEtp
bmQgPT0gU2xvdEtpbmQ6OkZhbGxiYWNrKTsKKyAgICAgICAgcmV0dXJuIG1fc2xvdEVsZW1lbnQt
Pmxhc3RDaGlsZCgpOwogICAgIH0KICAgICBBU1NFUlQobV9yb290VHJlZVNjb3BlKTsKICAgICBy
ZXR1cm4gJm1fcm9vdFRyZWVTY29wZS0+cm9vdE5vZGUoKTsKQEAgLTIxMyw4ICsyMzIsOSBAQCBG
b2N1c05hdmlnYXRpb25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvCiB7CiB9CiAKLUZvY3VzTmF2
aWdhdGlvblNjb3BlOjpGb2N1c05hdmlnYXRpb25TY29wZShIVE1MU2xvdEVsZW1lbnQmIHNsb3RF
bGVtZW50KQorRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OkZvY3VzTmF2aWdhdGlvblNjb3BlKEhUTUxT
bG90RWxlbWVudCYgc2xvdEVsZW1lbnQsIFNsb3RLaW5kIHNsb3RLaW5kKQogICAgIDogbV9zbG90
RWxlbWVudCgmc2xvdEVsZW1lbnQpCisgICAgLCBtX3Nsb3RLaW5kKHNsb3RLaW5kKQogewogfQog
CkBAIC0yMzUsMTUgKzI1NSwyMSBAQCBFbGVtZW50KiBGb2N1c05hdmlnYXRpb25TY29wZTo6b3du
ZXIoKSBjCiBGb2N1c05hdmlnYXRpb25TY29wZSBGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVP
ZihOb2RlJiBzdGFydGluZ05vZGUpCiB7CiAgICAgQVNTRVJUKHN0YXJ0aW5nTm9kZS5pc0luVHJl
ZVNjb3BlKCkpOwotICAgIE5vZGUqIHJvb3QgPSBudWxscHRyOwotICAgIGZvciAoTm9kZSogY3Vy
cmVudE5vZGUgPSAmc3RhcnRpbmdOb2RlOyBjdXJyZW50Tm9kZTsgY3VycmVudE5vZGUgPSBjdXJy
ZW50Tm9kZS0+cGFyZW50Tm9kZSgpKSB7CisgICAgUmVmUHRyPE5vZGU+IHJvb3Q7CisgICAgUmVm
UHRyPE5vZGU+IHBhcmVudE5vZGU7CisgICAgZm9yIChSZWZQdHI8Tm9kZT4gY3VycmVudE5vZGUg
PSAmc3RhcnRpbmdOb2RlOyBjdXJyZW50Tm9kZTsgY3VycmVudE5vZGUgPSBwYXJlbnROb2RlKSB7
CiAgICAgICAgIHJvb3QgPSBjdXJyZW50Tm9kZTsKICAgICAgICAgaWYgKEhUTUxTbG90RWxlbWVu
dCogc2xvdCA9IGN1cnJlbnROb2RlLT5hc3NpZ25lZFNsb3QoKSkgewogICAgICAgICAgICAgaWYg
KGlzRm9jdXNTY29wZU93bmVyKCpzbG90KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRm9jdXNO
YXZpZ2F0aW9uU2NvcGUoKnNsb3QpOworICAgICAgICAgICAgICAgIHJldHVybiBGb2N1c05hdmln
YXRpb25TY29wZSgqc2xvdCwgU2xvdEtpbmQ6OkFzc2lnbmVkKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoaXM8U2hhZG93Um9vdD4oY3VycmVudE5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIEZv
Y3VzTmF2aWdhdGlvblNjb3BlKGRvd25jYXN0PFNoYWRvd1Jvb3Q+KCpjdXJyZW50Tm9kZSkpOwor
ICAgICAgICBwYXJlbnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAgICAg
Ly8gVGhlIHNjb3BlIG9mIGEgZmFsbGJhY2sgY29udGVudCBvZiBhIEhUTUxTbG90RWxlbWVudCBp
cyB0aGUgc2xvdCBlbGVtZW50CisgICAgICAgIC8vIGJ1dCB0aGUgc2NvcGUgb2YgYSBIVE1MU2xv
dEVsZW1lbnQgaXMgaXRzIHBhcmVudCBzY29wZS4KKyAgICAgICAgaWYgKHBhcmVudE5vZGUgJiYg
aXM8SFRNTFNsb3RFbGVtZW50PihwYXJlbnROb2RlKSAmJiAhZG93bmNhc3Q8SFRNTFNsb3RFbGVt
ZW50PigqcGFyZW50Tm9kZSkuYXNzaWduZWROb2RlcygpKQorICAgICAgICAgICAgcmV0dXJuIEZv
Y3VzTmF2aWdhdGlvblNjb3BlKGRvd25jYXN0PEhUTUxTbG90RWxlbWVudD4oKnBhcmVudE5vZGUp
LCBTbG90S2luZDo6RmFsbGJhY2spOwogICAgIH0KICAgICBBU1NFUlQocm9vdCk7CiAgICAgcmV0
dXJuIEZvY3VzTmF2aWdhdGlvblNjb3BlKHJvb3QtPnRyZWVTY29wZSgpKTsKQEAgLTI1Miw4ICsy
NzgsMTAgQEAgRm9jdXNOYXZpZ2F0aW9uU2NvcGUgRm9jdXNOYXZpZ2F0aW9uU2NvcAogRm9jdXNO
YXZpZ2F0aW9uU2NvcGUgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT3duZWRCeVNjb3BlT3du
ZXIoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVudC5zaGFkb3dSb290KCkg
fHwgaXM8SFRNTFNsb3RFbGVtZW50PihlbGVtZW50KSk7Ci0gICAgaWYgKGlzPEhUTUxTbG90RWxl
bWVudD4oZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBGb2N1c05hdmlnYXRpb25TY29wZShkb3du
Y2FzdDxIVE1MU2xvdEVsZW1lbnQ+KGVsZW1lbnQpKTsKKyAgICBpZiAoaXM8SFRNTFNsb3RFbGVt
ZW50PihlbGVtZW50KSkgeworICAgICAgICBhdXRvIHNsb3QgPSBtYWtlUmVmKGRvd25jYXN0PEhU
TUxTbG90RWxlbWVudD4oZWxlbWVudCkpOworICAgICAgICByZXR1cm4gRm9jdXNOYXZpZ2F0aW9u
U2NvcGUoc2xvdCwgc2xvdC0+YXNzaWduZWROb2RlcygpID8gU2xvdEtpbmQ6OkFzc2lnbmVkIDog
U2xvdEtpbmQ6OkZhbGxiYWNrKTsKKyAgICB9CiAgICAgcmV0dXJuIEZvY3VzTmF2aWdhdGlvblNj
b3BlKCplbGVtZW50LnNoYWRvd1Jvb3QoKSk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNTE1
MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4
IEBACisyMDE4LTA4LTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAg
ICAgIEZvY3VzIG5hdmlnYXRpb24gb3JkZXIgaW4gc2xvdCBmYWxsYmFjayBjb250ZW50cyBpcyB3
cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4
MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Mjg0Mjk5Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRoZSBzZXF1ZW50aWFsIGZv
Y3VzIG5hdmlnYXRpb24gdGVzdCBmb3Igc2hhZG93IERPTSBhbmQgaXRzIGV4cGVjdGF0aW9uLgor
CisgICAgICAgIE5ldyB0ZXN0IHBhc3NlcyBpbiBGaXJlZm94ICYgQ2hyb21lIG90aGVyIHRoYW4g
dGhlIGZhY3QgYm90aCBicm93c2VycyBmYWlsIHRvIGZvY3VzIGEgc2xvdCBlbGVtZW5udC4KKwor
ICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1uYXZpZ2F0aW9uLWFjcm9zcy1zbG90cy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLW5hdmlnYXRpb24t
YWNyb3NzLXNsb3RzLmh0bWw6CisKIDIwMTgtMDgtMjEgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9n
YXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2UgU2VsZWN0aW9uIG1vZGlmaWNhdGlv
biB0byBub3Qgc25hcCB0aGUgZ3JhYmJlciB3aGVuIHNlbGVjdGluZyBhYm92ZSBvciBiZWxvdyB0
aGUgc2VsZWN0aW9uIGFuY2hvcgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2Zv
Y3VzLW5hdmlnYXRpb24tYWNyb3NzLXNsb3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtbmF2aWdhdGlvbi1hY3Jvc3Mtc2xvdHMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMzUxNTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vZm9jdXMtbmF2aWdhdGlvbi1hY3Jvc3Mtc2xvdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNCwxNSArMTQsMTUgQEAgSXQgc2hvdWxkIHRyYXZlcnNlIGZvY3VzYWJsZSBl
bGVtZW50cyBpbgogMTAuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MQogMTEuIENv
bnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MQogMTIuIENvbnRlbnQgaW4gc2xvdCAyIHdp
dGggdGFiaW5kZXg9MAotMTMuIE5vbi1mb2N1c2FibGUgc2xvdCBmYWxsYmFjayB3aXRoIHRhYmlu
ZGV4PTEKLTE0LiBGb2N1c2FibGUgc2xvdCBlbGVtZW50LgorMTMuIEZvY3VzYWJsZSBzbG90IGVs
ZW1lbnQuCisxNC4gRm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgY29udGVudCB3aXRoIHRhYmluZGV4
PTAKIDE1LiBTaGFkb3cgY29udGVudCB3aXRoIHRhYmluZGV4PTIKLTE2LiBOb24tZm9jdXNhYmxl
IHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0wCi0xNy4gRm9jdXNhYmxlIHNsb3QgZmFsbGJh
Y2sgY29udGVudCB3aXRoIHRhYmluZGV4PTAKLTE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJh
Y2sgd2l0aCB0YWJpbmRleD0wCisxNi4gTm9uLWZvY3VzYWJsZSBzbG90IGZhbGxiYWNrIHdpdGgg
dGFiaW5kZXg9MQorMTcuIE5vbi1mb2N1c2FibGUgc2xvdCBmYWxsYmFjayB3aXRoIHRhYmluZGV4
PTAKKzE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0xCiAxNS4g
U2hhZG93IGNvbnRlbnQgd2l0aCB0YWJpbmRleD0yCi0xNC4gRm9jdXNhYmxlIHNsb3QgZWxlbWVu
dC4KLTEzLiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0xCisxNC4g
Rm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgY29udGVudCB3aXRoIHRhYmluZGV4PTAKKzEzLiBGb2N1
c2FibGUgc2xvdCBlbGVtZW50LgogMTIuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9
MAogMTEuIENvbnRlbnQgaW4gc2xvdCAyIHdpdGggdGFiaW5kZXg9MQogMTAuIENvbnRlbnQgaW4g
c2xvdCAyIHdpdGggdGFiaW5kZXg9MQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L2ZvY3VzLW5hdmlnYXRpb24tYWNyb3NzLXNsb3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLW5hdmlnYXRpb24tYWNyb3NzLXNsb3RzLmh0bWwJ
KHJldmlzaW9uIDIzNTE1MykKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1u
YXZpZ2F0aW9uLWFjcm9zcy1zbG90cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTMgKzEw
MiwxMyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgIHNoYWRvd1dpdGhTbG90
RmFsbGJhY2suY2xvc2VkU2hhZG93Um9vdC5pbm5lckhUTUwgPSBgCiAgICAgICAgIDxzbG90IG5h
bWU9InNsb3QxIiBvbmZvY3VzPSJsb2codGhpcykiPgogICAgICAgICAgICAgTm9uLWZvY3VzYWJs
ZSBzbG90IHNob3VsZCBub3QgYmUgZm9jdXNlZC4KLSAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9
IjAiPjE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgd2l0aCB0YWJpbmRleD0wPC9kaXY+
Ci0gICAgICAgICAgICA8ZGl2IHRhYmluZGV4PSIxIj4xMy4gTm9uLWZvY3VzYWJsZSBzbG90IGZh
bGxiYWNrIHdpdGggdGFiaW5kZXg9MTwvZGl2PgorICAgICAgICAgICAgPGRpdiB0YWJpbmRleD0i
MCI+MTcuIE5vbi1mb2N1c2FibGUgc2xvdCBmYWxsYmFjayB3aXRoIHRhYmluZGV4PTA8L2Rpdj4K
KyAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9IjEiPjE2LiBOb24tZm9jdXNhYmxlIHNsb3QgZmFs
bGJhY2sgd2l0aCB0YWJpbmRleD0xPC9kaXY+CiAgICAgICAgIDwvc2xvdD4KICAgICAgICAgPGRp
diB0YWJpbmRleD0iMiIgb25mb2N1cz0ibG9nKHRoaXMpIj4xNS4gU2hhZG93IGNvbnRlbnQgd2l0
aCB0YWJpbmRleD0yPC9kaXY+CiAgICAgICAgIDxzbG90IG5hbWU9InNsb3QyIiB0YWJpbmRleD0i
MSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IiBvbmZvY3VzPSJsb2codGhpcykiPgotICAgICAgICAg
ICAgMTQuIEZvY3VzYWJsZSBzbG90IGVsZW1lbnQuCi0gICAgICAgICAgICA8ZGl2IHRhYmluZGV4
PSIwIj4xNy4gRm9jdXNhYmxlIHNsb3QgZmFsbGJhY2sgY29udGVudCB3aXRoIHRhYmluZGV4PTA8
L2Rpdj4KKyAgICAgICAgICAgIDEzLiBGb2N1c2FibGUgc2xvdCBlbGVtZW50LgorICAgICAgICAg
ICAgPGRpdiB0YWJpbmRleD0iMCI+MTQuIEZvY3VzYWJsZSBzbG90IGZhbGxiYWNrIGNvbnRlbnQg
d2l0aCB0YWJpbmRleD0wPC9kaXY+CiAgICAgICAgIDwvc2xvdD5gOwogCiAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZpcnN0JykuZm9jdXMoKTsK
</data>
<flag name="review"
          id="365485"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>