<?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>138337</bug_id>
          
          <creation_ts>2014-11-03 17:10:30 -0800</creation_ts>
          <short_desc>Move &apos;size&apos; CSS property to the new StyleBuilder</short_desc>
          <delta_ts>2014-11-05 20:09:30 -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>CSS</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>
          <dependson>137910</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045906</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-03 17:10:30 -0800</bug_when>
    <thetext>Move &apos;size&apos; CSS property to the new StyleBuilder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045912</commentid>
    <comment_count>1</comment_count>
      <attachid>240885</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-03 17:24:49 -0800</bug_when>
    <thetext>Created attachment 240885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046017</commentid>
    <comment_count>2</comment_count>
      <attachid>240885</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-03 23:52:50 -0800</bug_when>
    <thetext>Comment on attachment 240885
Patch

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

&gt; Source/WebCore/css/StyleBuilderCustom.h:236
&gt; +inline void applyInheritSize(StyleResolver&amp;) { }
&gt; +inline void applyInitialSize(StyleResolver&amp;) { }

What&apos;s this about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046018</commentid>
    <comment_count>3</comment_count>
      <attachid>240885</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-03 23:52:51 -0800</bug_when>
    <thetext>Comment on attachment 240885
Patch

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

&gt; Source/WebCore/css/StyleBuilderCustom.h:236
&gt; +inline void applyInheritSize(StyleResolver&amp;) { }
&gt; +inline void applyInitialSize(StyleResolver&amp;) { }

What&apos;s this about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046071</commentid>
    <comment_count>4</comment_count>
      <attachid>240885</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-04 08:08:01 -0800</bug_when>
    <thetext>Comment on attachment 240885
Patch

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

&gt; Source/WebCore/css/DeprecatedStyleBuilder.cpp:-1339
&gt; -    static void applyInheritValue(CSSPropertyID, StyleResolver*) { }

I moved the code from here, applyInitial and applyInherit were not doing anything but they need to be defined for the style builder code to build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046638</commentid>
    <comment_count>5</comment_count>
      <attachid>240885</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-05 15:40:53 -0800</bug_when>
    <thetext>Comment on attachment 240885
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046696</commentid>
    <comment_count>6</comment_count>
      <attachid>241082</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-05 19:23:01 -0800</bug_when>
    <thetext>Created attachment 241082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046705</commentid>
    <comment_count>7</comment_count>
      <attachid>241082</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-05 20:09:25 -0800</bug_when>
    <thetext>Comment on attachment 241082
Patch

Clearing flags on attachment: 241082

Committed r175659: &lt;http://trac.webkit.org/changeset/175659&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046706</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-05 20:09:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240885</attachid>
            <date>2014-11-03 17:24:49 -0800</date>
            <delta_ts>2014-11-05 19:22:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138337-20141103172459.patch</filename>
            <type>text/plain</type>
            <size>17111</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRjZDQ3NTc0ZGNhMjU1
