<?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>130915</bug_id>
          
          <creation_ts>2014-03-28 16:14:31 -0700</creation_ts>
          <short_desc>Radio buttons and checkboxes should share code</short_desc>
          <delta_ts>2014-03-31 11:11:50 -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>Forms</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995481</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-03-28 16:14:31 -0700</bug_when>
    <thetext>Radio buttons and checkboxes should share code, and this will easily allow radio buttons to pick up the work for incremental redraw that was added with https://bugs.webkit.org/show_bug.cgi?id=130736

&lt;rdar://problem/16175198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995483</commentid>
    <comment_count>1</comment_count>
      <attachid>228089</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-03-28 16:21:59 -0700</bug_when>
    <thetext>Created attachment 228089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995570</commentid>
    <comment_count>2</comment_count>
      <attachid>228089</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-29 07:44:39 -0700</bug_when>
    <thetext>Comment on attachment 228089
Patch

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

&gt; Source/WebCore/platform/mac/ThemeMac.mm:298
&gt; +static const IntSize* radioSizes()

I think you should make this return a const std::array&lt;IntSize, 3&gt;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995921</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-03-31 11:11:50 -0700</bug_when>
    <thetext>Thanks, Sam! I will address Anders&apos; suggestion in a follow-up patch. http://trac.webkit.org/changeset/166514</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228089</attachid>
            <date>2014-03-28 16:21:59 -0700</date>
            <delta_ts>2014-03-31 10:29:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>13926</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTAzLTI4ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSYWRpbyBidXR0b25zIGFuZCBjaGVj
