<?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>103703</bug_id>
          
          <creation_ts>2012-11-29 18:35:42 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Align the grid track handling code with the specification&apos;s production rules</short_desc>
          <delta_ts>2012-11-30 16:02:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          <blocked>103311</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>779731</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-29 18:35:42 -0800</bug_when>
    <thetext>Currently our parsing, style resolution and computed style implementation of grid-definition-{row|column} are pretty flat. The specification defines 4 production rules:

&lt;track-list&gt;    =&gt; [ [ &lt;string&gt; ]* &lt;track-group&gt; [ &lt;string&gt; ]* ]+ | none
&lt;track-group&gt;   =&gt; &lt;track-minmax&gt; | [ repeat( &lt;positive-integer&gt; , [ [ &lt;string&gt; ]* &lt;track-minmax&gt; [ &lt;string&gt; ]* ]+ ) ]
&lt;track-minmax&gt;  =&gt; minmax( &lt;track-breadth&gt; , &lt;track-breadth&gt; ) | auto | &lt;track-breadth&gt;
&lt;track-breadth&gt; =&gt; &lt;length&gt; | &lt;percentage&gt; | &lt;fraction&gt; | min-content | max-content

Aligning our implementation with that would make the code more readable and would be easier to add support for more of the syntax (minmax being my goal).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779738</commentid>
    <comment_count>1</comment_count>
      <attachid>176884</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-29 18:49:10 -0800</bug_when>
    <thetext>Created attachment 176884
Proposed refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779803</commentid>
    <comment_count>2</comment_count>
      <attachid>176884</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-29 21:43:00 -0800</bug_when>
    <thetext>Comment on attachment 176884
Proposed refactoring.

Attachment 176884 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15057212</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780121</commentid>
    <comment_count>3</comment_count>
      <attachid>176969</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-30 07:57:43 -0800</bug_when>
    <thetext>Created attachment 176969
Updated refactoring: Fixed the mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780509</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-30 16:01:57 -0800</bug_when>
    <thetext>Landed the change manually in http://trac.webkit.org/changeset/136294 as the commit queue is stuck.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176884</attachid>
            <date>2012-11-29 18:49:10 -0800</date>
            <delta_ts>2012-11-30 07:57:41 -0800</delta_ts>
            <desc>Proposed refactoring.</desc>
            <filename>bug-103703-20121129184642.patch</filename>
            <type>text/plain</type>
            <size>8024</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyZDQ0ZTU3YTk3OTY5