YzVmNzVkOGY1ZWZlYjJhNWU0ZjZmMGM1NS4uODIwNjU4Yjc3MDZmYzA0NjczZjQyMjE4M2MwY2Uz
NTRkZDZhZjA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTExLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSAnc2l6ZScgQ1NTIHBy
b3BlcnR5IHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgzMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlICdzaXplJyBDU1MgcHJvcGVydHkgZnJvbSBEZXBy
ZWNhdGVkU3R5bGVCdWlsZGVyIHRvIHRoZSBuZXcKKyAgICAgICAgU3R5bGVCdWlsZGVyIGJ5IHVz
aW5nIGN1c3RvbSBjb2RlIGFzIGl0IHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBuZXcgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRl
ZFN0eWxlQnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5UGFnZVNpemU6
Om1tTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlQYWdl
U2l6ZTo6aW5jaExlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3Bl
cnR5UGFnZVNpemU6OmdldFBhZ2VTaXplRnJvbU5hbWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eVBhZ2VTaXplOjphcHBseUluaGVyaXRWYWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5UGFnZVNpemU6OmFwcGx5SW5pdGlhbFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6
YXBwbHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5UGFn
ZVNpemU6OmNyZWF0ZUhhbmRsZXIpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckZ1bmN0aW9uczo6bW1M
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyRnVuY3Rpb25zOjppbmNoTGVu
Z3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckZ1bmN0aW9uczo6Z2V0UGFnZVNp
emVGcm9tTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJGdW5jdGlvbnM6OmFw
cGx5SW5oZXJpdFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyRnVuY3Rpb25z
OjphcHBseUluaXRpYWxTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckZ1bmN0
aW9uczo6YXBwbHlWYWx1ZVNpemUpOgorCiAyMDE0LTExLTAzICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50IGNlcnRpZmljYXRlIGNyZWRlbnRpYWxzIHdp
dGggc2Vzc2lvbiBwZXJzaXN0ZW5jZSBkb27igJl0IHdvcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4KaW5kZXggZDg4MjkzM2JjMGIxZmQyNWI5MzA5ODg4NzhkZjMzOGI3NjMw
YzIyZi4uYWU1OTZjODI2MjgyOWM1NzI2ZjU0ODkwMThhY2E5OTQxNmQ2MmQ1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTIxMCw3ICsyMTAsNyBAQCBwb3NpdGlv
biBbTmV3U3R5bGVCdWlsZGVyXQogcXVvdGVzIFtJbmhlcml0ZWRdCiByZXNpemUgW0luaGVyaXRl
ZF0KIHJpZ2h0IFtOZXdTdHlsZUJ1aWxkZXIsIEluaXRpYWw9aW5pdGlhbE9mZnNldCwgQ29udmVy
dGVyPUxlbmd0aE9yQXV0b10KLXNpemUKK3NpemUgW05ld1N0eWxlQnVpbGRlciwgQ3VzdG9tPUFs
bF0KIHNyYwogc3BlYWsgW0luaGVyaXRlZCwgTmV3U3R5bGVCdWlsZGVyXQogdGFibGUtbGF5b3V0
IFtOZXdTdHlsZUJ1aWxkZXJdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxl
QnVpbGRlci5jcHAKaW5kZXggYzJiNDg3NWUzYzk5OGI1OTE0OTg1M2RmMDNhNzliZmQ3NTUxMTYx
Mi4uNTQzY2ZkZjVkNTYyYzE4ZjNhZDcwMGZjMWU4MWYyYmY4OGNmYzRlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAtMTI1MCwxNzAgKzEy
NTAsNiBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotY2xhc3MgQXBwbHlQcm9wZXJ0eVBhZ2VTaXpl
IHsKLXByaXZhdGU6Ci0gICAgc3RhdGljIExlbmd0aCBtbUxlbmd0aChkb3VibGUgbW0pCi0gICAg
ewotICAgICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGUobW0sIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTU0pKTsKLSAgICAgICAgcmV0dXJu
IHZhbHVlLmdldCgpLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhKCkpOwotICAgIH0KLSAgICBzdGF0aWMgTGVuZ3RoIGluY2hMZW5ndGgoZG91YmxlIGluY2gp
Ci0gICAgewotICAgICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUoaW5jaCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JTikpOwotICAgICAg
ICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEoKSk7Ci0gICAgfQotICAgIHN0YXRpYyBib29sIGdldFBhZ2VTaXplRnJvbU5h
bWUoQ1NTUHJpbWl0aXZlVmFsdWUqIHBhZ2VTaXplTmFtZSwgQ1NTUHJpbWl0aXZlVmFsdWUqIHBh
Z2VPcmllbnRhdGlvbiwgTGVuZ3RoJiB3aWR0aCwgTGVuZ3RoJiBoZWlnaHQpCi0gICAgewotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBhNVdpZHRoKG1tTGVuZ3RoKDE0OCkp
OwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBhNUhlaWdodChtbUxlbmd0
aCgyMTApKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYTRXaWR0aCht
bUxlbmd0aCgyMTApKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYTRI
ZWlnaHQobW1MZW5ndGgoMjk3KSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5n
dGg+IGEzV2lkdGgobW1MZW5ndGgoMjk3KSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxMZW5ndGg+IGEzSGVpZ2h0KG1tTGVuZ3RoKDQyMCkpOwotICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8TGVuZ3RoPiBiNVdpZHRoKG1tTGVuZ3RoKDE3NikpOwotICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBiNUhlaWdodChtbUxlbmd0aCgyNTApKTsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYjRXaWR0aChtbUxlbmd0aCgyNTApKTsKLSAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYjRIZWlnaHQobW1MZW5ndGgoMzUz
KSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxldHRlcldpZHRoKGlu
Y2hMZW5ndGgoOC41KSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxl
dHRlckhlaWdodChpbmNoTGVuZ3RoKDExKSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxMZW5ndGg+IGxlZ2FsV2lkdGgoaW5jaExlbmd0aCg4LjUpKTsKLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExlbmd0aD4gbGVnYWxIZWlnaHQoaW5jaExlbmd0aCgxNCkpOwotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBsZWRnZXJXaWR0aChpbmNoTGVuZ3RoKDEx
KSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxlZGdlckhlaWdodChp
bmNoTGVuZ3RoKDE3KSk7Ci0KLSAgICAgICAgaWYgKCFwYWdlU2l6ZU5hbWUpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgc3dpdGNoIChwYWdlU2l6ZU5hbWUtPmdldFZhbHVl
SUQoKSkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQTU6Ci0gICAgICAgICAgICB3aWR0aCA9IGE1
V2lkdGg7Ci0gICAgICAgICAgICBoZWlnaHQgPSBhNUhlaWdodDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQTQ6Ci0gICAgICAgICAgICB3aWR0aCA9IGE0V2lkdGg7
Ci0gICAgICAgICAgICBoZWlnaHQgPSBhNEhlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlQTM6Ci0gICAgICAgICAgICB3aWR0aCA9IGEzV2lkdGg7Ci0gICAg
ICAgICAgICBoZWlnaHQgPSBhM0hlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENTU1ZhbHVlQjU6Ci0gICAgICAgICAgICB3aWR0aCA9IGI1V2lkdGg7Ci0gICAgICAgICAg
ICBoZWlnaHQgPSBiNUhlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENT
U1ZhbHVlQjQ6Ci0gICAgICAgICAgICB3aWR0aCA9IGI0V2lkdGg7Ci0gICAgICAgICAgICBoZWln
aHQgPSBiNEhlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVl
TGV0dGVyOgotICAgICAgICAgICAgd2lkdGggPSBsZXR0ZXJXaWR0aDsKLSAgICAgICAgICAgIGhl
aWdodCA9IGxldHRlckhlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENT
U1ZhbHVlTGVnYWw6Ci0gICAgICAgICAgICB3aWR0aCA9IGxlZ2FsV2lkdGg7Ci0gICAgICAgICAg
ICBoZWlnaHQgPSBsZWdhbEhlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENTU1ZhbHVlTGVkZ2VyOgotICAgICAgICAgICAgd2lkdGggPSBsZWRnZXJXaWR0aDsKLSAgICAg
ICAgICAgIGhlaWdodCA9IGxlZGdlckhlaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKHBhZ2VPcmllbnRhdGlvbikgewotICAgICAgICAgICAgc3dpdGNoIChwYWdlT3JpZW50
YXRpb24tPmdldFZhbHVlSUQoKSkgewotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhbmRzY2Fw
ZToKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAod2lkdGgsIGhlaWdodCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlUG9ydHJhaXQ6Ci0gICAgICAg
ICAgICAgICAgLy8gTm90aGluZyB0byBkby4KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLXB1YmxpYzoKLSAg
ICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29s
dmVyKikgeyB9Ci0gICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJ
RCwgU3R5bGVSZXNvbHZlciopIHsgfQotICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJv
cGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQot
ICAgIHsKLSAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+cmVzZXRQYWdlU2l6ZVR5cGUo
KTsKLSAgICAgICAgTGVuZ3RoIHdpZHRoOwotICAgICAgICBMZW5ndGggaGVpZ2h0OwotICAgICAg
ICBQYWdlU2l6ZVR5cGUgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpFX0FVVE87Ci0gICAgICAgIGlm
ICghaXM8Q1NTVmFsdWVMaXN0Pih2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgYXV0byYgdmFsdWVMaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0PigqdmFsdWUpOwotICAg
ICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5sZW5ndGgoKSkgewotICAgICAgICBjYXNlIDI6IHsKLSAg
ICAgICAgICAgIENTU1ZhbHVlKiBmaXJzdFZhbHVlID0gdmFsdWVMaXN0Lml0ZW1XaXRob3V0Qm91
bmRzQ2hlY2soMCk7Ci0gICAgICAgICAgICBDU1NWYWx1ZSogc2Vjb25kVmFsdWUgPSB2YWx1ZUxp
c3QuaXRlbVdpdGhvdXRCb3VuZHNDaGVjaygxKTsKLSAgICAgICAgICAgIC8vIDxsZW5ndGg+ezJ9
IHwgPHBhZ2Utc2l6ZT4gPG9yaWVudGF0aW9uPgotICAgICAgICAgICAgaWYgKCFpczxDU1NQcmlt
aXRpdmVWYWx1ZT4oKmZpcnN0VmFsdWUpIHx8ICFpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnNlY29u
ZFZhbHVlKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBhdXRvJiBmaXJz
dFByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpmaXJzdFZhbHVl
KTsKLSAgICAgICAgICAgIGF1dG8mIHNlY29uZFByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWU+KCpzZWNvbmRWYWx1ZSk7Ci0gICAgICAgICAgICBpZiAoZmlyc3RQcmlt
aXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gPGxlbmd0aD57Mn0K
LSAgICAgICAgICAgICAgICBpZiAoIXNlY29uZFByaW1pdGl2ZVZhbHVlLmlzTGVuZ3RoKCkpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhID0gc3R5bGVSZXNvbHZlci0+c3RhdGUoKS5jc3NU
b0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb20oMS4wZik7Ci0gICAg
ICAgICAgICAgICAgd2lkdGggPSBmaXJzdFByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8TGVu
Z3RoPihjb252ZXJzaW9uRGF0YSk7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0ID0gc2Vjb25kUHJp
bWl0aXZlVmFsdWUuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gPHBhZ2Utc2l6ZT4gPG9yaWVudGF0
aW9uPgotICAgICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBvcmRlciBpcyBndWFyYW50ZWVkLiBT
ZWUgQ1NTUGFyc2VyOjpwYXJzZVNpemVQYXJhbWV0ZXIuCi0gICAgICAgICAgICAgICAgaWYgKCFn
ZXRQYWdlU2l6ZUZyb21OYW1lKCZmaXJzdFByaW1pdGl2ZVZhbHVlLCAmc2Vjb25kUHJpbWl0aXZl
VmFsdWUsIHdpZHRoLCBoZWlnaHQpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfUkVTT0xWRUQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIDE6IHsKLSAgICAg
ICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IHZhbHVlTGlzdC5pdGVtV2l0aG91dEJvdW5kc0NoZWNr
KDApOwotICAgICAgICAgICAgLy8gPGxlbmd0aD4gfCBhdXRvIHwgPHBhZ2Utc2l6ZT4gfCBbIHBv
cnRyYWl0IHwgbGFuZHNjYXBlXQotICAgICAgICAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1
ZT4oKnZhbHVlKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBhdXRvJiBw
cmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpOwotICAg
ICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmlzTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgICAg
ICAvLyA8bGVuZ3RoPgotICAgICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9S
RVNPTFZFRDsKLSAgICAgICAgICAgICAgICB3aWR0aCA9IGhlaWdodCA9IHByaW1pdGl2ZVZhbHVl
LmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihzdHlsZVJlc29sdmVyLT5zdGF0ZSgpLmNzc1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFkanVzdGVkWm9vbSgxLjBmKSk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUuZ2V0VmFs
dWVJRCgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICAg
ICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlUG9ydHJhaXQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPX1BPUlRSQUlUOwotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTGFu
ZHNjYXBlOgotICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfQVVU
T19MQU5EU0NBUEU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIC8vIDxwYWdlLXNpemU+Ci0gICAgICAgICAg
ICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9SRVNPTFZFRDsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCFnZXRQYWdlU2l6ZUZyb21OYW1lKCZwcmltaXRpdmVWYWx1ZSwgbnVsbHB0
ciwgd2lkdGgsIGhlaWdodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRQYWdlU2l6ZVR5cGUocGFnZVNpemVUeXBl
KTsKLSAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0UGFnZVNpemUoTGVuZ3RoU2l6
ZSh3aWR0aCwgaGVpZ2h0KSk7Ci0gICAgfQotICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3Jl
YXRlSGFuZGxlcigpIHsgcmV0dXJuIFByb3BlcnR5SGFuZGxlcigmYXBwbHlJbmhlcml0VmFsdWUs
ICZhcHBseUluaXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOyB9Ci19OwotCiBjbGFzcyBBcHBseVBy
b3BlcnR5VGV4dEVtcGhhc2lzU3R5bGUgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5
SW5oZXJpdFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIp
CkBAIC0xOTgwLDcgKzE4MTYsNiBAQCBEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVk
U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlPdXRsaW5l
Q29sb3IsIEFwcGx5UHJvcGVydHlDb2xvcjxOb0luaGVyaXRGcm9tUGFyZW50LCAmUmVuZGVyU3R5
bGU6Om91dGxpbmVDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRPdXRsaW5lQ29sb3IsICZSZW5kZXJT
dHlsZTo6c2V0VmlzaXRlZExpbmtPdXRsaW5lQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3I+Ojpj
cmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eU91dGxp
bmVTdHlsZSwgQXBwbHlQcm9wZXJ0eU91dGxpbmVTdHlsZTo6Y3JlYXRlSGFuZGxlcigpKTsKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlSZXNpemUsIEFwcGx5UHJvcGVydHlSZXNp
emU6OmNyZWF0ZUhhbmRsZXIoKSk7Ci0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
U2l6ZSwgQXBwbHlQcm9wZXJ0eVBhZ2VTaXplOjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRBbGlnbiwgQXBwbHlQcm9wZXJ0eVRleHRBbGln
bjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RGVjb3JhdGlvbkNvbG9yLCBBcHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJv
bVBhcmVudCwgJlJlbmRlclN0eWxlOjp0ZXh0RGVjb3JhdGlvbkNvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldFRleHREZWNvcmF0aW9uQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0VmlzaXRlZExpbmtUZXh0
RGVjb3JhdGlvbkNvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblNr
aXAsIEFwcGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvblNraXA6OmNyZWF0ZUhhbmRsZXIoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXggNzZmZjhhYzUwN2E1NGYx
MGU3Yzg5YzE3ODQzNjU2MWJlNWExZGEyYi4uNTFhN2M0OTYxMWM5NGM4ZmNjZGY5ZGJmOGNiMzA0
NGVkYzFmY2MwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1
c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaApAQCAt
MTQ4LDYgKzE0OCwxNjYgQEAgaW5saW5lIHZvaWQgYXBwbHlWYWx1ZVdlYmtpdFNoYXBlT3V0c2lk
ZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYKIH0KICNlbmRpZiAvLyBF
TkFCTEUoQ1NTX1NIQVBFUykKIAorc3RhdGljIGlubGluZSBMZW5ndGggbW1MZW5ndGgoZG91Ymxl
IG1tKQoreworICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZShtbSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19NTSkpOworICAgIHJldHVybiB2
YWx1ZS5nZXQoKS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSgpKTsKK30KK3N0YXRpYyBpbmxpbmUgTGVuZ3RoIGluY2hMZW5ndGgoZG91YmxlIGluY2gpCit7
CisgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKGluY2gsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSU4pKTsKKyAgICByZXR1cm4gdmFsdWUu
Z2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKSk7
Cit9CitzdGF0aWMgYm9vbCBnZXRQYWdlU2l6ZUZyb21OYW1lKENTU1ByaW1pdGl2ZVZhbHVlKiBw
YWdlU2l6ZU5hbWUsIENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdlT3JpZW50YXRpb24sIExlbmd0aCYg
d2lkdGgsIExlbmd0aCYgaGVpZ2h0KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5n
dGg+IGE1V2lkdGgobW1MZW5ndGgoMTQ4KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExl
bmd0aD4gYTVIZWlnaHQobW1MZW5ndGgoMjEwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PExlbmd0aD4gYTRXaWR0aChtbUxlbmd0aCgyMTApKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8TGVuZ3RoPiBhNEhlaWdodChtbUxlbmd0aCgyOTcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TGVuZ3RoPiBhM1dpZHRoKG1tTGVuZ3RoKDI5NykpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxMZW5ndGg+IGEzSGVpZ2h0KG1tTGVuZ3RoKDQyMCkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxMZW5ndGg+IGI1V2lkdGgobW1MZW5ndGgoMTc2KSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExlbmd0aD4gYjVIZWlnaHQobW1MZW5ndGgoMjUwKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYjRXaWR0aChtbUxlbmd0aCgyNTApKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBiNEhlaWdodChtbUxlbmd0aCgzNTMpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBsZXR0ZXJXaWR0aChpbmNoTGVuZ3RoKDguNSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxldHRlckhlaWdodChpbmNoTGVu
Z3RoKDExKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gbGVnYWxXaWR0aChp
bmNoTGVuZ3RoKDguNSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxlZ2Fs
SGVpZ2h0KGluY2hMZW5ndGgoMTQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3Ro
PiBsZWRnZXJXaWR0aChpbmNoTGVuZ3RoKDExKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PExlbmd0aD4gbGVkZ2VySGVpZ2h0KGluY2hMZW5ndGgoMTcpKTsKKworICAgIGlmICghcGFnZVNp
emVOYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHBhZ2VTaXplTmFt
ZS0+Z2V0VmFsdWVJRCgpKSB7CisgICAgY2FzZSBDU1NWYWx1ZUE1OgorICAgICAgICB3aWR0aCA9
IGE1V2lkdGg7CisgICAgICAgIGhlaWdodCA9IGE1SGVpZ2h0OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1ZhbHVlQTQ6CisgICAgICAgIHdpZHRoID0gYTRXaWR0aDsKKyAgICAgICAgaGVp
Z2h0ID0gYTRIZWlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVBMzoKKyAg
ICAgICAgd2lkdGggPSBhM1dpZHRoOworICAgICAgICBoZWlnaHQgPSBhM0hlaWdodDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUI1OgorICAgICAgICB3aWR0aCA9IGI1V2lkdGg7
CisgICAgICAgIGhlaWdodCA9IGI1SGVpZ2h0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1ZhbHVlQjQ6CisgICAgICAgIHdpZHRoID0gYjRXaWR0aDsKKyAgICAgICAgaGVpZ2h0ID0gYjRI
ZWlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMZXR0ZXI6CisgICAgICAg
IHdpZHRoID0gbGV0dGVyV2lkdGg7CisgICAgICAgIGhlaWdodCA9IGxldHRlckhlaWdodDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxlZ2FsOgorICAgICAgICB3aWR0aCA9IGxl
Z2FsV2lkdGg7CisgICAgICAgIGhlaWdodCA9IGxlZ2FsSGVpZ2h0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlTGVkZ2VyOgorICAgICAgICB3aWR0aCA9IGxlZGdlcldpZHRoOwor
ICAgICAgICBoZWlnaHQgPSBsZWRnZXJIZWlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAocGFnZU9yaWVudGF0
aW9uKSB7CisgICAgICAgIHN3aXRjaCAocGFnZU9yaWVudGF0aW9uLT5nZXRWYWx1ZUlEKCkpIHsK
KyAgICAgICAgY2FzZSBDU1NWYWx1ZUxhbmRzY2FwZToKKyAgICAgICAgICAgIHN0ZDo6c3dhcCh3
aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVl
UG9ydHJhaXQ6CisgICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSB2b2lkIGFwcGx5SW5oZXJp
dFNpemUoU3R5bGVSZXNvbHZlciYpIHsgfQoraW5saW5lIHZvaWQgYXBwbHlJbml0aWFsU2l6ZShT
dHlsZVJlc29sdmVyJikgeyB9CitpbmxpbmUgdm9pZCBhcHBseVZhbHVlU2l6ZShTdHlsZVJlc29s
dmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgc3R5bGVSZXNvbHZl
ci5zdHlsZSgpLT5yZXNldFBhZ2VTaXplVHlwZSgpOworICAgIExlbmd0aCB3aWR0aDsKKyAgICBM
ZW5ndGggaGVpZ2h0OworICAgIFBhZ2VTaXplVHlwZSBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVf
QVVUTzsKKyAgICBpZiAoIWlzPENTU1ZhbHVlTGlzdD4odmFsdWUpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvJiB2YWx1ZUxpc3QgPSBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KHZhbHVlKTsK
KyAgICBzd2l0Y2ggKHZhbHVlTGlzdC5sZW5ndGgoKSkgeworICAgIGNhc2UgMjogeworICAgICAg
ICBDU1NWYWx1ZSogZmlyc3RWYWx1ZSA9IHZhbHVlTGlzdC5pdGVtV2l0aG91dEJvdW5kc0NoZWNr
KDApOworICAgICAgICBDU1NWYWx1ZSogc2Vjb25kVmFsdWUgPSB2YWx1ZUxpc3QuaXRlbVdpdGhv
dXRCb3VuZHNDaGVjaygxKTsKKyAgICAgICAgLy8gPGxlbmd0aD57Mn0gfCA8cGFnZS1zaXplPiA8
b3JpZW50YXRpb24+CisgICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCpmaXJzdFZh
bHVlKSB8fCAhaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCpzZWNvbmRWYWx1ZSkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIGF1dG8mIGZpcnN0UHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKmZpcnN0VmFsdWUpOworICAgICAgICBhdXRvJiBzZWNvbmRQcmlt
aXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqc2Vjb25kVmFsdWUpOwor
ICAgICAgICBpZiAoZmlyc3RQcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7CisgICAgICAgICAg
ICAvLyA8bGVuZ3RoPnsyfQorICAgICAgICAgICAgaWYgKCFzZWNvbmRQcmltaXRpdmVWYWx1ZS5p
c0xlbmd0aCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEgPSBzdHlsZVJlc29sdmVyLnN0YXRlKCku
Y3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlXaXRoQWRqdXN0ZWRab29tKDEuMGYpOwor
ICAgICAgICAgICAgd2lkdGggPSBmaXJzdFByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8TGVu
Z3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgICAgICBoZWlnaHQgPSBzZWNvbmRQcmltaXRp
dmVWYWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgLy8gPHBhZ2Utc2l6ZT4gPG9yaWVudGF0aW9uPgorICAgICAg
ICAgICAgLy8gVGhlIHZhbHVlIG9yZGVyIGlzIGd1YXJhbnRlZWQuIFNlZSBDU1NQYXJzZXI6OnBh
cnNlU2l6ZVBhcmFtZXRlci4KKyAgICAgICAgICAgIGlmICghZ2V0UGFnZVNpemVGcm9tTmFtZSgm
Zmlyc3RQcmltaXRpdmVWYWx1ZSwgJnNlY29uZFByaW1pdGl2ZVZhbHVlLCB3aWR0aCwgaGVpZ2h0
KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcGFnZVNpemVU
eXBlID0gUEFHRV9TSVpFX1JFU09MVkVEOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2Fz
ZSAxOiB7CisgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IHZhbHVlTGlzdC5pdGVtV2l0aG91dEJv
dW5kc0NoZWNrKDApOworICAgICAgICAvLyA8bGVuZ3RoPiB8IGF1dG8gfCA8cGFnZS1zaXplPiB8
IFsgcG9ydHJhaXQgfCBsYW5kc2NhcGVdCisgICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8mIHByaW1pdGl2
ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSk7CisgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7CisgICAgICAgICAgICAvLyA8bGVuZ3RoPgor
ICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpFX1JFU09MVkVEOworICAgICAgICAg
ICAgd2lkdGggPSBoZWlnaHQgPSBwcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4o
c3R5bGVSZXNvbHZlci5zdGF0ZSgpLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5V2l0
aEFkanVzdGVkWm9vbSgxLjBmKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzd2l0
Y2ggKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSkgeworICAgICAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgor
ICAgICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgorICAgICAg
ICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPX1BPUlRSQUlUOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhbmRzY2FwZToKKyAg
ICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfQVVUT19MQU5EU0NBUEU7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIC8vIDxwYWdlLXNpemU+CisgICAgICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFHRV9T
SVpFX1JFU09MVkVEOworICAgICAgICAgICAgICAgIGlmICghZ2V0UGFnZVNpemVGcm9tTmFtZSgm
cHJpbWl0aXZlVmFsdWUsIG51bGxwdHIsIHdpZHRoLCBoZWlnaHQpKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc3R5bGVSZXNv
bHZlci5zdHlsZSgpLT5zZXRQYWdlU2l6ZVR5cGUocGFnZVNpemVUeXBlKTsKKyAgICBzdHlsZVJl
c29sdmVyLnN0eWxlKCktPnNldFBhZ2VTaXplKExlbmd0aFNpemUod2lkdGgsIGhlaWdodCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBTdHlsZUJ1aWxkZXJGdW5jdGlvbnMKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241082</attachid>
            <date>2014-11-05 19:23:01 -0800</date>
            <delta_ts>2014-11-05 20:09:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138337-20141105192311.patch</filename>
            <type>text/plain</type>
            <size>17145</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNhMGEyMmFhNjQxYTM0
