<?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>118757</bug_id>
          
          <creation_ts>2013-07-16 18:14:31 -0700</creation_ts>
          <short_desc>[CSS Shapes] Port refactoring of shape-outside code from Blink</short_desc>
          <delta_ts>2013-07-17 12:23: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>New Bugs</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="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>909089</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-07-16 18:14:31 -0700</bug_when>
    <thetext>[CSS Shapes] Port refactoring of shape-outside code from Blink</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909095</commentid>
    <comment_count>1</comment_count>
      <attachid>206833</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-07-16 18:25:08 -0700</bug_when>
    <thetext>Created attachment 206833
Patch

Refactor code to make it a bit cleaner and to match the refactoring that the Blink reviewer requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909405</commentid>
    <comment_count>2</comment_count>
      <attachid>206833</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-07-17 12:01:25 -0700</bug_when>
    <thetext>Comment on attachment 206833
Patch

This looks good to me. If it is a direct copy of a Blink commit, we usually would list the commit reference, but Bem says it isn&apos;t quite one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909410</commentid>
    <comment_count>3</comment_count>
      <attachid>206833</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-17 12:23:34 -0700</bug_when>
    <thetext>Comment on attachment 206833
Patch

Clearing flags on attachment: 206833

Committed r152794: &lt;http://trac.webkit.org/changeset/152794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909411</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-17 12:23:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206833</attachid>
            <date>2013-07-16 18:25:08 -0700</date>
            <delta_ts>2013-07-17 12:23:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118757-20130716182508.patch</filename>
            <type>text/plain</type>
            <size>20880</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjViN2JjNzc3MmQ4MGIy