ZmMxYTVkMWE3ZWY4NDUxYmRkNTQ3NGE4Zi4uOGIzZTAyMTFhMGU0MjIzMTNkOTY1ZDM3OWMxNzNj
NmUxNGIxNTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTI5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsaWduIHRo
ZSBncmlkIHRyYWNrIGNvZGUgd2l0aCB0aGUgc3BlY2lmaWNhdGlvbidzIHByb2R1Y3Rpb24gcnVs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzcw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9y
ZGVyIHRvIHN1cHBvcnQgbW9yZSBvZiB0aGUgc3ludGF4IGFuZCBtYWtlIHRoZSBjb2RlIG1vcmUg
cmVhZGFibGUsIHRoaXMgY2hhbmdlCisgICAgICAgIHNwbGl0cyBmb2xsb3dpbmcgdGhlIGdyYW1t
YXIncyBwcm9kdWN0aW9uIHJ1bGVzIChzZWUKKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3NzMy1ncmlkLWxheW91dC8jZ3JpZC1kZWZpbml0aW9uLWNvbHVtbnMtYW5kLWdyaWQtZGVm
aW5pdCkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsdWVGb3JHcmlkVHJhY2tNaW5NYXgpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVGb3JHcmlkVHJhY2tHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRU
cmFja0xpc3QpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUdyaWRUcmFja0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VHcmlkVHJhY2tNaW5NYXgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUdyaWRCcmVhZHRoKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNr
TWluTWF4KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFja0dyb3VwKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFja0xpc3QpOgorICAgICAgICBNZWNoYW5pY2FsIHNw
bGl0IG9mIHRoZSBwYXJzaW5nLCByZXNvbHZpbmcgYW5kIGNvbXB1dGVkIHN0eWxlIGNvZGUgaW50
bworICAgICAgICA8dHJhY2stbGlzdD4sIDx0cmFjay1ncm91cD4sIDx0cmFjay1taW5tYXg+IGFu
ZCA8dHJhY2stYnJlYWR0aD4gcGFydHMuCisKIDIwMTItMTEtMjkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgcGFpbnRpbmcgbG90cyBvZiBz
bWFsbCByZWN0cyBpbiBXZWJMYXllciBwYWludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiNGIxOWM3OTg4MTkzZGQw
Mzc1ZTI3OTViYzYzZTAxNzdkMWY3OGI5Li41ZDUzYmJkYjk2MGU5MzljMjg4YmUyZjgxMzE5MGY1
ZTY3ZTU5OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcApAQCAtOTkyLDE2ICs5OTIsMjYgQEAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aChjb25zdCBHcmlkVHJhY2tTaXplJiB0
cmFja1MKICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0cmFja1NpemUubGVuZ3Ro
KCkudmFsdWUoKSwgc3R5bGUpOwogfQogCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFs
dWVGb3JHcmlkVHJhY2tNaW5NYXgoY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplLCBjb25z
dCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrQnJl
YWR0aCh0cmFja1NpemUsIHN0eWxlKTsKK30KKworc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IHZhbHVlRm9yR3JpZFRyYWNrR3JvdXAoY29uc3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiB0cmFj
a1NpemVzLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgUmVmUHRyPENTU1ZhbHVl
TGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYWNrU2l6ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGxp
c3QtPmFwcGVuZCh2YWx1ZUZvckdyaWRUcmFja01pbk1heCh0cmFja1NpemVzW2ldLCBzdHlsZSkp
OworICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKK30KKwogc3RhdGljIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4m
IHRyYWNrU2l6ZXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICAvLyBIYW5kbGUg
dGhlICdub25lJyBjYXNlIGhlcmUuCiAgICAgaWYgKCF0cmFja1NpemVzLnNpemUoKSkKICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5v
bmUpOwogCi0gICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYWNrU2l6
ZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGxpc3QtPmFwcGVuZCh2YWx1ZUZvckdyaWRUcmFja0Jy
ZWFkdGgodHJhY2tTaXplc1tpXSwgc3R5bGUpKTsKLSAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrR3JvdXAodHJhY2tTaXplcywgc3R5bGUpOwog
fQogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkUG9zaXRpb24oY29u
c3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
NGY4N2ZjOTNkYzdjNWFkMWMzYTRiOTgxM2VmMzUwMDI3NDNhOGFiNC4uYzY1OTJkZDVmYjA4ZTU3
ZWVhZDNiODU1NzE0YTkwMzJmYjI3YjhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTQ1MjAsMTkgKzQ1MjAsNDUgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdChD
U1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgfQogCiAgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRl
ZCgpOwotICAgIHdoaWxlICh2YWx1ZSkgewotICAgICAgICBib29sIHZhbGlkID0gdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG87
Ci0gICAgICAgIGlmICghdmFsaWQpCisgICAgd2hpbGUgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkp
IHsKKyAgICAgICAgaWYgKCFwYXJzZUdyaWRUcmFja0dyb3VwKHZhbHVlcy5nZXQoKSkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8gPyBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKSA6IGNyZWF0ZVByaW1pdGl2
ZU51bWVyaWNWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgIHZhbHVlcy0+YXBwZW5kKHByaW1pdGl2ZVZh
bHVlLnJlbGVhc2UoKSk7Ci0gICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAg
ICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICB9CiAgICAgYWRkUHJvcGVydHkocHJvcElk
LCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiti
b29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tHcm91cChDU1NWYWx1ZUxpc3QqIHZhbHVlcykK
K3sKKyAgICByZXR1cm4gcGFyc2VHcmlkVHJhY2tNaW5NYXgodmFsdWVzKTsKK30KKworYm9vbCBD
U1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTWluTWF4KENTU1ZhbHVlTGlzdCogdmFsdWVzKQorewor
ICAgIENTU1BhcnNlclZhbHVlKiBjdXJyZW50VmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgp
OworICAgIGlmIChjdXJyZW50VmFsdWUtPmlkID09IENTU1ZhbHVlQXV0bykgeworICAgICAgICBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGF1dG9WYWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgICAgICB2YWx1ZXMtPmFwcGVuZChh
dXRvVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHRyYWNrQnJlYWR0aCA9IHBhcnNlR3Jp
ZEJyZWFkdGgodmFsdWVzLCBjdXJyZW50VmFsdWUpKSB7CisgICAgICAgIHZhbHVlcy0+YXBwZW5k
KHRyYWNrQnJlYWR0aCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUdyaWRCcmVhZHRoKENTU1ZhbHVlTGlzdCogdmFsdWVzLCBDU1NQYXJzZXJWYWx1ZSogY3Vy
cmVudFZhbHVlKQoreworICAgIGlmICghdmFsaWRVbml0KGN1cnJlbnRWYWx1ZSwgRkxlbmd0aCB8
IEZQZXJjZW50KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gY3JlYXRlUHJpbWl0
aXZlTnVtZXJpY1ZhbHVlKGN1cnJlbnRWYWx1ZSk7Cit9CiAKICNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBkMTJmNzJiYzUyZTZlNGEyNzY4
ZTYzNDg4ZWU1ZTNiNzE1NzRjNTFiLi5hMDE0N2U0OTk4ZDc4NDE1OTIxMWUyMTg5MGIxZjEyNjg1
NGZjNjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xNTIsNiArMTUyLDkgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBjc3NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgcGFy
c2VHcmlkVHJhY2tMaXN0KENTU1Byb3BlcnR5SUQsIGJvb2wgaW1wb3J0YW50KTsKKyAgICBib29s
IHBhcnNlR3JpZFRyYWNrR3JvdXAoQ1NTVmFsdWVMaXN0Kik7CisgICAgYm9vbCBwYXJzZUdyaWRU
cmFja01pbk1heChDU1NWYWx1ZUxpc3QqKTsKKyAgICBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBwYXJzZUdyaWRCcmVhZHRoKENTU1ZhbHVlTGlzdCosIENTU1BhcnNlclZhbHVlKik7CiAK
ICAgICBib29sIHBhcnNlRGFzaGJvYXJkUmVnaW9ucyhDU1NQcm9wZXJ0eUlELCBib29sIGltcG9y
dGFudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA5NWE5NzU3Nzll
NDEzNTNlZDI1MmQyY2E4NDhhYThmNWYyM2NhMGNmLi4wMTk1MDhmYmRiMzM2MTdmNmY0NDdmMzM2
YzRmMDBhYjBlNjYyYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0y
NjcyLDYgKzI2NzIsMzAgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrQnJlYWR0aChDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFN0eWxlUmVzb2wKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrTWluTWF4KENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSwgU3R5bGVSZXNvbHZlciogc2VsZWN0b3IsIEdyaWRUcmFja1Np
emUmIHRyYWNrU2l6ZSkKK3sKKyAgICByZXR1cm4gY3JlYXRlR3JpZFRyYWNrQnJlYWR0aChwcmlt
aXRpdmVWYWx1ZSwgc2VsZWN0b3IsIHRyYWNrU2l6ZSk7Cit9CisKK3N0YXRpYyBib29sIGNyZWF0
ZUdyaWRUcmFja0dyb3VwKENTU1ZhbHVlKiB2YWx1ZSwgU3R5bGVSZXNvbHZlciogc2VsZWN0b3Is
IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXplcykKK3sKKyAgICBpZiAoIXZhbHVlLT5p
c1ZhbHVlTGlzdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKENTU1ZhbHVl
TGlzdEl0ZXJhdG9yIGkgPSB2YWx1ZTsgaS5oYXNNb3JlKCk7IGkuYWR2YW5jZSgpKSB7CisgICAg
ICAgIENTU1ZhbHVlKiBjdXJyVmFsdWUgPSBpLnZhbHVlKCk7CisgICAgICAgIGlmICghY3VyclZh
bHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgR3JpZFRyYWNrU2l6ZSB0cmFja1NpemU7CisgICAgICAgIGlmICghY3JlYXRlR3JpZFRy
YWNrTWluTWF4KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oY3VyclZhbHVlKSwgc2Vs
ZWN0b3IsIHRyYWNrU2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
dHJhY2tTaXplcy5hcHBlbmQodHJhY2tTaXplKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0xpc3QoQ1NTVmFsdWUqIHZhbHVlLCBWZWN0
b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNrU2l6ZXMsIFN0eWxlUmVzb2x2ZXIqIHNlbGVjdG9yKQog
ewogICAgIC8vIEhhbmRsZSAnbm9uZScuCkBAIC0yNjgwLDIyICsyNzA0LDcgQEAgc3RhdGljIGJv
b2wgY3JlYXRlR3JpZFRyYWNrTGlzdChDU1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxHcmlkVHJhY2tT
aXplPiYgdHJhY2tTaXoKICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlTm9uZTsKICAgICB9CiAKLSAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkp
IHsKLSAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpID0gdmFsdWU7IGkuaGFzTW9y
ZSgpOyBpLmFkdmFuY2UoKSkgewotICAgICAgICAgICAgQ1NTVmFsdWUqIGN1cnJWYWx1ZSA9IGku
dmFsdWUoKTsKLSAgICAgICAgICAgIGlmICghY3VyclZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgICBHcmlkVHJhY2tT
aXplIHRyYWNrU2l6ZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRlR3JpZFRyYWNrQnJlYWR0aChz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGN1cnJWYWx1ZSksIHNlbGVjdG9yLCB0cmFj
a1NpemUpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgdHJh
Y2tTaXplcy5hcHBlbmQodHJhY2tTaXplKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNyZWF0ZUdyaWRUcmFj
a0dyb3VwKHZhbHVlLCBzZWxlY3RvciwgdHJhY2tTaXplcyk7CiB9CiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176969</attachid>
            <date>2012-11-30 07:57:43 -0800</date>
            <delta_ts>2012-11-30 16:02:16 -0800</delta_ts>
            <desc>Updated refactoring: Fixed the mac build.</desc>
            <filename>bug-103703-20121130075515.patch</filename>
            <type>text/plain</type>
            <size>9452</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU0OTM3NjEwMzA0NmEx
