<?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>124279</bug_id>
          
          <creation_ts>2013-11-13 06:54:42 -0800</creation_ts>
          <short_desc>Factor simple line creation loop to function</short_desc>
          <delta_ts>2013-11-13 07:33:58 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950142</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 06:54:42 -0800</bug_when>
    <thetext>refactor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950145</commentid>
    <comment_count>1</comment_count>
      <attachid>216798</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 07:13:14 -0800</bug_when>
    <thetext>Created attachment 216798
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950147</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-13 07:15:23 -0800</bug_when>
    <thetext>Attachment 216798 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/SimpleLineLayout.cpp&apos;]&quot; exit_code: 1
Source/WebCore/rendering/SimpleLineLayout.cpp:260:  Extra space after ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950156</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 07:33:58 -0800</bug_when>
    <thetext>https://trac.webkit.org/r159194</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216798</attachid>
            <date>2013-11-13 07:13:14 -0800</date>
            <delta_ts>2013-11-13 07:19:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>simple-line-creation-loop.patch</filename>
            <type>text/plain</type>
            <size>16933</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTE5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEzLTExLTEzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBGYWN0b3Igc2ltcGxlIGxpbmUg
Y3JlYXRpb24gbG9vcCB0byBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI0Mjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpTdHlsZTo6U3R5bGUpOgorICAgICAgICAK
KyAgICAgICAgICAgIENhcHR1cmUgc3R5bGUgdGhhdCBhZmZlY3RzIGxpbmUgbGF5b3V0IHRvIGEg
c3RydWN0LgorCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojp0ZXh0V2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6bWVhc3VyZVdvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Y3JlYXRlTGluZVJ1bnMpOgorICAgICAg
ICAKKyAgICAgICAgICAgIEZhY3RvciB0aGUgbGluZSBsb29wIGhlcmUuCisKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OmNyZWF0ZVRleHRSdW5zKToKKwogMjAxMy0xMS0xMiAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBvdmVy
Zmxvdy13cmFwOmJyZWFrLXdvcmQgb24gc2ltcGxlIGxpbmUgcGF0aApJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gMTU5MTky
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDMsNiArMjAzLDI4IEBAIGJvb2wgY2FuVXNlRm9yKGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyYgZmwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RydWN0IFN0eWxlIHsKKyAg
ICBTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCisgICAgICAgIDogZm9udChzdHlsZS5m
b250KCkpCisgICAgICAgICwgdGV4dEFsaWduKHN0eWxlLnRleHRBbGlnbigpKQorICAgICAgICAs
IGNvbGxhcHNlV2hpdGVzcGFjZShzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSkKKyAgICAgICAg
LCBwcmVzZXJ2ZU5ld2xpbmUoc3R5bGUucHJlc2VydmVOZXdsaW5lKCkpCisgICAgICAgICwgd3Jh
cExpbmVzKHN0eWxlLmF1dG9XcmFwKCkpCisgICAgICAgICwgYnJlYWtXb3JkT25PdmVyZmxvdyhz
dHlsZS5vdmVyZmxvd1dyYXAoKSA9PSBCcmVha092ZXJmbG93V3JhcCAmJiAod3JhcExpbmVzIHx8
IHByZXNlcnZlTmV3bGluZSkpCisgICAgICAgICwgc3BhY2VXaWR0aChmb250LndpZHRoKFRleHRS
dW4oJnNwYWNlLCAxKSkpCisgICAgICAgICwgdGFiV2lkdGgoY29sbGFwc2VXaGl0ZXNwYWNlID8g
MCA6IHN0eWxlLnRhYlNpemUoKSkKKyAgICB7CisgICAgfQorICAgIGNvbnN0IEZvbnQmIGZvbnQ7
CisgICAgRVRleHRBbGlnbiB0ZXh0QWxpZ247CisgICAgYm9vbCBjb2xsYXBzZVdoaXRlc3BhY2U7
CisgICAgYm9vbCBwcmVzZXJ2ZU5ld2xpbmU7CisgICAgYm9vbCB3cmFwTGluZXM7CisgICAgYm9v
bCBicmVha1dvcmRPbk92ZXJmbG93OworICAgIGZsb2F0IHNwYWNlV2lkdGg7CisgICAgdW5zaWdu
ZWQgdGFiV2lkdGg7Cit9OworCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNXaGl0ZXNwYWNlKFVDaGFy
IGNoYXJhY3RlciwgYm9vbCBwcmVzZXJ2ZU5ld2xpbmUpCiB7CiAgICAgcmV0dXJuIGNoYXJhY3Rl
ciA9PSAnICcgfHwgY2hhcmFjdGVyID09ICdcdCcgfHwgKCFwcmVzZXJ2ZU5ld2xpbmUgJiYgY2hh
cmFjdGVyID09ICdcbicpOwpAQCAtMjE5LDMzICsyNDEsMTM2IEBAIHN0YXRpYyBpbmxpbmUgdW5z
aWduZWQgc2tpcFdoaXRlc3BhY2VzKGMKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+Ci1zdGF0aWMgZmxvYXQgdGV4dFdpZHRoKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlclRl
eHQsIGNvbnN0IENoYXJhY3RlclR5cGUqIHRleHQsIHVuc2lnbmVkIHRleHRMZW5ndGgsIHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIHRvLCBmbG9hdCB4UG9zaXRpb24sIGNvbnN0IEZvbnQmIGZvbnQs
IGZsb2F0IHRhYldpZHRoKQorc3RhdGljIGZsb2F0IHRleHRXaWR0aChjb25zdCBSZW5kZXJUZXh0
JiByZW5kZXJUZXh0LCBjb25zdCBDaGFyYWN0ZXJUeXBlKiB0ZXh0LCB1bnNpZ25lZCB0ZXh0TGVu
Z3RoLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgZmxvYXQgeFBvc2l0aW9uLCBjb25zdCBT
dHlsZSYgc3R5bGUpCiB7Ci0gICAgaWYgKGZvbnQuaXNGaXhlZFBpdGNoKCkgfHwgKCFmcm9tICYm
IHRvID09IHRleHRMZW5ndGgpKQotICAgICAgICByZXR1cm4gcmVuZGVyVGV4dC53aWR0aChmcm9t
LCB0byAtIGZyb20sIGZvbnQsIHhQb3NpdGlvbiwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgaWYg
KHN0eWxlLmZvbnQuaXNGaXhlZFBpdGNoKCkgfHwgKCFmcm9tICYmIHRvID09IHRleHRMZW5ndGgp
KQorICAgICAgICByZXR1cm4gcmVuZGVyVGV4dC53aWR0aChmcm9tLCB0byAtIGZyb20sIHN0eWxl
LmZvbnQsIHhQb3NpdGlvbiwgbnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICBUZXh0UnVuIHJ1bih0
ZXh0ICsgZnJvbSwgdG8gLSBmcm9tKTsKICAgICBydW4uc2V0WFBvcyh4UG9zaXRpb24pOwogICAg
IHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5ndGggLSBmcm9tKTsKLSAgICBydW4uc2V0
VGFiU2l6ZSghIXRhYldpZHRoLCB0YWJXaWR0aCk7CisgICAgcnVuLnNldFRhYlNpemUoISFzdHls
ZS50YWJXaWR0aCwgc3R5bGUudGFiV2lkdGgpOwogCiAgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJz
TGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKIAotICAgIHJldHVybiBmb250LndpZHRoKHJ1bik7
CisgICAgcmV0dXJuIHN0eWxlLmZvbnQud2lkdGgocnVuKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+Ci1zdGF0aWMgZmxvYXQgbWVhc3VyZVdvcmQoY29uc3QgUmVuZGVy
VGV4dCYgdGV4dFJlbmRlcmVyLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiB0ZXh0LCB1bnNpZ25lZCB0
ZXh0TGVuZ3RoLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBmbG9hdCBsaW5lV2lkdGgs
IGJvb2wgY29sbGFwc2VXaGl0ZXNwYWNlLCBjb25zdCBGb250JiBmb250LCBmbG9hdCB0YWJXaWR0
aCwgZmxvYXQgc3BhY2VXaWR0aCkKK3N0YXRpYyBmbG9hdCBtZWFzdXJlV29yZCggdW5zaWduZWQg
c3RhcnQsIHVuc2lnbmVkIGVuZCwgZmxvYXQgbGluZVdpZHRoLCBjb25zdCBTdHlsZSYgc3R5bGUs
IGNvbnN0IENoYXJhY3RlclR5cGUqIHRleHQsIHVuc2lnbmVkIHRleHRMZW5ndGgsIGNvbnN0IFJl
bmRlclRleHQmIHRleHRSZW5kZXJlcikKIHsKICAgICBpZiAodGV4dFtzdGFydF0gPT0gJyAnICYm
IGVuZCA9PSBzdGFydCArIDEpCi0gICAgICAgIHJldHVybiBzcGFjZVdpZHRoOworICAgICAgICBy
ZXR1cm4gc3R5bGUuc3BhY2VXaWR0aDsKIAotICAgIGJvb2wgbWVhc3VyZVdpdGhFbmRTcGFjZSA9
IGNvbGxhcHNlV2hpdGVzcGFjZSAmJiBlbmQgPCB0ZXh0TGVuZ3RoICYmIHRleHRbZW5kXSA9PSAn
ICc7CisgICAgYm9vbCBtZWFzdXJlV2l0aEVuZFNwYWNlID0gc3R5bGUuY29sbGFwc2VXaGl0ZXNw
YWNlICYmIGVuZCA8IHRleHRMZW5ndGggJiYgdGV4dFtlbmRdID09ICcgJzsKICAgICBpZiAobWVh
c3VyZVdpdGhFbmRTcGFjZSkKICAgICAgICAgKytlbmQ7Ci0gICAgZmxvYXQgd2lkdGggPSB0ZXh0
V2lkdGgodGV4dFJlbmRlcmVyLCB0ZXh0LCB0ZXh0TGVuZ3RoLCBzdGFydCwgZW5kLCBsaW5lV2lk
dGgsIGZvbnQsIGNvbGxhcHNlV2hpdGVzcGFjZSA/IDAgOiB0YWJXaWR0aCk7CisgICAgZmxvYXQg
d2lkdGggPSB0ZXh0V2lkdGgodGV4dFJlbmRlcmVyLCB0ZXh0LCB0ZXh0TGVuZ3RoLCBzdGFydCwg
ZW5kLCBsaW5lV2lkdGgsIHN0eWxlKTsKKworICAgIHJldHVybiBtZWFzdXJlV2l0aEVuZFNwYWNl
ID8gd2lkdGggLSBzdHlsZS5zcGFjZVdpZHRoIDogd2lkdGg7Cit9CiAKLSAgICByZXR1cm4gbWVh
c3VyZVdpdGhFbmRTcGFjZSA/IHdpZHRoIC0gc3BhY2VXaWR0aCA6IHdpZHRoOwordGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CitWZWN0b3I8UnVuLCA0PiBjcmVhdGVMaW5lUnVucyh1
bnNpZ25lZCBsaW5lU3RhcnQsIExpbmVXaWR0aCYgbGluZVdpZHRoLCBMYXp5TGluZUJyZWFrSXRl
cmF0b3ImIGxpbmVCcmVha0l0ZXJhdG9yLCBjb25zdCBTdHlsZSYgc3R5bGUsIGNvbnN0IENoYXJh
Y3RlclR5cGUqIHRleHQsIHVuc2lnbmVkIHRleHRMZW5ndGgsIGNvbnN0IFJlbmRlclRleHQmIHRl
eHRSZW5kZXJlcikKK3sKKyAgICBWZWN0b3I8UnVuLCA0PiBsaW5lUnVuczsKKyAgICBsaW5lUnVu
cy51bmNoZWNrZWRBcHBlbmQoUnVuKGxpbmVTdGFydCwgMCkpOworCisgICAgdW5zaWduZWQgd29y
ZEVuZCA9IGxpbmVTdGFydDsKKyAgICB3aGlsZSAod29yZEVuZCA8IHRleHRMZW5ndGgpIHsKKyAg
ICAgICAgQVNTRVJUKCFzdHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgfHwgIWlzV2hpdGVzcGFjZSh0
ZXh0W3dvcmRFbmRdLCBzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUpKTsKKworICAgICAgICB1bnNpZ25l
ZCB3b3JkU3RhcnQgPSB3b3JkRW5kOworCisgICAgICAgIGlmIChzdHlsZS5wcmVzZXJ2ZU5ld2xp
bmUgJiYgdGV4dFt3b3JkU3RhcnRdID09ICdcbicpIHsKKyAgICAgICAgICAgICsrd29yZEVuZDsK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNyZWF0ZXMgYSBkZWRpY2F0ZWQgcnVuIGZvciBu
ZXdsaW5lLiBUaGlzIGlzIHdhc3RlZnVsIGFuZCB1bm5lY2Vzc2FyeSBidXQgaXQga2VlcHMgdGVz
dCByZXN1bHRzIHVuY2hhbmdlZC4KKyAgICAgICAgICAgIGlmICh3b3JkU3RhcnQgPiBsaW5lU3Rh
cnQpCisgICAgICAgICAgICAgICAgbGluZVJ1bnMuYXBwZW5kKFJ1bih3b3JkU3RhcnQsIGxpbmVS
dW5zLmxhc3QoKS5yaWdodCkpOworICAgICAgICAgICAgbGluZVJ1bnMubGFzdCgpLnJpZ2h0ID0g
bGluZVJ1bnMubGFzdCgpLmxlZnQ7CisgICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkuZW5kID0g
d29yZEVuZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFz
dHlsZS5jb2xsYXBzZVdoaXRlc3BhY2UgJiYgaXNXaGl0ZXNwYWNlKHRleHRbd29yZFN0YXJ0XSwg
c3R5bGUucHJlc2VydmVOZXdsaW5lKSkKKyAgICAgICAgICAgIHdvcmRFbmQgPSB3b3JkU3RhcnQg
KyAxOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3b3JkRW5kID0gbmV4dEJyZWFrYWJsZVBv
c2l0aW9uPENoYXJhY3RlclR5cGUsIGZhbHNlPihsaW5lQnJlYWtJdGVyYXRvciwgdGV4dCwgdGV4
dExlbmd0aCwgd29yZFN0YXJ0ICsgMSk7CisKKyAgICAgICAgYm9vbCB3b3JkSXNQcmVjZWRlZEJ5
V2hpdGVzcGFjZSA9IHN0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZSAmJiB3b3JkU3RhcnQgPiBsaW5l
U3RhcnQgJiYgaXNXaGl0ZXNwYWNlKHRleHRbd29yZFN0YXJ0IC0gMV0sIHN0eWxlLnByZXNlcnZl
TmV3bGluZSk7CisgICAgICAgIGlmICh3b3JkSXNQcmVjZWRlZEJ5V2hpdGVzcGFjZSkKKyAgICAg
ICAgICAgIC0td29yZFN0YXJ0OworCisgICAgICAgIGZsb2F0IHdvcmRXaWR0aCA9IG1lYXN1cmVX
b3JkKHdvcmRTdGFydCwgd29yZEVuZCwgbGluZVdpZHRoLmNvbW1pdHRlZFdpZHRoKCksIHN0eWxl
LCB0ZXh0LCB0ZXh0TGVuZ3RoLCB0ZXh0UmVuZGVyZXIpOworCisgICAgICAgIGxpbmVXaWR0aC5h
ZGRVbmNvbW1pdHRlZFdpZHRoKHdvcmRXaWR0aCk7CisKKyAgICAgICAgaWYgKHN0eWxlLndyYXBM
aW5lcykgeworICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgbmV4dCBsaW5lIGlmIHRoZSBjdXJy
ZW50IG9uZSBpcyBmdWxsIGFuZCB3ZSBoYXZlIHNvbWV0aGluZyBvbiBpdC4KKyAgICAgICAgICAg
IGlmICghbGluZVdpZHRoLmZpdHNPbkxpbmUoKSAmJiBsaW5lV2lkdGguY29tbWl0dGVkV2lkdGgo
KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBmb3Ig
d2hpdGUtc3BhY2U6IHByZS13cmFwIHdoaWNoIHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcgZm9y
IGVuZCBsaW5lIHdoaXRlc3BhY2UuCisgICAgICAgICAgICBpZiAoIXN0eWxlLmNvbGxhcHNlV2hp
dGVzcGFjZSAmJiBsaW5lV2lkdGguZml0c09uTGluZSgpICYmIHdvcmRFbmQgPCB0ZXh0TGVuZ3Ro
ICYmIGlzV2hpdGVzcGFjZSh0ZXh0W3dvcmRFbmRdLCBzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUpKSB7
CisgICAgICAgICAgICAgICAgLy8gTG9vayBhaGVhZCB0byBzZWUgaWYgdGhlIG5leHQgd2hpdGVz
cGFjZSB3b3VsZCBmaXQuCisgICAgICAgICAgICAgICAgZmxvYXQgd2hpdGVzcGFjZVdpZHRoID0g
dGV4dFdpZHRoKHRleHRSZW5kZXJlciwgdGV4dCwgdGV4dExlbmd0aCwgd29yZEVuZCwgd29yZEVu
ZCArIDEsIGxpbmVXaWR0aC5jb21taXR0ZWRXaWR0aCgpLCBzdHlsZSk7CisgICAgICAgICAgICAg
ICAgaWYgKCFsaW5lV2lkdGguZml0c09uTGluZUluY2x1ZGluZ0V4dHJhV2lkdGgod2hpdGVzcGFj
ZVdpZHRoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBub3QgZWF0IGF3YXkgdGhlIHJl
c3Qgb2YgdGhlIHdoaXRlc3BhY2Ugb24gdGhlIGxpbmUuCisgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIHdoaXRlc3BhY2VFbmQgPSBza2lwV2hpdGVzcGFjZXModGV4dCwgd29yZEVuZCwgdGV4
dExlbmd0aCwgc3R5bGUucHJlc2VydmVOZXdsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgLy8g
SW5jbHVkZSBuZXdsaW5lIHRvIHRoaXMgcnVuIHRvby4KKyAgICAgICAgICAgICAgICAgICAgaWYg
KHdoaXRlc3BhY2VFbmQgPCB0ZXh0TGVuZ3RoICYmIHRleHRbd2hpdGVzcGFjZUVuZF0gPT0gJ1xu
JykKKyAgICAgICAgICAgICAgICAgICAgICAgICsrd2hpdGVzcGFjZUVuZDsKKyAgICAgICAgICAg
ICAgICAgICAgbGluZVJ1bnMubGFzdCgpLmVuZCA9IHdoaXRlc3BhY2VFbmQ7CisgICAgICAgICAg
ICAgICAgICAgIGxpbmVSdW5zLmxhc3QoKS5yaWdodCA9IGxpbmVXaWR0aC5hdmFpbGFibGVXaWR0
aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAod29yZFN0YXJ0ID4gbGluZVJ1bnMu
bGFzdCgpLmVuZCkgeworICAgICAgICAgICAgLy8gVGhlcmUgd2VyZSBtb3JlIHRoYW4gb25lIGNv
bnNlY3V0aXZlIHdoaXRlc3BhY2UuCisgICAgICAgICAgICBBU1NFUlQod29yZElzUHJlY2VkZWRC
eVdoaXRlc3BhY2UpOworICAgICAgICAgICAgLy8gSW5jbHVkZSBzcGFjZSB0byB0aGUgZW5kIG9m
IHRoZSBwcmV2aW91cyBydW4uCisgICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkuZW5kKys7Cisg
ICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkucmlnaHQgKz0gc3R5bGUuc3BhY2VXaWR0aDsKKyAg
ICAgICAgICAgIC8vIFN0YXJ0IGEgbmV3IHJ1biBvbiB0aGUgc2FtZSBsaW5lLgorICAgICAgICAg
ICAgbGluZVJ1bnMuYXBwZW5kKFJ1bih3b3JkU3RhcnQgKyAxLCBsaW5lUnVucy5sYXN0KCkucmln
aHQpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbGluZVdpZHRoLmZpdHNPbkxpbmUoKSAm
JiBzdHlsZS5icmVha1dvcmRPbk92ZXJmbG93KSB7CisgICAgICAgICAgICAvLyBCYWNrdHJhY2sg
YW5kIHN0YXJ0IG1lYXN1cmluZyBjaGFyYWN0ZXItYnktY2hhcmFjdGVyLgorICAgICAgICAgICAg
bGluZVdpZHRoLmFkZFVuY29tbWl0dGVkV2lkdGgoLWxpbmVXaWR0aC51bmNvbW1pdHRlZFdpZHRo
KCkpOworICAgICAgICAgICAgdW5zaWduZWQgc3BsaXRFbmQgPSB3b3JkU3RhcnQ7CisgICAgICAg
ICAgICBmb3IgKDsgc3BsaXRFbmQgPCB3b3JkRW5kOyArK3NwbGl0RW5kKSB7CisgICAgICAgICAg
ICAgICAgZmxvYXQgY2hhcldpZHRoID0gdGV4dFdpZHRoKHRleHRSZW5kZXJlciwgdGV4dCwgdGV4
dExlbmd0aCwgc3BsaXRFbmQsIHNwbGl0RW5kICsgMSwgMCwgc3R5bGUpOworICAgICAgICAgICAg
ICAgIGxpbmVXaWR0aC5hZGRVbmNvbW1pdHRlZFdpZHRoKGNoYXJXaWR0aCk7CisgICAgICAgICAg
ICAgICAgaWYgKCFsaW5lV2lkdGguZml0c09uTGluZSgpICYmIHNwbGl0RW5kID4gbGluZVN0YXJ0
KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBsaW5lV2lkdGgu
Y29tbWl0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkuZW5k
ID0gc3BsaXRFbmQ7CisgICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkucmlnaHQgPSBsaW5lV2lk
dGguY29tbWl0dGVkV2lkdGgoKTsKKyAgICAgICAgICAgIC8vIFRvIG1hdGNoIGxpbmUgYm94ZXMs
IHNldCBzaW5nbGUtc3BhY2Utb25seSBsaW5lIHdpZHRoIHRvIHplcm8uCisgICAgICAgICAgICBp
ZiAodGV4dFtsaW5lUnVucy5sYXN0KCkuc3RhcnRdID09ICcgJyAmJiBsaW5lUnVucy5sYXN0KCku
c3RhcnQgKyAxID09IGxpbmVSdW5zLmxhc3QoKS5lbmQpCisgICAgICAgICAgICAgICAgbGluZVJ1
bnMubGFzdCgpLnJpZ2h0ID0gbGluZVJ1bnMubGFzdCgpLmxlZnQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVXaWR0aC5jb21taXQoKTsKKworICAgICAgICBs
aW5lUnVucy5sYXN0KCkucmlnaHQgPSBsaW5lV2lkdGguY29tbWl0dGVkV2lkdGgoKTsKKyAgICAg
ICAgbGluZVJ1bnMubGFzdCgpLmVuZCA9IHdvcmRFbmQ7CisKKyAgICAgICAgaWYgKHN0eWxlLmNv
bGxhcHNlV2hpdGVzcGFjZSkKKyAgICAgICAgICAgIHdvcmRFbmQgPSBza2lwV2hpdGVzcGFjZXMo
dGV4dCwgd29yZEVuZCwgdGV4dExlbmd0aCwgc3R5bGUucHJlc2VydmVOZXdsaW5lKTsKKworICAg
ICAgICBpZiAoIWxpbmVXaWR0aC5maXRzT25MaW5lKCkgJiYgc3R5bGUud3JhcExpbmVzKSB7Cisg
ICAgICAgICAgICAvLyBUaGUgZmlyc3QgcnVuIG9uIHRoZSBsaW5lIG92ZXJmbG93cy4KKyAgICAg
ICAgICAgIEFTU0VSVChsaW5lUnVucy5zaXplKCkgPT0gMSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbGluZVJ1bnM7CiB9CiAKIHN0YXRpYyBmbG9h
dCBjb21wdXRlTGluZUxlZnQoRVRleHRBbGlnbiB0ZXh0QWxpZ24sIGZsb2F0IHJlbWFpbmluZ1dp
ZHRoKQpAQCAtMjgyLDEzNyArNDA3LDMwIEBAIHN0YXRpYyB2b2lkIGFkanVzdFJ1bk9mZnNldHMo
VmVjdG9yPFJ1biwKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogdm9pZCBjcmVh
dGVUZXh0UnVucyhMYXlvdXQ6OlJ1blZlY3RvciYgcnVucywgdW5zaWduZWQmIGxpbmVDb3VudCwg
UmVuZGVyQmxvY2tGbG93JiBmbG93LCBSZW5kZXJUZXh0JiB0ZXh0UmVuZGVyZXIpCiB7Ci0gICAg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gZmxvdy5zdHlsZSgpOwotCi0gICAgLy8gVGhlc2Ug
cHJvcGVydGllcyBhcmUgc3VwcG9ydGVkLgotICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBzdHlsZS5m
b250KCk7Ci0gICAgdW5zaWduZWQgdGFiV2lkdGggPSBzdHlsZS50YWJTaXplKCk7Ci0gICAgRVRl
eHRBbGlnbiB0ZXh0QWxpZ24gPSBzdHlsZS50ZXh0QWxpZ24oKTsgLy8gTm90ICdqdXN0aWZ5Jy4K
LSAgICBib29sIGNvbGxhcHNlV2hpdGVzcGFjZSA9IHN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgp
OwotICAgIGJvb2wgcHJlc2VydmVOZXdsaW5lID0gc3R5bGUucHJlc2VydmVOZXdsaW5lKCk7Ci0g
ICAgYm9vbCB3cmFwTGluZXMgPSBzdHlsZS5hdXRvV3JhcCgpOwotICAgIGJvb2wgYnJlYWtXb3Jk
T25PdmVyZmxvdyA9IHN0eWxlLm92ZXJmbG93V3JhcCgpID09IEJyZWFrT3ZlcmZsb3dXcmFwICYm
ICh3cmFwTGluZXMgfHwgcHJlc2VydmVOZXdsaW5lKTsKKyAgICBjb25zdCBTdHlsZSBzdHlsZShm
bG93LnN0eWxlKCkpOwogCiAgICAgY29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4dCA9IHRleHRSZW5k
ZXJlci50ZXh0KCktPmdldENoYXJhY3RlcnM8Q2hhcmFjdGVyVHlwZT4oKTsKICAgICBjb25zdCB1
bnNpZ25lZCB0ZXh0TGVuZ3RoID0gdGV4dFJlbmRlcmVyLnRleHRMZW5ndGgoKTsKIAotICAgIGZs
b2F0IHNwYWNlV2lkdGggPSBmb250LndpZHRoKFRleHRSdW4oJnNwYWNlLCAxKSk7Ci0gICAgTGF6
eUxpbmVCcmVha0l0ZXJhdG9yIGxpbmVCcmVha0l0ZXJhdG9yKHRleHRSZW5kZXJlci50ZXh0KCks
IHN0eWxlLmxvY2FsZSgpKTsKKyAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IgbGluZUJyZWFrSXRl
cmF0b3IodGV4dFJlbmRlcmVyLnRleHQoKSwgZmxvdy5zdHlsZSgpLmxvY2FsZSgpKTsKIAogICAg
IHVuc2lnbmVkIGxpbmVFbmQgPSAwOwogICAgIHdoaWxlIChsaW5lRW5kIDwgdGV4dExlbmd0aCkg
ewotICAgICAgICBpZiAoY29sbGFwc2VXaGl0ZXNwYWNlKQotICAgICAgICAgICAgbGluZUVuZCA9
IHNraXBXaGl0ZXNwYWNlcyh0ZXh0LCBsaW5lRW5kLCB0ZXh0TGVuZ3RoLCBwcmVzZXJ2ZU5ld2xp
bmUpOwotICAgICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBsaW5lRW5kOwotICAgICAgICB1bnNp
Z25lZCB3b3JkRW5kID0gbGluZUVuZDsKLSAgICAgICAgTGluZVdpZHRoIGxpbmVXaWR0aChmbG93
LCBmYWxzZSwgRG9Ob3RJbmRlbnRUZXh0KTsKKyAgICAgICAgaWYgKHN0eWxlLmNvbGxhcHNlV2hp
dGVzcGFjZSkKKyAgICAgICAgICAgIGxpbmVFbmQgPSBza2lwV2hpdGVzcGFjZXModGV4dCwgbGlu
ZUVuZCwgdGV4dExlbmd0aCwgc3R5bGUucHJlc2VydmVOZXdsaW5lKTsKIAotICAgICAgICBWZWN0
b3I8UnVuLCA0PiBsaW5lUnVuczsKLSAgICAgICAgbGluZVJ1bnMudW5jaGVja2VkQXBwZW5kKFJ1
bihsaW5lU3RhcnQsIDApKTsKLQotICAgICAgICB3aGlsZSAod29yZEVuZCA8IHRleHRMZW5ndGgp
IHsKLSAgICAgICAgICAgIEFTU0VSVCghY29sbGFwc2VXaGl0ZXNwYWNlIHx8ICFpc1doaXRlc3Bh
Y2UodGV4dFt3b3JkRW5kXSwgcHJlc2VydmVOZXdsaW5lKSk7Ci0KLSAgICAgICAgICAgIHVuc2ln
bmVkIHdvcmRTdGFydCA9IHdvcmRFbmQ7Ci0KLSAgICAgICAgICAgIGlmIChwcmVzZXJ2ZU5ld2xp
bmUgJiYgdGV4dFt3b3JkU3RhcnRdID09ICdcbicpIHsKLSAgICAgICAgICAgICAgICArK3dvcmRF
bmQ7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY3JlYXRlcyBhIGRlZGljYXRlZCBy
dW4gZm9yIG5ld2xpbmUuIFRoaXMgaXMgd2FzdGVmdWwgYW5kIHVubmVjZXNzYXJ5IGJ1dCBpdCBr
ZWVwcyB0ZXN0IHJlc3VsdHMgdW5jaGFuZ2VkLgotICAgICAgICAgICAgICAgIGlmICh3b3JkU3Rh
cnQgPiBsaW5lU3RhcnQpCi0gICAgICAgICAgICAgICAgICAgIGxpbmVSdW5zLmFwcGVuZChSdW4o
bGluZUVuZCwgbGluZVJ1bnMubGFzdCgpLnJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgbGluZVJ1
bnMubGFzdCgpLnJpZ2h0ID0gbGluZVJ1bnMubGFzdCgpLmxlZnQ7Ci0gICAgICAgICAgICAgICAg
bGluZVJ1bnMubGFzdCgpLmVuZCA9IGxpbmVFbmQgKyAxOwotICAgICAgICAgICAgICAgIGxpbmVF
bmQgPSB3b3JkRW5kOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBpZiAoIWNvbGxhcHNlV2hpdGVzcGFjZSAmJiBpc1doaXRlc3BhY2UodGV4dFt3
b3JkU3RhcnRdLCBwcmVzZXJ2ZU5ld2xpbmUpKQotICAgICAgICAgICAgICAgIHdvcmRFbmQgPSB3
b3JkU3RhcnQgKyAxOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHdvcmRFbmQg
PSBuZXh0QnJlYWthYmxlUG9zaXRpb248Q2hhcmFjdGVyVHlwZSwgZmFsc2U+KGxpbmVCcmVha0l0
ZXJhdG9yLCB0ZXh0LCB0ZXh0TGVuZ3RoLCB3b3JkU3RhcnQgKyAxKTsKLQotICAgICAgICAgICAg
Ym9vbCB3b3JkSXNQcmVjZWRlZEJ5V2hpdGVzcGFjZSA9IGNvbGxhcHNlV2hpdGVzcGFjZSAmJiB3
b3JkU3RhcnQgPiBsaW5lU3RhcnQgJiYgaXNXaGl0ZXNwYWNlKHRleHRbd29yZFN0YXJ0IC0gMV0s
IHByZXNlcnZlTmV3bGluZSk7Ci0gICAgICAgICAgICBpZiAod29yZElzUHJlY2VkZWRCeVdoaXRl
c3BhY2UpCi0gICAgICAgICAgICAgICAgLS13b3JkU3RhcnQ7Ci0KLSAgICAgICAgICAgIGZsb2F0
IHdvcmRXaWR0aCA9IG1lYXN1cmVXb3JkKHRleHRSZW5kZXJlciwgdGV4dCwgdGV4dExlbmd0aCwg
d29yZFN0YXJ0LCB3b3JkRW5kLCBsaW5lV2lkdGguY29tbWl0dGVkV2lkdGgoKSwgY29sbGFwc2VX
aGl0ZXNwYWNlLCBmb250LCB0YWJXaWR0aCwgc3BhY2VXaWR0aCk7Ci0KLSAgICAgICAgICAgIGxp
bmVXaWR0aC5hZGRVbmNvbW1pdHRlZFdpZHRoKHdvcmRXaWR0aCk7Ci0KLSAgICAgICAgICAgIGlm
ICh3cmFwTGluZXMpIHsKLSAgICAgICAgICAgICAgICAvLyBNb3ZlIHRvIHRoZSBuZXh0IGxpbmUg
aWYgdGhlIGN1cnJlbnQgb25lIGlzIGZ1bGwgYW5kIHdlIGhhdmUgc29tZXRoaW5nIG9uIGl0Lgot
ICAgICAgICAgICAgICAgIGlmICghbGluZVdpZHRoLmZpdHNPbkxpbmUoKSAmJiBsaW5lV2lkdGgu
Y29tbWl0dGVkV2lkdGgoKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAg
ICAgICAgICAvLyBUaGlzIGlzIGZvciB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgd2hpY2ggcmVxdWly
ZXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgZW5kIGxpbmUgd2hpdGVzcGFjZS4KLSAgICAgICAgICAg
ICAgICBpZiAoIWNvbGxhcHNlV2hpdGVzcGFjZSAmJiBsaW5lV2lkdGguZml0c09uTGluZSgpICYm
IHdvcmRFbmQgPCB0ZXh0TGVuZ3RoICYmIGlzV2hpdGVzcGFjZSh0ZXh0W3dvcmRFbmRdLCBwcmVz
ZXJ2ZU5ld2xpbmUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIExvb2sgYWhlYWQgdG8gc2Vl
IGlmIHRoZSBuZXh0IHdoaXRlc3BhY2Ugd291bGQgZml0LgotICAgICAgICAgICAgICAgICAgICBm
bG9hdCB3aGl0ZXNwYWNlV2lkdGggPSB0ZXh0V2lkdGgodGV4dFJlbmRlcmVyLCB0ZXh0LCB0ZXh0
TGVuZ3RoLCB3b3JkRW5kLCB3b3JkRW5kICsgMSwgbGluZVdpZHRoLmNvbW1pdHRlZFdpZHRoKCks
IGZvbnQsIHRhYldpZHRoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFsaW5lV2lkdGguZml0
c09uTGluZUluY2x1ZGluZ0V4dHJhV2lkdGgod2hpdGVzcGFjZVdpZHRoKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgbm90IGVhdCBhd2F5IHRoZSByZXN0IG9mIHRoZSB3aGl0ZXNw
YWNlIG9uIHRoZSBsaW5lLgotICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd2hpdGVz
cGFjZUVuZCA9IHNraXBXaGl0ZXNwYWNlcyh0ZXh0LCB3b3JkRW5kLCB0ZXh0TGVuZ3RoLCBwcmVz
ZXJ2ZU5ld2xpbmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5jbHVkZSBuZXdsaW5l
IHRvIHRoaXMgcnVuIHRvby4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aGl0ZXNwYWNl
RW5kIDwgdGV4dExlbmd0aCAmJiB0ZXh0W3doaXRlc3BhY2VFbmRdID09ICdcbicpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKyt3aGl0ZXNwYWNlRW5kOwotICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZVJ1bnMubGFzdCgpLmVuZCA9IHdoaXRlc3BhY2VFbmQ7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkucmlnaHQgPSBsaW5lV2lkdGguYXZhaWxhYmxlV2lk
dGgoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVFbmQgPSB3aGl0ZXNwYWNlRW5kOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh3b3JkU3Rh
cnQgPiBsaW5lRW5kKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlcmUgd2VyZSBtb3JlIHRoYW4g
b25lIGNvbnNlY3V0aXZlIHdoaXRlc3BhY2UuCi0gICAgICAgICAgICAgICAgQVNTRVJUKHdvcmRJ
c1ByZWNlZGVkQnlXaGl0ZXNwYWNlKTsKLSAgICAgICAgICAgICAgICAvLyBJbmNsdWRlIHNwYWNl
IHRvIHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIHJ1bi4KLSAgICAgICAgICAgICAgICBsaW5lUnVu
cy5sYXN0KCkuZW5kKys7Ci0gICAgICAgICAgICAgICAgbGluZVJ1bnMubGFzdCgpLnJpZ2h0ICs9
IHNwYWNlV2lkdGg7Ci0gICAgICAgICAgICAgICAgLy8gU3RhcnQgYSBuZXcgcnVuIG9uIHRoZSBz
YW1lIGxpbmUuCi0gICAgICAgICAgICAgICAgbGluZVJ1bnMuYXBwZW5kKFJ1bih3b3JkU3RhcnQg
KyAxLCBsaW5lUnVucy5sYXN0KCkucmlnaHQpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgaWYgKCFsaW5lV2lkdGguZml0c09uTGluZSgpICYmIGJyZWFrV29yZE9uT3ZlcmZsb3cpIHsK
LSAgICAgICAgICAgICAgICAvLyBCYWNrdHJhY2sgYW5kIHN0YXJ0IG1lYXN1cmluZyBjaGFyYWN0
ZXItYnktY2hhcmFjdGVyLgotICAgICAgICAgICAgICAgIGxpbmVXaWR0aC5hZGRVbmNvbW1pdHRl
ZFdpZHRoKC1saW5lV2lkdGgudW5jb21taXR0ZWRXaWR0aCgpKTsKLSAgICAgICAgICAgICAgICB1
bnNpZ25lZCBzcGxpdEVuZCA9IHdvcmRTdGFydDsKLSAgICAgICAgICAgICAgICBmb3IgKDsgc3Bs
aXRFbmQgPCB3b3JkRW5kOyArK3NwbGl0RW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZsb2F0
IGNoYXJXaWR0aCA9IHRleHRXaWR0aCh0ZXh0UmVuZGVyZXIsIHRleHQsIHRleHRMZW5ndGgsIHNw
bGl0RW5kLCBzcGxpdEVuZCArIDEsIDAsIGZvbnQsIHRhYldpZHRoKTsKLSAgICAgICAgICAgICAg
ICAgICAgbGluZVdpZHRoLmFkZFVuY29tbWl0dGVkV2lkdGgoY2hhcldpZHRoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKCFsaW5lV2lkdGguZml0c09uTGluZSgpICYmIHNwbGl0RW5kID4gbGlu
ZVN0YXJ0KQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgIGxpbmVXaWR0aC5jb21taXQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgbGluZVJ1bnMubGFzdCgpLmVuZCA9IHNwbGl0RW5kOwotICAgICAgICAgICAgICAgIGxpbmVS
dW5zLmxhc3QoKS5yaWdodCA9IGxpbmVXaWR0aC5jb21taXR0ZWRXaWR0aCgpOwotICAgICAgICAg
ICAgICAgIGxpbmVFbmQgPSBzcGxpdEVuZDsKLSAgICAgICAgICAgICAgICAvLyBUbyBtYXRjaCBs
aW5lIGJveGVzLCBzZXQgc2luZ2xlLXNwYWNlLW9ubHkgbGluZSB3aWR0aCB0byB6ZXJvLgotICAg
ICAgICAgICAgICAgIGlmICh0ZXh0W2xpbmVSdW5zLmxhc3QoKS5zdGFydF0gPT0gJyAnICYmIGxp
bmVSdW5zLmxhc3QoKS5zdGFydCArIDEgPT0gbGluZVJ1bnMubGFzdCgpLmVuZCkKLSAgICAgICAg
ICAgICAgICAgICAgbGluZVJ1bnMubGFzdCgpLnJpZ2h0ID0gbGluZVJ1bnMubGFzdCgpLmxlZnQ7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxp
bmVXaWR0aC5jb21taXQoKTsKKyAgICAgICAgdW5zaWduZWQgbGluZVN0YXJ0ID0gbGluZUVuZDsK
IAotICAgICAgICAgICAgbGluZVJ1bnMubGFzdCgpLnJpZ2h0ID0gbGluZVdpZHRoLmNvbW1pdHRl
ZFdpZHRoKCk7Ci0gICAgICAgICAgICBsaW5lUnVucy5sYXN0KCkuZW5kID0gd29yZEVuZDsKKyAg
ICAgICAgTGluZVdpZHRoIGxpbmVXaWR0aChmbG93LCBmYWxzZSwgRG9Ob3RJbmRlbnRUZXh0KTsK
KyAgICAgICAgYXV0byBsaW5lUnVucyA9IGNyZWF0ZUxpbmVSdW5zKGxpbmVTdGFydCwgbGluZVdp
ZHRoLCBsaW5lQnJlYWtJdGVyYXRvciwgc3R5bGUsIHRleHQsIHRleHRMZW5ndGgsIHRleHRSZW5k
ZXJlcik7CiAKLSAgICAgICAgICAgIGxpbmVFbmQgPSB3b3JkRW5kOwotICAgICAgICAgICAgaWYg
KGNvbGxhcHNlV2hpdGVzcGFjZSkKLSAgICAgICAgICAgICAgICB3b3JkRW5kID0gc2tpcFdoaXRl
c3BhY2VzKHRleHQsIHdvcmRFbmQsIHRleHRMZW5ndGgsIHByZXNlcnZlTmV3bGluZSk7Ci0KLSAg
ICAgICAgICAgIGlmICghbGluZVdpZHRoLmZpdHNPbkxpbmUoKSAmJiB3cmFwTGluZXMpIHsKLSAg
ICAgICAgICAgICAgICAvLyBUaGUgZmlyc3QgcnVuIG9uIHRoZSBsaW5lIG92ZXJmbG93cy4KLSAg
ICAgICAgICAgICAgICBBU1NFUlQobGluZVJ1bnMuc2l6ZSgpID09IDEpOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGxpbmVFbmQgPSBs
aW5lUnVucy5sYXN0KCkuZW5kOwogICAgICAgICBpZiAobGluZVN0YXJ0ID09IGxpbmVFbmQpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBsaW5lUnVucy5sYXN0KCkuaXNFbmRPZkxp
bmUgPSB0cnVlOwogCi0gICAgICAgIGZsb2F0IGxpbmVMZWZ0ID0gY29tcHV0ZUxpbmVMZWZ0KHRl
eHRBbGlnbiwgbGluZVdpZHRoLmF2YWlsYWJsZVdpZHRoKCkgLSBsaW5lV2lkdGguY29tbWl0dGVk
V2lkdGgoKSk7CisgICAgICAgIGZsb2F0IGxpbmVMZWZ0ID0gY29tcHV0ZUxpbmVMZWZ0KHN0eWxl
LnRleHRBbGlnbiwgbGluZVdpZHRoLmF2YWlsYWJsZVdpZHRoKCkgLSBsaW5lV2lkdGguY29tbWl0
dGVkV2lkdGgoKSk7CiAgICAgICAgIGFkanVzdFJ1bk9mZnNldHMobGluZVJ1bnMsIGxpbmVMZWZ0
KTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGluZVJ1bnMuc2l6ZSgpOyAr
K2kpCg==
</data>
<flag name="review"
          id="239843"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>