<?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>87931</bug_id>
          
          <creation_ts>2012-05-30 23:49:10 -0700</creation_ts>
          <short_desc>Remove HAVE(PATH_BASED_BORDER_RADIUS_DRAWING)</short_desc>
          <delta_ts>2012-06-07 16:08:10 -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>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>
          <dependson>9197</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>bdakin</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>638038</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-05-30 23:49:10 -0700</bug_when>
    <thetext>Remove HAVE(PATH_BASED_BORDER_RADIUS_DRAWING)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638042</commentid>
    <comment_count>1</comment_count>
      <attachid>144999</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-05-30 23:56:51 -0700</bug_when>
    <thetext>Created attachment 144999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643919</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-06-07 14:31:10 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643992</commentid>
    <comment_count>3</comment_count>
      <attachid>144999</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-06-07 15:31:26 -0700</bug_when>
    <thetext>Comment on attachment 144999
Patch

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644029</commentid>
    <comment_count>4</comment_count>
      <attachid>144999</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 16:08:06 -0700</bug_when>
    <thetext>Comment on attachment 144999
Patch

Clearing flags on attachment: 144999

Committed r119765: &lt;http://trac.webkit.org/changeset/119765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644030</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 16:08:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144999</attachid>
            <date>2012-05-30 23:56:51 -0700</date>
            <delta_ts>2012-06-07 16:08:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87931.patch</filename>
            <type>text/plain</type>
            <size>27182</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OTAxMTg0Li41NmMyNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDUtMzEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmVtb3ZlIEhBVkUoUEFUSF9CQVNFRF9CT1JERVJfUkFESVVTX0RSQVdJTkcpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzkzMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHI2MjAzNSBhZGRl
