<?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>47303</bug_id>
          
          <creation_ts>2010-10-06 14:16:50 -0700</creation_ts>
          <short_desc>Convert layoutInlineChildren to be block-flow-aware.</short_desc>
          <delta_ts>2010-10-06 14:44:35 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>46123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>290572</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-06 14:16:50 -0700</bug_when>
    <thetext>Convert layoutInlineChildren to be block-flow-aware.  None of the functions it calls are patched yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290573</commentid>
    <comment_count>1</comment_count>
      <attachid>69989</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-06 14:17:42 -0700</bug_when>
    <thetext>Created attachment 69989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290577</commentid>
    <comment_count>2</comment_count>
      <attachid>69989</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-06 14:29:56 -0700</bug_when>
    <thetext>Comment on attachment 69989
Patch

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

&gt; WebCore/rendering/RenderBlockLineLayout.cpp:510
&gt; +    int toAdd = borderAfter() + paddingAfter() + scrollbarLogicalHeight();

Need toRename this variable someday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290587</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-06 14:44:35 -0700</bug_when>
    <thetext>Fixed in r69235.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69989</attachid>
            <date>2010-10-06 14:17:42 -0700</date>
            <delta_ts>2010-10-06 14:29:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>21819</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTIzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMTAtMDYgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzMwMworCisgICAgICAgIENvbnZl