NWMxZTc2YWU3ODQ3NDgxYTE5MDdjMWE1Yy4uNTdiYmJhMTM1NTVjMzM0ZmJhMTg2NDU3NzI3Nzlh
NDJiMjY4YjNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTExLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSAnc2l6ZScgQ1NTIHBy
b3BlcnR5IHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgzMzcKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRy
ZWFzIEtsaW5nLgorCisgICAgICAgIE1vdmUgJ3NpemUnIENTUyBwcm9wZXJ0eSBmcm9tIERlcHJl
Y2F0ZWRTdHlsZUJ1aWxkZXIgdG8gdGhlIG5ldworICAgICAgICBTdHlsZUJ1aWxkZXIgYnkgdXNp
bmcgY3VzdG9tIGNvZGUgYXMgaXQgcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZy4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIG5ldyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvQ1NT
UHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVk
U3R5bGVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6
bW1MZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVBhZ2VT
aXplOjppbmNoTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlQYWdlU2l6ZTo6Z2V0UGFnZVNpemVGcm9tTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5UGFnZVNpemU6OmFwcGx5SW5oZXJpdFZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6YXBwbHlJbml0aWFsVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVBhZ2VTaXplOjph
cHBseVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlQYWdl
U2l6ZTo6Y3JlYXRlSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRl
ckN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyRnVuY3Rpb25zOjptbUxl
bmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJGdW5jdGlvbnM6OmluY2hMZW5n
dGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyRnVuY3Rpb25zOjpnZXRQYWdlU2l6
ZUZyb21OYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlckZ1bmN0aW9uczo6YXBw
bHlJbmhlcml0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJGdW5jdGlvbnM6
OmFwcGx5SW5pdGlhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyRnVuY3Rp
b25zOjphcHBseVZhbHVlU2l6ZSk6CisKIDIwMTQtMTEtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjE3NTQ0MSBhcyBpdCBzZWVtcyB0byBiZSBj
YXVzaW5nIGludGVybWl0dGVudCBjcmFzaGVzIGluIERPTVRpbWVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDJmMTYwNWJjNWVlYjBhNDVlZGJlNDI2OTU4ZWIzNDk3
NGE3Y2RlMTguLjMyMGNlNjEyMmNiMjI5YzY0NmE2ZDhhOWYxMmNmNDdjM2QxYmFhZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0yMTAsNyArMjEwLDcgQEAgcG9z
aXRpb24gW05ld1N0eWxlQnVpbGRlcl0KIHF1b3RlcyBbSW5oZXJpdGVkXQogcmVzaXplIFtJbmhl
cml0ZWRdCiByaWdodCBbTmV3U3R5bGVCdWlsZGVyLCBJbml0aWFsPWluaXRpYWxPZmZzZXQsIENv
bnZlcnRlcj1MZW5ndGhPckF1dG9dCi1zaXplCitzaXplIFtOZXdTdHlsZUJ1aWxkZXIsIEN1c3Rv
bT1BbGxdCiBzcmMKIHNwZWFrIFtJbmhlcml0ZWQsIE5ld1N0eWxlQnVpbGRlcl0KIHRhYmxlLWxh
eW91dCBbTmV3U3R5bGVCdWlsZGVyXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRT
dHlsZUJ1aWxkZXIuY3BwCmluZGV4IDA1NzhlOGRkZjQxNGQ0Zjc2ZmE1NWVlN2Q4ZDhhNTZhYTRk
YjVlZDguLjUxOWIzNWRiNDBhN2Q3NmIzNmZhZDExNTBkYTg5NDViMjFhNmEwMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTEyMjQsMTcw
ICsxMjI0LDYgQEAgcHVibGljOgogICAgIH0KIH07CiAKLWNsYXNzIEFwcGx5UHJvcGVydHlQYWdl
U2l6ZSB7Ci1wcml2YXRlOgotICAgIHN0YXRpYyBMZW5ndGggbW1MZW5ndGgoZG91YmxlIG1tKQot
ICAgIHsKLSAgICAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKG1tLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX01NKSk7Ci0gICAgICAgIHJl
dHVybiB2YWx1ZS5nZXQoKS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSgpKTsKLSAgICB9Ci0gICAgc3RhdGljIExlbmd0aCBpbmNoTGVuZ3RoKGRvdWJsZSBp
bmNoKQotICAgIHsKLSAgICAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKGluY2gsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSU4pKTsKLSAg
ICAgICAgcmV0dXJuIHZhbHVlLmdldCgpLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhKCkpOwotICAgIH0KLSAgICBzdGF0aWMgYm9vbCBnZXRQYWdlU2l6ZUZy
b21OYW1lKENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdlU2l6ZU5hbWUsIENTU1ByaW1pdGl2ZVZhbHVl
KiBwYWdlT3JpZW50YXRpb24sIExlbmd0aCYgd2lkdGgsIExlbmd0aCYgaGVpZ2h0KQotICAgIHsK
LSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYTVXaWR0aChtbUxlbmd0aCgx
NDgpKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYTVIZWlnaHQobW1M
ZW5ndGgoMjEwKSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGE0V2lk
dGgobW1MZW5ndGgoMjEwKSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+
IGE0SGVpZ2h0KG1tTGVuZ3RoKDI5NykpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
TGVuZ3RoPiBhM1dpZHRoKG1tTGVuZ3RoKDI5NykpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TGVuZ3RoPiBhM0hlaWdodChtbUxlbmd0aCg0MjApKTsKLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExlbmd0aD4gYjVXaWR0aChtbUxlbmd0aCgxNzYpKTsKLSAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYjVIZWlnaHQobW1MZW5ndGgoMjUwKSk7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGI0V2lkdGgobW1MZW5ndGgoMjUwKSk7
Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGI0SGVpZ2h0KG1tTGVuZ3Ro
KDM1MykpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBsZXR0ZXJXaWR0
aChpbmNoTGVuZ3RoKDguNSkpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3Ro
PiBsZXR0ZXJIZWlnaHQoaW5jaExlbmd0aCgxMSkpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TGVuZ3RoPiBsZWdhbFdpZHRoKGluY2hMZW5ndGgoOC41KSk7Ci0gICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxlZ2FsSGVpZ2h0KGluY2hMZW5ndGgoMTQpKTsKLSAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gbGVkZ2VyV2lkdGgoaW5jaExlbmd0
aCgxMSkpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBsZWRnZXJIZWln
aHQoaW5jaExlbmd0aCgxNykpOwotCi0gICAgICAgIGlmICghcGFnZVNpemVOYW1lKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHN3aXRjaCAocGFnZVNpemVOYW1lLT5nZXRW
YWx1ZUlEKCkpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUE1OgotICAgICAgICAgICAgd2lkdGgg
PSBhNVdpZHRoOwotICAgICAgICAgICAgaGVpZ2h0ID0gYTVIZWlnaHQ7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUE0OgotICAgICAgICAgICAgd2lkdGggPSBhNFdp
ZHRoOwotICAgICAgICAgICAgaGVpZ2h0ID0gYTRIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUEzOgotICAgICAgICAgICAgd2lkdGggPSBhM1dpZHRoOwot
ICAgICAgICAgICAgaGVpZ2h0ID0gYTNIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUI1OgotICAgICAgICAgICAgd2lkdGggPSBiNVdpZHRoOwotICAgICAg
ICAgICAgaGVpZ2h0ID0gYjVIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUI0OgotICAgICAgICAgICAgd2lkdGggPSBiNFdpZHRoOwotICAgICAgICAgICAg
aGVpZ2h0ID0gYjRIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZUxldHRlcjoKLSAgICAgICAgICAgIHdpZHRoID0gbGV0dGVyV2lkdGg7Ci0gICAgICAgICAg
ICBoZWlnaHQgPSBsZXR0ZXJIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUxlZ2FsOgotICAgICAgICAgICAgd2lkdGggPSBsZWdhbFdpZHRoOwotICAgICAg
ICAgICAgaGVpZ2h0ID0gbGVnYWxIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUxlZGdlcjoKLSAgICAgICAgICAgIHdpZHRoID0gbGVkZ2VyV2lkdGg7Ci0g
ICAgICAgICAgICBoZWlnaHQgPSBsZWRnZXJIZWlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChwYWdlT3JpZW50YXRpb24pIHsKLSAgICAgICAgICAgIHN3aXRjaCAocGFnZU9y
aWVudGF0aW9uLT5nZXRWYWx1ZUlEKCkpIHsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMYW5k
c2NhcGU6Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKHdpZHRoLCBoZWlnaHQpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgotICAg
ICAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8gZG8uCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVS
ZXNvbHZlciopIHsgfQotICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKENTU1Byb3Bl
cnR5SUQsIFN0eWxlUmVzb2x2ZXIqKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENT
U1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnJlc2V0UGFnZVNpemVU
eXBlKCk7Ci0gICAgICAgIExlbmd0aCB3aWR0aDsKLSAgICAgICAgTGVuZ3RoIGhlaWdodDsKLSAg
ICAgICAgUGFnZVNpemVUeXBlIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9BVVRPOwotICAgICAg
ICBpZiAoIWlzPENTU1ZhbHVlTGlzdD4odmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGF1dG8mIHZhbHVlTGlzdCA9IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oKnZhbHVlKTsK
LSAgICAgICAgc3dpdGNoICh2YWx1ZUxpc3QubGVuZ3RoKCkpIHsKLSAgICAgICAgY2FzZSAyOiB7
Ci0gICAgICAgICAgICBDU1NWYWx1ZSogZmlyc3RWYWx1ZSA9IHZhbHVlTGlzdC5pdGVtV2l0aG91
dEJvdW5kc0NoZWNrKDApOwotICAgICAgICAgICAgQ1NTVmFsdWUqIHNlY29uZFZhbHVlID0gdmFs
dWVMaXN0Lml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMSk7Ci0gICAgICAgICAgICAvLyA8bGVuZ3Ro
PnsyfSB8IDxwYWdlLXNpemU+IDxvcmllbnRhdGlvbj4KLSAgICAgICAgICAgIGlmICghaXM8Q1NT
UHJpbWl0aXZlVmFsdWU+KCpmaXJzdFZhbHVlKSB8fCAhaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCpz
ZWNvbmRWYWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYXV0byYg
Zmlyc3RQcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqZmlyc3RW
YWx1ZSk7Ci0gICAgICAgICAgICBhdXRvJiBzZWNvbmRQcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqc2Vjb25kVmFsdWUpOwotICAgICAgICAgICAgaWYgKGZpcnN0
UHJpbWl0aXZlVmFsdWUuaXNMZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIC8vIDxsZW5ndGg+
ezJ9Ci0gICAgICAgICAgICAgICAgaWYgKCFzZWNvbmRQcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgp
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSA9IHN0eWxlUmVzb2x2ZXItPnN0YXRlKCku
Y3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlXaXRoQWRqdXN0ZWRab29tKDEuMGYpOwot
ICAgICAgICAgICAgICAgIHdpZHRoID0gZmlyc3RQcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3Ro
PExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwotICAgICAgICAgICAgICAgIGhlaWdodCA9IHNlY29u
ZFByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIDxwYWdlLXNpemU+IDxvcmll
bnRhdGlvbj4KLSAgICAgICAgICAgICAgICAvLyBUaGUgdmFsdWUgb3JkZXIgaXMgZ3VhcmFudGVl
ZC4gU2VlIENTU1BhcnNlcjo6cGFyc2VTaXplUGFyYW1ldGVyLgotICAgICAgICAgICAgICAgIGlm
ICghZ2V0UGFnZVNpemVGcm9tTmFtZSgmZmlyc3RQcmltaXRpdmVWYWx1ZSwgJnNlY29uZFByaW1p
dGl2ZVZhbHVlLCB3aWR0aCwgaGVpZ2h0KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpFX1JFU09M
VkVEOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSAxOiB7Ci0g
ICAgICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSB2YWx1ZUxpc3QuaXRlbVdpdGhvdXRCb3VuZHND
aGVjaygwKTsKLSAgICAgICAgICAgIC8vIDxsZW5ndGg+IHwgYXV0byB8IDxwYWdlLXNpemU+IHwg
WyBwb3J0cmFpdCB8IGxhbmRzY2FwZV0KLSAgICAgICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp2YWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYXV0
byYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKTsK
LSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gPGxlbmd0aD4KLSAgICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJ
WkVfUkVTT0xWRUQ7Ci0gICAgICAgICAgICAgICAgd2lkdGggPSBoZWlnaHQgPSBwcmltaXRpdmVW
YWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGVSZXNvbHZlci0+c3RhdGUoKS5jc3NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb20oMS4wZikpOwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLmdl
dFZhbHVlSUQoKSkgewotICAgICAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAg
ICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfQVVUTzsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgotICAg
ICAgICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfQVVUT19QT1JUUkFJVDsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUxhbmRzY2FwZToKLSAgICAgICAgICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpF
X0FVVE9fTEFORFNDQVBFOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAvLyA8cGFnZS1zaXplPgotICAgICAg
ICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJWkVfUkVTT0xWRUQ7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghZ2V0UGFnZVNpemVGcm9tTmFtZSgmcHJpbWl0aXZlVmFsdWUsIG51
bGxwdHIsIHdpZHRoLCBoZWlnaHQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0UGFnZVNpemVUeXBlKHBhZ2VTaXpl
VHlwZSk7Ci0gICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFBhZ2VTaXplKExlbmd0
aFNpemUod2lkdGgsIGhlaWdodCkpOwotICAgIH0KLSAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVy
IGNyZWF0ZUhhbmRsZXIoKSB7IHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJpdFZh
bHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZhcHBseVZhbHVlKTsgfQotfTsKLQogY2xhc3MgQXBw
bHlQcm9wZXJ0eVRleHRFbXBoYXNpc1N0eWxlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBh
cHBseUluaGVyaXRWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29s
dmVyKQpAQCAtMTkxMCw3ICsxNzQ2LDYgQEAgRGVwcmVjYXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVj
YXRlZFN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5T3V0
bGluZUNvbG9yLCBBcHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVudCwgJlJlbmRl
clN0eWxlOjpvdXRsaW5lQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0T3V0bGluZUNvbG9yLCAmUmVu
ZGVyU3R5bGU6OnNldFZpc2l0ZWRMaW5rT3V0bGluZUNvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9y
Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlP
dXRsaW5lU3R5bGUsIEFwcGx5UHJvcGVydHlPdXRsaW5lU3R5bGU6OmNyZWF0ZUhhbmRsZXIoKSk7
CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5UmVzaXplLCBBcHBseVByb3BlcnR5
UmVzaXplOjpjcmVhdGVIYW5kbGVyKCkpOwotICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVNpemUsIEFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBz
ZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbkNvbG9yLCBB
cHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVudCwgJlJlbmRlclN0eWxlOjp0ZXh0
RGVjb3JhdGlvbkNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHREZWNvcmF0aW9uQ29sb3IsICZS
ZW5kZXJTdHlsZTo6c2V0VmlzaXRlZExpbmtUZXh0RGVjb3JhdGlvbkNvbG9yLCAmUmVuZGVyU3R5
bGU6OmNvbG9yPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblNraXAsIEFwcGx5UHJvcGVydHlUZXh0RGVjb3Jh
dGlvblNraXA6OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1By
b3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uLCBBcHBseVByb3BlcnR5VGV4dFVuZGVy
bGluZVBvc2l0aW9uOjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlckN1c3RvbS5oCmluZGV4IDc2ZmY4YWM1MDdhNTRmMTBlN2M4OWMxNzg0MzY1NjFiZTVhMWRh
MmIuLjUxYTdjNDk2MTFjOTRjOGZjY2RmOWRiZjhjYjMwNDRlZGMxZmNjMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTE0OCw2ICsxNDgsMTY2IEBAIGlubGlu
ZSB2b2lkIGFwcGx5VmFsdWVXZWJraXRTaGFwZU91dHNpZGUoU3R5bGVSZXNvbHZlciYgc3R5bGVS
ZXNvbHZlciwgQ1NTVmFsdWUmCiB9CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFQRVMpCiAKK3N0
YXRpYyBpbmxpbmUgTGVuZ3RoIG1tTGVuZ3RoKGRvdWJsZSBtbSkKK3sKKyAgICBSZWY8Q1NTUHJp
bWl0aXZlVmFsdWU+IHZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobW0sIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfTU0pKTsKKyAgICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0
aDxMZW5ndGg+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKSk7Cit9CitzdGF0aWMgaW5saW5l
IExlbmd0aCBpbmNoTGVuZ3RoKGRvdWJsZSBpbmNoKQoreworICAgIFJlZjxDU1NQcmltaXRpdmVW
YWx1ZT4gdmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShpbmNoLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX0lOKSk7CisgICAgcmV0dXJuIHZhbHVlLmdldCgpLmNvbXB1dGVMZW5ndGg8TGVu
Z3RoPihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkpOworfQorc3RhdGljIGJvb2wgZ2V0UGFn
ZVNpemVGcm9tTmFtZShDU1NQcmltaXRpdmVWYWx1ZSogcGFnZVNpemVOYW1lLCBDU1NQcmltaXRp
dmVWYWx1ZSogcGFnZU9yaWVudGF0aW9uLCBMZW5ndGgmIHdpZHRoLCBMZW5ndGgmIGhlaWdodCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBhNVdpZHRoKG1tTGVuZ3RoKDE0
OCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGE1SGVpZ2h0KG1tTGVuZ3Ro
KDIxMCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGE0V2lkdGgobW1MZW5n
dGgoMjEwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYTRIZWlnaHQobW1M
ZW5ndGgoMjk3KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gYTNXaWR0aCht
bUxlbmd0aCgyOTcpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBhM0hlaWdo
dChtbUxlbmd0aCg0MjApKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBiNVdp
ZHRoKG1tTGVuZ3RoKDE3NikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGI1
SGVpZ2h0KG1tTGVuZ3RoKDI1MCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+
IGI0V2lkdGgobW1MZW5ndGgoMjUwKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0
aD4gYjRIZWlnaHQobW1MZW5ndGgoMzUzKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExl
bmd0aD4gbGV0dGVyV2lkdGgoaW5jaExlbmd0aCg4LjUpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8TGVuZ3RoPiBsZXR0ZXJIZWlnaHQoaW5jaExlbmd0aCgxMSkpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxlZ2FsV2lkdGgoaW5jaExlbmd0aCg4LjUpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGVuZ3RoPiBsZWdhbEhlaWdodChpbmNoTGVuZ3RoKDE0KSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExlbmd0aD4gbGVkZ2VyV2lkdGgoaW5jaExlbmd0
aCgxMSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMZW5ndGg+IGxlZGdlckhlaWdodChp
bmNoTGVuZ3RoKDE3KSk7CisKKyAgICBpZiAoIXBhZ2VTaXplTmFtZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgc3dpdGNoIChwYWdlU2l6ZU5hbWUtPmdldFZhbHVlSUQoKSkgeworICAg
IGNhc2UgQ1NTVmFsdWVBNToKKyAgICAgICAgd2lkdGggPSBhNVdpZHRoOworICAgICAgICBoZWln
aHQgPSBhNUhlaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUE0OgorICAg
ICAgICB3aWR0aCA9IGE0V2lkdGg7CisgICAgICAgIGhlaWdodCA9IGE0SGVpZ2h0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQTM6CisgICAgICAgIHdpZHRoID0gYTNXaWR0aDsK
KyAgICAgICAgaGVpZ2h0ID0gYTNIZWlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVCNToKKyAgICAgICAgd2lkdGggPSBiNVdpZHRoOworICAgICAgICBoZWlnaHQgPSBiNUhl
aWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUI0OgorICAgICAgICB3aWR0
aCA9IGI0V2lkdGg7CisgICAgICAgIGhlaWdodCA9IGI0SGVpZ2h0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlTGV0dGVyOgorICAgICAgICB3aWR0aCA9IGxldHRlcldpZHRoOwor
ICAgICAgICBoZWlnaHQgPSBsZXR0ZXJIZWlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTVmFsdWVMZWdhbDoKKyAgICAgICAgd2lkdGggPSBsZWdhbFdpZHRoOworICAgICAgICBoZWln
aHQgPSBsZWdhbEhlaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxlZGdl
cjoKKyAgICAgICAgd2lkdGggPSBsZWRnZXJXaWR0aDsKKyAgICAgICAgaGVpZ2h0ID0gbGVkZ2Vy
SGVpZ2h0OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgaWYgKHBhZ2VPcmllbnRhdGlvbikgeworICAgICAgICBzd2l0Y2gg
KHBhZ2VPcmllbnRhdGlvbi0+Z2V0VmFsdWVJRCgpKSB7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVM
YW5kc2NhcGU6CisgICAgICAgICAgICBzdGQ6OnN3YXAod2lkdGgsIGhlaWdodCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgorICAgICAgICAgICAg
Ly8gTm90aGluZyB0byBkby4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCitpbmxpbmUgdm9pZCBhcHBseUluaGVyaXRTaXplKFN0eWxlUmVzb2x2ZXImKSB7
IH0KK2lubGluZSB2b2lkIGFwcGx5SW5pdGlhbFNpemUoU3R5bGVSZXNvbHZlciYpIHsgfQoraW5s
aW5lIHZvaWQgYXBwbHlWYWx1ZVNpemUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1NT
VmFsdWUmIHZhbHVlKQoreworICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+cmVzZXRQYWdlU2l6
ZVR5cGUoKTsKKyAgICBMZW5ndGggd2lkdGg7CisgICAgTGVuZ3RoIGhlaWdodDsKKyAgICBQYWdl
U2l6ZVR5cGUgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpFX0FVVE87CisgICAgaWYgKCFpczxDU1NW
YWx1ZUxpc3Q+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgdmFsdWVMaXN0
ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pih2YWx1ZSk7CisgICAgc3dpdGNoICh2YWx1ZUxpc3Qu
bGVuZ3RoKCkpIHsKKyAgICBjYXNlIDI6IHsKKyAgICAgICAgQ1NTVmFsdWUqIGZpcnN0VmFsdWUg
PSB2YWx1ZUxpc3QuaXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKTsKKyAgICAgICAgQ1NTVmFsdWUq
IHNlY29uZFZhbHVlID0gdmFsdWVMaXN0Lml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMSk7CisgICAg
ICAgIC8vIDxsZW5ndGg+ezJ9IHwgPHBhZ2Utc2l6ZT4gPG9yaWVudGF0aW9uPgorICAgICAgICBp
ZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPigqZmlyc3RWYWx1ZSkgfHwgIWlzPENTU1ByaW1pdGl2
ZVZhbHVlPigqc2Vjb25kVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRv
JiBmaXJzdFByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpmaXJz
dFZhbHVlKTsKKyAgICAgICAgYXV0byYgc2Vjb25kUHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKnNlY29uZFZhbHVlKTsKKyAgICAgICAgaWYgKGZpcnN0UHJpbWl0
aXZlVmFsdWUuaXNMZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gPGxlbmd0aD57Mn0KKyAgICAg
ICAgICAgIGlmICghc2Vjb25kUHJpbWl0aXZlVmFsdWUuaXNMZW5ndGgoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZl
cnNpb25EYXRhID0gc3R5bGVSZXNvbHZlci5zdGF0ZSgpLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEoKS5jb3B5V2l0aEFkanVzdGVkWm9vbSgxLjBmKTsKKyAgICAgICAgICAgIHdpZHRoID0gZmly
c3RQcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwor
ICAgICAgICAgICAgaGVpZ2h0ID0gc2Vjb25kUHJpbWl0aXZlVmFsdWUuY29tcHV0ZUxlbmd0aDxM
ZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8v
IDxwYWdlLXNpemU+IDxvcmllbnRhdGlvbj4KKyAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBvcmRl
ciBpcyBndWFyYW50ZWVkLiBTZWUgQ1NTUGFyc2VyOjpwYXJzZVNpemVQYXJhbWV0ZXIuCisgICAg
ICAgICAgICBpZiAoIWdldFBhZ2VTaXplRnJvbU5hbWUoJmZpcnN0UHJpbWl0aXZlVmFsdWUsICZz
ZWNvbmRQcmltaXRpdmVWYWx1ZSwgd2lkdGgsIGhlaWdodCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9SRVNPTFZF
RDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgMTogeworICAgICAgICBDU1NWYWx1
ZSogdmFsdWUgPSB2YWx1ZUxpc3QuaXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKTsKKyAgICAgICAg
Ly8gPGxlbmd0aD4gfCBhdXRvIHwgPHBhZ2Utc2l6ZT4gfCBbIHBvcnRyYWl0IHwgbGFuZHNjYXBl
XQorICAgICAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPigqdmFsdWUpOworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUuaXNMZW5n
dGgoKSkgeworICAgICAgICAgICAgLy8gPGxlbmd0aD4KKyAgICAgICAgICAgIHBhZ2VTaXplVHlw
ZSA9IFBBR0VfU0laRV9SRVNPTFZFRDsKKyAgICAgICAgICAgIHdpZHRoID0gaGVpZ2h0ID0gcHJp
bWl0aXZlVmFsdWUuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlUmVzb2x2ZXIuc3RhdGUoKS5j
c3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb20oMS4wZikpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS5nZXRW
YWx1ZUlEKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgICAgICAgICBwYWdlU2l6
ZVR5cGUgPSBQQUdFX1NJWkVfQVVUTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVQb3J0cmFpdDoKKyAgICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUg
PSBQQUdFX1NJWkVfQVVUT19QT1JUUkFJVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVMYW5kc2NhcGU6CisgICAgICAgICAgICAgICAgcGFnZVNpemVU
eXBlID0gUEFHRV9TSVpFX0FVVE9fTEFORFNDQVBFOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyA8cGFnZS1zaXplPgorICAg
ICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9SRVNPTFZFRDsKKyAgICAgICAg
ICAgICAgICBpZiAoIWdldFBhZ2VTaXplRnJvbU5hbWUoJnByaW1pdGl2ZVZhbHVlLCBudWxscHRy
LCB3aWR0aCwgaGVpZ2h0KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0UGFnZVNp
emVUeXBlKHBhZ2VTaXplVHlwZSk7CisgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRQYWdl
U2l6ZShMZW5ndGhTaXplKHdpZHRoLCBoZWlnaHQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgU3R5
bGVCdWlsZGVyRnVuY3Rpb25zCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>