ZCBIQVZFKFBBVEhfQkFTRURfQk9SREVSX1JBRElVU19EUkFXSU5HKSB1bnRpbCBhbGwgcG9ydHMg
aW1wbGVtZW50CisgICAgICAgIEdyYXBoaWNzQ29udGV4dDo6Y2xpcENvbnZleFBvbHlnb24oKS4g
QWxsIG1ham9yIHBvcnRzIGRlZmluZSBIQVZFX1BBVEhfQkFTRURfQk9SREVSX1JBRElVU19EUkFX
SU5HIGluIHRoZQorICAgICAgICBtZWFudGltZSBhbmQgdGhlIGFsdGVybmF0aXZlIHBhdGggaGFz
IHVubmVjZXNzYXJ5IG1haW50YWluYWNlIGNvc3RzIGFuZCBldmVuIGRvbid0IGNvbXBpbGUgYXQg
dGhlIG1vbWVudC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6ZHJhd0JveFNpZGVG
cm9tUGF0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnBhaW50Rm9jdXNSaW5nKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJPYmplY3QpOgorCiAyMDEyLTA1
LTMwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1
aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjExNjcyMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDBjYmY5OTEuLjA2MDVkM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcApAQCAtMTQ5Myw3ICsxNDkzLDYgQEAgc3RhdGljIGJvb2wgYWxsQ29ybmVyc0NsaXBwZWRP
dXQoY29uc3QgUm91bmRlZFJlY3QmIGJvcmRlciwgY29uc3QgTGF5b3V0UmVjdCYgY2wKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEhBVkUoUEFUSF9CQVNFRF9CT1JERVJfUkFESVVTX0RSQVdJ
TkcpCiBzdGF0aWMgYm9vbCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGNvbnN0IExheW91dFNpemUm
IGZpcnN0UmFkaXVzLCBjb25zdCBGbG9hdFNpemUmIHNlY29uZFJhZGl1cykKIHsKICAgICByZXR1
cm4gIWZpcnN0UmFkaXVzLmlzWmVybygpIHx8ICFzZWNvbmRSYWRpdXMuaXNaZXJvKCk7CkBAIC0y
MTAwLDMzMCArMjA5OSw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmRyYXdCb3hTaWRl
RnJvbVBhdGgoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAgZ3JhcGhpY3ND
b250ZXh0LT5zZXRGaWxsQ29sb3IoY29sb3IsIHN0eWxlLT5jb2xvclNwYWNlKCkpOwogICAgIGdy
YXBoaWNzQ29udGV4dC0+ZHJhd1JlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChib3JkZXJSZWN0KSk7
CiB9Ci0jZWxzZQotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoY29uc3Qg
UGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRl
TG9naWNhbFJpZ2h0RWRnZSkKLXsKLSAgICBHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4
dCA9IGluZm8uY29udGV4dDsKLSAgICAvLyBGSVhNRTogVGhpcyBvbGQgdmVyc2lvbiBvZiBwYWlu
dEJvcmRlciBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGFsbCBwb3J0cyBpbXBsZW1lbnQgCi0gICAg
Ly8gR3JhcGhpY3NDb250ZXh0OjpjbGlwQ29udmV4UG9seWdvbigpISEgVGhpcyBzaG91bGQgaGFw
cGVuIHNvb24uCi0gICAgaWYgKHBhaW50TmluZVBpZWNlSW1hZ2UoZ3JhcGhpY3NDb250ZXh0LCBy
ZWN0LCBzdHlsZSwgc3R5bGUtPmJvcmRlckltYWdlKCkpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBjb25zdCBDb2xvciYgdG9wQ29sb3IgPSBzdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3IpOwotICAgIGNvbnN0IENvbG9yJiBib3R0b21Db2xvciA9
IHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xv
cik7Ci0gICAgY29uc3QgQ29sb3ImIGxlZnRDb2xvciA9IHN0eWxlLT52aXNpdGVkRGVwZW5kZW50
Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IpOwotICAgIGNvbnN0IENvbG9yJiByaWdo
dENvbG9yID0gc3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlclJp
Z2h0Q29sb3IpOwotCi0gICAgYm9vbCB0b3BUcmFuc3BhcmVudCA9IHN0eWxlLT5ib3JkZXJUb3BJ
c1RyYW5zcGFyZW50KCk7Ci0gICAgYm9vbCBib3R0b21UcmFuc3BhcmVudCA9IHN0eWxlLT5ib3Jk
ZXJCb3R0b21Jc1RyYW5zcGFyZW50KCk7Ci0gICAgYm9vbCByaWdodFRyYW5zcGFyZW50ID0gc3R5
bGUtPmJvcmRlclJpZ2h0SXNUcmFuc3BhcmVudCgpOwotICAgIGJvb2wgbGVmdFRyYW5zcGFyZW50
ID0gc3R5bGUtPmJvcmRlckxlZnRJc1RyYW5zcGFyZW50KCk7Ci0KLSAgICBFQm9yZGVyU3R5bGUg
dG9wU3R5bGUgPSBzdHlsZS0+Ym9yZGVyVG9wU3R5bGUoKTsKLSAgICBFQm9yZGVyU3R5bGUgYm90
dG9tU3R5bGUgPSBzdHlsZS0+Ym9yZGVyQm90dG9tU3R5bGUoKTsKLSAgICBFQm9yZGVyU3R5bGUg
bGVmdFN0eWxlID0gc3R5bGUtPmJvcmRlckxlZnRTdHlsZSgpOwotICAgIEVCb3JkZXJTdHlsZSBy
aWdodFN0eWxlID0gc3R5bGUtPmJvcmRlclJpZ2h0U3R5bGUoKTsKLQotICAgIGJvb2wgaG9yaXpv
bnRhbCA9IHN0eWxlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwotICAgIGJvb2wgcmVuZGVy
VG9wID0gdG9wU3R5bGUgPiBCSElEREVOICYmICF0b3BUcmFuc3BhcmVudCAmJiAoaG9yaXpvbnRh
bCB8fCBpbmNsdWRlTG9naWNhbExlZnRFZGdlKTsKLSAgICBib29sIHJlbmRlckxlZnQgPSBsZWZ0
U3R5bGUgPiBCSElEREVOICYmICFsZWZ0VHJhbnNwYXJlbnQgJiYgKCFob3Jpem9udGFsIHx8IGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UpOwotICAgIGJvb2wgcmVuZGVyUmlnaHQgPSByaWdodFN0eWxl
ID4gQkhJRERFTiAmJiAhcmlnaHRUcmFuc3BhcmVudCAmJiAoIWhvcml6b250YWwgfHwgaW5jbHVk
ZUxvZ2ljYWxSaWdodEVkZ2UpOwotICAgIGJvb2wgcmVuZGVyQm90dG9tID0gYm90dG9tU3R5bGUg
PiBCSElEREVOICYmICFib3R0b21UcmFuc3BhcmVudCAmJiAoaG9yaXpvbnRhbCB8fCBpbmNsdWRl
TG9naWNhbFJpZ2h0RWRnZSk7Ci0KLQotICAgIFJvdW5kZWRSZWN0IGJvcmRlcihyZWN0KTsKLSAg
ICAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmdyYXBoaWNzQ29u
dGV4dCwgZmFsc2UpOwotICAgIGlmIChzdHlsZS0+aGFzQm9yZGVyUmFkaXVzKCkpIHsKLSAgICAg
ICAgYm9yZGVyLmluY2x1ZGVMb2dpY2FsRWRnZXMoc3R5bGUtPmdldFJvdW5kZWRCb3JkZXJGb3Io
Ym9yZGVyLnJlY3QoKSwgdmlldygpKS5yYWRpaSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBob3Jpem9udGFsLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSk7Ci0gICAgICAgIGlmIChib3JkZXIuaXNSb3VuZGVkKCkpIHsKLSAgICAg
ICAgICAgIHN0YXRlU2F2ZXIuc2F2ZSgpOwotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5h
ZGRSb3VuZGVkUmVjdENsaXAoYm9yZGVyKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGludCBm
aXJzdEFuZ2xlU3RhcnQsIHNlY29uZEFuZ2xlU3RhcnQsIGZpcnN0QW5nbGVTcGFuLCBzZWNvbmRB
bmdsZVNwYW47Ci0gICAgZmxvYXQgdGhpY2tuZXNzOwotICAgIGJvb2wgcmVuZGVyUmFkaWkgPSBi
b3JkZXIuaXNSb3VuZGVkKCk7Ci0gICAgYm9vbCB1cHBlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCA9
IHJlbmRlckxlZnQgJiYgKHRvcFN0eWxlID09IGxlZnRTdHlsZSkgJiYgKHRvcENvbG9yID09IGxl
ZnRDb2xvcik7Ci0gICAgYm9vbCB1cHBlclJpZ2h0Qm9yZGVyU3R5bGVzTWF0Y2ggPSByZW5kZXJS
aWdodCAmJiAodG9wU3R5bGUgPT0gcmlnaHRTdHlsZSkgJiYgKHRvcENvbG9yID09IHJpZ2h0Q29s
b3IpICYmICh0b3BTdHlsZSAhPSBPVVRTRVQpICYmICh0b3BTdHlsZSAhPSBSSURHRSkgJiYgKHRv
cFN0eWxlICE9IElOU0VUKSAmJiAodG9wU3R5bGUgIT0gR1JPT1ZFKTsKLSAgICBib29sIGxvd2Vy
TGVmdEJvcmRlclN0eWxlc01hdGNoID0gcmVuZGVyTGVmdCAmJiAoYm90dG9tU3R5bGUgPT0gbGVm
dFN0eWxlKSAmJiAoYm90dG9tQ29sb3IgPT0gbGVmdENvbG9yKSAmJiAoYm90dG9tU3R5bGUgIT0g
T1VUU0VUKSAmJiAoYm90dG9tU3R5bGUgIT0gUklER0UpICYmIChib3R0b21TdHlsZSAhPSBJTlNF
VCkgJiYgKGJvdHRvbVN0eWxlICE9IEdST09WRSk7Ci0gICAgYm9vbCBsb3dlclJpZ2h0Qm9yZGVy
U3R5bGVzTWF0Y2ggPSByZW5kZXJSaWdodCAmJiAoYm90dG9tU3R5bGUgPT0gcmlnaHRTdHlsZSkg
JiYgKGJvdHRvbUNvbG9yID09IHJpZ2h0Q29sb3IpOwotCi0gICAgaWYgKHJlbmRlclRvcCkgewot
ICAgICAgICBib29sIGlnbm9yZUxlZnQgPSAocmVuZGVyUmFkaWkgJiYgYm9yZGVyLnJhZGlpKCku
dG9wTGVmdCgpLndpZHRoKCkgPiAwKQotICAgICAgICAgICAgfHwgKHRvcENvbG9yID09IGxlZnRD
b2xvciAmJiB0b3BUcmFuc3BhcmVudCA9PSBsZWZ0VHJhbnNwYXJlbnQgJiYgdG9wU3R5bGUgPj0g
T1VUU0VUCi0gICAgICAgICAgICAgICAgJiYgKGxlZnRTdHlsZSA9PSBET1RURUQgfHwgbGVmdFN0
eWxlID09IERBU0hFRCB8fCBsZWZ0U3R5bGUgPT0gU09MSUQgfHwgbGVmdFN0eWxlID09IE9VVFNF
VCkpOwotICAgICAgICAKLSAgICAgICAgYm9vbCBpZ25vcmVSaWdodCA9IChyZW5kZXJSYWRpaSAm
JiBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkgPiAwKQotICAgICAgICAgICAgfHwg
KHRvcENvbG9yID09IHJpZ2h0Q29sb3IgJiYgdG9wVHJhbnNwYXJlbnQgPT0gcmlnaHRUcmFuc3Bh
cmVudCAmJiB0b3BTdHlsZSA+PSBPVVRTRVQKLSAgICAgICAgICAgICAgICAmJiAocmlnaHRTdHls
ZSA9PSBET1RURUQgfHwgcmlnaHRTdHlsZSA9PSBEQVNIRUQgfHwgcmlnaHRTdHlsZSA9PSBTT0xJ
RCB8fCByaWdodFN0eWxlID09IElOU0VUKSk7Ci0KLSAgICAgICAgaW50IHggPSByZWN0LngoKTsK
LSAgICAgICAgaW50IHgyID0gcmVjdC5tYXhYKCk7Ci0gICAgICAgIGlmIChyZW5kZXJSYWRpaSkg
ewotICAgICAgICAgICAgeCArPSBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkud2lkdGgoKTsKLSAg
ICAgICAgICAgIHgyIC09IGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHgsIHJl
Y3QueSgpLCB4MiwgcmVjdC55KCkgKyBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSwgQlNUb3AsIHRv
cENvbG9yLCB0b3BTdHlsZSwKLSAgICAgICAgICAgICAgICAgICBpZ25vcmVMZWZ0ID8gMCA6IHN0
eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSwgaWdub3JlUmlnaHQgPyAwIDogc3R5bGUtPmJvcmRlclJp
Z2h0V2lkdGgoKSk7Ci0KLSAgICAgICAgaWYgKHJlbmRlclJhZGlpKSB7Ci0gICAgICAgICAgICBp
bnQgbGVmdFkgPSByZWN0LnkoKTsKLQotICAgICAgICAgICAgLy8gV2UgbWFrZSB0aGUgYXJjIGRv
dWJsZSB0aGljayBhbmQgbGV0IHRoZSBjbGlwIHJlY3QgdGFrZSBjYXJlIG9mIGNsaXBwaW5nIHRo
ZSBleHRyYSBvZmYuCi0gICAgICAgICAgICAvLyBXZSdyZSBkb2luZyB0aGlzIGJlY2F1c2UgaXQg
ZG9lc24ndCBzZWVtIHBvc3NpYmxlIHRvIG1hdGNoIHRoZSBjdXJ2ZSBvZiB0aGUgY2xpcCBleGFj
dGx5Ci0gICAgICAgICAgICAvLyB3aXRoIHRoZSBhcmMtZHJhd2luZyBmdW5jdGlvbi4KLSAgICAg
ICAgICAgIHRoaWNrbmVzcyA9IHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpICogMjsKLQotICAgICAg
ICAgICAgaWYgKGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKS53aWR0aCgpKSB7Ci0gICAgICAgICAg
ICAgICAgaW50IGxlZnRYID0gcmVjdC54KCk7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGlubmVy
IGNsaXAgY2xpcHMgaW5zaWRlIHRoZSBhcmMuIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQg
Zm9yIDFweCBib3JkZXJzLgotICAgICAgICAgICAgICAgIGJvb2wgYXBwbHlMZWZ0SW5uZXJDbGlw
ID0gKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKS53
aWR0aCgpKQotICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkg
PCBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkuaGVpZ2h0KCkpCi0gICAgICAgICAgICAgICAgICAg
ICYmICh0b3BTdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgPiA2KTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmdyYXBoaWNzQ29udGV4dCwgYXBwbHlMZWZ0SW5uZXJDbGlwKTsKLSAg
ICAgICAgICAgICAgICBpZiAoYXBwbHlMZWZ0SW5uZXJDbGlwKQotICAgICAgICAgICAgICAgICAg
ICBncmFwaGljc0NvbnRleHQtPmFkZElubmVyUm91bmRlZFJlY3RDbGlwKEludFJlY3QobGVmdFgs
IGxlZnRZLCBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkud2lkdGgoKSAqIDIsIGJvcmRlci5yYWRp
aSgpLnRvcExlZnQoKS5oZWlnaHQoKSAqIDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgp
KTsKLQotICAgICAgICAgICAgICAgIGZpcnN0QW5nbGVTdGFydCA9IDkwOwotICAgICAgICAgICAg
ICAgIGZpcnN0QW5nbGVTcGFuID0gdXBwZXJMZWZ0Qm9yZGVyU3R5bGVzTWF0Y2ggPyA5MCA6IDQ1
OwotCi0gICAgICAgICAgICAgICAgLy8gRHJhdyB1cHBlciBsZWZ0IGFyYwotICAgICAgICAgICAg
ICAgIGRyYXdBcmNGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgbGVmdFgsIGxlZnRZLCB0aGlj
a25lc3MsIGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKSwgZmlyc3RBbmdsZVN0YXJ0LCBmaXJzdEFu
Z2xlU3BhbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJTVG9wLCB0b3BDb2xvciwg
dG9wU3R5bGUsIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoYm9yZGVy
LnJhZGlpKCkudG9wUmlnaHQoKS53aWR0aCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IHJpZ2h0
WCA9IHJlY3QubWF4WCgpIC0gYm9yZGVyLnJhZGlpKCkudG9wUmlnaHQoKS53aWR0aCgpICogMjsK
LSAgICAgICAgICAgICAgICBib29sIGFwcGx5UmlnaHRJbm5lckNsaXAgPSAoc3R5bGUtPmJvcmRl
clJpZ2h0V2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkud2lkdGgoKSkKLSAgICAg
ICAgICAgICAgICAgICAgJiYgKHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpIDwgYm9yZGVyLnJhZGlp
KCkudG9wUmlnaHQoKS5oZWlnaHQoKSkKLSAgICAgICAgICAgICAgICAgICAgJiYgKHRvcFN0eWxl
ICE9IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSA+IDYpOwotCi0gICAgICAgICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpncmFwaGljc0NvbnRl
eHQsIGFwcGx5UmlnaHRJbm5lckNsaXApOwotICAgICAgICAgICAgICAgIGlmIChhcHBseVJpZ2h0
SW5uZXJDbGlwKQotICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFkZElubmVy
Um91bmRlZFJlY3RDbGlwKEludFJlY3QocmlnaHRYLCBsZWZ0WSwgYm9yZGVyLnJhZGlpKCkudG9w
UmlnaHQoKS53aWR0aCgpICogMiwgYm9yZGVyLnJhZGlpKCkudG9wUmlnaHQoKS5oZWlnaHQoKSAq
IDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpKTsKLQotICAgICAgICAgICAgICAgIGlm
ICh1cHBlclJpZ2h0Qm9yZGVyU3R5bGVzTWF0Y2gpIHsKLSAgICAgICAgICAgICAgICAgICAgc2Vj
b25kQW5nbGVTdGFydCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHNlY29uZEFuZ2xlU3BhbiA9
IDkwOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHNlY29u
ZEFuZ2xlU3RhcnQgPSA0NTsKLSAgICAgICAgICAgICAgICAgICAgc2Vjb25kQW5nbGVTcGFuID0g
NDU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gRHJhdyB1cHBlciBy
aWdodCBhcmMKLSAgICAgICAgICAgICAgICBkcmF3QXJjRm9yQm94U2lkZShncmFwaGljc0NvbnRl
eHQsIHJpZ2h0WCwgbGVmdFksIHRoaWNrbmVzcywgYm9yZGVyLnJhZGlpKCkudG9wUmlnaHQoKSwg
c2Vjb25kQW5nbGVTdGFydCwgc2Vjb25kQW5nbGVTcGFuLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQlNUb3AsIHRvcENvbG9yLCB0b3BTdHlsZSwgZmFsc2UpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlckJvdHRvbSkgewotICAgICAgICBi
b29sIGlnbm9yZUxlZnQgPSAocmVuZGVyUmFkaWkgJiYgYm9yZGVyLnJhZGlpKCkuYm90dG9tTGVm
dCgpLndpZHRoKCkgPiAwKQotICAgICAgICAgICAgfHwgKGJvdHRvbUNvbG9yID09IGxlZnRDb2xv
ciAmJiBib3R0b21UcmFuc3BhcmVudCA9PSBsZWZ0VHJhbnNwYXJlbnQgJiYgYm90dG9tU3R5bGUg
Pj0gT1VUU0VUCi0gICAgICAgICAgICAgICAgJiYgKGxlZnRTdHlsZSA9PSBET1RURUQgfHwgbGVm
dFN0eWxlID09IERBU0hFRCB8fCBsZWZ0U3R5bGUgPT0gU09MSUQgfHwgbGVmdFN0eWxlID09IE9V
VFNFVCkpOwotCi0gICAgICAgIGJvb2wgaWdub3JlUmlnaHQgPSAocmVuZGVyUmFkaWkgJiYgYm9y
ZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpID4gMCkKLSAgICAgICAgICAgIHx8IChi
b3R0b21Db2xvciA9PSByaWdodENvbG9yICYmIGJvdHRvbVRyYW5zcGFyZW50ID09IHJpZ2h0VHJh
bnNwYXJlbnQgJiYgYm90dG9tU3R5bGUgPj0gT1VUU0VUCi0gICAgICAgICAgICAgICAgJiYgKHJp
Z2h0U3R5bGUgPT0gRE9UVEVEIHx8IHJpZ2h0U3R5bGUgPT0gREFTSEVEIHx8IHJpZ2h0U3R5bGUg
PT0gU09MSUQgfHwgcmlnaHRTdHlsZSA9PSBJTlNFVCkpOwotCi0gICAgICAgIGludCB4ID0gcmVj
dC54KCk7Ci0gICAgICAgIGludCB4MiA9IHJlY3QubWF4WCgpOwotICAgICAgICBpZiAocmVuZGVy
UmFkaWkpIHsKLSAgICAgICAgICAgIHggKz0gYm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLndp
ZHRoKCk7Ci0gICAgICAgICAgICB4MiAtPSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndp
ZHRoKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3ND
b250ZXh0LCB4LCByZWN0Lm1heFkoKSAtIHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpLCB4Miwg
cmVjdC5tYXhZKCksIEJTQm90dG9tLCBib3R0b21Db2xvciwgYm90dG9tU3R5bGUsCi0gICAgICAg
ICAgICAgICAgICAgaWdub3JlTGVmdCA/IDAgOiBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCksIGln
bm9yZVJpZ2h0ID8gMCA6IHN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkpOwotCi0gICAgICAgIGlm
IChyZW5kZXJSYWRpaSkgewotICAgICAgICAgICAgdGhpY2tuZXNzID0gc3R5bGUtPmJvcmRlckJv
dHRvbVdpZHRoKCkgKiAyOwotCi0gICAgICAgICAgICBpZiAoYm9yZGVyLnJhZGlpKCkuYm90dG9t
TGVmdCgpLndpZHRoKCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgbGVmdFggPSByZWN0LngoKTsK
LSAgICAgICAgICAgICAgICBpbnQgbGVmdFkgPSByZWN0Lm1heFkoKSAtIGJvcmRlci5yYWRpaSgp
LmJvdHRvbUxlZnQoKS5oZWlnaHQoKSAqIDI7Ci0gICAgICAgICAgICAgICAgYm9vbCBhcHBseUxl
ZnRJbm5lckNsaXAgPSAoc3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCku
Ym90dG9tTGVmdCgpLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgICYmIChzdHlsZS0+Ym9y
ZGVyQm90dG9tV2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKS5oZWlnaHQoKSkK
LSAgICAgICAgICAgICAgICAgICAgJiYgKGJvdHRvbVN0eWxlICE9IERPVUJMRSB8fCBzdHlsZS0+
Ym9yZGVyQm90dG9tV2lkdGgoKSA+IDYpOwotCi0gICAgICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpncmFwaGljc0NvbnRleHQsIGFwcGx5TGVmdElubmVy
Q2xpcCk7Ci0gICAgICAgICAgICAgICAgaWYgKGFwcGx5TGVmdElubmVyQ2xpcCkKLSAgICAgICAg
ICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5hZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChJbnRS
ZWN0KGxlZnRYLCBsZWZ0WSwgYm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLndpZHRoKCkgKiAy
LCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkuaGVpZ2h0KCkgKiAyKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZS0+
Ym9yZGVyQm90dG9tV2lkdGgoKSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAobG93ZXJMZWZ0Qm9y
ZGVyU3R5bGVzTWF0Y2gpIHsKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RBbmdsZVN0YXJ0ID0g
MTgwOwotICAgICAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3BhbiA9IDkwOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGZpcnN0QW5nbGVTdGFydCA9IDIy
NTsKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RBbmdsZVNwYW4gPSA0NTsKLSAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyBEcmF3IGxvd2VyIGxlZnQgYXJjCi0gICAgICAg
ICAgICAgICAgZHJhd0FyY0ZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBsZWZ0WCwgbGVmdFks
IHRoaWNrbmVzcywgYm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLCBmaXJzdEFuZ2xlU3RhcnQs
IGZpcnN0QW5nbGVTcGFuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlNCb3R0b20s
IGJvdHRvbUNvbG9yLCBib3R0b21TdHlsZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGlmIChib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRoKCkpIHsKLSAgICAg
ICAgICAgICAgICBpbnQgcmlnaHRZID0gcmVjdC5tYXhZKCkgLSBib3JkZXIucmFkaWkoKS5ib3R0
b21SaWdodCgpLmhlaWdodCgpICogMjsKLSAgICAgICAgICAgICAgICBpbnQgcmlnaHRYID0gcmVj
dC5tYXhYKCkgLSBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRoKCkgKiAyOwotICAg
ICAgICAgICAgICAgIGJvb2wgYXBwbHlSaWdodElubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVyUmln
aHRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpKQotICAgICAg
ICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFk
aWkoKS5ib3R0b21SaWdodCgpLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICAmJiAoYm90
dG9tU3R5bGUgIT0gRE9VQkxFIHx8IHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpID4gNik7Ci0K
LSAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmdy
YXBoaWNzQ29udGV4dCwgYXBwbHlSaWdodElubmVyQ2xpcCk7Ci0gICAgICAgICAgICAgICAgaWYg
KGFwcGx5UmlnaHRJbm5lckNsaXApCi0gICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4
dC0+YWRkSW5uZXJSb3VuZGVkUmVjdENsaXAoSW50UmVjdChyaWdodFgsIHJpZ2h0WSwgYm9yZGVy
LnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpICogMiwgYm9yZGVyLnJhZGlpKCkuYm90dG9t
UmlnaHQoKS5oZWlnaHQoKSAqIDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpKTsK
LQotICAgICAgICAgICAgICAgIHNlY29uZEFuZ2xlU3RhcnQgPSAyNzA7Ci0gICAgICAgICAgICAg
ICAgc2Vjb25kQW5nbGVTcGFuID0gbG93ZXJSaWdodEJvcmRlclN0eWxlc01hdGNoID8gOTAgOiA0
NTsKLQotICAgICAgICAgICAgICAgIC8vIERyYXcgbG93ZXIgcmlnaHQgYXJjCi0gICAgICAgICAg
ICAgICAgZHJhd0FyY0ZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCByaWdodFgsIHJpZ2h0WSwg
dGhpY2tuZXNzLCBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLCBzZWNvbmRBbmdsZVN0YXJ0
LCBzZWNvbmRBbmdsZVNwYW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCU0JvdHRv
bSwgYm90dG9tQ29sb3IsIGJvdHRvbVN0eWxlLCBmYWxzZSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVuZGVyTGVmdCkgewotICAgICAgICBib29sIGlnbm9y
ZVRvcCA9IChyZW5kZXJSYWRpaSAmJiBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkuaGVpZ2h0KCkg
PiAwKQotICAgICAgICAgICAgfHwgKHRvcENvbG9yID09IGxlZnRDb2xvciAmJiB0b3BUcmFuc3Bh
cmVudCA9PSBsZWZ0VHJhbnNwYXJlbnQgJiYgbGVmdFN0eWxlID49IE9VVFNFVAotICAgICAgICAg
ICAgICAgICYmICh0b3BTdHlsZSA9PSBET1RURUQgfHwgdG9wU3R5bGUgPT0gREFTSEVEIHx8IHRv
cFN0eWxlID09IFNPTElEIHx8IHRvcFN0eWxlID09IE9VVFNFVCkpOwotCi0gICAgICAgIGJvb2wg
aWdub3JlQm90dG9tID0gKHJlbmRlclJhZGlpICYmIGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQo
KS5oZWlnaHQoKSA+IDApCi0gICAgICAgICAgICB8fCAoYm90dG9tQ29sb3IgPT0gbGVmdENvbG9y
ICYmIGJvdHRvbVRyYW5zcGFyZW50ID09IGxlZnRUcmFuc3BhcmVudCAmJiBsZWZ0U3R5bGUgPj0g
T1VUU0VUCi0gICAgICAgICAgICAgICAgJiYgKGJvdHRvbVN0eWxlID09IERPVFRFRCB8fCBib3R0
b21TdHlsZSA9PSBEQVNIRUQgfHwgYm90dG9tU3R5bGUgPT0gU09MSUQgfHwgYm90dG9tU3R5bGUg
PT0gSU5TRVQpKTsKLQotICAgICAgICBpbnQgeSA9IHJlY3QueSgpOwotICAgICAgICBpbnQgeTIg
PSByZWN0Lm1heFkoKTsKLSAgICAgICAgaWYgKHJlbmRlclJhZGlpKSB7Ci0gICAgICAgICAgICB5
ICs9IGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKS5oZWlnaHQoKTsKLSAgICAgICAgICAgIHkyIC09
IGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKS5oZWlnaHQoKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIHJlY3QueCgpLCB5LCByZWN0
LngoKSArIHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSwgeTIsIEJTTGVmdCwgbGVmdENvbG9yLCBs
ZWZ0U3R5bGUsCi0gICAgICAgICAgICAgICAgICAgaWdub3JlVG9wID8gMCA6IHN0eWxlLT5ib3Jk
ZXJUb3BXaWR0aCgpLCBpZ25vcmVCb3R0b20gPyAwIDogc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRo
KCkpOwotCi0gICAgICAgIGlmIChyZW5kZXJSYWRpaSAmJiAoIXVwcGVyTGVmdEJvcmRlclN0eWxl
c01hdGNoIHx8ICFsb3dlckxlZnRCb3JkZXJTdHlsZXNNYXRjaCkpIHsKLSAgICAgICAgICAgIGlu
dCB0b3BYID0gcmVjdC54KCk7Ci0gICAgICAgICAgICB0aGlja25lc3MgPSBzdHlsZS0+Ym9yZGVy
TGVmdFdpZHRoKCkgKiAyOwotCi0gICAgICAgICAgICBpZiAoIXVwcGVyTGVmdEJvcmRlclN0eWxl
c01hdGNoICYmIGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKS53aWR0aCgpKSB7Ci0gICAgICAgICAg
ICAgICAgaW50IHRvcFkgPSByZWN0LnkoKTsKLSAgICAgICAgICAgICAgICBib29sIGFwcGx5VG9w
SW5uZXJDbGlwID0gKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSA8IGJvcmRlci5yYWRpaSgpLnRv
cExlZnQoKS53aWR0aCgpKQotICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlclRv
cFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS50b3BMZWZ0KCkuaGVpZ2h0KCkpCi0gICAgICAgICAg
ICAgICAgICAgICYmIChsZWZ0U3R5bGUgIT0gRE9VQkxFIHx8IHN0eWxlLT5ib3JkZXJMZWZ0V2lk
dGgoKSA+IDYpOwotCi0gICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKCpncmFwaGljc0NvbnRleHQsIGFwcGx5VG9wSW5uZXJDbGlwKTsKLSAgICAgICAg
ICAgICAgICBpZiAoYXBwbHlUb3BJbm5lckNsaXApCi0gICAgICAgICAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+YWRkSW5uZXJSb3VuZGVkUmVjdENsaXAoSW50UmVjdCh0b3BYLCB0b3BZLCBi
b3JkZXIucmFkaWkoKS50b3BMZWZ0KCkud2lkdGgoKSAqIDIsIGJvcmRlci5yYWRpaSgpLnRvcExl
ZnQoKS5oZWlnaHQoKSAqIDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSk7Ci0KLSAg
ICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3RhcnQgPSAxMzU7Ci0gICAgICAgICAgICAgICAgZmly
c3RBbmdsZVNwYW4gPSA0NTsKLQotICAgICAgICAgICAgICAgIC8vIERyYXcgdG9wIGxlZnQgYXJj
Ci0gICAgICAgICAgICAgICAgZHJhd0FyY0ZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB0b3BY
LCB0b3BZLCB0aGlja25lc3MsIGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKSwgZmlyc3RBbmdsZVN0
YXJ0LCBmaXJzdEFuZ2xlU3BhbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJTTGVm
dCwgbGVmdENvbG9yLCBsZWZ0U3R5bGUsIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBpZiAoIWxvd2VyTGVmdEJvcmRlclN0eWxlc01hdGNoICYmIGJvcmRlci5yYWRpaSgpLmJv
dHRvbUxlZnQoKS53aWR0aCgpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGJvdHRvbVkgPSByZWN0
Lm1heFkoKSAtIGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKS5oZWlnaHQoKSAqIDI7Ci0gICAg
ICAgICAgICAgICAgYm9vbCBhcHBseUJvdHRvbUlubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVyTGVm
dFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCkud2lkdGgoKSkKLSAgICAgICAg
ICAgICAgICAgICAgJiYgKHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpIDwgYm9yZGVyLnJhZGlp
KCkuYm90dG9tTGVmdCgpLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICAmJiAobGVmdFN0
eWxlICE9IERPVUJMRSB8fCBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgPiA2KTsKLQotICAgICAg
ICAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqZ3JhcGhpY3ND
b250ZXh0LCBhcHBseUJvdHRvbUlubmVyQ2xpcCk7Ci0gICAgICAgICAgICAgICAgaWYgKGFwcGx5
Qm90dG9tSW5uZXJDbGlwKQotICAgICAgICAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFk
ZElubmVyUm91bmRlZFJlY3RDbGlwKEludFJlY3QodG9wWCwgYm90dG9tWSwgYm9yZGVyLnJhZGlp
KCkuYm90dG9tTGVmdCgpLndpZHRoKCkgKiAyLCBib3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCku
aGVpZ2h0KCkgKiAyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkpOwotCi0gICAgICAg
ICAgICAgICAgc2Vjb25kQW5nbGVTdGFydCA9IDE4MDsKLSAgICAgICAgICAgICAgICBzZWNvbmRB
bmdsZVNwYW4gPSA0NTsKLQotICAgICAgICAgICAgICAgIC8vIERyYXcgYm90dG9tIGxlZnQgYXJj
Ci0gICAgICAgICAgICAgICAgZHJhd0FyY0ZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCB0b3BY
LCBib3R0b21ZLCB0aGlja25lc3MsIGJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKSwgc2Vjb25k
QW5nbGVTdGFydCwgc2Vjb25kQW5nbGVTcGFuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQlNMZWZ0LCBsZWZ0Q29sb3IsIGxlZnRTdHlsZSwgZmFsc2UpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlbmRlclJpZ2h0KSB7Ci0gICAgICAgIGJvb2wg
aWdub3JlVG9wID0gKHJlbmRlclJhZGlpICYmIGJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkuaGVp
Z2h0KCkgPiAwKQotICAgICAgICAgICAgfHwgKCh0b3BDb2xvciA9PSByaWdodENvbG9yKSAmJiAo
dG9wVHJhbnNwYXJlbnQgPT0gcmlnaHRUcmFuc3BhcmVudCkKLSAgICAgICAgICAgICAgICAmJiAo
cmlnaHRTdHlsZSA+PSBET1RURUQgfHwgcmlnaHRTdHlsZSA9PSBJTlNFVCkKLSAgICAgICAgICAg
ICAgICAmJiAodG9wU3R5bGUgPT0gRE9UVEVEIHx8IHRvcFN0eWxlID09IERBU0hFRCB8fCB0b3BT
dHlsZSA9PSBTT0xJRCB8fCB0b3BTdHlsZSA9PSBPVVRTRVQpKTsKLQotICAgICAgICBib29sIGln
bm9yZUJvdHRvbSA9IChyZW5kZXJSYWRpaSAmJiBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgp
LmhlaWdodCgpID4gMCkKLSAgICAgICAgICAgIHx8ICgoYm90dG9tQ29sb3IgPT0gcmlnaHRDb2xv
cikgJiYgKGJvdHRvbVRyYW5zcGFyZW50ID09IHJpZ2h0VHJhbnNwYXJlbnQpCi0gICAgICAgICAg
ICAgICAgJiYgKHJpZ2h0U3R5bGUgPj0gRE9UVEVEIHx8IHJpZ2h0U3R5bGUgPT0gSU5TRVQpCi0g
ICAgICAgICAgICAgICAgJiYgKGJvdHRvbVN0eWxlID09IERPVFRFRCB8fCBib3R0b21TdHlsZSA9
PSBEQVNIRUQgfHwgYm90dG9tU3R5bGUgPT0gU09MSUQgfHwgYm90dG9tU3R5bGUgPT0gSU5TRVQp
KTsKLQotICAgICAgICBpbnQgeSA9IHJlY3QueSgpOwotICAgICAgICBpbnQgeTIgPSByZWN0Lm1h
eFkoKTsKLSAgICAgICAgaWYgKHJlbmRlclJhZGlpKSB7Ci0gICAgICAgICAgICB5ICs9IGJvcmRl
ci5yYWRpaSgpLnRvcFJpZ2h0KCkuaGVpZ2h0KCk7Ci0gICAgICAgICAgICB5MiAtPSBib3JkZXIu
cmFkaWkoKS5ib3R0b21SaWdodCgpLmhlaWdodCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgZHJh
d0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgcmVjdC5tYXhYKCkgLSBzdHlsZS0+Ym9y
ZGVyUmlnaHRXaWR0aCgpLCB5LCByZWN0Lm1heFgoKSwgeTIsIEJTUmlnaHQsIHJpZ2h0Q29sb3Is
IHJpZ2h0U3R5bGUsCi0gICAgICAgICAgICAgICAgICAgaWdub3JlVG9wID8gMCA6IHN0eWxlLT5i
b3JkZXJUb3BXaWR0aCgpLCBpZ25vcmVCb3R0b20gPyAwIDogc3R5bGUtPmJvcmRlckJvdHRvbVdp
ZHRoKCkpOwotCi0gICAgICAgIGlmIChyZW5kZXJSYWRpaSAmJiAoIXVwcGVyUmlnaHRCb3JkZXJT
dHlsZXNNYXRjaCB8fCAhbG93ZXJSaWdodEJvcmRlclN0eWxlc01hdGNoKSkgewotICAgICAgICAg
ICAgdGhpY2tuZXNzID0gc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSAqIDI7Ci0KLSAgICAgICAg
ICAgIGlmICghdXBwZXJSaWdodEJvcmRlclN0eWxlc01hdGNoICYmIGJvcmRlci5yYWRpaSgpLnRv
cFJpZ2h0KCkud2lkdGgoKSkgewotICAgICAgICAgICAgICAgIGludCB0b3BYID0gcmVjdC5tYXhY
KCkgLSBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkgKiAyOwotICAgICAgICAgICAg
ICAgIGludCB0b3BZID0gcmVjdC55KCk7Ci0gICAgICAgICAgICAgICAgYm9vbCBhcHBseVRvcElu
bmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpIDwgYm9yZGVyLnJhZGlpKCkudG9w
UmlnaHQoKS53aWR0aCgpKQotICAgICAgICAgICAgICAgICAgICAmJiAoc3R5bGUtPmJvcmRlclRv
cFdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLmhlaWdodCgpKQotICAgICAgICAg
ICAgICAgICAgICAmJiAocmlnaHRTdHlsZSAhPSBET1VCTEUgfHwgc3R5bGUtPmJvcmRlclJpZ2h0
V2lkdGgoKSA+IDYpOwotCi0gICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKCpncmFwaGljc0NvbnRleHQsIGFwcGx5VG9wSW5uZXJDbGlwKTsKLSAgICAg
ICAgICAgICAgICBpZiAoYXBwbHlUb3BJbm5lckNsaXApCi0gICAgICAgICAgICAgICAgICAgIGdy
YXBoaWNzQ29udGV4dC0+YWRkSW5uZXJSb3VuZGVkUmVjdENsaXAoSW50UmVjdCh0b3BYLCB0b3BZ
LCBib3JkZXIucmFkaWkoKS50b3BSaWdodCgpLndpZHRoKCkgKiAyLCBib3JkZXIucmFkaWkoKS50
b3BSaWdodCgpLmhlaWdodCgpICogMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSk7
Ci0KLSAgICAgICAgICAgICAgICBmaXJzdEFuZ2xlU3RhcnQgPSAwOwotICAgICAgICAgICAgICAg
IGZpcnN0QW5nbGVTcGFuID0gNDU7Ci0KLSAgICAgICAgICAgICAgICAvLyBEcmF3IHRvcCByaWdo
dCBhcmMKLSAgICAgICAgICAgICAgICBkcmF3QXJjRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQs
IHRvcFgsIHRvcFksIHRoaWNrbmVzcywgYm9yZGVyLnJhZGlpKCkudG9wUmlnaHQoKSwgZmlyc3RB
bmdsZVN0YXJ0LCBmaXJzdEFuZ2xlU3BhbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJTUmlnaHQsIHJpZ2h0Q29sb3IsIHJpZ2h0U3R5bGUsIHRydWUpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBpZiAoIWxvd2VyUmlnaHRCb3JkZXJTdHlsZXNNYXRjaCAmJiBib3JkZXIu
cmFkaWkoKS5ib3R0b21SaWdodCgpLndpZHRoKCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgYm90
dG9tWCA9IHJlY3QubWF4WCgpIC0gYm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgp
ICogMjsKLSAgICAgICAgICAgICAgICBpbnQgYm90dG9tWSA9IHJlY3QubWF4WSgpIC0gYm9yZGVy
LnJhZGlpKCkuYm90dG9tUmlnaHQoKS5oZWlnaHQoKSAqIDI7Ci0gICAgICAgICAgICAgICAgYm9v
bCBhcHBseUJvdHRvbUlubmVyQ2xpcCA9IChzdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpIDwgYm9y
ZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKS53aWR0aCgpKQotICAgICAgICAgICAgICAgICAgICAm
JiAoc3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgPCBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdo
dCgpLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICAmJiAocmlnaHRTdHlsZSAhPSBET1VC
TEUgfHwgc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSA+IDYpOwotCi0gICAgICAgICAgICAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpncmFwaGljc0NvbnRleHQsIGFw
cGx5Qm90dG9tSW5uZXJDbGlwKTsKLSAgICAgICAgICAgICAgICBpZiAoYXBwbHlCb3R0b21Jbm5l
ckNsaXApCi0gICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+YWRkSW5uZXJSb3Vu
ZGVkUmVjdENsaXAoSW50UmVjdChib3R0b21YLCBib3R0b21ZLCBib3JkZXIucmFkaWkoKS5ib3R0
b21SaWdodCgpLndpZHRoKCkgKiAyLCBib3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLmhlaWdo
dCgpICogMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSk7Ci0KLSAgICAgICAgICAg
ICAgICBzZWNvbmRBbmdsZVN0YXJ0ID0gMzE1OwotICAgICAgICAgICAgICAgIHNlY29uZEFuZ2xl
U3BhbiA9IDQ1OwotCi0gICAgICAgICAgICAgICAgLy8gRHJhdyBib3R0b20gcmlnaHQgYXJjCi0g
ICAgICAgICAgICAgICAgZHJhd0FyY0ZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBib3R0b21Y
LCBib3R0b21ZLCB0aGlja25lc3MsIGJvcmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCksIHNlY29u
ZEFuZ2xlU3RhcnQsIHNlY29uZEFuZ2xlU3BhbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJTUmlnaHQsIHJpZ2h0Q29sb3IsIHJpZ2h0U3R5bGUsIGZhbHNlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLX0KLSNlbmRpZgogCiBzdGF0aWMgdm9pZCBmaW5kSW5uZXJW
ZXJ0ZXgoY29uc3QgRmxvYXRQb2ludCYgb3V0ZXJDb3JuZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGlu
bmVyQ29ybmVyLCBjb25zdCBGbG9hdFBvaW50JiBjZW50ZXJQb2ludCwgRmxvYXRQb2ludCYgcmVz
dWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBl
NjY5NDc2Li40NGI1ZjExIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcApAQCAtMTAxNCw5MSArMTAxNCw2IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkcmF3TGluZUZv
ckJveFNpZGUoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGludCB4MSwKICAgICB9
CiB9CiAKLSNpZiAhSEFWRShQQVRIX0JBU0VEX0JPUkRFUl9SQURJVVNfRFJBV0lORykKLXZvaWQg
UmVuZGVyT2JqZWN0OjpkcmF3QXJjRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwgaW50IHgsIGludCB5LCBmbG9hdCB0aGlja25lc3MsIGNvbnN0IEludFNpemUmIHJh
ZGl1cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYW5nbGVTdGFy
dCwgaW50IGFuZ2xlU3BhbiwgQm94U2lkZSBzLCBDb2xvciBjb2xvciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFQm9yZGVyU3R5bGUgc3R5bGUsIGJvb2wgZmlyc3RDb3Ju
ZXIpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlbW92ZWQgd2hl
biBhbGwgcG9ydHMgaW1wbGVtZW50IEdyYXBoaWNzQ29udGV4dDo6Y2xpcENvbnZleFBvbHlnb24o
KSEhCi0gICAgLy8gQXQgdGhhdCB0aW1lLCBldmVyeW9uZSBjYW4gdXNlIFJlbmRlck9iamVjdDo6
ZHJhd0JveFNpZGVGcm9tUGF0aCgpIGluc3RlYWQuIFRoaXMgc2hvdWxkIGhhcHBlbiBzb29uLgot
ICAgIGlmICgoc3R5bGUgPT0gRE9VQkxFICYmIHRoaWNrbmVzcyAvIDIgPCAzKSB8fCAoKHN0eWxl
ID09IFJJREdFIHx8IHN0eWxlID09IEdST09WRSkgJiYgdGhpY2tuZXNzIC8gMiA8IDIpKQotICAg
ICAgICBzdHlsZSA9IFNPTElEOwotCi0gICAgc3dpdGNoIChzdHlsZSkgewotICAgICAgICBjYXNl
IEJOT05FOgotICAgICAgICBjYXNlIEJISURERU46Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGNhc2UgRE9UVEVEOgotICAgICAgICBjYXNlIERBU0hFRDoKLSAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+c2V0U3Ryb2tlQ29sb3IoY29sb3IsIG1fc3R5bGUtPmNvbG9yU3BhY2UoKSk7
Ci0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZVN0eWxlKHN0eWxlID09IERP
VFRFRCA/IERvdHRlZFN0cm9rZSA6IERhc2hlZFN0cm9rZSk7Ci0gICAgICAgICAgICBncmFwaGlj
c0NvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpOwotICAgICAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LT5zdHJva2VBcmMoSW50UmVjdCh4LCB5LCByYWRpdXMud2lkdGgoKSAqIDIs
IHJhZGl1cy5oZWlnaHQoKSAqIDIpLCBhbmdsZVN0YXJ0LCBhbmdsZVNwYW4pOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRE9VQkxFOiB7Ci0gICAgICAgICAgICBmbG9hdCB0aGly
ZCA9IHRoaWNrbmVzcyAvIDMuMGY7Ci0gICAgICAgICAgICBmbG9hdCBpbm5lclRoaXJkID0gKHRo
aWNrbmVzcyArIDEuMGYpIC8gNi4wZjsKLSAgICAgICAgICAgIGludCBzaGlmdEZvcklubmVyID0g
c3RhdGljX2Nhc3Q8aW50Pihpbm5lclRoaXJkICogMi41Zik7Ci0KLSAgICAgICAgICAgIGludCBv
dXRlclkgPSB5OwotICAgICAgICAgICAgaW50IG91dGVySGVpZ2h0ID0gcmFkaXVzLmhlaWdodCgp
ICogMjsKLSAgICAgICAgICAgIGludCBpbm5lclggPSB4ICsgc2hpZnRGb3JJbm5lcjsKLSAgICAg
ICAgICAgIGludCBpbm5lclkgPSB5ICsgc2hpZnRGb3JJbm5lcjsKLSAgICAgICAgICAgIGludCBp
bm5lcldpZHRoID0gKHJhZGl1cy53aWR0aCgpIC0gc2hpZnRGb3JJbm5lcikgKiAyOwotICAgICAg
ICAgICAgaW50IGlubmVySGVpZ2h0ID0gKHJhZGl1cy5oZWlnaHQoKSAtIHNoaWZ0Rm9ySW5uZXIp
ICogMjsKLSAgICAgICAgICAgIGlmIChpbm5lclRoaXJkID4gMSAmJiAocyA9PSBCU1RvcCB8fCAo
Zmlyc3RDb3JuZXIgJiYgKHMgPT0gQlNMZWZ0IHx8IHMgPT0gQlNSaWdodCkpKSkgewotICAgICAg
ICAgICAgICAgIG91dGVySGVpZ2h0ICs9IDI7Ci0gICAgICAgICAgICAgICAgaW5uZXJIZWlnaHQg
Kz0gMjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRT
dHJva2VTdHlsZShTb2xpZFN0cm9rZSk7Ci0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNl
dFN0cm9rZUNvbG9yKGNvbG9yLCBtX3N0eWxlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3ModGhpcmQpOwotICAgICAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5zdHJva2VBcmMoSW50UmVjdCh4LCBvdXRlclksIHJhZGl1cy53aWR0
aCgpICogMiwgb3V0ZXJIZWlnaHQpLCBhbmdsZVN0YXJ0LCBhbmdsZVNwYW4pOwotICAgICAgICAg
ICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3MoaW5uZXJUaGlyZCA+IDIgPyBp
bm5lclRoaXJkIC0gMSA6IGlubmVyVGhpcmQpOwotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5zdHJva2VBcmMoSW50UmVjdChpbm5lclgsIGlubmVyWSwgaW5uZXJXaWR0aCwgaW5uZXJIZWln
aHQpLCBhbmdsZVN0YXJ0LCBhbmdsZVNwYW4pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBHUk9PVkU6Ci0gICAgICAgIGNhc2UgUklER0U6IHsKLSAgICAgICAg
ICAgIENvbG9yIGMyOwotICAgICAgICAgICAgaWYgKChzdHlsZSA9PSBSSURHRSAmJiAocyA9PSBC
U1RvcCB8fCBzID09IEJTTGVmdCkpIHx8Ci0gICAgICAgICAgICAgICAgICAgIChzdHlsZSA9PSBH
Uk9PVkUgJiYgKHMgPT0gQlNCb3R0b20gfHwgcyA9PSBCU1JpZ2h0KSkpCi0gICAgICAgICAgICAg
ICAgYzIgPSBjb2xvci5kYXJrKCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBjMiA9IGNvbG9yOwotICAgICAgICAgICAgICAgIGNvbG9yID0gY29sb3IuZGFyaygpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZVN0eWxl
KFNvbGlkU3Ryb2tlKTsKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlQ29s
b3IoY29sb3IsIG1fc3R5bGUtPmNvbG9yU3BhY2UoKSk7Ci0gICAgICAgICAgICBncmFwaGljc0Nv
bnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpOwotICAgICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5zdHJva2VBcmMoSW50UmVjdCh4LCB5LCByYWRpdXMud2lkdGgoKSAqIDIsIHJh
ZGl1cy5oZWlnaHQoKSAqIDIpLCBhbmdsZVN0YXJ0LCBhbmdsZVNwYW4pOwotCi0gICAgICAgICAg
ICBmbG9hdCBoYWxmVGhpY2tuZXNzID0gKHRoaWNrbmVzcyArIDEuMGYpIC8gNC4wZjsKLSAgICAg
ICAgICAgIGludCBzaGlmdEZvcklubmVyID0gc3RhdGljX2Nhc3Q8aW50PihoYWxmVGhpY2tuZXNz
ICogMS41Zik7Ci0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPnNldFN0cm9rZUNvbG9yKGMy
LCBtX3N0eWxlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5z
ZXRTdHJva2VUaGlja25lc3MoaGFsZlRoaWNrbmVzcyA+IDIgPyBoYWxmVGhpY2tuZXNzIC0gMSA6
IGhhbGZUaGlja25lc3MpOwotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zdHJva2VBcmMo
SW50UmVjdCh4ICsgc2hpZnRGb3JJbm5lciwgeSArIHNoaWZ0Rm9ySW5uZXIsIChyYWRpdXMud2lk
dGgoKSAtIHNoaWZ0Rm9ySW5uZXIpICogMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChyYWRpdXMuaGVpZ2h0KCkgLSBzaGlmdEZvcklubmVyKSAqIDIpLCBhbmdsZVN0
YXJ0LCBhbmdsZVNwYW4pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBJTlNFVDoKLSAgICAgICAgICAgIGlmIChzID09IEJTVG9wIHx8IHMgPT0gQlNMZWZ0KQot
ICAgICAgICAgICAgICAgIGNvbG9yID0gY29sb3IuZGFyaygpOwotICAgICAgICBjYXNlIE9VVFNF
VDoKLSAgICAgICAgICAgIGlmIChzdHlsZSA9PSBPVVRTRVQgJiYgKHMgPT0gQlNCb3R0b20gfHwg
cyA9PSBCU1JpZ2h0KSkKLSAgICAgICAgICAgICAgICBjb2xvciA9IGNvbG9yLmRhcmsoKTsKLSAg
ICAgICAgY2FzZSBTT0xJRDoKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tl
U3R5bGUoU29saWRTdHJva2UpOwotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zZXRTdHJv
a2VDb2xvcihjb2xvciwgbV9zdHlsZS0+Y29sb3JTcGFjZSgpKTsKLSAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHRoaWNrbmVzcyk7Ci0gICAgICAgICAgICBn
cmFwaGljc0NvbnRleHQtPnN0cm9rZUFyYyhJbnRSZWN0KHgsIHksIHJhZGl1cy53aWR0aCgpICog
MiwgcmFkaXVzLmhlaWdodCgpICogMiksIGFuZ2xlU3RhcnQsIGFuZ2xlU3Bhbik7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICB9Ci19Ci0jZW5kaWYKLSAgICAKIHZvaWQgUmVuZGVyT2JqZWN0Ojpw
YWludEZvY3VzUmluZyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCwgUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIFZlY3RvcjxJbnRSZWN0
PiBmb2N1c1JpbmdSZWN0czsKQEAgLTExMDcsNyArMTAyMiw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0
OjpwYWludEZvY3VzUmluZyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFBv
aW50JiBwCiAgICAgICAgIGNvbnRleHQtPmRyYXdGb2N1c1JpbmcoZm9jdXNSaW5nUmVjdHMsIHN0
eWxlLT5vdXRsaW5lV2lkdGgoKSwgc3R5bGUtPm91dGxpbmVPZmZzZXQoKSwgc3R5bGUtPnZpc2l0
ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcikpOwogICAgIGVsc2UKICAg
ICAgICAgYWRkUERGVVJMUmVjdChjb250ZXh0LCB1bmlvblJlY3QoZm9jdXNSaW5nUmVjdHMpKTsK
LX0gICAgICAgIAorfQogCiB2b2lkIFJlbmRlck9iamVjdDo6YWRkUERGVVJMUmVjdChHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggOTBjNDljOC4uZmY5ZTY1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNDEsMTAgKzQxLDYgQEAKICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCi0j
aWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShTS0lBKSB8fCBQTEFURk9STShRVCkgfHwg
UExBVEZPUk0oV1gpCi0jZGVmaW5lIEhBVkVfUEFUSF9CQVNFRF9CT1JERVJfUkFESVVTX0RSQVdJ
TkcgMQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNm
b3JtOwpAQCAtNTUyLDEzICs1NDgsNiBAQCBwdWJsaWM6CiAKICAgICBpbmxpbmUgYm9vbCBwcmVz
ZXJ2ZXNOZXdsaW5lKCkgY29uc3Q7CiAKLSNpZiAhSEFWRShQQVRIX0JBU0VEX0JPUkRFUl9SQURJ
VVNfRFJBV0lORykKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVtb3Zl
ZCB3aGVuIGFsbCBwb3J0cyBpbXBsZW1lbnQgR3JhcGhpY3NDb250ZXh0OjpjbGlwQ29udmV4UG9s
eWdvbigpISEKLSAgICAvLyBBdCB0aGF0IHRpbWUsIGV2ZXJ5b25lIGNhbiB1c2UgUmVuZGVyT2Jq
ZWN0OjpkcmF3Qm94U2lkZUZyb21QYXRoKCkgaW5zdGVhZC4gVGhpcyBzaG91bGQgaGFwcGVuIHNv
b24uCi0gICAgdm9pZCBkcmF3QXJjRm9yQm94U2lkZShHcmFwaGljc0NvbnRleHQqLCBpbnQgeCwg
aW50IHksIGZsb2F0IHRoaWNrbmVzcywgY29uc3QgSW50U2l6ZSYgcmFkaXVzLCBpbnQgYW5nbGVT
dGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbmdsZVNwYW4sIEJveFNpZGUs
IENvbG9yLCBFQm9yZGVyU3R5bGUsIGJvb2wgZmlyc3RDb3JuZXIpOwotI2VuZGlmCi0KICAgICAv
LyBUaGUgcHNldWRvIGVsZW1lbnQgc3R5bGUgY2FuIGJlIGNhY2hlZCBvciB1bmNhY2hlZC4gIFVz
ZSB0aGUgY2FjaGVkIG1ldGhvZCBpZiB0aGUgcHNldWRvIGVsZW1lbnQgZG9lc24ndCByZXNwZWN0
CiAgICAgLy8gYW55IHBzZXVkbyBjbGFzc2VzIChhbmQgdGhlcmVmb3JlIGhhcyBubyBjb25jZXB0
IG9mIGNoYW5naW5nIHN0YXRlKS4KICAgICBSZW5kZXJTdHlsZSogZ2V0Q2FjaGVkUHNldWRvU3R5
bGUoUHNldWRvSWQsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9IDApIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>