cnQgbGF5b3V0SW5saW5lQ2hpbGRyZW4gdG8gYmUgYmxvY2stZmxvdy1hd2FyZS4gIE5vbmUgb2Yg
dGhlIGZ1bmN0aW9ucyBpdCBjYWxscyBhcmUgcGF0Y2hlZCB5ZXQuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Omxh
eW91dEJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmb3JjZUxheW91dElubGluZUNoaWxkcmVuKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6YmVmb3JlU2lkZVZpc2libGVPdmVyZmxvd0ZvckxpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFmdGVyU2lkZVZpc2libGVPdmVyZmxvd0ZvckxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmJlZm9yZVNpZGVMYXlvdXRPdmVyZmxv
d0ZvckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFmdGVyU2lkZUxheW91
dE92ZXJmbG93Rm9yTGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpsb2dpY2FsTGVmdExheW91dE92ZXJmbG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bG9naWNhbFJpZ2h0TGF5b3V0T3ZlcmZsb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bG9naWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3cp
OgorCiAyMDEwLTEwLTA2ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAkocmV2aXNpb24gNjkyMjgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExOTcsMTMgKzExOTcsMTMgQEAgdm9pZCBSZW5kZXJCbG9j
azo6bGF5b3V0QmxvY2soYm9vbCByZWxheQogICAgICAgICAgICAgbGF5ZXIoKS0+c2V0SGFzVmVy
dGljYWxTY3JvbGxiYXIodHJ1ZSk7CiAgICAgfQogCi0gICAgaW50IHJlcGFpbnRUb3AgPSAwOwot
ICAgIGludCByZXBhaW50Qm90dG9tID0gMDsKKyAgICBpbnQgcmVwYWludExvZ2ljYWxUb3AgPSAw
OworICAgIGludCByZXBhaW50TG9naWNhbEJvdHRvbSA9IDA7CiAgICAgaW50IG1heEZsb2F0TG9n
aWNhbEJvdHRvbSA9IDA7CiAgICAgaWYgKCFmaXJzdENoaWxkKCkgJiYgIWlzQW5vbnltb3VzQmxv
Y2soKSkKICAgICAgICAgc2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CiAgICAgaWYgKGNoaWxkcmVu
SW5saW5lKCkpCi0gICAgICAgIGxheW91dElubGluZUNoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4s
IHJlcGFpbnRUb3AsIHJlcGFpbnRCb3R0b20pOworICAgICAgICBsYXlvdXRJbmxpbmVDaGlsZHJl
bihyZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0
b20pOwogICAgIGVsc2UKICAgICAgICAgbGF5b3V0QmxvY2tDaGlsZHJlbihyZWxheW91dENoaWxk
cmVuLCBtYXhGbG9hdExvZ2ljYWxCb3R0b20pOwogCkBAIC0xMjY2LDEwICsxMjY2LDE1IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXkKIAogICAgIC8vIFJlcGFpbnQg
d2l0aCBvdXIgbmV3IGJvdW5kcyBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgZnJvbSBvdXIgb2xkIGJv
dW5kcy4KICAgICBib29sIGRpZEZ1bGxSZXBhaW50ID0gcmVwYWludGVyLnJlcGFpbnRBZnRlckxh
eW91dCgpOwotICAgIGlmICghZGlkRnVsbFJlcGFpbnQgJiYgcmVwYWludFRvcCAhPSByZXBhaW50
Qm90dG9tICYmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSB8fCBlbmNsb3NpbmdM
YXllcigpLT5oYXNWaXNpYmxlQ29udGVudCgpKSkgewotICAgICAgICBpbnQgcmVwYWludExlZnQg
PSBtaW4obGVmdFZpc3VhbE92ZXJmbG93KCksIGxlZnRMYXlvdXRPdmVyZmxvdygpKTsKLSAgICAg
ICAgaW50IHJlcGFpbnRSaWdodCA9IG1heChyaWdodFZpc3VhbE92ZXJmbG93KCksIHJpZ2h0TGF5
b3V0T3ZlcmZsb3coKSk7Ci0gICAgICAgIEludFJlY3QgcmVwYWludFJlY3QocmVwYWludExlZnQs
IHJlcGFpbnRUb3AsIHJlcGFpbnRSaWdodCAtIHJlcGFpbnRMZWZ0LCByZXBhaW50Qm90dG9tIC0g
cmVwYWludFRvcCk7CisgICAgaWYgKCFkaWRGdWxsUmVwYWludCAmJiByZXBhaW50TG9naWNhbFRv
cCAhPSByZXBhaW50TG9naWNhbEJvdHRvbSAmJiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJ
U0lCTEUgfHwgZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNvbnRlbnQoKSkpIHsKKyAgICAg
ICAgaW50IHJlcGFpbnRMb2dpY2FsTGVmdCA9IG1pbihsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93
KCksIGxvZ2ljYWxMZWZ0TGF5b3V0T3ZlcmZsb3coKSk7CisgICAgICAgIGludCByZXBhaW50TG9n
aWNhbFJpZ2h0ID0gbWF4KGxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93KCksIGxvZ2ljYWxSaWdo
dExheW91dE92ZXJmbG93KCkpOworICAgICAgICAKKyAgICAgICAgSW50UmVjdCByZXBhaW50UmVj
dDsKKyAgICAgICAgaWYgKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAg
ICAgICAgICByZXBhaW50UmVjdCA9IEludFJlY3QocmVwYWludExvZ2ljYWxMZWZ0LCByZXBhaW50
TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxSaWdodCAtIHJlcGFpbnRMb2dpY2FsTGVmdCwgcmVw
YWludExvZ2ljYWxCb3R0b20gLSByZXBhaW50TG9naWNhbFRvcCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJlcGFpbnRSZWN0ID0gSW50UmVjdChyZXBhaW50TG9naWNhbFRvcCwgcmVwYWlu
dExvZ2ljYWxMZWZ0LCByZXBhaW50TG9naWNhbEJvdHRvbSAtIHJlcGFpbnRMb2dpY2FsVG9wLCBy
ZXBhaW50TG9naWNhbFJpZ2h0IC0gcmVwYWludExvZ2ljYWxMZWZ0KTsKIAogICAgICAgICAvLyBU
aGUgcmVwYWludCByZWN0IG1heSBiZSBzcGxpdCBhY3Jvc3MgY29sdW1ucywgaW4gd2hpY2ggY2Fz
ZSBhZGp1c3RSZWN0Rm9yQ29sdW1ucygpIHdpbGwgcmV0dXJuIHRoZSB1bmlvbi4KICAgICAgICAg
YWRqdXN0UmVjdEZvckNvbHVtbnMocmVwYWludFJlY3QpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oCShyZXZpc2lvbiA2OTIyMSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OSw5ICsyOTksOSBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8g
T25seSB1c2VkIGJ5IFJlbmRlclNWR1RleHQsIHdoaWNoIGV4cGxpY2l0ZWx5IG92ZXJyaWRlcyBS
ZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soKSwgZG8gTk9UIHVzZSBmb3IgYW55dGhpbmcgZWxzZS4K
ICAgICB2b2lkIGZvcmNlTGF5b3V0SW5saW5lQ2hpbGRyZW4oKQogICAgIHsKLSAgICAgICAgaW50
IHJlcGFpbnRUb3AgPSAwOwotICAgICAgICBpbnQgcmVwYWludEJvdHRvbSA9IDA7Ci0gICAgICAg
IGxheW91dElubGluZUNoaWxkcmVuKHRydWUsIHJlcGFpbnRUb3AsIHJlcGFpbnRCb3R0b20pOwor
ICAgICAgICBpbnQgcmVwYWludExvZ2ljYWxUb3AgPSAwOworICAgICAgICBpbnQgcmVwYWludExv
Z2ljYWxCb3R0b20gPSAwOworICAgICAgICBsYXlvdXRJbmxpbmVDaGlsZHJlbih0cnVlLCByZXBh
aW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOwogICAgIH0KICNlbmRpZgogCkBA
IC0zMzMsNyArMzMzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludE92ZXJo
YW5naW5nRmxvYXRzKGJvb2wgcGFpbnRBbGxEZXNjZW5kYW50cyk7CiAKICAgICB2b2lkIGxheW91
dEJsb2NrQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBpbnQmIG1heEZsb2F0TG9naWNh
bEJvdHRvbSk7Ci0gICAgdm9pZCBsYXlvdXRJbmxpbmVDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIGludCYgcmVwYWludFRvcCwgaW50JiByZXBhaW50Qm90dG9tKTsKKyAgICB2b2lkIGxh
eW91dElubGluZUNoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50JiByZXBhaW50TG9n
aWNhbFRvcCwgaW50JiByZXBhaW50TG9naWNhbEJvdHRvbSk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cG9zaXRpb25MaXN0TWFya2VyKCkgeyB9CiAKQEAgLTQ2OSw2ICs0NjksMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRlbGV0ZUVsbGlwc2lzTGluZUJveGVzKCk7CiAgICAgdm9pZCBjaGVja0xpbmVz
Rm9yVGV4dE92ZXJmbG93KCk7CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJl
bigpOworICAgIGludCBiZWZvcmVTaWRlVmlzaWJsZU92ZXJmbG93Rm9yTGluZShSb290SW5saW5l
Qm94KikgY29uc3Q7CisgICAgaW50IGFmdGVyU2lkZVZpc2libGVPdmVyZmxvd0ZvckxpbmUoUm9v
dElubGluZUJveCopIGNvbnN0OworICAgIGludCBiZWZvcmVTaWRlTGF5b3V0T3ZlcmZsb3dGb3JM
aW5lKFJvb3RJbmxpbmVCb3gqKSBjb25zdDsKKyAgICBpbnQgYWZ0ZXJTaWRlTGF5b3V0T3ZlcmZs
b3dGb3JMaW5lKFJvb3RJbmxpbmVCb3gqKSBjb25zdDsKICAgICAvLyBFbmQgb2YgZnVuY3Rpb25z
IGRlZmluZWQgaW4gUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KIAogICAgIHZvaWQgYWRkT3Zl
cmZsb3dGcm9tQmxvY2tDaGlsZHJlbigpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA2OTIyOCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMCwxNCAr
NTAwLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbGxhcHNpYmxlU3BhY2UoVUMKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVu
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50JiByZXBhaW50VG9wLCBpbnQmIHJlcGFpbnRCb3R0
b20pCit2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihib29sIHJlbGF5b3V0
Q2hpbGRyZW4sIGludCYgcmVwYWludExvZ2ljYWxUb3AsIGludCYgcmVwYWludExvZ2ljYWxCb3R0
b20pCiB7CiAgICAgYm9vbCB1c2VSZXBhaW50Qm91bmRzID0gZmFsc2U7CiAgICAgCiAgICAgbV9v
dmVyZmxvdy5jbGVhcigpOwogICAgICAgICAKLSAgICBzZXRMb2dpY2FsSGVpZ2h0KGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpKTsKLSAgICBpbnQgdG9BZGQgPSBib3JkZXJCb3R0b20oKSArIHBh
ZGRpbmdCb3R0b20oKSArIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKTsKKyAgICBzZXRMb2dp
Y2FsSGVpZ2h0KGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgpKTsKKyAgICBpbnQgdG9B
ZGQgPSBib3JkZXJBZnRlcigpICsgcGFkZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVp
Z2h0KCk7CiAKICAgICAvLyBGaWd1cmUgb3V0IGlmIHdlIHNob3VsZCBjbGVhciBvdXQgb3VyIGxp
bmUgYm94ZXMuCiAgICAgLy8gRklYTUU6IEhhbmRsZSByZXNpemUgZXZlbnR1YWxseSEKQEAgLTU0
Myw3ICs1NDMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAg
ICAgICAgICAgICAgICAgICAgIG8tPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgZmFsc2UpOwog
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBJZiByZWxheW91dENoaWxk
cmVuIGlzIHNldCBhbmQgd2UgaGF2ZSBwZXJjZW50YWdlIHBhZGRpbmcsIHdlIGFsc28gbmVlZCB0
byBpbnZhbGlkYXRlIHRoZSBjaGlsZCdzIHByZWYgd2lkdGhzLgotICAgICAgICAgICAgICAgIGlm
IChyZWxheW91dENoaWxkcmVuICYmIChvLT5zdHlsZSgpLT5wYWRkaW5nTGVmdCgpLmlzUGVyY2Vu
dCgpIHx8IG8tPnN0eWxlKCktPnBhZGRpbmdSaWdodCgpLmlzUGVyY2VudCgpKSkKKyAgICAgICAg
ICAgICAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiAmJiAoby0+c3R5bGUoKS0+cGFkZGluZ1N0YXJ0
KCkuaXNQZXJjZW50KCkgfHwgby0+c3R5bGUoKS0+cGFkZGluZ0VuZCgpLmlzUGVyY2VudCgpKSkK
ICAgICAgICAgICAgICAgICAgICAgby0+c2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KHRy
dWUsIGZhbHNlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChvLT5pc1Bvc2l0
aW9uZWQoKSkKQEAgLTU3MSw3ICs1NzEsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxp
bmVDaGlsZHJlbihiCiAgICAgICAgIGJvb2wgZmlyc3RMaW5lID0gdHJ1ZTsKICAgICAgICAgYm9v
bCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkgPSB0cnVlOwogICAgICAgICBSb290SW5saW5lQm94
KiBzdGFydExpbmUgPSBkZXRlcm1pbmVTdGFydFBvc2l0aW9uKGZpcnN0TGluZSwgZnVsbExheW91
dCwgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCByZXNvbHZlciwgZmxvYXRzLCBmbG9hdEluZGV4
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVzZVJlcGFpbnRCb3VuZHMsIHJlcGFpbnRUb3AsIHJlcGFpbnRCb3R0b20pOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVJl
cGFpbnRCb3VuZHMsIHJlcGFpbnRMb2dpY2FsVG9wLCByZXBhaW50TG9naWNhbEJvdHRvbSk7CiAK
ICAgICAgICAgaWYgKGZ1bGxMYXlvdXQgJiYgaGFzSW5saW5lQ2hpbGQgJiYgIXNlbGZOZWVkc0xh
eW91dCgpKSB7CiAgICAgICAgICAgICBzZXROZWVkc0xheW91dCh0cnVlLCBmYWxzZSk7ICAvLyBN
YXJrIG91cnNlbHZlcyBhcyBuZWVkaW5nIGEgZnVsbCBsYXlvdXQuIFRoaXMgd2F5IHdlJ2xsIHJl
cGFpbnQgbGlrZQpAQCAtNTk0LDIxICs1OTQsMjEgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0
SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICAvLyBpZiB3ZSBkZXRlcm1pbmUgdGhhdCB3ZSdyZSBh
YmxlIHRvIHN5bmNocm9uaXplIGFmdGVyIGhhbmRsaW5nIGFsbCBvdXIgZGlydHkgbGluZXMuCiAg
ICAgICAgIElubGluZUl0ZXJhdG9yIGNsZWFuTGluZVN0YXJ0OwogICAgICAgICBCaWRpU3RhdHVz
IGNsZWFuTGluZUJpZGlTdGF0dXM7Ci0gICAgICAgIGludCBlbmRMaW5lWVBvcyA9IDA7CisgICAg
ICAgIGludCBlbmRMaW5lTG9naWNhbFRvcCA9IDA7CiAgICAgICAgIFJvb3RJbmxpbmVCb3gqIGVu
ZExpbmUgPSAoZnVsbExheW91dCB8fCAhc3RhcnRMaW5lKSA/IAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCA6IGRldGVybWluZUVuZFBvc2l0aW9uKHN0YXJ0TGluZSwgY2xlYW5M
aW5lU3RhcnQsIGNsZWFuTGluZUJpZGlTdGF0dXMsIGVuZExpbmVZUG9zKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAgOiBkZXRlcm1pbmVFbmRQb3NpdGlvbihzdGFydExpbmUs
IGNsZWFuTGluZVN0YXJ0LCBjbGVhbkxpbmVCaWRpU3RhdHVzLCBlbmRMaW5lTG9naWNhbFRvcCk7
CiAKICAgICAgICAgaWYgKHN0YXJ0TGluZSkgewogICAgICAgICAgICAgaWYgKCF1c2VSZXBhaW50
Qm91bmRzKSB7CiAgICAgICAgICAgICAgICAgdXNlUmVwYWludEJvdW5kcyA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgcmVwYWludFRvcCA9IGhlaWdodCgpOwotICAgICAgICAgICAgICAgIHJlcGFp
bnRCb3R0b20gPSBoZWlnaHQoKTsKKyAgICAgICAgICAgICAgICByZXBhaW50TG9naWNhbFRvcCA9
IGxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICByZXBhaW50TG9naWNhbEJvdHRvbSA9
IGxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFJlbmRlckFyZW5h
KiBhcmVuYSA9IHJlbmRlckFyZW5hKCk7CiAgICAgICAgICAgICBSb290SW5saW5lQm94KiBib3gg
PSBzdGFydExpbmU7CiAgICAgICAgICAgICB3aGlsZSAoYm94KSB7Ci0gICAgICAgICAgICAgICAg
cmVwYWludFRvcCA9IG1pbihyZXBhaW50VG9wLCBib3gtPnRvcFZpc2libGVPdmVyZmxvdygpKTsK
LSAgICAgICAgICAgICAgICByZXBhaW50Qm90dG9tID0gbWF4KHJlcGFpbnRCb3R0b20sIGJveC0+
Ym90dG9tVmlzaWJsZU92ZXJmbG93KCkpOworICAgICAgICAgICAgICAgIHJlcGFpbnRMb2dpY2Fs
VG9wID0gbWluKHJlcGFpbnRMb2dpY2FsVG9wLCBiZWZvcmVTaWRlVmlzaWJsZU92ZXJmbG93Rm9y
TGluZShib3gpKTsKKyAgICAgICAgICAgICAgICByZXBhaW50TG9naWNhbEJvdHRvbSA9IG1heChy
ZXBhaW50TG9naWNhbEJvdHRvbSwgYWZ0ZXJTaWRlVmlzaWJsZU92ZXJmbG93Rm9yTGluZShib3gp
KTsKICAgICAgICAgICAgICAgICBSb290SW5saW5lQm94KiBuZXh0ID0gYm94LT5uZXh0Um9vdEJv
eCgpOwogICAgICAgICAgICAgICAgIGJveC0+ZGVsZXRlTGluZShhcmVuYSk7CiAgICAgICAgICAg
ICAgICAgYm94ID0gbmV4dDsKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjps
YXlvdXRJbmxpbmVDaGlsZHJlbihiCiAKICAgICAgICAgd2hpbGUgKCFlbmQuYXRFbmQoKSkgewog
ICAgICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgY2hlY2sgbmVjZXNzYXJ5IGJlZm9yZSB0aGUg
Zmlyc3QgaXRlcmF0aW9uIG9yIGNhbiBpdCBiZSBtb3ZlZCB0byB0aGUgZW5kPwotICAgICAgICAg
ICAgaWYgKGNoZWNrRm9yRW5kTGluZU1hdGNoICYmIChlbmRMaW5lTWF0Y2hlZCA9IG1hdGNoZWRF
bmRMaW5lKHJlc29sdmVyLCBjbGVhbkxpbmVTdGFydCwgY2xlYW5MaW5lQmlkaVN0YXR1cywgZW5k
TGluZSwgZW5kTGluZVlQb3MsIHJlcGFpbnRCb3R0b20sIHJlcGFpbnRUb3ApKSkKKyAgICAgICAg
ICAgIGlmIChjaGVja0ZvckVuZExpbmVNYXRjaCAmJiAoZW5kTGluZU1hdGNoZWQgPSBtYXRjaGVk
RW5kTGluZShyZXNvbHZlciwgY2xlYW5MaW5lU3RhcnQsIGNsZWFuTGluZUJpZGlTdGF0dXMsIGVu
ZExpbmUsIGVuZExpbmVMb2dpY2FsVG9wLCByZXBhaW50TG9naWNhbEJvdHRvbSwgcmVwYWludExv
Z2ljYWxUb3ApKSkKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgbGluZU1p
ZHBvaW50U3RhdGUucmVzZXQoKTsKQEAgLTcxOSw3ICs3MTksNyBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAgICAgICAgICAgICAgICAgLy8gaW5saW5lIGZsb3cg
Ym94ZXMuCiAKICAgICAgICAgICAgICAgICBSb290SW5saW5lQm94KiBsaW5lQm94ID0gMDsKLSAg
ICAgICAgICAgICAgICBpbnQgb2xkSGVpZ2h0ID0gaGVpZ2h0KCk7CisgICAgICAgICAgICAgICAg
aW50IG9sZExvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICAgICAg
aWYgKHJlc29sdmVyLnJ1bkNvdW50KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGh5cGhl
bmF0ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlci5sb2dpY2FsbHlMYXN0UnVu
KCktPm1faGFzSHlwaGVuID0gdHJ1ZTsKQEAgLTc2NywyNCArNzY3LDI0IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAgICAgICAgICAgICAgICBpZiAobGluZUJv
eCkgewogICAgICAgICAgICAgICAgICAgICBsaW5lQm94LT5zZXRMaW5lQnJlYWtJbmZvKGVuZC5v
YmosIGVuZC5wb3MsIHJlc29sdmVyLnN0YXR1cygpKTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KHVzZVJlcGFpbnRCb3VuZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnRUb3Ag
PSBtaW4ocmVwYWludFRvcCwgbGluZUJveC0+dG9wVmlzaWJsZU92ZXJmbG93KCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwYWludEJvdHRvbSA9IG1heChyZXBhaW50Qm90dG9tLCBsaW5l
Qm94LT5ib3R0b21WaXNpYmxlT3ZlcmZsb3coKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBhaW50TG9naWNhbFRvcCA9IG1pbihyZXBhaW50TG9naWNhbFRvcCwgYmVmb3JlU2lkZVZpc2li
bGVPdmVyZmxvd0ZvckxpbmUobGluZUJveCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVw
YWludExvZ2ljYWxCb3R0b20gPSBtYXgocmVwYWludExvZ2ljYWxCb3R0b20sIGFmdGVyU2lkZVZp
c2libGVPdmVyZmxvd0ZvckxpbmUobGluZUJveCkpOwogICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAocGFnaW5hdGVkKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWRqdXN0bWVudCA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhZGp1c3RMaW5lUG9zaXRpb25Gb3JQYWdpbmF0aW9uKGxpbmVCb3gsIGFk
anVzdG1lbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkanVzdG1lbnQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2xkTGluZVdpZHRoID0gYXZhaWxhYmxlTG9n
aWNhbFdpZHRoRm9yTGluZShvbGRIZWlnaHQsIGZpcnN0TGluZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IG9sZExpbmVXaWR0aCA9IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxp
bmUob2xkTG9naWNhbEhlaWdodCwgZmlyc3RMaW5lKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lQm94LT5hZGp1c3RQb3NpdGlvbigwLCBhZGp1c3RtZW50KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAodXNlUmVwYWludEJvdW5kcykgLy8gVGhpcyBjYW4gb25seSBi
ZSBhIHBvc2l0aXZlIGFkanVzdG1lbnQsIHNvIG5vIG5lZWQgdG8gdXBkYXRlIHJlcGFpbnRUb3Au
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnRCb3R0b20gPSBtYXgocmVw
YWludEJvdHRvbSwgbGluZUJveC0+Ym90dG9tVmlzaWJsZU92ZXJmbG93KCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50TG9naWNhbEJvdHRvbSA9IG1heChyZXBhaW50
TG9naWNhbEJvdHRvbSwgYWZ0ZXJTaWRlVmlzaWJsZU92ZXJmbG93Rm9yTGluZShsaW5lQm94KSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKG9sZEhlaWdodCArIGFkanVz
dG1lbnQsIGZpcnN0TGluZSkgIT0gb2xkTGluZVdpZHRoKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxpbmUob2xkTG9naWNhbEhlaWdo
dCArIGFkanVzdG1lbnQsIGZpcnN0TGluZSkgIT0gb2xkTGluZVdpZHRoKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZGVsZXRlIHRoaXMgbGluZSwgcmVt
b3ZlIGFsbCBmbG9hdHMgdGhhdCBnb3QgYWRkZWQsIGFuZCBsZXQgbGluZSBsYXlvdXQgcmUtcnVu
LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQm94LT5kZWxldGVMaW5lKHJl
bmRlckFyZW5hKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVGbG9h
dGluZ09iamVjdHNCZWxvdyhsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBvbGRIZWlnaHQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KG9sZEhlaWdo
dCArIGFkanVzdG1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVG
bG9hdGluZ09iamVjdHNCZWxvdyhsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBvbGRMb2dpY2Fs
SGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChvbGRMb2dpY2FsSGVpZ2h0ICsgYWRqdXN0bWVudCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc29sdmVyLnNldFBvc2l0aW9uKG9sZEVuZCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuZCA9IG9sZEVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CkBAIC04MjQsNyArODI0LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICBpZiAoZW5kTGluZSkgewogICAgICAgICAgICAg
aWYgKGVuZExpbmVNYXRjaGVkKSB7CiAgICAgICAgICAgICAgICAgLy8gQXR0YWNoIGFsbCB0aGUg
cmVtYWluaW5nIGxpbmVzLCBhbmQgdGhlbiBhZGp1c3QgdGhlaXIgeS1wb3NpdGlvbnMgYXMgbmVl
ZGVkLgotICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IGhlaWdodCgpIC0gZW5kTGluZVlQb3M7
CisgICAgICAgICAgICAgICAgaW50IGRlbHRhID0gbG9naWNhbEhlaWdodCgpIC0gZW5kTGluZUxv
Z2ljYWxUb3A7CiAgICAgICAgICAgICAgICAgZm9yIChSb290SW5saW5lQm94KiBsaW5lID0gZW5k
TGluZTsgbGluZTsgbGluZSA9IGxpbmUtPm5leHRSb290Qm94KCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgbGluZS0+YXR0YWNoTGluZSgpOwogICAgICAgICAgICAgICAgICAgICBpZiAocGFnaW5h
dGVkKSB7CkBAIC04MzIsMTYgKzgzMiwxNSBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxp
bmVDaGlsZHJlbihiCiAgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RMaW5lUG9zaXRpb25G
b3JQYWdpbmF0aW9uKGxpbmUsIGRlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICBpZiAoZGVsdGEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFp
bnRUb3AgPSBtaW4ocmVwYWludFRvcCwgbGluZS0+dG9wVmlzaWJsZU92ZXJmbG93KCkgKyBtaW4o
ZGVsdGEsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnRCb3R0b20gPSBtYXgo
cmVwYWludEJvdHRvbSwgbGluZS0+Ym90dG9tVmlzaWJsZU92ZXJmbG93KCkgKyBtYXgoZGVsdGEs
IDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnRMb2dpY2FsVG9wID0gbWluKHJl
cGFpbnRMb2dpY2FsVG9wLCBiZWZvcmVTaWRlVmlzaWJsZU92ZXJmbG93Rm9yTGluZShsaW5lKSAr
IG1pbihkZWx0YSwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludExvZ2ljYWxC
b3R0b20gPSBtYXgocmVwYWludExvZ2ljYWxCb3R0b20sIGFmdGVyU2lkZVZpc2libGVPdmVyZmxv
d0ZvckxpbmUobGluZSkgKyBtYXgoZGVsdGEsIDApKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGxpbmUtPmFkanVzdFBvc2l0aW9uKDAsIGRlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckJveCo+KiBjbGVhbkxpbmVGbG9h
dHMgPSBsaW5lLT5mbG9hdHNQdHIoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9y
PFJlbmRlckJveCo+OjppdGVyYXRvciBlbmQgPSBjbGVhbkxpbmVGbG9hdHMtPmVuZCgpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVyQm94Kj46Oml0ZXJhdG9yIGYg
PSBjbGVhbkxpbmVGbG9hdHMtPmJlZ2luKCk7IGYgIT0gZW5kOyArK2YpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgZmxvYXRUb3AgPSAoKmYpLT55KCkgLSAoKmYpLT5tYXJnaW5U
b3AoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRGbG9hdGluZ09iamVjdCgq
Zik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChmbG9hdFRv
cCArIGRlbHRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0
KGxvZ2ljYWxUb3BGb3JDaGlsZCgqZikgLSBtYXJnaW5CZWZvcmVGb3JDaGlsZCgqZikgKyBkZWx0
YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25OZXdGbG9hdHMoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtODUyLDgg
Kzg1MSw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAgICAg
ICAgICAgICAgICBSb290SW5saW5lQm94KiBsaW5lID0gZW5kTGluZTsKICAgICAgICAgICAgICAg
ICBSZW5kZXJBcmVuYSogYXJlbmEgPSByZW5kZXJBcmVuYSgpOwogICAgICAgICAgICAgICAgIHdo
aWxlIChsaW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlcGFpbnRUb3AgPSBtaW4ocmVwYWlu
dFRvcCwgbGluZS0+dG9wVmlzaWJsZU92ZXJmbG93KCkpOwotICAgICAgICAgICAgICAgICAgICBy
ZXBhaW50Qm90dG9tID0gbWF4KHJlcGFpbnRCb3R0b20sIGxpbmUtPmJvdHRvbVZpc2libGVPdmVy
ZmxvdygpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVwYWludExvZ2ljYWxUb3AgPSBtaW4ocmVw
YWludExvZ2ljYWxUb3AsIGJlZm9yZVNpZGVWaXNpYmxlT3ZlcmZsb3dGb3JMaW5lKGxpbmUpKTsK
KyAgICAgICAgICAgICAgICAgICAgcmVwYWludExvZ2ljYWxCb3R0b20gPSBtYXgocmVwYWludExv
Z2ljYWxCb3R0b20sIGFmdGVyU2lkZVZpc2libGVPdmVyZmxvd0ZvckxpbmUobGluZSkpOwogICAg
ICAgICAgICAgICAgICAgICBSb290SW5saW5lQm94KiBuZXh0ID0gbGluZS0+bmV4dFJvb3RCb3go
KTsKICAgICAgICAgICAgICAgICAgICAgbGluZS0+ZGVsZXRlTGluZShhcmVuYSk7CiAgICAgICAg
ICAgICAgICAgICAgIGxpbmUgPSBuZXh0OwpAQCAtODY1LDE1ICs4NjQsMTUgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICAgICAgLy8gVGhpcyBoYXMg
dG8gYmUgZG9uZSBiZWZvcmUgYWRkaW5nIGluIHRoZSBib3R0b20gYm9yZGVyL3BhZGRpbmcsIG9y
IHRoZSBmbG9hdCB3aWxsCiAgICAgICAgICAgICAvLyBpbmNsdWRlIHRoZSBwYWRkaW5nIGluY29y
cmVjdGx5LiAtZHdoCiAgICAgICAgICAgICBpZiAoY2hlY2tGb3JGbG9hdHNGcm9tTGFzdExpbmUp
IHsKLSAgICAgICAgICAgICAgICBpbnQgYm90dG9tVmlzdWFsT3ZlcmZsb3cgPSBsYXN0Um9vdEJv
eCgpLT5ib3R0b21WaXN1YWxPdmVyZmxvdygpOwotICAgICAgICAgICAgICAgIGludCBib3R0b21M
YXlvdXRPdmVyZmxvdyA9IGxhc3RSb290Qm94KCktPmJvdHRvbUxheW91dE92ZXJmbG93KCk7Cisg
ICAgICAgICAgICAgICAgaW50IGJvdHRvbVZpc3VhbE92ZXJmbG93ID0gYWZ0ZXJTaWRlVmlzaWJs
ZU92ZXJmbG93Rm9yTGluZShsYXN0Um9vdEJveCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgYm90
dG9tTGF5b3V0T3ZlcmZsb3cgPSBhZnRlclNpZGVMYXlvdXRPdmVyZmxvd0ZvckxpbmUobGFzdFJv
b3RCb3goKSk7CiAgICAgICAgICAgICAgICAgVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94KiB0
cmFpbGluZ0Zsb2F0c0xpbmVCb3ggPSBuZXcgKHJlbmRlckFyZW5hKCkpIFRyYWlsaW5nRmxvYXRz
Um9vdElubGluZUJveCh0aGlzKTsKICAgICAgICAgICAgICAgICBtX2xpbmVCb3hlcy5hcHBlbmRM
aW5lQm94KHRyYWlsaW5nRmxvYXRzTGluZUJveCk7CiAgICAgICAgICAgICAgICAgdHJhaWxpbmdG
bG9hdHNMaW5lQm94LT5zZXRDb25zdHJ1Y3RlZCgpOwogICAgICAgICAgICAgICAgIEdseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwIHRleHRCb3hEYXRhTWFwOwotICAgICAgICAgICAgICAg
IHRyYWlsaW5nRmxvYXRzTGluZUJveC0+YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oaGVpZ2h0
KCksIHRleHRCb3hEYXRhTWFwKTsKLSAgICAgICAgICAgICAgICB0cmFpbGluZ0Zsb2F0c0xpbmVC
b3gtPnNldEJsb2NrRGlyZWN0aW9uT3ZlcmZsb3dQb3NpdGlvbnMoaGVpZ2h0KCksIGJvdHRvbUxh
eW91dE92ZXJmbG93LCBoZWlnaHQoKSwgYm90dG9tVmlzdWFsT3ZlcmZsb3csIDApOwotICAgICAg
ICAgICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+c2V0QmxvY2tMb2dpY2FsSGVpZ2h0KGhl
aWdodCgpKTsKKyAgICAgICAgICAgICAgICB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPmFsaWduQm94
ZXNJbkJsb2NrRGlyZWN0aW9uKGxvZ2ljYWxIZWlnaHQoKSwgdGV4dEJveERhdGFNYXApOworICAg
ICAgICAgICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+c2V0QmxvY2tEaXJlY3Rpb25PdmVy
Zmxvd1Bvc2l0aW9ucyhsb2dpY2FsSGVpZ2h0KCksIGJvdHRvbUxheW91dE92ZXJmbG93LCBsb2dp
Y2FsSGVpZ2h0KCksIGJvdHRvbVZpc3VhbE92ZXJmbG93LCAwKTsKKyAgICAgICAgICAgICAgICB0
cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPnNldEJsb2NrTG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGxhc3RGbG9hdCkgewogICAgICAg
ICAgICAgICAgIGZvciAoRmxvYXRpbmdPYmplY3QqIGYgPSBtX2Zsb2F0aW5nT2JqZWN0cy0+bGFz
dCgpOyBmICE9IGxhc3RGbG9hdDsgZiA9IG1fZmxvYXRpbmdPYmplY3RzLT5wcmV2KCkpIHsKQEAg
LTIwMTQsNiArMjAxMyw3MCBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGRPdmVyZmxvd0Zyb21Jbmxp
bmVDCiAgICAgfQogfQogCitpbnQgUmVuZGVyQmxvY2s6OmJlZm9yZVNpZGVWaXNpYmxlT3ZlcmZs
b3dGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmUpIGNvbnN0Cit7CisgICAgc3dpdGNoIChzdHls
ZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgor
ICAgICAgICByZXR1cm4gbGluZS0+dG9wVmlzaWJsZU92ZXJmbG93KCk7CisgICAgY2FzZSBMZWZ0
VG9SaWdodFdyaXRpbmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+bGVmdFZpc2libGVPdmVy
ZmxvdygpOworICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToKKyAgICAgICAgcmV0dXJu
IGxpbmUtPnJpZ2h0VmlzaWJsZU92ZXJmbG93KCk7CisgICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRp
bmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+Ym90dG9tVmlzaWJsZU92ZXJmbG93KCk7Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBsaW5lLT50b3BWaXNp
YmxlT3ZlcmZsb3coKTsKK30KKworaW50IFJlbmRlckJsb2NrOjphZnRlclNpZGVWaXNpYmxlT3Zl
cmZsb3dGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmUpIGNvbnN0Cit7CisgICAgc3dpdGNoIChz
dHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2Rl
OgorICAgICAgICByZXR1cm4gbGluZS0+Ym90dG9tVmlzaWJsZU92ZXJmbG93KCk7CisgICAgY2Fz
ZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+cmlnaHRWaXNp
YmxlT3ZlcmZsb3coKTsKKyAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6CisgICAgICAg
IHJldHVybiBsaW5lLT5sZWZ0VmlzaWJsZU92ZXJmbG93KCk7CisgICAgY2FzZSBCb3R0b21Ub1Rv
cFdyaXRpbmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+dG9wVmlzaWJsZU92ZXJmbG93KCk7
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBsaW5lLT5ib3R0
b21WaXNpYmxlT3ZlcmZsb3coKTsKK30KKworaW50IFJlbmRlckJsb2NrOjpiZWZvcmVTaWRlTGF5
b3V0T3ZlcmZsb3dGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmUpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRp
bmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+dG9wTGF5b3V0T3ZlcmZsb3coKTsKKyAgICBj
YXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6CisgICAgICAgIHJldHVybiBsaW5lLT5sZWZ0TGF5
b3V0T3ZlcmZsb3coKTsKKyAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6CisgICAgICAg
IHJldHVybiBsaW5lLT5yaWdodExheW91dE92ZXJmbG93KCk7CisgICAgY2FzZSBCb3R0b21Ub1Rv
cFdyaXRpbmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+Ym90dG9tTGF5b3V0T3ZlcmZsb3co
KTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGxpbmUtPnRv
cExheW91dE92ZXJmbG93KCk7Cit9CisKK2ludCBSZW5kZXJCbG9jazo6YWZ0ZXJTaWRlTGF5b3V0
T3ZlcmZsb3dGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmUpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdN
b2RlOgorICAgICAgICByZXR1cm4gbGluZS0+Ym90dG9tTGF5b3V0T3ZlcmZsb3coKTsKKyAgICBj
YXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6CisgICAgICAgIHJldHVybiBsaW5lLT5yaWdodExh
eW91dE92ZXJmbG93KCk7CisgICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgorICAgICAg
ICByZXR1cm4gbGluZS0+bGVmdExheW91dE92ZXJmbG93KCk7CisgICAgY2FzZSBCb3R0b21Ub1Rv
cFdyaXRpbmdNb2RlOgorICAgICAgICByZXR1cm4gbGluZS0+dG9wTGF5b3V0T3ZlcmZsb3coKTsK
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGxpbmUtPmJvdHRv
bUxheW91dE92ZXJmbG93KCk7Cit9CisKIHZvaWQgUmVuZGVyQmxvY2s6OmRlbGV0ZUVsbGlwc2lz
TGluZUJveGVzKCkKIHsKICAgICBmb3IgKFJvb3RJbmxpbmVCb3gqIGN1cnIgPSBmaXJzdFJvb3RC
b3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRSb290Qm94KCkpCkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAkocmV2aXNpb24gNjkyMjEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDE5ICsxMjcsMjMgQEAgcHVibGljOgogICAgIGludCBi
b3R0b21WaXNpYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNPdmVyZmxvd0NsaXAoKSA/
IGJvdHRvbVZpc3VhbE92ZXJmbG93KCkgOiBzdGQ6Om1heChib3R0b21MYXlvdXRPdmVyZmxvdygp
LCBib3R0b21WaXN1YWxPdmVyZmxvdygpKTsgfQogICAgIGludCBsZWZ0VmlzaWJsZU92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gaGFzT3ZlcmZsb3dDbGlwKCkgPyBsZWZ0VmlzdWFsT3ZlcmZsb3co
KSA6IHN0ZDo6bWluKGxlZnRMYXlvdXRPdmVyZmxvdygpLCBsZWZ0VmlzdWFsT3ZlcmZsb3coKSk7
IH0KICAgICBpbnQgcmlnaHRWaXNpYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNPdmVy
Zmxvd0NsaXAoKSA/IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSA6ICBzdGQ6Om1heChyaWdodExheW91
dE92ZXJmbG93KCksIHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSk7IH0KLSAgICAKKwogICAgIEludFJl
Y3QgbGF5b3V0T3ZlcmZsb3dSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyA/IG1fb3Zl
cmZsb3ctPmxheW91dE92ZXJmbG93UmVjdCgpIDogYm9yZGVyQm94UmVjdCgpOyB9CiAgICAgaW50
IHRvcExheW91dE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdz8gbV9vdmVyZmxv
dy0+dG9wTGF5b3V0T3ZlcmZsb3coKSA6IDA7IH0KICAgICBpbnQgYm90dG9tTGF5b3V0T3ZlcmZs
b3coKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+Ym90dG9tTGF5b3V0
T3ZlcmZsb3coKSA6IGhlaWdodCgpOyB9CiAgICAgaW50IGxlZnRMYXlvdXRPdmVyZmxvdygpIGNv
bnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT5sZWZ0TGF5b3V0T3ZlcmZsb3co
KSA6IDA7IH0KICAgICBpbnQgcmlnaHRMYXlvdXRPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1f
b3ZlcmZsb3cgPyBtX292ZXJmbG93LT5yaWdodExheW91dE92ZXJmbG93KCkgOiB3aWR0aCgpOyB9
CisgICAgaW50IGxvZ2ljYWxMZWZ0TGF5b3V0T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBzdHls
ZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGVmdExheW91dE92ZXJmbG93KCkgOiB0
b3BMYXlvdXRPdmVyZmxvdygpOyB9CisgICAgaW50IGxvZ2ljYWxSaWdodExheW91dE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJp
Z2h0TGF5b3V0T3ZlcmZsb3coKSA6IGJvdHRvbUxheW91dE92ZXJmbG93KCk7IH0KICAgICAKICAg
ICBJbnRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cg
PyBtX292ZXJmbG93LT52aXN1YWxPdmVyZmxvd1JlY3QoKSA6IGJvcmRlckJveFJlY3QoKTsgfQog
ICAgIGludCB0b3BWaXN1YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3c/IG1f
b3ZlcmZsb3ctPnRvcFZpc3VhbE92ZXJmbG93KCkgOiAwOyB9CiAgICAgaW50IGJvdHRvbVZpc3Vh
bE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyA/IG1fb3ZlcmZsb3ctPmJvdHRv
bVZpc3VhbE92ZXJmbG93KCkgOiBoZWlnaHQoKTsgfQogICAgIGludCBsZWZ0VmlzdWFsT3ZlcmZs
b3coKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+bGVmdFZpc3VhbE92
ZXJmbG93KCkgOiAwOyB9CiAgICAgaW50IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+cmlnaHRWaXN1YWxPdmVyZmxvdygpIDogd2lk
dGgoKTsgfQotCisgICAgaW50IGxvZ2ljYWxMZWZ0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGVmdFZpc3VhbE92ZXJm
bG93KCkgOiB0b3BWaXN1YWxPdmVyZmxvdygpOyB9CisgICAgaW50IGxvZ2ljYWxSaWdodFZpc3Vh
bE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSA6IGJvdHRvbVZpc3VhbE92ZXJmbG93KCk7IH0K
KyAgICAKICAgICB2b2lkIGFkZExheW91dE92ZXJmbG93KGNvbnN0IEludFJlY3QmKTsKICAgICB2
b2lkIGFkZFZpc3VhbE92ZXJmbG93KGNvbnN0IEludFJlY3QmKTsKICAgICAK
</data>
<flag name="review"
          id="59765"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>