NWUwOTI2ZWYxYWExOTI0MzNhYTFmNjk0NS4uN2JhYTk0NTZhZDVkMmQ0OTg4YWM1MGJjN2ViMTI1
NjY5YjQwNDZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTExLTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFsaWduIHRoZSBncmlkIHRyYWNrIGNvZGUgd2l0aCB0aGUgc3BlY2lmaWNhdGlv
bidzIHByb2R1Y3Rpb24gcnVsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzcwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEluIG9yZGVyIHRvIHN1cHBvcnQgbW9yZSBvZiB0aGUgc3ludGF4IGFuZCBt
YWtlIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUsIHRoaXMgY2hhbmdlCisgICAgICAgIHNwbGl0cyBm
b2xsb3dpbmcgdGhlIGdyYW1tYXIncyBwcm9kdWN0aW9uIHJ1bGVzIChzZWUKKyAgICAgICAgaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy1ncmlkLWxheW91dC8jZ3JpZC1kZWZpbml0aW9uLWNv
bHVtbnMtYW5kLWdyaWQtZGVmaW5pdCkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgY292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JHcmlkVHJhY2tNaW5NYXgpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JHcmlkVHJhY2tHcm91cCk6CisgICAgICAgIChXZWJD
b3JlOjp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0dyb3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tNaW5NYXgpOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tNaW5NYXgpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlR3JpZFRyYWNrR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNrTGlz
dCk6CisgICAgICAgIE1lY2hhbmljYWwgc3BsaXQgb2YgdGhlIHBhcnNpbmcsIHJlc29sdmluZyBh
bmQgY29tcHV0ZWQgc3R5bGUgY29kZSBpbnRvCisgICAgICAgIDx0cmFjay1saXN0PiwgPHRyYWNr
LWdyb3VwPiwgPHRyYWNrLW1pbm1heD4gYW5kIDx0cmFjay1icmVhZHRoPiBwYXJ0cy4KKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUdyaWRCcmVhZHRoKToKKyAgICAgICAgQ2hhbmdlZCB0aGlzIGZ1bmN0aW9uIHRvIGp1c3Qg
cGFyc2UgYSBzaW5nbGUgdmFsdWUgKHdpdGhvdXQgYW55IGV4dHJhIGxvZ2ljKS4KKworICAgICAg
ICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRU
cmFja0JyZWFkdGgpOgorICAgICAgICBDaGFuZ2VkIHRoaXMgZnVuY3Rpb24gdG8gdGFrZSBhIExl
bmd0aCBhcyBpdCBpcyB1c2VkIHRvIHBhcnNlIGEgPHRyYWNrLWJyZWFkdGg+LgorICAgICAgICBU
aGUgZ29hbCBpcyBmb3IgaXQgdG8gYmUgdGhlIGxvdy1sZXZlbCBmdW5jdGlvbiBjcmVhdGVHcmlk
VHJhY2tNaW5tYXggd2lsbCBjYWxsIG9uCisgICAgICAgIGVhY2ggZnVuY3Rpb24gcGFyYW1ldGVy
LgorCiAyMDEyLTExLTI5ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFNwZWVjaCBSZWNvZ25pdGlvbiBBUEk6IFVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50L1Jlc3VsdCB0byBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiNGIxOWM3
OTg4MTkzZGQwMzc1ZTI3OTViYzYzZTAxNzdkMWY3OGI5Li41ZDUzYmJkYjk2MGU5MzljMjg4YmUy
ZjgxMzE5MGY1ZTY3ZTU5OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtOTkyLDE2ICs5OTIsMjYgQEAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aChjb25zdCBHcmlkVHJh
Y2tTaXplJiB0cmFja1MKICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0cmFja1Np
emUubGVuZ3RoKCkudmFsdWUoKSwgc3R5bGUpOwogfQogCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tNaW5NYXgoY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tT
aXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgcmV0dXJuIHZhbHVlRm9yR3Jp
ZFRyYWNrQnJlYWR0aCh0cmFja1NpemUsIHN0eWxlKTsKK30KKworc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrR3JvdXAoY29uc3QgVmVjdG9yPEdyaWRUcmFja1Np
emU+JiB0cmFja1NpemVzLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQo
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYWNrU2l6ZXMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIGxpc3QtPmFwcGVuZCh2YWx1ZUZvckdyaWRUcmFja01pbk1heCh0cmFja1NpemVzW2ld
LCBzdHlsZSkpOworICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKK30KKwogc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBWZWN0b3I8R3JpZFRy
YWNrU2l6ZT4mIHRyYWNrU2l6ZXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICAv
LyBIYW5kbGUgdGhlICdub25lJyBjYXNlIGhlcmUuCiAgICAgaWYgKCF0cmFja1NpemVzLnNpemUo
KSkKICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZU5vbmUpOwogCi0gICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVl
TGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHRyYWNrU2l6ZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGxpc3QtPmFwcGVuZCh2YWx1ZUZvckdy
aWRUcmFja0JyZWFkdGgodHJhY2tTaXplc1tpXSwgc3R5bGUpKTsKLSAgICByZXR1cm4gbGlzdC5y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrR3JvdXAodHJhY2tTaXplcywg
c3R5bGUpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkUG9z
aXRpb24oY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggNGY4N2ZjOTNkYzdjNWFkMWMzYTRiOTgxM2VmMzUwMDI3NDNhOGFiNC4uOTNhY2Vh
NWM4N2Y0OWM0Mzk2NzYwMjhjN2E3NGNkNzFlMmM0NDQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKQEAgLTQ1MjAsMTkgKzQ1MjAsNDUgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRy
YWNrTGlzdChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgfQogCiAg
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOwotICAgIHdoaWxlICh2YWx1ZSkgewotICAgICAgICBib29sIHZhbGlkID0g
dmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpIHx8IHZhbHVlLT5pZCA9PSBDU1NW
YWx1ZUF1dG87Ci0gICAgICAgIGlmICghdmFsaWQpCisgICAgd2hpbGUgKG1fdmFsdWVMaXN0LT5j
dXJyZW50KCkpIHsKKyAgICAgICAgaWYgKCFwYXJzZUdyaWRUcmFja0dyb3VwKHZhbHVlcy5nZXQo
KSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8gPyBj
c3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKSA6IGNyZWF0
ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgIHZhbHVlcy0+YXBwZW5kKHBy
aW1pdGl2ZVZhbHVlLnJlbGVhc2UoKSk7Ci0gICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPm5l
eHQoKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICB9CiAgICAgYWRkUHJvcGVy
dHkocHJvcElkLCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogICAgIHJldHVybiB0cnVl
OwogfQogCitib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tHcm91cChDU1NWYWx1ZUxpc3Qq
IHZhbHVlcykKK3sKKyAgICByZXR1cm4gcGFyc2VHcmlkVHJhY2tNaW5NYXgodmFsdWVzKTsKK30K
KworYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTWluTWF4KENTU1ZhbHVlTGlzdCogdmFs
dWVzKQoreworICAgIENTU1BhcnNlclZhbHVlKiBjdXJyZW50VmFsdWUgPSBtX3ZhbHVlTGlzdC0+
Y3VycmVudCgpOworICAgIGlmIChjdXJyZW50VmFsdWUtPmlkID09IENTU1ZhbHVlQXV0bykgewor
ICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGF1dG9WYWx1ZSA9IGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworICAgICAgICB2YWx1ZXMt
PmFwcGVuZChhdXRvVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgaWYgKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHRyYWNrQnJlYWR0aCA9
IHBhcnNlR3JpZEJyZWFkdGgoY3VycmVudFZhbHVlKSkgeworICAgICAgICB2YWx1ZXMtPmFwcGVu
ZCh0cmFja0JyZWFkdGgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1BhcnNlcjo6
cGFyc2VHcmlkQnJlYWR0aChDU1NQYXJzZXJWYWx1ZSogY3VycmVudFZhbHVlKQoreworICAgIGlm
ICghdmFsaWRVbml0KGN1cnJlbnRWYWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICByZXR1cm4gY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGN1cnJl
bnRWYWx1ZSk7Cit9CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAppbmRleCBkMTJmNzJiYzUyZTZlNGEyNzY4ZTYzNDg4ZWU1ZTNiNzE1NzRjNTFi
Li40MjA1ODI5NmQzNGQ2MzE2MzhjNzM2NTJlOTFkNzdhMzFkZDE0MDczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0xNTIsNiArMTUyLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBjc3NHcmlk
TGF5b3V0RW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgcGFyc2VHcmlkVHJhY2tMaXN0KENTU1By
b3BlcnR5SUQsIGJvb2wgaW1wb3J0YW50KTsKKyAgICBib29sIHBhcnNlR3JpZFRyYWNrR3JvdXAo
Q1NTVmFsdWVMaXN0Kik7CisgICAgYm9vbCBwYXJzZUdyaWRUcmFja01pbk1heChDU1NWYWx1ZUxp
c3QqKTsKKyAgICBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZUdyaWRCcmVhZHRo
KENTU1BhcnNlclZhbHVlKik7CiAKICAgICBib29sIHBhcnNlRGFzaGJvYXJkUmVnaW9ucyhDU1NQ
cm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAppbmRleCA5NWE5NzU3NzllNDEzNTNlZDI1MmQyY2E4NDhhYThmNWYyM2NhMGNmLi4yZjhh
N2M5YWFlMjk2YWE0ZDNkMzgyMTMwN2RiMTY3MjJjY2ZhNThkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNjU5LDE5ICsyNjU5LDQ3IEBAIGJvb2wgU3R5bGVSZXNvbHZl
cjo6dXNlU1ZHWm9vbVJ1bGVzKCkKICAgICByZXR1cm4gbV9lbGVtZW50ICYmIG1fZWxlbWVudC0+
aXNTVkdFbGVtZW50KCk7CiB9CiAKLXN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0JyZWFkdGgo
Q1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlLCBTdHlsZVJlc29sdmVyKiBzZWxlY3Rv
ciwgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplKQorc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNr
QnJlYWR0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFN0eWxlUmVzb2x2ZXIq
IHNlbGVjdG9yLCBMZW5ndGgmIHdvcmtpbmdMZW5ndGgpCiB7Ci0gICAgTGVuZ3RoIHdvcmtpbmdM
ZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29udmVydFRvTGVuZ3RoPEZpeGVkSW50ZWdlckNvbnZl
cnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IFZpZXdwb3J0UGVyY2VudGFnZUNvbnZlcnNpb24g
fCBBdXRvQ29udmVyc2lvbj4oc2VsZWN0b3ItPnN0eWxlKCksIHNlbGVjdG9yLT5yb290RWxlbWVu
dFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOworICAgIHdvcmtp
bmdMZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29udmVydFRvTGVuZ3RoPEZpeGVkSW50ZWdlckNv
bnZlcnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IFZpZXdwb3J0UGVyY2VudGFnZUNvbnZlcnNp
b24gfCBBdXRvQ29udmVyc2lvbj4oc2VsZWN0b3ItPnN0eWxlKCksIHNlbGVjdG9yLT5yb290RWxl
bWVudFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwogICAgIGlm
ICh3b3JraW5nTGVuZ3RoLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkKICAgICAgICAgd29ya2luZ0xlbmd0
aC5zZXRRdWlyayhwcmltaXRpdmVWYWx1ZS0+aXNRdWlya1ZhbHVlKCkpOwogCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3N0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja01pbk1heChDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFN0eWxlUmVzb2x2ZXIqIHNlbGVjdG9yLCBHcmlkVHJh
Y2tTaXplJiB0cmFja1NpemUpCit7CisgICAgTGVuZ3RoIHdvcmtpbmdMZW5ndGg7CisgICAgaWYg
KCFjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKHByaW1pdGl2ZVZhbHVlLCBzZWxlY3Rvciwgd29ya2lu
Z0xlbmd0aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHRyYWNrU2l6ZS5zZXRMZW5n
dGgod29ya2luZ0xlbmd0aCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGNy
ZWF0ZUdyaWRUcmFja0dyb3VwKENTU1ZhbHVlKiB2YWx1ZSwgU3R5bGVSZXNvbHZlciogc2VsZWN0
b3IsIFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXplcykKK3sKKyAgICBpZiAoIXZhbHVl
LT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKENTU1Zh
bHVlTGlzdEl0ZXJhdG9yIGkgPSB2YWx1ZTsgaS5oYXNNb3JlKCk7IGkuYWR2YW5jZSgpKSB7Cisg
ICAgICAgIENTU1ZhbHVlKiBjdXJyVmFsdWUgPSBpLnZhbHVlKCk7CisgICAgICAgIGlmICghY3Vy
clZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgR3JpZFRyYWNrU2l6ZSB0cmFja1NpemU7CisgICAgICAgIGlmICghY3JlYXRlR3Jp
ZFRyYWNrTWluTWF4KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oY3VyclZhbHVlKSwg
c2VsZWN0b3IsIHRyYWNrU2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgdHJhY2tTaXplcy5hcHBlbmQodHJhY2tTaXplKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0xpc3QoQ1NTVmFsdWUqIHZhbHVlLCBW
ZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNrU2l6ZXMsIFN0eWxlUmVzb2x2ZXIqIHNlbGVjdG9y
KQogewogICAgIC8vIEhhbmRsZSAnbm9uZScuCkBAIC0yNjgwLDIyICsyNzA4LDcgQEAgc3RhdGlj
IGJvb2wgY3JlYXRlR3JpZFRyYWNrTGlzdChDU1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxHcmlkVHJh
Y2tTaXplPiYgdHJhY2tTaXoKICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlTm9uZTsKICAgICB9CiAKLSAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0
KCkpIHsKLSAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpID0gdmFsdWU7IGkuaGFz
TW9yZSgpOyBpLmFkdmFuY2UoKSkgewotICAgICAgICAgICAgQ1NTVmFsdWUqIGN1cnJWYWx1ZSA9
IGkudmFsdWUoKTsKLSAgICAgICAgICAgIGlmICghY3VyclZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVl
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgICBHcmlkVHJh
Y2tTaXplIHRyYWNrU2l6ZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRlR3JpZFRyYWNrQnJlYWR0
aChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGN1cnJWYWx1ZSksIHNlbGVjdG9yLCB0
cmFja1NpemUpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAg
dHJhY2tTaXplcy5hcHBlbmQodHJhY2tTaXplKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNyZWF0ZUdyaWRU
cmFja0dyb3VwKHZhbHVlLCBzZWxlY3RvciwgdHJhY2tTaXplcyk7CiB9CiAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>