a2JveGVzIHNob3VsZCBzaGFyZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzA5MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSYWRpbyBidXR0b25zIGFuZCBjaGVja2JveGVzIG5vdyBzaGFyZSBh
IGxvdCBvZiBjb2RlLiBUaGUgY29tbW9uIHRlcm0gZm9yIGJvdGggaXMgCisgICAgICAgIHRvZ2ds
ZSBidXR0b25zLgorCisgICAgICAgIE1vdmUgdGhlc2UgcmFkaW8tc2l6aW5nIGZ1bmN0aW9ucyB1
cCBpbiB0aGUgZmlsZSB0byBiZSBuZXh0IHRvIHRoZSBjaGVja2JveCBzaXppbmcgCisgICAgICAg
IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpyYWRpb1NpemVzKToKKyAgICAgICAgKFdlYkNvcmU6OnJhZGlvTWFyZ2lucyk6
CisgICAgICAgIChXZWJDb3JlOjpyYWRpb1NpemUpOgorCisgICAgICAgIENvbmZpZ3VyZXMgYSBy
YWRpbyBidXR0b24gb3IgYSBjaGVja2JveC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbmZpZ3VyZVRv
Z2dsZUJ1dHRvbik6CisKKyAgICAgICAgQ3JlYXRlcyBhIHJhZGlvIGJ1dHRvbiBvciBhIGNoZWNr
Ym94LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVG9nZ2xlQnV0dG9uQ2VsbCk6CisKKyAgICAg
ICAgU3RpbGwgaGF2ZSBhIHNoYXJlZCBjZWxsIGZvciBlYWNoLgorICAgICAgICAoV2ViQ29yZTo6
c2hhcmVkUmFkaW9DZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYXJlZENoZWNrYm94Q2VsbCk6
CisKKyAgICAgICAgRG9lcyB0aGUgd29yayBvZiB0aGUgb2xkIHBhaW50UmFkaW8oKSBhbmQgcGFp
bnRDaGVja2JveCgpLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRUb2dnbGVCdXR0b24pOgorCisg
ICAgICAgIFVzZSBzaGFyZWRSYWRpb0NlbGwoKSBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6VGhl
bWVNYWM6OmluZmxhdGVDb250cm9sUGFpbnRSZWN0KToKKworICAgICAgICBDYWxsIHBhaW50VG9n
Z2xlQnV0dG9uKCkgZm9yIHJhZGlvIGJ1dHRvbnMgYW5kIGNoZWNrYm94ZXMuCisgICAgICAgIChX
ZWJDb3JlOjpUaGVtZU1hYzo6cGFpbnQpOgorCisgICAgICAgIEFsbCBnb25lLgorICAgICAgICAo
V2ViQ29yZTo6Y29uZmlndXJlQ2hlY2tib3gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQ2hlY2tib3hDZWxsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50Q2hl
Y2tib3gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cmFkaW8pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRSYWRpbyk6IERlbGV0ZWQuCisKIDIwMTQtMDMtMjggIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRW5hYmxlIE1l
ZGlhIFRyYWNrIHRlc3RpbmcgZmVhdHVyZXMgb24gV2luZG93cwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQkocmV2aXNpb24gMTY2NDIzKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsNyAr
MjY0LDcgQEAgc3RhdGljIEludFJlY3QgaW5mbGF0ZVJlY3QoY29uc3QgSW50UmVjdAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLS8vIENoZWNrYm94ZXMKKy8vIENoZWNrYm94ZXMgYW5kIHJhZGlv
IGJ1dHRvbnMKIAogc3RhdGljIGNvbnN0IEludFNpemUqIGNoZWNrYm94U2l6ZXMoKQogewpAQCAt
MjkzLDU2ICsyOTMsMTA3IEBAIHN0YXRpYyBMZW5ndGhTaXplIGNoZWNrYm94U2l6ZShjb25zdCBG
b24KICAgICByZXR1cm4gc2l6ZUZyb21Gb250KGZvbnQsIHpvb21lZFNpemUsIHpvb21GYWN0b3Is
IGNoZWNrYm94U2l6ZXMoKSk7CiB9CiAgICAgCi1zdGF0aWMgdm9pZCBjb25maWd1cmVDaGVja2Jv
eChOU0NlbGwqIGNlbGwsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIHN0YXRlcywgY29uc3QgSW50UmVj
dCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgYm9vbCBpc1N0YXRlQ2hhbmdlKQorLy8g
UmFkaW8gQnV0dG9ucworCitzdGF0aWMgY29uc3QgSW50U2l6ZSogcmFkaW9TaXplcygpCit7Cisg
ICAgc3RhdGljIGNvbnN0IEludFNpemUgc2l6ZXNbM10gPSB7IEludFNpemUoMTQsIDE1KSwgSW50
U2l6ZSgxMiwgMTMpLCBJbnRTaXplKDEwLCAxMCkgfTsKKyAgICByZXR1cm4gc2l6ZXM7Cit9CisK
K3N0YXRpYyBjb25zdCBpbnQqIHJhZGlvTWFyZ2lucyhOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXpl
KQoreworICAgIHN0YXRpYyBjb25zdCBpbnQgbWFyZ2luc1szXVs0XSA9CisgICAgeworICAgICAg
ICB7IDIsIDIsIDQsIDIgfSwKKyAgICAgICAgeyAzLCAyLCAzLCAyIH0sCisgICAgICAgIHsgMSwg
MCwgMiwgMCB9LAorICAgIH07CisgICAgcmV0dXJuIG1hcmdpbnNbY29udHJvbFNpemVdOworfQor
CitzdGF0aWMgTGVuZ3RoU2l6ZSByYWRpb1NpemUoY29uc3QgRm9udCYgZm9udCwgY29uc3QgTGVu
Z3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKK3sKKyAgICAvLyBJZiB0aGUg
d2lkdGggYW5kIGhlaWdodCBhcmUgYm90aCBzcGVjaWZpZWQsIHRoZW4gd2UgaGF2ZSBub3RoaW5n
IHRvIGRvLgorICAgIGlmICghem9vbWVkU2l6ZS53aWR0aCgpLmlzSW50cmluc2ljT3JBdXRvKCkg
JiYgIXpvb21lZFNpemUuaGVpZ2h0KCkuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAgICAgICAgcmV0
dXJuIHpvb21lZFNpemU7CisKKyAgICAvLyBVc2UgdGhlIGZvbnQgc2l6ZSB0byBkZXRlcm1pbmUg
dGhlIGludHJpbnNpYyB3aWR0aCBvZiB0aGUgY29udHJvbC4KKyAgICByZXR1cm4gc2l6ZUZyb21G
b250KGZvbnQsIHpvb21lZFNpemUsIHpvb21GYWN0b3IsIHJhZGlvU2l6ZXMoKSk7Cit9CisgICAg
CitzdGF0aWMgdm9pZCBjb25maWd1cmVUb2dnbGVCdXR0b24oTlNDZWxsKiBjZWxsLCBDb250cm9s
UGFydCBidXR0b25UeXBlLCBjb25zdCBDb250cm9sU3RhdGVzKiBzdGF0ZXMsIGNvbnN0IEludFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIGJvb2wgaXNTdGF0ZUNoYW5nZSkKIHsK
ICAgICAvLyBTZXQgdGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIHJlY3RhbmdsZSB3ZSdy
ZSBwYWludGluZyBpbnRvLgotICAgIHNldENvbnRyb2xTaXplKGNlbGwsIGNoZWNrYm94U2l6ZXMo
KSwgem9vbWVkUmVjdC5zaXplKCksIHpvb21GYWN0b3IpOworICAgIHNldENvbnRyb2xTaXplKGNl
bGwsIGJ1dHRvblR5cGUgPT0gQ2hlY2tib3hQYXJ0ID8gY2hlY2tib3hTaXplcygpIDogcmFkaW9T
aXplcygpLCB6b29tZWRSZWN0LnNpemUoKSwgem9vbUZhY3Rvcik7CiAKICAgICAvLyBVcGRhdGUg
dGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJlc3BvbmQgdG8uCiAgICAgdXBkYXRlU3RhdGVzKGNlbGws
IHN0YXRlcywgaXNTdGF0ZUNoYW5nZSk7CiB9CiAgICAgCi1zdGF0aWMgTlNCdXR0b25DZWxsICpj
cmVhdGVDaGVja2JveENlbGwoKQorc3RhdGljIE5TQnV0dG9uQ2VsbCAqY3JlYXRlVG9nZ2xlQnV0
dG9uQ2VsbChDb250cm9sUGFydCBidXR0b25UeXBlKQogewotICAgIE5TQnV0dG9uQ2VsbCAqY2hl
Y2tib3hDZWxsID0gW1tOU0J1dHRvbkNlbGwgYWxsb2NdIGluaXRdOwotICAgIFtjaGVja2JveENl
bGwgc2V0QnV0dG9uVHlwZTpOU1N3aXRjaEJ1dHRvbl07Ci0gICAgW2NoZWNrYm94Q2VsbCBzZXRU
aXRsZTpuaWxdOwotICAgIFtjaGVja2JveENlbGwgc2V0QWxsb3dzTWl4ZWRTdGF0ZTpZRVNdOwot
ICAgIFtjaGVja2JveENlbGwgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3VzUmluZ1R5cGVFeHRlcmlv
cl07Ci0gICAgcmV0dXJuIGNoZWNrYm94Q2VsbDsKKyAgICBOU0J1dHRvbkNlbGwgKnRvZ2dsZUJ1
dHRvbkNlbGwgPSBbW05TQnV0dG9uQ2VsbCBhbGxvY10gaW5pdF07CisgICAgCisgICAgaWYgKGJ1
dHRvblR5cGUgPT0gQ2hlY2tib3hQYXJ0KSB7CisgICAgICAgIFt0b2dnbGVCdXR0b25DZWxsIHNl
dEJ1dHRvblR5cGU6TlNTd2l0Y2hCdXR0b25dOworICAgICAgICBbdG9nZ2xlQnV0dG9uQ2VsbCBz
ZXRBbGxvd3NNaXhlZFN0YXRlOllFU107CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGJ1
dHRvblR5cGUgPT0gUmFkaW9QYXJ0KTsKKyAgICAgICAgW3RvZ2dsZUJ1dHRvbkNlbGwgc2V0QnV0
dG9uVHlwZTpOU1JhZGlvQnV0dG9uXTsKKyAgICB9CisgICAgCisgICAgW3RvZ2dsZUJ1dHRvbkNl
bGwgc2V0VGl0bGU6bmlsXTsKKyAgICBbdG9nZ2xlQnV0dG9uQ2VsbCBzZXRGb2N1c1JpbmdUeXBl
Ok5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKKyAgICByZXR1cm4gdG9nZ2xlQnV0dG9uQ2VsbDsK
IH0KKyAgICAKK3N0YXRpYyBOU0J1dHRvbkNlbGwgKnNoYXJlZFJhZGlvQ2VsbChjb25zdCBDb250
cm9sU3RhdGVzKiBzdGF0ZXMsIGNvbnN0IEludFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21G
YWN0b3IpCit7CisgICAgc3RhdGljIE5TQnV0dG9uQ2VsbCAqcmFkaW9DZWxsOworICAgIGlmICgh
cmFkaW9DZWxsKQorICAgICAgICByYWRpb0NlbGwgPSBjcmVhdGVUb2dnbGVCdXR0b25DZWxsKFJh
ZGlvUGFydCk7CiAKKyAgICBjb25maWd1cmVUb2dnbGVCdXR0b24ocmFkaW9DZWxsLCBSYWRpb1Bh
cnQsIHN0YXRlcywgem9vbWVkUmVjdCwgem9vbUZhY3RvciwgZmFsc2UpOworICAgIHJldHVybiBy
YWRpb0NlbGw7Cit9CisgICAgCiBzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRDaGVja2JveENl
bGwoY29uc3QgQ29udHJvbFN0YXRlcyogc3RhdGVzLCBjb25zdCBJbnRSZWN0JiB6b29tZWRSZWN0
LCBmbG9hdCB6b29tRmFjdG9yKQogewogICAgIHN0YXRpYyBOU0J1dHRvbkNlbGwgKmNoZWNrYm94
Q2VsbDsKICAgICBpZiAoIWNoZWNrYm94Q2VsbCkKLSAgICAgICAgY2hlY2tib3hDZWxsID0gY3Jl
YXRlQ2hlY2tib3hDZWxsKCk7CisgICAgICAgIGNoZWNrYm94Q2VsbCA9IGNyZWF0ZVRvZ2dsZUJ1
dHRvbkNlbGwoQ2hlY2tib3hQYXJ0KTsKIAotICAgIGNvbmZpZ3VyZUNoZWNrYm94KGNoZWNrYm94
Q2VsbCwgc3RhdGVzLCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBmYWxzZSk7CisgICAgY29uZmln
dXJlVG9nZ2xlQnV0dG9uKGNoZWNrYm94Q2VsbCwgQ2hlY2tib3hQYXJ0LCBzdGF0ZXMsIHpvb21l
ZFJlY3QsIHpvb21GYWN0b3IsIGZhbHNlKTsKICAgICByZXR1cm4gY2hlY2tib3hDZWxsOwogfQog
ICAgIAotLy8gRklYTUU6IFNoYXJlIG1vcmUgY29kZSB3aXRoIHJhZGlvIGJ1dHRvbnMuCi1zdGF0
aWMgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9v
bUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldykKK3N0YXRpYyB2b2lkIHBhaW50VG9nZ2xl
QnV0dG9uKENvbnRyb2xQYXJ0IGJ1dHRvblR5cGUsIENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0
ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgem9vbWVkUmVjdCwg
ZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldykKIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIAotICAgIE5TQnV0dG9uQ2VsbCAqY2hlY2tib3hDZWxsID0g
c3RhdGljX2Nhc3Q8TlNCdXR0b25DZWxsKj4oY29udHJvbFN0YXRlcy0+cGxhdGZvcm1Db250cm9s
KCkpOworICAgIE5TQnV0dG9uQ2VsbCAqdG9nZ2xlQnV0dG9uQ2VsbCA9IHN0YXRpY19jYXN0PE5T
QnV0dG9uQ2VsbCo+KGNvbnRyb2xTdGF0ZXMtPnBsYXRmb3JtQ29udHJvbCgpKTsKIAogICAgIGlm
IChjb250cm9sU3RhdGVzLT5pc0RpcnR5KCkpIHsKLSAgICAgICAgaWYgKCFjaGVja2JveENlbGwp
Ci0gICAgICAgICAgICBjaGVja2JveENlbGwgPSBjcmVhdGVDaGVja2JveENlbGwoKTsKLSAgICAg
ICAgY29uZmlndXJlQ2hlY2tib3goY2hlY2tib3hDZWxsLCBjb250cm9sU3RhdGVzLCB6b29tZWRS
ZWN0LCB6b29tRmFjdG9yLCB0cnVlKTsKKyAgICAgICAgaWYgKCF0b2dnbGVCdXR0b25DZWxsKQor
ICAgICAgICAgICAgdG9nZ2xlQnV0dG9uQ2VsbCA9IGNyZWF0ZVRvZ2dsZUJ1dHRvbkNlbGwoYnV0
dG9uVHlwZSk7CisgICAgICAgIGNvbmZpZ3VyZVRvZ2dsZUJ1dHRvbih0b2dnbGVCdXR0b25DZWxs
LCBidXR0b25UeXBlLCBjb250cm9sU3RhdGVzLCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCB0cnVl
KTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoIWNoZWNrYm94Q2VsbCkKLSAgICAgICAgICAg
IGNoZWNrYm94Q2VsbCA9IHNoYXJlZENoZWNrYm94Q2VsbChjb250cm9sU3RhdGVzLCB6b29tZWRS
ZWN0LCB6b29tRmFjdG9yKTsKLSAgICAgICAgY29uZmlndXJlQ2hlY2tib3goY2hlY2tib3hDZWxs
LCBjb250cm9sU3RhdGVzLCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBmYWxzZSk7CisgICAgICAg
IGlmICghdG9nZ2xlQnV0dG9uQ2VsbCkgeworICAgICAgICAgICAgaWYgKGJ1dHRvblR5cGUgPT0g
Q2hlY2tib3hQYXJ0KQorICAgICAgICAgICAgICAgIHRvZ2dsZUJ1dHRvbkNlbGwgPSBzaGFyZWRD
aGVja2JveENlbGwoY29udHJvbFN0YXRlcywgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYnV0dG9uVHlwZSA9PSBSYWRp
b1BhcnQpOworICAgICAgICAgICAgICAgIHRvZ2dsZUJ1dHRvbkNlbGwgPSBzaGFyZWRSYWRpb0Nl
bGwoY29udHJvbFN0YXRlcywgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgY29uZmlndXJlVG9nZ2xlQnV0dG9uKHRvZ2dsZUJ1dHRvbkNl
bGwsIGJ1dHRvblR5cGUsIGNvbnRyb2xTdGF0ZXMsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIGZh
bHNlKTsKICAgICB9CiAgICAgY29udHJvbFN0YXRlcy0+c2V0RGlydHkoZmFsc2UpOwogCiAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKIAotICAgIE5T
Q29udHJvbFNpemUgY29udHJvbFNpemUgPSBbY2hlY2tib3hDZWxsIGNvbnRyb2xTaXplXTsKKyAg
ICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gW3RvZ2dsZUJ1dHRvbkNlbGwgY29udHJvbFNp
emVdOwogICAgIEludFNpemUgem9vbWVkU2l6ZSA9IGNoZWNrYm94U2l6ZXMoKVtjb250cm9sU2l6
ZV07CiAgICAgem9vbWVkU2l6ZS5zZXRXaWR0aCh6b29tZWRTaXplLndpZHRoKCkgKiB6b29tRmFj
dG9yKTsKICAgICB6b29tZWRTaXplLnNldEhlaWdodCh6b29tZWRTaXplLmhlaWdodCgpICogem9v
bUZhY3Rvcik7CkBAIC0zNjAsMTEyICs0MTEsMzQgQEAgc3RhdGljIHZvaWQgcGFpbnRDaGVja2Jv
eChDb250cm9sU3RhdGVzKgogICAgIE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjplbnN1cmVkVmll
dyhzY3JvbGxWaWV3LCBjb250cm9sU3RhdGVzKTsKICAgICBib29sIGRyYXdTdGF0aWNhbGx5ID0g
dHJ1ZTsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwCi0gICAg
ZHJhd1N0YXRpY2FsbHkgPSAhW2NoZWNrYm94Q2VsbCBfc3RhdGVBbmltYXRpb25SdW5uaW5nXTsK
KyAgICBkcmF3U3RhdGljYWxseSA9ICFbdG9nZ2xlQnV0dG9uQ2VsbCBfc3RhdGVBbmltYXRpb25S
dW5uaW5nXTsKICNlbmRpZgogICAgIGlmIChkcmF3U3RhdGljYWxseSkKLSAgICAgICAgW2NoZWNr
Ym94Q2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzp2aWV3XTsK
KyAgICAgICAgW3RvZ2dsZUJ1dHRvbkNlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRS
ZWN0KSBpblZpZXc6dmlld107CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlz
bid0IHF1aXRlIGNvcnJlY3QgYXQgdGhlIG1vbWVudCBkdWUgdG8gdGhlIHdheSB0aGUgdGljayBt
YXJrIGV4dGVuZHMgb3V0IG9mIHRoZSBjb250cm9sLgogICAgICAgICBjb250ZXh0LT50cmFuc2xh
dGUoaW5mbGF0ZWRSZWN0LngoKSwgaW5mbGF0ZWRSZWN0LnkoKSk7CiAgICAgICAgIGNvbnRleHQt
PnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoMCwg
LWluZmxhdGVkUmVjdC5oZWlnaHQoKSk7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMAotICAgICAgICBbY2hlY2tib3hDZWxsIF9yZW5kZXJDdXJyZW50QW5pbWF0
aW9uRnJhbWVJbkNvbnRleHQ6Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgYXRMb2NhdGlvbjpO
U01ha2VQb2ludCgwLCAwKV07CisgICAgICAgIFt0b2dnbGVCdXR0b25DZWxsIF9yZW5kZXJDdXJy
ZW50QW5pbWF0aW9uRnJhbWVJbkNvbnRleHQ6Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgYXRM
b2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKV07CiAjZW5kaWYKICAgICB9CiAgICAgaWYgKGNvbnRy
b2xTdGF0ZXMtPnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6Rm9jdXNTdGF0ZSkKLSAgICAgICAg
W2NoZWNrYm94Q2VsbCBfd2ViX2RyYXdGb2N1c1JpbmdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVk
UmVjdCkgaW5WaWV3OnZpZXddOwotICAgIFtjaGVja2JveENlbGwgc2V0Q29udHJvbFZpZXc6bmls
XTsKKyAgICAgICAgW3RvZ2dsZUJ1dHRvbkNlbGwgX3dlYl9kcmF3Rm9jdXNSaW5nV2l0aEZyYW1l
Ok5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzp2aWV3XTsKKyAgICBbdG9nZ2xlQnV0dG9uQ2Vs
bCBzZXRDb250cm9sVmlldzpuaWxdOwogICAgIAogICAgIGJvb2wgbmVlZHNSZXBhaW50ID0gZmFs
c2U7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMAotICAgIG5l
ZWRzUmVwYWludCA9IFtjaGVja2JveENlbGwgX3N0YXRlQW5pbWF0aW9uUnVubmluZ107CisgICAg
bmVlZHNSZXBhaW50ID0gW3RvZ2dsZUJ1dHRvbkNlbGwgX3N0YXRlQW5pbWF0aW9uUnVubmluZ107
CiAjZW5kaWYKICAgICBjb250cm9sU3RhdGVzLT5zZXROZWVkc1JlcGFpbnQobmVlZHNSZXBhaW50
KTsKICAgICBpZiAobmVlZHNSZXBhaW50KQotICAgICAgICBjb250cm9sU3RhdGVzLT5zZXRQbGF0
Zm9ybUNvbnRyb2woY2hlY2tib3hDZWxsKTsKKyAgICAgICAgY29udHJvbFN0YXRlcy0+c2V0UGxh
dGZvcm1Db250cm9sKHRvZ2dsZUJ1dHRvbkNlbGwpOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogfQotCi0vLyBSYWRpbyBCdXR0b25zCi0KLXN0YXRpYyBjb25zdCBJbnRTaXplKiBy
YWRpb1NpemVzKCkKLXsKLSAgICBzdGF0aWMgY29uc3QgSW50U2l6ZSBzaXplc1szXSA9IHsgSW50
U2l6ZSgxNCwgMTUpLCBJbnRTaXplKDEyLCAxMyksIEludFNpemUoMTAsIDEwKSB9OwotICAgIHJl
dHVybiBzaXplczsKLX0KLQotc3RhdGljIGNvbnN0IGludCogcmFkaW9NYXJnaW5zKE5TQ29udHJv
bFNpemUgY29udHJvbFNpemUpCi17Ci0gICAgc3RhdGljIGNvbnN0IGludCBtYXJnaW5zWzNdWzRd
ID0KLSAgICB7Ci0gICAgICAgIHsgMiwgMiwgNCwgMiB9LAotICAgICAgICB7IDMsIDIsIDMsIDIg
fSwKLSAgICAgICAgeyAxLCAwLCAyLCAwIH0sCi0gICAgfTsKLSAgICByZXR1cm4gbWFyZ2luc1tj
b250cm9sU2l6ZV07Ci19Ci0KLXN0YXRpYyBMZW5ndGhTaXplIHJhZGlvU2l6ZShjb25zdCBGb250
JiBmb250LCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQot
ewotICAgIC8vIElmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3RoIHNwZWNpZmllZCwgdGhl
biB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCi0gICAgaWYgKCF6b29tZWRTaXplLndpZHRoKCkuaXNJ
bnRyaW5zaWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQoKS5pc0ludHJpbnNpY09yQXV0
bygpKQotICAgICAgICByZXR1cm4gem9vbWVkU2l6ZTsKLQotICAgIC8vIFVzZSB0aGUgZm9udCBz
aXplIHRvIGRldGVybWluZSB0aGUgaW50cmluc2ljIHdpZHRoIG9mIHRoZSBjb250cm9sLgotICAg
IHJldHVybiBzaXplRnJvbUZvbnQoZm9udCwgem9vbWVkU2l6ZSwgem9vbUZhY3RvciwgcmFkaW9T
aXplcygpKTsKLX0KLQotc3RhdGljIE5TQnV0dG9uQ2VsbCAqcmFkaW8oY29uc3QgQ29udHJvbFN0
YXRlcyogc3RhdGVzLCBjb25zdCBJbnRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9y
KQotewotICAgIHN0YXRpYyBOU0J1dHRvbkNlbGwgKnJhZGlvQ2VsbDsKLSAgICBpZiAoIXJhZGlv
Q2VsbCkgewotICAgICAgICByYWRpb0NlbGwgPSBbW05TQnV0dG9uQ2VsbCBhbGxvY10gaW5pdF07
Ci0gICAgICAgIFtyYWRpb0NlbGwgc2V0QnV0dG9uVHlwZTpOU1JhZGlvQnV0dG9uXTsKLSAgICAg
ICAgW3JhZGlvQ2VsbCBzZXRUaXRsZTpuaWxdOwotICAgICAgICBbcmFkaW9DZWxsIHNldEZvY3Vz
UmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwotICAgIH0KLSAgICAKLSAgICAvLyBT
ZXQgdGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIHJlY3RhbmdsZSB3ZSdyZSBwYWludGlu
ZyBpbnRvLgotICAgIHNldENvbnRyb2xTaXplKHJhZGlvQ2VsbCwgcmFkaW9TaXplcygpLCB6b29t
ZWRSZWN0LnNpemUoKSwgem9vbUZhY3Rvcik7Ci0KLSAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMg
c3RhdGVzIHdlIHJlc3BvbmQgdG8uCi0gICAgdXBkYXRlU3RhdGVzKHJhZGlvQ2VsbCwgc3RhdGVz
KTsKLSAgICAKLSAgICByZXR1cm4gcmFkaW9DZWxsOwotfQotCi1zdGF0aWMgdm9pZCBwYWludFJh
ZGlvKENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgSW50UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyogc2Nyb2xsVmlldykKLXsKLSAgICAvLyBEZXRlcm1pbmUgdGhlIHdpZHRoIGFuZCBoZWlnaHQg
bmVlZGVkIGZvciB0aGUgY29udHJvbCBhbmQgcHJlcGFyZSB0aGUgY2VsbCBmb3IgcGFpbnRpbmcu
Ci0gICAgTlNCdXR0b25DZWxsICpyYWRpb0NlbGwgPSByYWRpbyhjb250cm9sU3RhdGVzLCB6b29t
ZWRSZWN0LCB6b29tRmFjdG9yKTsKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoKmNvbnRleHQpOwotCi0gICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZSA9IFtyYWRp
b0NlbGwgY29udHJvbFNpemVdOwotICAgIEludFNpemUgem9vbWVkU2l6ZSA9IHJhZGlvU2l6ZXMo
KVtjb250cm9sU2l6ZV07Ci0gICAgem9vbWVkU2l6ZS5zZXRXaWR0aCh6b29tZWRTaXplLndpZHRo
KCkgKiB6b29tRmFjdG9yKTsKLSAgICB6b29tZWRTaXplLnNldEhlaWdodCh6b29tZWRTaXplLmhl
aWdodCgpICogem9vbUZhY3Rvcik7Ci0gICAgSW50UmVjdCBpbmZsYXRlZFJlY3QgPSBpbmZsYXRl
UmVjdCh6b29tZWRSZWN0LCB6b29tZWRTaXplLCByYWRpb01hcmdpbnMoY29udHJvbFNpemUpLCB6
b29tRmFjdG9yKTsKICAgICAKLSAgICBpZiAoem9vbUZhY3RvciAhPSAxLjBmKSB7Ci0gICAgICAg
IGluZmxhdGVkUmVjdC5zZXRXaWR0aChpbmZsYXRlZFJlY3Qud2lkdGgoKSAvIHpvb21GYWN0b3Ip
OwotICAgICAgICBpbmZsYXRlZFJlY3Quc2V0SGVpZ2h0KGluZmxhdGVkUmVjdC5oZWlnaHQoKSAv
IHpvb21GYWN0b3IpOwotICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoaW5mbGF0ZWRSZWN0Lngo
KSwgaW5mbGF0ZWRSZWN0LnkoKSk7Ci0gICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSh6
b29tRmFjdG9yLCB6b29tRmFjdG9yKSk7Ci0gICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtaW5m
bGF0ZWRSZWN0LngoKSwgLWluZmxhdGVkUmVjdC55KCkpOwotICAgIH0KLQotICAgIExvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoY29udGV4dCk7Ci0gICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCi0gICAgTlNWaWV3ICp2aWV3ID0gVGhlbWVNYWM6OmVuc3VyZWRW
aWV3KHNjcm9sbFZpZXcsIGNvbnRyb2xTdGF0ZXMpOwotICAgIFtyYWRpb0NlbGwgZHJhd1dpdGhG
cmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6dmlld107Ci0gICAgaWYgKGNvbnRyb2xT
dGF0ZXMtPnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6Rm9jdXNTdGF0ZSkKLSAgICAgICAgW3Jh
ZGlvQ2VsbCBfd2ViX2RyYXdGb2N1c1JpbmdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkg
aW5WaWV3OnZpZXddOwotICAgIFtyYWRpb0NlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCi19Ci0KIC8vIEJ1dHRvbnMKIAogLy8gQnV0dG9ucyBy
ZWFsbHkgb25seSBjb25zdHJhaW4gaGVpZ2h0LiBUaGV5IHJlc3BlY3Qgd2lkdGguCkBAIC03Nzcs
NyArNzUwLDcgQEAgdm9pZCBUaGVtZU1hYzo6aW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQwogICAg
ICAgICBjYXNlIFJhZGlvUGFydDogewogICAgICAgICAgICAgLy8gV2UgaW5mbGF0ZSB0aGUgcmVj
dCBhcyBuZWVkZWQgdG8gYWNjb3VudCBmb3IgcGFkZGluZyBpbmNsdWRlZCBpbiB0aGUgY2VsbCB0
byBhY2NvbW1vZGF0ZSB0aGUgcmFkaW8gYnV0dG9uCiAgICAgICAgICAgICAvLyBzaGFkb3ciLiAg
V2UgZG9uJ3QgY29uc2lkZXIgdGhpcyBwYXJ0IG9mIHRoZSBib3VuZHMgb2YgdGhlIGNvbnRyb2wg
aW4gV2ViS2l0LgotICAgICAgICAgICAgTlNDZWxsICpjZWxsID0gcmFkaW8oc3RhdGVzLCB6b29t
ZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgICAgIE5TQ2VsbCAqY2VsbCA9IHNoYXJlZFJh
ZGlvQ2VsbChzdGF0ZXMsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOwogICAgICAgICAgICAgTlND
b250cm9sU2l6ZSBjb250cm9sU2l6ZSA9IFtjZWxsIGNvbnRyb2xTaXplXTsKICAgICAgICAgICAg
IEludFNpemUgem9vbWVkU2l6ZSA9IHJhZGlvU2l6ZXMoKVtjb250cm9sU2l6ZV07CiAgICAgICAg
ICAgICB6b29tZWRTaXplLnNldEhlaWdodCh6b29tZWRTaXplLmhlaWdodCgpICogem9vbUZhY3Rv
cik7CkBAIC04MTksMTAgKzc5MiwxMCBAQCB2b2lkIFRoZW1lTWFjOjpwYWludChDb250cm9sUGFy
dCBwYXJ0LCBDCiB7CiAgICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgICAgIGNhc2UgQ2hlY2tib3hQ
YXJ0OgotICAgICAgICAgICAgcGFpbnRDaGVja2JveChzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJl
Y3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcpOworICAgICAgICAgICAgcGFpbnRUb2dnbGVCdXR0
b24ocGFydCwgc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBzY3JvbGxW
aWV3KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJhZGlvUGFydDoKLSAgICAg
ICAgICAgIHBhaW50UmFkaW8oc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9y
LCBzY3JvbGxWaWV3KTsKKyAgICAgICAgICAgIHBhaW50VG9nZ2xlQnV0dG9uKHBhcnQsIHN0YXRl
cywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xsVmlldyk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBE
ZWZhdWx0QnV0dG9uUGFydDoK
</data>
<flag name="review"
          id="252355"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>