MDg1N2M3ZWI2ODU2ZDQ1ZWYzNzE4ODJiNC4uMjY3MmU3Mjc5YTQ4NDgzNmZlY2U5YjUzYTQ0ZmM3
YzNiN2ExODQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTA3LTE2ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBQ
b3J0IHJlZmFjdG9yaW5nIG9mIHNoYXBlLW91dHNpZGUgY29kZSBmcm9tIEJsaW5rCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg3NTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciB0aGUgbGVm
dCBhbmQgcmlnaHQgb2Zmc2V0IG1ldGhvZHMgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YKKyAgICAg
ICAgYXJndW1lbnRzIGJ5IHNwbGl0dGluZyB0aGUgbWV0aG9kcyBpbnRvIHNtYWxsZXIgbWV0aG9k
cy4gVGhpcworICAgICAgICByZWZhY3RvcmluZyB3YXMgcmVxdWVzdGVkIGFzIHBhcnQgb2YgcG9y
dGluZyBzdXBwb3J0IGZvciBzdGFja2VkCisgICAgICAgIGZsb2F0cyB3aXRoIHNoYXBlLW91dHNp
ZGUgdG8gQmxpbmsuCisKKyAgICAgICAgQWxzbyBhZGQgYSB2YXJpYWJsZSB3aGVuIGNhbGxpbmcg
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSB0byBtYWtlIGl0CisgICAgICAgIG1vcmUgcmVhZGFibGUg
YW5kIGVhc2llciB0byBmb2xsb3cgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGNoYW5nZS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29t
cHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KTogVXBkYXRlIHRvIHVzZQorICAgICAgICAgICAg
dGhlIHJlZmFjdG9yZWQgSWdub3JpbmdTaGFwZU91dHNpZGUgbWV0aG9kcy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdEZsb2F0T2Zmc2V0Rm9yTGluZSk6IE5ldyBt
ZXRob2QgdG8KKyAgICAgICAgICAgIGNvbXB1dGUgdGhlIG9mZnNldCBjb250cmlidXRlZCBieSBs
ZWZ0IGZsb2F0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGp1c3RMb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUpOiBOZXcgbWV0aG9kIHRvCisgICAgICAgICAgICBjb21wdXRlIG1p
c2MgYWRqdXN0bWVudHMgdG8gdGhlIGxlZnQgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxSaWdodEZsb2F0T2Zmc2V0Rm9yTGluZSk6IE5ldyBtZXRob2QgdG8K
KyAgICAgICAgICAgIGNvbXB1dGUgdGhlIG9mZnNldCBjb250cmlidXRlZCBieSByaWdodCBmbG9h
dHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRqdXN0TG9naWNhbFJpZ2h0T2Zm
c2V0Rm9yTGluZSk6IE5ldyBtZXRob2QgdG8KKyAgICAgICAgICAgIGNvbXB1dGUgbWlzYyBhZGp1
c3RtZW50cyB0byB0aGUgcmlnaHQgb2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNl
dEZvckxpbmUpOiBJbXBsZW1lbnQgb3JpZ2luYWwKKyAgICAgICAgICAgIG1ldGhvZCBpbiB0ZXJt
cyBvZiB0aGUgZmxvYXQgb2Zmc2V0IGNvbXB1dGF0aW9uIG1ldGhvZCBhbmQgdGhlCisgICAgICAg
ICAgICBvZmZzZXQgYWRqdXN0bWVudCBtZXRob2QuIFRoaXMgbWV0aG9kIHRha2VzIGludG8gYWNj
b3VudCB0aGUKKyAgICAgICAgICAgIHNoYXBlLW91dHNpZGUgb24gYW55IGZsb2F0cyB3aGVuIGNv
bXB1dGluZyB0aGUgb2Zmc2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2lj
YWxMZWZ0T2Zmc2V0Rm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmVJZ25vcmluZ1NoYXBlT3V0c2lkZSk6CisgICAg
ICAgICAgICBDb21wdXRlIHRoZSByaWdodCBvZmZzZXQgYXMgaWYgdGhlcmUgd2FzIG5vIHNoYXBl
LW91dHNpZGUgb24gYW55CisgICAgICAgICAgICBvZiB0aGUgZmxvYXRzLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZUlnbm9yaW5nU2hhcGVP
dXRzaWRlKToKKyAgICAgICAgICAgIENvbXB1dGUgdGhlIGxlZnQgb2Zmc2V0IGFzIGlmIHRoZXJl
IHdhcyBubyBzaGFwZS1vdXRzaWRlIG9uIGFueQorICAgICAgICAgICAgb2YgdGhlIGZsb2F0cy4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxpbmVXaWR0aDo6c2hyaW5rQXZhaWxhYmxlV2lkdGhGb3JOZXdGbG9hdElmTmVl
ZGVkKTogVXBkYXRlCisgICAgICAgICAgICB0byB1c2UgYSB2YXJpYWJsZSB0byBtYWtlIHRoZSBj
YWxscyB0byBjb21wdXRlU2VnbWVudHNGb3JMaW5lIG1vcmUKKyAgICAgICAgICAgIGV4cGxpY2l0
IGFib3V0IHRoZSBjb29yZGluYXRlIHN5c3RlbSBjb252ZXJzaW9uLgorCiAyMDEzLTA3LTE2ICBD
aHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBH
ZXQgcmlkIG9mIG11bHRpcGxlIGluaGVyaXRhbmNlIHN1cHBvcnQgZnJvbSB0aGUgYmluZGluZ3Mg
Z2VuZXJhdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
NzQ1NmM1ZjViZTg0OGE0MjY3ZTVhOWFiM2M0NGFlYzVjZmVjM2NhMi4uZjg0MzBiMWZkYTljNDI0
ZTRkMzRhNDA3Zjc4ZGIwNTc3Nzk5N2FlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC00MTM2LDEwICs0MTM2LDEwIEBAIExheW91dFBvaW50IFJlbmRlckJs
b2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxvYXQoY29uc3QgRmxvYXRpbmdPYmplY3Qq
IGZsCiAgICAgaWYgKGNoaWxkQm94LT5zdHlsZSgpLT5mbG9hdGluZygpID09IExlZnRGbG9hdCkg
ewogICAgICAgICBMYXlvdXRVbml0IGhlaWdodFJlbWFpbmluZ0xlZnQgPSAxOwogICAgICAgICBM
YXlvdXRVbml0IGhlaWdodFJlbWFpbmluZ1JpZ2h0ID0gMTsKLSAgICAgICAgZmxvYXRMb2dpY2Fs
TGVmdCA9IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShsb2dpY2FsVG9wT2Zmc2V0LCBsb2dpY2Fs
TGVmdE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdMZWZ0LCAwLCBTaGFwZU91dHNpZGVG
bG9hdE1hcmdpbkJveE9mZnNldCk7Ci0gICAgICAgIHdoaWxlIChsb2dpY2FsUmlnaHRPZmZzZXRG
b3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxSaWdodE9mZnNldCwgZmFsc2UsICZoZWln
aHRSZW1haW5pbmdSaWdodCwgMCwgU2hhcGVPdXRzaWRlRmxvYXRNYXJnaW5Cb3hPZmZzZXQpIC0g
ZmxvYXRMb2dpY2FsTGVmdCA8IGZsb2F0TG9naWNhbFdpZHRoKSB7CisgICAgICAgIGZsb2F0TG9n
aWNhbExlZnQgPSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmVJZ25vcmluZ1NoYXBlT3V0c2lkZShs
b2dpY2FsVG9wT2Zmc2V0LCBsb2dpY2FsTGVmdE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5p
bmdMZWZ0KTsKKyAgICAgICAgd2hpbGUgKGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmVJZ25vcmlu
Z1NoYXBlT3V0c2lkZShsb2dpY2FsVG9wT2Zmc2V0LCBsb2dpY2FsUmlnaHRPZmZzZXQsIGZhbHNl
LCAmaGVpZ2h0UmVtYWluaW5nUmlnaHQpIC0gZmxvYXRMb2dpY2FsTGVmdCA8IGZsb2F0TG9naWNh
bFdpZHRoKSB7CiAgICAgICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0ICs9IG1pbihoZWlnaHRSZW1h
aW5pbmdMZWZ0LCBoZWlnaHRSZW1haW5pbmdSaWdodCk7Ci0gICAgICAgICAgICBmbG9hdExvZ2lj
YWxMZWZ0ID0gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2lj
YWxMZWZ0T2Zmc2V0LCBmYWxzZSwgJmhlaWdodFJlbWFpbmluZ0xlZnQsIDAsIFNoYXBlT3V0c2lk
ZUZsb2F0TWFyZ2luQm94T2Zmc2V0KTsKKyAgICAgICAgICAgIGZsb2F0TG9naWNhbExlZnQgPSBs
b2dpY2FsTGVmdE9mZnNldEZvckxpbmVJZ25vcmluZ1NoYXBlT3V0c2lkZShsb2dpY2FsVG9wT2Zm
c2V0LCBsb2dpY2FsTGVmdE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdMZWZ0KTsKICAg
ICAgICAgICAgIGlmIChpbnNpZGVGbG93VGhyZWFkKSB7CiAgICAgICAgICAgICAgICAgLy8gSGF2
ZSB0byByZS1ldmFsdWF0ZSBhbGwgb2Ygb3VyIG9mZnNldHMsIHNpbmNlIHRoZXkgbWF5IGhhdmUg
Y2hhbmdlZC4KICAgICAgICAgICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgPSBsb2dpY2FsUmln
aHRPZmZzZXRGb3JDb250ZW50KGxvZ2ljYWxUb3BPZmZzZXQpOyAvLyBDb25zdGFudCBwYXJ0IG9m
IHJpZ2h0IG9mZnNldC4KQEAgLTQxNTEsMTAgKzQxNTEsMTAgQEAgTGF5b3V0UG9pbnQgUmVuZGVy
QmxvY2s6OmNvbXB1dGVMb2dpY2FsTG9jYXRpb25Gb3JGbG9hdChjb25zdCBGbG9hdGluZ09iamVj
dCogZmwKICAgICB9IGVsc2UgewogICAgICAgICBMYXlvdXRVbml0IGhlaWdodFJlbWFpbmluZ0xl
ZnQgPSAxOwogICAgICAgICBMYXlvdXRVbml0IGhlaWdodFJlbWFpbmluZ1JpZ2h0ID0gMTsKLSAg
ICAgICAgZmxvYXRMb2dpY2FsTGVmdCA9IGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUobG9naWNh
bFRvcE9mZnNldCwgbG9naWNhbFJpZ2h0T2Zmc2V0LCBmYWxzZSwgJmhlaWdodFJlbWFpbmluZ1Jp
Z2h0LCAwLCBTaGFwZU91dHNpZGVGbG9hdE1hcmdpbkJveE9mZnNldCk7Ci0gICAgICAgIHdoaWxl
IChmbG9hdExvZ2ljYWxMZWZ0IC0gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BP
ZmZzZXQsIGxvZ2ljYWxMZWZ0T2Zmc2V0LCBmYWxzZSwgJmhlaWdodFJlbWFpbmluZ0xlZnQsIDAs
IFNoYXBlT3V0c2lkZUZsb2F0TWFyZ2luQm94T2Zmc2V0KSA8IGZsb2F0TG9naWNhbFdpZHRoKSB7
CisgICAgICAgIGZsb2F0TG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lSWdu
b3JpbmdTaGFwZU91dHNpZGUobG9naWNhbFRvcE9mZnNldCwgbG9naWNhbFJpZ2h0T2Zmc2V0LCBm
YWxzZSwgJmhlaWdodFJlbWFpbmluZ1JpZ2h0KTsKKyAgICAgICAgd2hpbGUgKGZsb2F0TG9naWNh
bExlZnQgLSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmVJZ25vcmluZ1NoYXBlT3V0c2lkZShsb2dp
Y2FsVG9wT2Zmc2V0LCBsb2dpY2FsTGVmdE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdM
ZWZ0KSA8IGZsb2F0TG9naWNhbFdpZHRoKSB7CiAgICAgICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0
ICs9IG1pbihoZWlnaHRSZW1haW5pbmdMZWZ0LCBoZWlnaHRSZW1haW5pbmdSaWdodCk7Ci0gICAg
ICAgICAgICBmbG9hdExvZ2ljYWxMZWZ0ID0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShsb2dp
Y2FsVG9wT2Zmc2V0LCBsb2dpY2FsUmlnaHRPZmZzZXQsIGZhbHNlLCAmaGVpZ2h0UmVtYWluaW5n
UmlnaHQsIDAsIFNoYXBlT3V0c2lkZUZsb2F0TWFyZ2luQm94T2Zmc2V0KTsKKyAgICAgICAgICAg
IGZsb2F0TG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lSWdub3JpbmdTaGFw
ZU91dHNpZGUobG9naWNhbFRvcE9mZnNldCwgbG9naWNhbFJpZ2h0T2Zmc2V0LCBmYWxzZSwgJmhl
aWdodFJlbWFpbmluZ1JpZ2h0KTsKICAgICAgICAgICAgIGlmIChpbnNpZGVGbG93VGhyZWFkKSB7
CiAgICAgICAgICAgICAgICAgLy8gSGF2ZSB0byByZS1ldmFsdWF0ZSBhbGwgb2Ygb3VyIG9mZnNl
dHMsIHNpbmNlIHRoZXkgbWF5IGhhdmUgY2hhbmdlZC4KICAgICAgICAgICAgICAgICBsb2dpY2Fs
UmlnaHRPZmZzZXQgPSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KGxvZ2ljYWxUb3BPZmZz
ZXQpOyAvLyBDb25zdGFudCBwYXJ0IG9mIHJpZ2h0IG9mZnNldC4KQEAgLTQ0MzksNyArNDQzOSw3
IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQo
UmVuZGVyUmVnaW9uKiByZWdpb24pIGNvbnN0CiAgICAgcmV0dXJuIGxvZ2ljYWxSaWdodE9mZnNl
dCAtIChsb2dpY2FsV2lkdGgoKSAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm94UmVj
dC5tYXhYKCkgOiBib3hSZWN0Lm1heFkoKSkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2Nr
Ojpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRV
bml0IGZpeGVkT2Zmc2V0LCBib29sIGFwcGx5VGV4dEluZGVudCwgTGF5b3V0VW5pdCogaGVpZ2h0
UmVtYWluaW5nLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNoYXBlT3V0c2lkZUZsb2F0T2Zm
c2V0TW9kZSBvZmZzZXRNb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNh
bExlZnRGbG9hdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0
IGZpeGVkT2Zmc2V0LCBMYXlvdXRVbml0KiBoZWlnaHRSZW1haW5pbmcsIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgU2hhcGVPdXRzaWRlRmxvYXRPZmZzZXRNb2RlIG9mZnNldE1vZGUpIGNvbnN0
CiB7CiAjaWYgIUVOQUJMRShDU1NfU0hBUEVTKQogICAgIFVOVVNFRF9QQVJBTShvZmZzZXRNb2Rl
KTsKQEAgLTQ0NTYsMTMgKzQ0NTYsMjEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNh
bExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW4KICAgICAg
ICAgY29uc3QgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdCA9IGFkYXB0ZXIubGFzdEZsb2F0KCk7
CiAgICAgICAgIGlmIChvZmZzZXRNb2RlID09IFNoYXBlT3V0c2lkZUZsb2F0U2hhcGVPZmZzZXQg
JiYgbGFzdEZsb2F0KSB7CiAgICAgICAgICAgICBpZiAoU2hhcGVPdXRzaWRlSW5mbyogc2hhcGVP
dXRzaWRlID0gbGFzdEZsb2F0LT5yZW5kZXJlcigpLT5zaGFwZU91dHNpZGVJbmZvKCkpIHsKLSAg
ICAgICAgICAgICAgICBzaGFwZU91dHNpZGUtPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobG9naWNh
bFRvcCAtIGxvZ2ljYWxUb3BGb3JGbG9hdChsYXN0RmxvYXQpLCBsb2dpY2FsSGVpZ2h0KTsKKyAg
ICAgICAgICAgICAgICBMYXlvdXRVbml0IGxpbmVUb3BJblNoYXBlQ29vcmRpbmF0ZXMgPSBsb2dp
Y2FsVG9wIC0gbG9naWNhbFRvcEZvckZsb2F0KGxhc3RGbG9hdCk7CisgICAgICAgICAgICAgICAg
c2hhcGVPdXRzaWRlLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3BJblNoYXBlQ29vcmRp
bmF0ZXMsIGxvZ2ljYWxIZWlnaHQpOwogICAgICAgICAgICAgICAgIGxlZnQgKz0gc2hhcGVPdXRz
aWRlLT5yaWdodFNlZ21lbnRNYXJnaW5Cb3hEZWx0YSgpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAjZW5kaWYKICAgICB9CiAKKyAgICByZXR1cm4gbGVmdDsKK30KKworTGF5b3V0VW5pdCBS
ZW5kZXJCbG9jazo6YWRqdXN0TG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgb2Zm
c2V0RnJvbUZsb2F0cywgYm9vbCBhcHBseVRleHRJbmRlbnQpIGNvbnN0Cit7CisgICAgTGF5b3V0
VW5pdCBsZWZ0ID0gb2Zmc2V0RnJvbUZsb2F0czsKKwogICAgIGlmIChhcHBseVRleHRJbmRlbnQg
JiYgc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAgICBsZWZ0ICs9IHRl
eHRJbmRlbnRPZmZzZXQoKTsKIApAQCAtNDQ5OSw3ICs0NTA3LDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJCbG9jazo6bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRvcCwg
TGF5b3V0VW4KICAgICByZXR1cm4gbGVmdDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6
bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVu
aXQgZml4ZWRPZmZzZXQsIGJvb2wgYXBwbHlUZXh0SW5kZW50LCBMYXlvdXRVbml0KiBoZWlnaHRS
ZW1haW5pbmcsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2hhcGVPdXRzaWRlRmxvYXRPZmZz
ZXRNb2RlIG9mZnNldE1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2Fs
UmlnaHRGbG9hdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0
IGZpeGVkT2Zmc2V0LCBMYXlvdXRVbml0KiBoZWlnaHRSZW1haW5pbmcsIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgU2hhcGVPdXRzaWRlRmxvYXRPZmZzZXRNb2RlIG9mZnNldE1vZGUpIGNvbnN0
CiB7CiAjaWYgIUVOQUJMRShDU1NfU0hBUEVTKQogICAgIFVOVVNFRF9QQVJBTShvZmZzZXRNb2Rl
KTsKQEAgLTQ1MTcsNyArNDUyNSw4IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxS
aWdodE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVCiAgICAgICAg
IGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXQgPSBhZGFwdGVyLmxhc3RGbG9hdCgpOwog
ICAgICAgICBpZiAob2Zmc2V0TW9kZSA9PSBTaGFwZU91dHNpZGVGbG9hdFNoYXBlT2Zmc2V0ICYm
IGxhc3RGbG9hdCkgewogICAgICAgICAgICAgaWYgKFNoYXBlT3V0c2lkZUluZm8qIHNoYXBlT3V0
c2lkZSA9IGxhc3RGbG9hdC0+cmVuZGVyZXIoKS0+c2hhcGVPdXRzaWRlSW5mbygpKSB7Ci0gICAg
ICAgICAgICAgICAgc2hhcGVPdXRzaWRlLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxvZ2ljYWxU
b3AgLSBsb2dpY2FsVG9wRm9yRmxvYXQobGFzdEZsb2F0KSwgbG9naWNhbEhlaWdodCk7CisgICAg
ICAgICAgICAgICAgTGF5b3V0VW5pdCBsaW5lVG9wSW5TaGFwZUNvb3JkaW5hdGVzID0gbG9naWNh
bFRvcCAtIGxvZ2ljYWxUb3BGb3JGbG9hdChsYXN0RmxvYXQpOworICAgICAgICAgICAgICAgIHNo
YXBlT3V0c2lkZS0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wSW5TaGFwZUNvb3JkaW5h
dGVzLCBsb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgICAgICAgICByaWdodEZsb2F0T2Zmc2V0ICs9
IHNoYXBlT3V0c2lkZS0+bGVmdFNlZ21lbnRNYXJnaW5Cb3hEZWx0YSgpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC00NTI1LDYgKzQ1MzQsMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91
dFUKIAogICAgICAgICByaWdodCA9IG1pbihyaWdodCwgcmlnaHRGbG9hdE9mZnNldCk7CiAgICAg
fQorCisgICAgcmV0dXJuIHJpZ2h0OworfQorCitMYXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGp1
c3RMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgb2Zmc2V0RnJvbUZsb2F0cywg
Ym9vbCBhcHBseVRleHRJbmRlbnQpIGNvbnN0Cit7CisgICAgTGF5b3V0VW5pdCByaWdodCA9IG9m
ZnNldEZyb21GbG9hdHM7CiAgICAgCiAgICAgaWYgKGFwcGx5VGV4dEluZGVudCAmJiAhc3R5bGUo
KS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAgICByaWdodCAtPSB0ZXh0SW5kZW50
T2Zmc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDEyNTg4
NzE3NWM5OTJjN2RjZTNkZTAyYzkyNGE1ZWNjYWQ1YTU1Y2IuLjk0Y2RiYjdmZTIwYjRiNjQzZmJm
OGM2YjZkYWY4ZGJlM2Q1MmJkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCkBAIC03Miw3ICs3Miw2IEBAIHR5cGVkZWYgVmVjdG9yPFdvcmRNZWFzdXJlbWVudCwgNjQ+
IFdvcmRNZWFzdXJlbWVudHM7CiAKIGVudW0gQ2FyZXRUeXBlIHsgQ3Vyc29yQ2FyZXQsIERyYWdD
YXJldCB9OwogZW51bSBDb250YWluaW5nQmxvY2tTdGF0ZSB7IE5ld0NvbnRhaW5pbmdCbG9jaywg
U2FtZUNvbnRhaW5pbmdCbG9jayB9OwotZW51bSBTaGFwZU91dHNpZGVGbG9hdE9mZnNldE1vZGUg
eyBTaGFwZU91dHNpZGVGbG9hdFNoYXBlT2Zmc2V0LCBTaGFwZU91dHNpZGVGbG9hdE1hcmdpbkJv
eE9mZnNldCB9OwogCiBlbnVtIFRleHRSdW5GbGFnIHsKICAgICBEZWZhdWx0VGV4dFJ1bkZsYWdz
ID0gMCwKQEAgLTE3MiwxMyArMTcxLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1heDxM
YXlvdXRVbml0PigwLCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJ
bmRlbnRUZXh0LCByZWdpb24sIGxvZ2ljYWxIZWlnaHQpCiAgICAgICAgICAgICAtIGxvZ2ljYWxM
ZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgc2hvdWxkSW5kZW50VGV4dCwgcmVnaW9uLCBsb2dp
Y2FsSGVpZ2h0KSk7CiAgICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9y
TGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIFJlbmRlclJl
Z2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwLCBTaGFwZU91dHNpZGVG
bG9hdE9mZnNldE1vZGUgb2Zmc2V0TW9kZSA9IFNoYXBlT3V0c2lkZUZsb2F0U2hhcGVPZmZzZXQp
IGNvbnN0IAorICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRV
bml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIFJlbmRlclJlZ2lvbiogcmVnaW9u
LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAKICAgICB7Ci0gICAgICAgIHJl
dHVybiBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsUmlnaHRPZmZz
ZXRGb3JDb250ZW50KHJlZ2lvbiksIHNob3VsZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWlnaHQs
IG9mZnNldE1vZGUpOworICAgICAgICByZXR1cm4gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShw
b3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChyZWdpb24pLCBzaG91bGRJbmRl
bnRUZXh0LCAwLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBzaG91bGRJbmRlbnRU
ZXh0LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCwg
U2hhcGVPdXRzaWRlRmxvYXRPZmZzZXRNb2RlIG9mZnNldE1vZGUgPSBTaGFwZU91dHNpZGVGbG9h
dFNoYXBlT2Zmc2V0KSBjb25zdCAKKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9y
TGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIFJlbmRlclJl
Z2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAKICAgICB7
Ci0gICAgICAgIHJldHVybiBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGxvZ2lj
YWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChyZWdpb24pLCBzaG91bGRJbmRlbnRUZXh0LCAwLCBsb2dp
Y2FsSGVpZ2h0LCBvZmZzZXRNb2RlKTsKKyAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0
Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KHJlZ2lvbiksIHNo
b3VsZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWlnaHQpOwogICAgIH0KICAgICBMYXlvdXRVbml0
IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVu
dFRleHQsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAw
KSBjb25zdAogICAgIHsKQEAgLTE5NSwxMyArMTk0LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJ
bmRlbnRUZXh0LCByZWdpb25BdEJsb2NrT2Zmc2V0KHBvc2l0aW9uKSwgbG9naWNhbEhlaWdodCk7
CiAgICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRV
bml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCA9IDAsIFNoYXBlT3V0c2lkZUZsb2F0T2Zmc2V0TW9kZSBvZmZzZXRNb2RlID0gU2hhcGVP
dXRzaWRlRmxvYXRTaGFwZU9mZnNldCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmln
aHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5kZW50VGV4
dCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAgICAgICBy
ZXR1cm4gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zm
c2V0Rm9yQ29udGVudChwb3NpdGlvbiksIHNob3VsZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWln
aHQsIG9mZnNldE1vZGUpOworICAgICAgICByZXR1cm4gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGlu
ZShwb3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChwb3NpdGlvbiksIHNob3Vs
ZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWlnaHQpOwogICAgIH0KLSAgICBMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZElu
ZGVudFRleHQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDAsIFNoYXBlT3V0c2lkZUZsb2F0
T2Zmc2V0TW9kZSBvZmZzZXRNb2RlID0gU2hhcGVPdXRzaWRlRmxvYXRTaGFwZU9mZnNldCkgY29u
c3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBw
b3NpdGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQg
PSAwKSBjb25zdCAKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2dpY2FsTGVmdE9mZnNldEZvckxp
bmUocG9zaXRpb24sIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChwb3NpdGlvbiksIHNob3Vs
ZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWlnaHQsIG9mZnNldE1vZGUpOworICAgICAgICByZXR1
cm4gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsTGVmdE9mZnNldEZv
ckNvbnRlbnQocG9zaXRpb24pLCBzaG91bGRJbmRlbnRUZXh0LCAwLCBsb2dpY2FsSGVpZ2h0KTsK
ICAgICB9CiAgICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRMb2dpY2FsTGVmdE9mZnNldEZvckxp
bmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAKICAgICB7CkBAIC01MTUsOCArNTE0LDIyIEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDaGlsZHJlbihQYWludEluZm8mIGZvclNl
bGYsIGNvbnN0IExheW91dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmlu
dFJlY3QpOwogICAgIGJvb2wgcGFpbnRDaGlsZChSZW5kZXJCb3gqLCBQYWludEluZm8mIGZvclNl
bGYsIGNvbnN0IExheW91dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmlu
dFJlY3QpOwogICAgCi0gICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExh
eW91dFVuaXQgcG9zaXRpb24sIExheW91dFVuaXQgZml4ZWRPZmZzZXQsIGJvb2wgYXBwbHlUZXh0
SW5kZW50LCBMYXlvdXRVbml0KiBsb2dpY2FsSGVpZ2h0UmVtYWluaW5nID0gMCwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0ID0gMCwgU2hhcGVPdXRzaWRlRmxvYXRPZmZzZXRNb2RlID0gU2hhcGVP
dXRzaWRlRmxvYXRTaGFwZU9mZnNldCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVm
dE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgTGF5b3V0VW5pdCBmaXhlZE9mZnNl
dCwgYm9vbCBhcHBseVRleHRJbmRlbnQsIExheW91dFVuaXQqIGxvZ2ljYWxIZWlnaHRSZW1haW5p
bmcgPSAwLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwLCBTaGFwZU91dHNpZGVGbG9hdE9m
ZnNldE1vZGUgPSBTaGFwZU91dHNpZGVGbG9hdFNoYXBlT2Zmc2V0KSBjb25zdDsKKyAgICBMYXlv
dXRVbml0IGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
YXlvdXRVbml0IGZpeGVkT2Zmc2V0LCBib29sIGFwcGx5VGV4dEluZGVudCwgTGF5b3V0VW5pdCog
aGVpZ2h0UmVtYWluaW5nID0gMCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBhZGp1c3RMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxv
Z2ljYWxSaWdodEZsb2F0T2Zmc2V0Rm9yTGluZShsb2dpY2FsVG9wLCBmaXhlZE9mZnNldCwgaGVp
Z2h0UmVtYWluaW5nLCBsb2dpY2FsSGVpZ2h0LCBTaGFwZU91dHNpZGVGbG9hdFNoYXBlT2Zmc2V0
KSwgYXBwbHlUZXh0SW5kZW50KTsKKyAgICB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9m
ZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGZpeGVkT2Zmc2V0
LCBib29sIGFwcGx5VGV4dEluZGVudCwgTGF5b3V0VW5pdCogaGVpZ2h0UmVtYWluaW5nID0gMCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBhZGp1c3RMb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbExlZnRGbG9hdE9mZnNldEZv
ckxpbmUobG9naWNhbFRvcCwgZml4ZWRPZmZzZXQsIGhlaWdodFJlbWFpbmluZywgbG9naWNhbEhl
aWdodCwgU2hhcGVPdXRzaWRlRmxvYXRTaGFwZU9mZnNldCksIGFwcGx5VGV4dEluZGVudCk7Cisg
ICAgfQorICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZUlnbm9yaW5nU2hh
cGVPdXRzaWRlKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNldCwg
Ym9vbCBhcHBseVRleHRJbmRlbnQsIExheW91dFVuaXQqIGhlaWdodFJlbWFpbmluZyA9IDAsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
YWRqdXN0TG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShsb2dpY2FsUmlnaHRGbG9hdE9mZnNldEZv
ckxpbmUobG9naWNhbFRvcCwgZml4ZWRPZmZzZXQsIGhlaWdodFJlbWFpbmluZywgbG9naWNhbEhl
aWdodCwgU2hhcGVPdXRzaWRlRmxvYXRNYXJnaW5Cb3hPZmZzZXQpLCBhcHBseVRleHRJbmRlbnQp
OworICAgIH0KKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZUlnbm9yaW5n
U2hhcGVPdXRzaWRlKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNl
dCwgYm9vbCBhcHBseVRleHRJbmRlbnQsIExheW91dFVuaXQqIGhlaWdodFJlbWFpbmluZyA9IDAs
IExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gYWRqdXN0TG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxMZWZ0RmxvYXRPZmZzZXRG
b3JMaW5lKGxvZ2ljYWxUb3AsIGZpeGVkT2Zmc2V0LCBoZWlnaHRSZW1haW5pbmcsIGxvZ2ljYWxI
ZWlnaHQsIFNoYXBlT3V0c2lkZUZsb2F0TWFyZ2luQm94T2Zmc2V0KSwgYXBwbHlUZXh0SW5kZW50
KTsKKyAgICB9CiAKICAgICB2aXJ0dWFsIEVUZXh0QWxpZ24gdGV4dEFsaWdubWVudEZvckxpbmUo
Ym9vbCBlbmRzV2l0aFNvZnRCcmVhaykgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdElu
bGluZURpcmVjdGlvbkxpbmVCb3VuZHMoaW50IC8qIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQg
Ki8sIGZsb2F0JiAvKiBsb2dpY2FsTGVmdCAqLywgZmxvYXQmIC8qIGxvZ2ljYWxXaWR0aCAqLykg
Y29uc3QgeyB9CkBAIC01ODUsNiArNTk4LDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgY2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShMYXlvdXRVbml0JiBwYWdl
TG9naWNhbEhlaWdodCwgYm9vbCYgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkLCBib29sJiBoYXNT
cGVjaWZpZWRQYWdlTG9naWNhbEhlaWdodCk7CiAKIHByaXZhdGU6CisgICAgZW51bSBTaGFwZU91
dHNpZGVGbG9hdE9mZnNldE1vZGUgeyBTaGFwZU91dHNpZGVGbG9hdFNoYXBlT2Zmc2V0LCBTaGFw
ZU91dHNpZGVGbG9hdE1hcmdpbkJveE9mZnNldCB9OworCisgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
UmlnaHRGbG9hdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0
IGZpeGVkT2Zmc2V0LCBMYXlvdXRVbml0KiBoZWlnaHRSZW1haW5pbmcsIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgU2hhcGVPdXRzaWRlRmxvYXRPZmZzZXRNb2RlKSBjb25zdDsKKyAgICBMYXlv
dXRVbml0IGxvZ2ljYWxMZWZ0RmxvYXRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNldCwgTGF5b3V0VW5pdCogaGVpZ2h0UmVtYWluaW5nLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNoYXBlT3V0c2lkZUZsb2F0T2Zmc2V0TW9kZSkgY29u
c3Q7CisgICAgTGF5b3V0VW5pdCBhZGp1c3RMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91
dFVuaXQgb2Zmc2V0RnJvbUZsb2F0cywgYm9vbCBhcHBseVRleHRJbmRlbnQpIGNvbnN0OworICAg
IExheW91dFVuaXQgYWRqdXN0TG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgb2Zm
c2V0RnJvbUZsb2F0cywgYm9vbCBhcHBseVRleHRJbmRlbnQpIGNvbnN0OworCiAjaWYgRU5BQkxF
KENTU19TSEFQRVMpCiAgICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKCk7CiAgICAgdm9pZCB1cGRh
dGVTaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFNoYXBlVmFsdWUqLCBjb25z
dCBTaGFwZVZhbHVlKiBvbGRTaGFwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGVkZjg3MTI2OTNjZmM3ZDRkMWI5YjQ0
ZGNhMGYxNWI4YzRjNTFjZDMuLjk4ZjA1NjRkYWZlOTczN2Y0MWJjOTY5YWNlZDUzNmY4MWFmNGE4
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCkBAIC0yMDAsMzAgKzIwMCwzNCBAQCBpbmxpbmUgdm9pZCBMaW5lV2lkdGg6OnNo
cmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZChSZW5kZXJCbG9jazo6RmxvYQog
ICAgIC8vIHdoZW4gd2UgYWRkIGEgc3Vic2VxdWVudCBmbG9hdCBvbiB0aGUgc2FtZSBsaW5lLCB3
ZSBuZWVkIHRvIHVuZG8gdGhlIHNoYXBlIGRlbHRhIGluIG9yZGVyIHRvIHBvc2l0aW9uCiAgICAg
Ly8gYmFzZWQgb24gdGhlIG1hcmdpbiBib3guIEluIG9yZGVyIHRvIGRvIHRoaXMsIHdlIG5lZWQg
dG8gd2FsayBiYWNrIHRocm91Z2ggdGhlIGZsb2F0aW5nIG9iamVjdCBsaXN0IHRvIGZpbmQKICAg
ICAvLyB0aGUgZmlyc3QgcHJldmlvdXMgZmxvYXQgdGhhdCBpcyBvbiB0aGUgc2FtZSBzaWRlIGFz
IG91ciBuZXdGbG9hdC4KLSAgICBTaGFwZU91dHNpZGVJbmZvKiBsYXN0U2hhcGVPdXRzaWRlSW5m
byA9IDA7CisgICAgU2hhcGVPdXRzaWRlSW5mbyogcHJldmlvdXNTaGFwZU91dHNpZGVJbmZvID0g
MDsKICAgICBjb25zdCBSZW5kZXJCbG9jazo6RmxvYXRpbmdPYmplY3RTZXQmIGZsb2F0aW5nT2Jq
ZWN0U2V0ID0gbV9ibG9jay0+bV9mbG9hdGluZ09iamVjdHMtPnNldCgpOwogICAgIFJlbmRlckJs
b2NrOjpGbG9hdGluZ09iamVjdFNldEl0ZXJhdG9yIGl0ID0gZmxvYXRpbmdPYmplY3RTZXQuZW5k
KCk7CiAgICAgUmVuZGVyQmxvY2s6OkZsb2F0aW5nT2JqZWN0U2V0SXRlcmF0b3IgYmVnaW4gPSBm
bG9hdGluZ09iamVjdFNldC5iZWdpbigpOwogICAgIGZvciAoLS1pdDsgaXQgIT0gYmVnaW47IC0t
aXQpIHsKLSAgICAgICAgUmVuZGVyQmxvY2s6OkZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXQgPSAq
aXQ7Ci0gICAgICAgIGlmIChsYXN0RmxvYXQgIT0gbmV3RmxvYXQgJiYgbGFzdEZsb2F0LT50eXBl
KCkgPT0gbmV3RmxvYXQtPnR5cGUoKSkgewotICAgICAgICAgICAgbGFzdFNoYXBlT3V0c2lkZUlu
Zm8gPSBsYXN0RmxvYXQtPnJlbmRlcmVyKCktPnNoYXBlT3V0c2lkZUluZm8oKTsKLSAgICAgICAg
ICAgIGlmIChsYXN0U2hhcGVPdXRzaWRlSW5mbykKLSAgICAgICAgICAgICAgICBsYXN0U2hhcGVP
dXRzaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShtX2Jsb2NrLT5sb2dpY2FsSGVpZ2h0
KCkgLSBtX2Jsb2NrLT5sb2dpY2FsVG9wRm9yRmxvYXQobGFzdEZsb2F0KSwgbG9naWNhbEhlaWdo
dEZvckxpbmUobV9ibG9jaywgbV9pc0ZpcnN0TGluZSkpOworICAgICAgICBSZW5kZXJCbG9jazo6
RmxvYXRpbmdPYmplY3QqIHByZXZpb3VzRmxvYXQgPSAqaXQ7CisgICAgICAgIGlmIChwcmV2aW91
c0Zsb2F0ICE9IG5ld0Zsb2F0ICYmIHByZXZpb3VzRmxvYXQtPnR5cGUoKSA9PSBuZXdGbG9hdC0+
dHlwZSgpKSB7CisgICAgICAgICAgICBwcmV2aW91c1NoYXBlT3V0c2lkZUluZm8gPSBwcmV2aW91
c0Zsb2F0LT5yZW5kZXJlcigpLT5zaGFwZU91dHNpZGVJbmZvKCk7CisgICAgICAgICAgICBpZiAo
cHJldmlvdXNTaGFwZU91dHNpZGVJbmZvKSB7CisgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBs
aW5lVG9wSW5TaGFwZUNvb3JkaW5hdGVzID0gbV9ibG9jay0+bG9naWNhbEhlaWdodCgpIC0gbV9i
bG9jay0+bG9naWNhbFRvcEZvckZsb2F0KHByZXZpb3VzRmxvYXQpOworICAgICAgICAgICAgICAg
IHByZXZpb3VzU2hhcGVPdXRzaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9w
SW5TaGFwZUNvb3JkaW5hdGVzLCBsb2dpY2FsSGVpZ2h0Rm9yTGluZShtX2Jsb2NrLCBtX2lzRmly
c3RMaW5lKSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgIH0KIAogICAgIFNoYXBlT3V0c2lkZUluZm8qIHNoYXBlT3V0c2lkZUluZm8gPSBuZXdGbG9h
dC0+cmVuZGVyZXIoKS0+c2hhcGVPdXRzaWRlSW5mbygpOwotICAgIGlmIChzaGFwZU91dHNpZGVJ
bmZvKQotICAgICAgICBzaGFwZU91dHNpZGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKG1f
YmxvY2stPmxvZ2ljYWxIZWlnaHQoKSAtIG1fYmxvY2stPmxvZ2ljYWxUb3BGb3JGbG9hdChuZXdG
bG9hdCksIGxvZ2ljYWxIZWlnaHRGb3JMaW5lKG1fYmxvY2ssIG1faXNGaXJzdExpbmUpKTsKKyAg
ICBpZiAoc2hhcGVPdXRzaWRlSW5mbykgeworICAgICAgICBMYXlvdXRVbml0IGxpbmVUb3BJblNo
YXBlQ29vcmRpbmF0ZXMgPSBtX2Jsb2NrLT5sb2dpY2FsSGVpZ2h0KCkgLSBtX2Jsb2NrLT5sb2dp
Y2FsVG9wRm9yRmxvYXQobmV3RmxvYXQpOworICAgICAgICBzaGFwZU91dHNpZGVJbmZvLT5jb21w
dXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3BJblNoYXBlQ29vcmRpbmF0ZXMsIGxvZ2ljYWxIZWln
aHRGb3JMaW5lKG1fYmxvY2ssIG1faXNGaXJzdExpbmUpKTsKKyAgICB9CiAjZW5kaWYKIAogICAg
IGlmIChuZXdGbG9hdC0+dHlwZSgpID09IFJlbmRlckJsb2NrOjpGbG9hdGluZ09iamVjdDo6Rmxv
YXRMZWZ0KSB7CiAgICAgICAgIGZsb2F0IG5ld0xlZnQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRG
b3JGbG9hdChuZXdGbG9hdCk7CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCi0gICAgICAgIGlmIChs
YXN0U2hhcGVPdXRzaWRlSW5mbykKLSAgICAgICAgICAgIG5ld0xlZnQgLT0gbGFzdFNoYXBlT3V0
c2lkZUluZm8tPnJpZ2h0U2VnbWVudE1hcmdpbkJveERlbHRhKCk7CisgICAgICAgIGlmIChwcmV2
aW91c1NoYXBlT3V0c2lkZUluZm8pCisgICAgICAgICAgICBuZXdMZWZ0IC09IHByZXZpb3VzU2hh
cGVPdXRzaWRlSW5mby0+cmlnaHRTZWdtZW50TWFyZ2luQm94RGVsdGEoKTsKICAgICAgICAgaWYg
KHNoYXBlT3V0c2lkZUluZm8pCiAgICAgICAgICAgICBuZXdMZWZ0ICs9IHNoYXBlT3V0c2lkZUlu
Zm8tPnJpZ2h0U2VnbWVudE1hcmdpbkJveERlbHRhKCk7CiAjZW5kaWYKQEAgLTIzNCw4ICsyMzgs
OCBAQCBpbmxpbmUgdm9pZCBMaW5lV2lkdGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3Rmxv
YXRJZk5lZWRlZChSZW5kZXJCbG9jazo6RmxvYQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZsb2F0
IG5ld1JpZ2h0ID0gbV9ibG9jay0+bG9naWNhbExlZnRGb3JGbG9hdChuZXdGbG9hdCk7CiAjaWYg
RU5BQkxFKENTU19TSEFQRVMpCi0gICAgICAgIGlmIChsYXN0U2hhcGVPdXRzaWRlSW5mbykKLSAg
ICAgICAgICAgIG5ld1JpZ2h0IC09IGxhc3RTaGFwZU91dHNpZGVJbmZvLT5sZWZ0U2VnbWVudE1h
cmdpbkJveERlbHRhKCk7CisgICAgICAgIGlmIChwcmV2aW91c1NoYXBlT3V0c2lkZUluZm8pCisg
ICAgICAgICAgICBuZXdSaWdodCAtPSBwcmV2aW91c1NoYXBlT3V0c2lkZUluZm8tPmxlZnRTZWdt
ZW50TWFyZ2luQm94RGVsdGEoKTsKICAgICAgICAgaWYgKHNoYXBlT3V0c2lkZUluZm8pCiAgICAg
ICAgICAgICBuZXdSaWdodCArPSBzaGFwZU91dHNpZGVJbmZvLT5sZWZ0U2VnbWVudE1hcmdpbkJv
eERlbHRhKCk7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>