<?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>83817</bug_id>
          
          <creation_ts>2012-04-12 13:49:47 -0700</creation_ts>
          <short_desc>Cache the code path character scan on RenderText</short_desc>
          <delta_ts>2012-04-12 14:07:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>601503</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-04-12 13:49:47 -0700</bug_when>
    <thetext>Cache the code path character scan on RenderText so that repeated measurements of portions of the same RenderText can quickly determine that the simple code path can be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601506</commentid>
    <comment_count>1</comment_count>
      <attachid>136965</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-04-12 13:52:39 -0700</bug_when>
    <thetext>Created attachment 136965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601511</commentid>
    <comment_count>2</comment_count>
      <attachid>136965</attachid>
    <who name="">mitz</who>
    <bug_when>2012-04-12 13:59:30 -0700</bug_when>
    <thetext>Comment on attachment 136965
Patch

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

&gt; Source/WebCore/rendering/RenderText.h:148
&gt; +    

What?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601516</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-04-12 14:07:37 -0700</bug_when>
    <thetext>Fix landed in r114032.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136965</attachid>
            <date>2012-04-12 13:52:39 -0700</date>
            <delta_ts>2012-04-12 13:59:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13741</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDAyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA0LTEyICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM4MTcKKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggbW9k
aWZpZXMgUmVuZGVyVGV4dCBzbyB0aGF0IGl0IHNjYW5zIGFsbCBvZiBpdHMgY2hhcmFjdGVycyB1
cCBmcm9udCB0bworICAgICAgICBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHNpbXBsZSBj
b2RlIHBhdGggY2FuIGJlIHVzZWQgZm9yIG1lYXN1cmVtZW50L3JlbmRlcmluZworICAgICAgICBv
ZiB0aGUgdGV4dCBmb3IgdGhlIHdob2xlIHJ1bi4KKyAgICAgICAgCisgICAgICAgIFRleHRSdW4g
bm93IGhhcyBhbiBhZGRpdGlvbmFsIGZpZWxkIHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIGNoYXJh
Y3RlciBzY2FuIGlzIG5vdAorICAgICAgICByZXF1aXJlZCwgc2luY2UgdGhlIGVudGlyZSBSZW5k
ZXJUZXh0IGlzIGtub3duIHRvIGJlIHNpbXBsZS4gVGhpcyBib29sZWFuIGlzIHNldAorICAgICAg
ICB3aGVuIGNvbnN0cnVjdGluZyB0aGUgVGV4dFJ1biBmcm9tIHRoZSBwbGFjZXMgdGhhdCBtYWtl
IFRleHRSdW5zIGZyb20gUmVuZGVyVGV4dHMuCisgICAgICAgIAorICAgICAgICBUaGUgY2hhcmFj
dGVyIHNjYW4gaGFzIGJlZW4gcmVmYWN0b3JlZCBpbnRvIGEgc3RhdGljIEZvbnQgbWV0aG9kIHNv
IHRoYXQgaXQgY2FuIGJlCisgICAgICAgIGNhbGxlZCBieSBSZW5kZXJUZXh0LiBUaGUgc2NhbiBv
ZiBpbmRpdmlkdWFsIFRleHRSdW5zIGlzIGFsc28gZG9uZSB1c2luZyB0aGUgc2FtZSBtZXRob2QK
KyAgICAgICAgc28gdGhhdCB0aGUgY29kZSBpcyBzaGFyZWQuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmNvZGVQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OmNoYXJhY3RlclJhbmdlQ29kZVBhdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UnVuOjpUZXh0UnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRS
dW46OmNoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVu
OjpzZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgpOgorICAgICAgICAoVGV4dFJ1bik6CisgICAg
ICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0V2lkdGgpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHQ6OlJlbmRlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6d2lkdGhG
cm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0VGV4dEludGVybmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHQ6OmNvbXB1dGVDYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDoKKyAgICAgICAg
KFJlbmRlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoKToKKwogMjAxMi0wNC0xMiAgQW5uYSBDYXZlbmRlciAgPGFubmFjY0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVXBkYXRlIEhUTUxNZWRpYUVsZW1lbnQncyBpbmRleCBvZiBj
dWVzIHdoZW4gVGV4dFRyYWNrLm1vZGUgY2hhbmdlcyB0bwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9uIDExMzg4NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQs
MTcgKzI3NCwyNyBAQCBGb250OjpDb2RlUGF0aCBGb250Ojpjb2RlUGF0aChjb25zdCBUZXh0CiAK
ICAgICBpZiAobV9mb250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCkgJiYgbV9mb250RGVz
Y3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCktPnNpemUoKSA+IDApCiAgICAgICAgIHJldHVybiBD
b21wbGV4OworICAgIAorICAgIGlmIChydW4ubGVuZ3RoKCkgPiAxICYmIHR5cGVzZXR0aW5nRmVh
dHVyZXMoKSkKKyAgICAgICAgcmV0dXJuIENvbXBsZXg7CiAKLSAgICBDb2RlUGF0aCByZXN1bHQg
PSBTaW1wbGU7CisgICAgaWYgKCFydW4uY2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCkpCisgICAg
ICAgIHJldHVybiBTaW1wbGU7CisKKyAgICAvLyBTdGFydCBmcm9tIDAgc2luY2UgZHJhd2luZyBh
bmQgaGlnaGxpZ2h0aW5nIGFsc28gbWVhc3VyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUgcnVuLT5m
cm9tLgorICAgIHJldHVybiBjaGFyYWN0ZXJSYW5nZUNvZGVQYXRoKHJ1bi5jaGFyYWN0ZXJzKCks
IHJ1bi5sZW5ndGgoKSk7Cit9CiAKLSAgICAvLyBTdGFydCBmcm9tIDAgc2luY2UgZHJhd2luZyBh
bmQgaGlnaGxpZ2h0aW5nIGFsc28gbWVhc3VyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUgcnVuLT5m
cm9tCitGb250OjpDb2RlUGF0aCBGb250OjpjaGFyYWN0ZXJSYW5nZUNvZGVQYXRoKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW4pCit7CiAgICAgLy8gRklYTUU6IFNob3VsZCB1
c2UgYSBVbmljb2RlU2V0IGluIHBvcnRzIHdoZXJlIElDVSBpcyB1c2VkLiBOb3RlIHRoYXQgd2Ug
CiAgICAgLy8gY2FuJ3Qgc2ltcGx5IHVzZSBVbmljb2RlQ2hhcmFjdGVyIFByb3BlcnR5L2NsYXNz
IGJlY2F1c2Ugc29tZSBjaGFyYWN0ZXJzCiAgICAgLy8gYXJlIG5vdCAnY29tYmluaW5nJywgYnV0
IHN0aWxsIG5lZWQgdG8gZ28gdG8gdGhlIGNvbXBsZXggcGF0aC4KICAgICAvLyBBbHRlcm5hdGl2
ZWx5LCB3ZSBtYXkgYXMgd2VsbCBjb25zaWRlciBiaW5hcnkgc2VhcmNoIG92ZXIgYSBzb3J0ZWQK
ICAgICAvLyBsaXN0IG9mIHJhbmdlcy4KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bi5sZW5n
dGgoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IFVDaGFyIGMgPSBydW5baV07CisgICAgQ29kZVBh
dGggcmVzdWx0ID0gU2ltcGxlOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW47IGkr
KykgeworICAgICAgICBjb25zdCBVQ2hhciBjID0gY2hhcmFjdGVyc1tpXTsKICAgICAgICAgaWYg
KGMgPCAweDJFNSkgLy8gVSswMkU1IHRocm91Z2ggVSswMkU5IChNb2RpZmllciBMZXR0ZXJzIDog
VG9uZSBsZXR0ZXJzKSAgCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGMgPD0g
MHgyRTkpIApAQCAtMzkxLDEwICs0MDEsMTAgQEAgRm9udDo6Q29kZVBhdGggRm9udDo6Y29kZVBh
dGgoY29uc3QgVGV4dAogICAgICAgICBpZiAoYyA8PSAweERCRkYpIHsKICAgICAgICAgICAgIC8v
IEhpZ2ggc3Vycm9nYXRlCiAKLSAgICAgICAgICAgIGlmIChpID09IHJ1bi5sZW5ndGgoKSAtIDEp
CisgICAgICAgICAgICBpZiAoaSA9PSBsZW4gLSAxKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgICAgICBVQ2hhciBuZXh0ID0gcnVuWysraV07CisgICAgICAgICAgICBVQ2hh
ciBuZXh0ID0gY2hhcmFjdGVyc1srK2ldOwogICAgICAgICAgICAgaWYgKCFVMTZfSVNfVFJBSUwo
bmV4dCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTQyNiwxMCArNDM2LDYgQEAg
Rm9udDo6Q29kZVBhdGggRm9udDo6Y29kZVBhdGgoY29uc3QgVGV4dAogICAgICAgICBpZiAoYyA8
PSAweEZFMkYpCiAgICAgICAgICAgICByZXR1cm4gQ29tcGxleDsKICAgICB9Ci0KLSAgICBpZiAo
cnVuLmxlbmd0aCgpID4gMSAmJiB0eXBlc2V0dGluZ0ZlYXR1cmVzKCkpCi0gICAgICAgIHJldHVy
biBDb21wbGV4OwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gMTEzODg0KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNyAr
MTgzLDggQEAgcHVibGljOgogCiAgICAgZW51bSBDb2RlUGF0aCB7IEF1dG8sIFNpbXBsZSwgQ29t
cGxleCwgU2ltcGxlV2l0aEdseXBoT3ZlcmZsb3cgfTsKICAgICBDb2RlUGF0aCBjb2RlUGF0aChj
b25zdCBUZXh0UnVuJikgY29uc3Q7Ci0KKyAgICBzdGF0aWMgQ29kZVBhdGggY2hhcmFjdGVyUmFu
Z2VDb2RlUGF0aChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbik7CisgICAgCiBwcml2YXRlOgog
ICAgIGVudW0gRm9yVGV4dEVtcGhhc2lzT3JOb3QgeyBOb3RGb3JUZXh0RW1waGFzaXMsIEZvclRl
eHRFbXBoYXNpcyB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGV4dFJ1bi5oCShyZXZpc2lvbiAxMTM4ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UZXh0UnVuLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGlj
OgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBSb3VuZGluZ0hhY2tzOwogCi0gICAgVGV4dFJ1bihj
b25zdCBVQ2hhciogYywgaW50IGxlbiwgYm9vbCBhbGxvd1RhYnMgPSBmYWxzZSwgZmxvYXQgeHBv
cyA9IDAsIGZsb2F0IGV4cGFuc2lvbiA9IDAsIEV4cGFuc2lvbkJlaGF2aW9yIGV4cGFuc2lvbkJl
aGF2aW9yID0gQWxsb3dUcmFpbGluZ0V4cGFuc2lvbiB8IEZvcmJpZExlYWRpbmdFeHBhbnNpb24s
IFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSLCBib29sIGRpcmVjdGlvbmFsT3ZlcnJpZGUg
PSBmYWxzZSwgUm91bmRpbmdIYWNrcyByb3VuZGluZ0hhY2tzID0gUnVuUm91bmRpbmcgfCBXb3Jk
Um91bmRpbmcpCisgICAgVGV4dFJ1bihjb25zdCBVQ2hhciogYywgaW50IGxlbiwgYm9vbCBhbGxv
d1RhYnMgPSBmYWxzZSwgZmxvYXQgeHBvcyA9IDAsIGZsb2F0IGV4cGFuc2lvbiA9IDAsIEV4cGFu
c2lvbkJlaGF2aW9yIGV4cGFuc2lvbkJlaGF2aW9yID0gQWxsb3dUcmFpbGluZ0V4cGFuc2lvbiB8
IEZvcmJpZExlYWRpbmdFeHBhbnNpb24sIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSLCBi
b29sIGRpcmVjdGlvbmFsT3ZlcnJpZGUgPSBmYWxzZSwgYm9vbCBjaGFyYWN0ZXJTY2FuRm9yQ29k
ZVBhdGggPSB0cnVlLCBSb3VuZGluZ0hhY2tzIHJvdW5kaW5nSGFja3MgPSBSdW5Sb3VuZGluZyB8
IFdvcmRSb3VuZGluZykKICAgICAgICAgOiBtX2NoYXJhY3RlcnMoYykKICAgICAgICAgLCBtX2No
YXJhY3RlcnNMZW5ndGgobGVuKQogICAgICAgICAsIG1fbGVuKGxlbikKQEAgLTcxLDEzICs3MSwx
NCBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9hbGxvd1RhYnMoYWxsb3dUYWJzKQogICAgICAgICAs
IG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKICAgICAgICAgLCBtX2RpcmVjdGlvbmFsT3ZlcnJpZGUo
ZGlyZWN0aW9uYWxPdmVycmlkZSkKKyAgICAgICAgLCBtX2NoYXJhY3RlclNjYW5Gb3JDb2RlUGF0
aChjaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgpCiAgICAgICAgICwgbV9hcHBseVJ1blJvdW5kaW5n
KChyb3VuZGluZ0hhY2tzICYgUnVuUm91bmRpbmcpICYmIHNfYWxsb3dzUm91bmRpbmdIYWNrcykK
ICAgICAgICAgLCBtX2FwcGx5V29yZFJvdW5kaW5nKChyb3VuZGluZ0hhY2tzICYgV29yZFJvdW5k
aW5nKSAmJiBzX2FsbG93c1JvdW5kaW5nSGFja3MpCiAgICAgICAgICwgbV9kaXNhYmxlU3BhY2lu
ZyhmYWxzZSkKICAgICB7CiAgICAgfQogCi0gICAgVGV4dFJ1bihjb25zdCBTdHJpbmcmIHMsIGJv
b2wgYWxsb3dUYWJzID0gZmFsc2UsIGZsb2F0IHhwb3MgPSAwLCBmbG9hdCBleHBhbnNpb24gPSAw
LCBFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhhdmlvciA9IEFsbG93VHJhaWxpbmdFeHBh
bnNpb24gfCBGb3JiaWRMZWFkaW5nRXhwYW5zaW9uLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9
IExUUiwgYm9vbCBkaXJlY3Rpb25hbE92ZXJyaWRlID0gZmFsc2UsIFJvdW5kaW5nSGFja3Mgcm91
bmRpbmdIYWNrcyA9IFJ1blJvdW5kaW5nIHwgV29yZFJvdW5kaW5nKQorICAgIFRleHRSdW4oY29u
c3QgU3RyaW5nJiBzLCBib29sIGFsbG93VGFicyA9IGZhbHNlLCBmbG9hdCB4cG9zID0gMCwgZmxv
YXQgZXhwYW5zaW9uID0gMCwgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IgPSBB
bGxvd1RyYWlsaW5nRXhwYW5zaW9uIHwgRm9yYmlkTGVhZGluZ0V4cGFuc2lvbiwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24gPSBMVFIsIGJvb2wgZGlyZWN0aW9uYWxPdmVycmlkZSA9IGZhbHNlLCBi
b29sIGNoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCA9IHRydWUsIFJvdW5kaW5nSGFja3Mgcm91bmRp
bmdIYWNrcyA9IFJ1blJvdW5kaW5nIHwgV29yZFJvdW5kaW5nKQogICAgICAgICA6IG1fY2hhcmFj
dGVycyhzLmNoYXJhY3RlcnMoKSkKICAgICAgICAgLCBtX2NoYXJhY3RlcnNMZW5ndGgocy5sZW5n
dGgoKSkKICAgICAgICAgLCBtX2xlbihzLmxlbmd0aCgpKQpAQCAtOTAsNiArOTEsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9hbGxvd1RhYnMoYWxsb3dUYWJzKQogICAgICAgICAsIG1fZGlyZWN0
aW9uKGRpcmVjdGlvbikKICAgICAgICAgLCBtX2RpcmVjdGlvbmFsT3ZlcnJpZGUoZGlyZWN0aW9u
YWxPdmVycmlkZSkKKyAgICAgICAgLCBtX2NoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aChjaGFyYWN0
ZXJTY2FuRm9yQ29kZVBhdGgpCiAgICAgICAgICwgbV9hcHBseVJ1blJvdW5kaW5nKChyb3VuZGlu
Z0hhY2tzICYgUnVuUm91bmRpbmcpICYmIHNfYWxsb3dzUm91bmRpbmdIYWNrcykKICAgICAgICAg
LCBtX2FwcGx5V29yZFJvdW5kaW5nKChyb3VuZGluZ0hhY2tzICYgV29yZFJvdW5kaW5nKSAmJiBz
X2FsbG93c1JvdW5kaW5nSGFja3MpCiAgICAgICAgICwgbV9kaXNhYmxlU3BhY2luZyhmYWxzZSkK
QEAgLTEyMiw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBydGwoKSBjb25zdCB7IHJldHVy
biBtX2RpcmVjdGlvbiA9PSBSVEw7IH0KICAgICBib29sIGx0cigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlyZWN0aW9uID09IExUUjsgfQogICAgIGJvb2wgZGlyZWN0aW9uYWxPdmVycmlkZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGlyZWN0aW9uYWxPdmVycmlkZTsgfQorICAgIGJvb2wgY2hhcmFjdGVyU2Nh
bkZvckNvZGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9jaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGg7
IH0KICAgICBib29sIGFwcGx5UnVuUm91bmRpbmcoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5UnVu
Um91bmRpbmc7IH0KICAgICBib29sIGFwcGx5V29yZFJvdW5kaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9hcHBseVdvcmRSb3VuZGluZzsgfQogICAgIGJvb2wgc3BhY2luZ0Rpc2FibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9kaXNhYmxlU3BhY2luZzsgfQpAQCAtMTMwLDYgKzEzMyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpc2FibGVSb3VuZGluZ0hhY2tzKCkgeyBtX2FwcGx5UnVuUm91bmRpbmcgPSBt
X2FwcGx5V29yZFJvdW5kaW5nID0gZmFsc2U7IH0KICAgICB2b2lkIHNldERpcmVjdGlvbihUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbikgeyBtX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjsgfQogICAgIHZv
aWQgc2V0RGlyZWN0aW9uYWxPdmVycmlkZShib29sIG92ZXJyaWRlKSB7IG1fZGlyZWN0aW9uYWxP
dmVycmlkZSA9IG92ZXJyaWRlOyB9CisgICAgdm9pZCBzZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBh
dGgoYm9vbCBzY2FuKSB7IG1fY2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoID0gc2NhbjsgfQogCiAg
ICAgY2xhc3MgUmVuZGVyaW5nQ29udGV4dCA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlcmluZ0Nv
bnRleHQ+IHsKICAgICBwdWJsaWM6CkBAIC0xNjcsNiArMTcxLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWxsb3dUYWJzOwogICAgIFRleHREaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgYm9v
bCBtX2RpcmVjdGlvbmFsT3ZlcnJpZGU7IC8vIFdhcyB0aGlzIGRpcmVjdGlvbiBzZXQgYnkgYW4g
b3ZlcnJpZGUgY2hhcmFjdGVyLgorICAgIGJvb2wgbV9jaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGg7
CiAgICAgYm9vbCBtX2FwcGx5UnVuUm91bmRpbmc7CiAgICAgYm9vbCBtX2FwcGx5V29yZFJvdW5k
aW5nOwogICAgIGJvb2wgbV9kaXNhYmxlU3BhY2luZzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDExMzg4NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMy
NSw3ICsxMzI1LDcgQEAgVGV4dFJ1biBJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKAog
CiAgICAgQVNTRVJUKG1heGltdW1MZW5ndGggPj0gbGVuZ3RoKTsKIAotICAgIFRleHRSdW4gcnVu
KGNoYXJhY3RlcnMsIGxlbmd0aCwgdGV4dFJlbmRlcmVyLT5hbGxvd1RhYnMoKSwgdGV4dFBvcygp
LCBleHBhbnNpb24oKSwgZXhwYW5zaW9uQmVoYXZpb3IoKSwgZGlyZWN0aW9uKCksIGRpck92ZXJy
aWRlKCkgfHwgc3R5bGUtPnJ0bE9yZGVyaW5nKCkgPT0gVmlzdWFsT3JkZXIpOworICAgIFRleHRS
dW4gcnVuKGNoYXJhY3RlcnMsIGxlbmd0aCwgdGV4dFJlbmRlcmVyLT5hbGxvd1RhYnMoKSwgdGV4
dFBvcygpLCBleHBhbnNpb24oKSwgZXhwYW5zaW9uQmVoYXZpb3IoKSwgZGlyZWN0aW9uKCksIGRp
ck92ZXJyaWRlKCkgfHwgc3R5bGUtPnJ0bE9yZGVyaW5nKCkgPT0gVmlzdWFsT3JkZXIsICF0ZXh0
UmVuZGVyZXItPmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICBpZiAodGV4dFJ1bk5l
ZWRzUmVuZGVyaW5nQ29udGV4dChmb250KSkKICAgICAgICAgcnVuLnNldFJlbmRlcmluZ0NvbnRl
eHQoU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZSh0ZXh0UmVuZGVyZXIpKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAJKHJldmlzaW9uIDExMzg4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQ3LDYgKzE5NDcs
NyBAQCBzdGF0aWMgaW5saW5lIGZsb2F0IHRleHRXaWR0aChSZW5kZXJUZXh0CiAgICAgcnVuLnNl
dENoYXJhY3RlcnNMZW5ndGgodGV4dC0+dGV4dExlbmd0aCgpIC0gZnJvbSk7CiAgICAgQVNTRVJU
KHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKIAorICAgIHJ1bi5zZXRD
aGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXRleHQtPmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgp
KTsKICAgICBydW4uc2V0QWxsb3dUYWJzKCFjb2xsYXBzZVdoaXRlU3BhY2UpOwogICAgIHJ1bi5z
ZXRYUG9zKHhQb3MpOwogICAgIHJldHVybiBmb250LndpZHRoKHJ1bik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiAxMTM4ODQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
Niw2ICsxNDYsNyBAQCBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUqIG5vZGUsIFBhc3NSCiAg
ICAgICwgbV9saW5lc0RpcnR5KGZhbHNlKQogICAgICAsIG1fY29udGFpbnNSZXZlcnNlZFRleHQo
ZmFsc2UpCiAgICAgICwgbV9pc0FsbEFTQ0lJKG1fdGV4dC5jb250YWluc09ubHlBU0NJSSgpKQor
ICAgICAsIG1fY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKGNvbXB1dGVDYW5Vc2VTaW1wbGVGb250
Q29kZVBhdGgoKSkKICAgICAgLCBtX2tub3duVG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tG
b250cyhmYWxzZSkKICAgICAgLCBtX25lZWRzVHJhbnNjb2RpbmcoZmFsc2UpCiB7CkBAIC03NjAs
NiArNzYxLDcgQEAgQUxXQVlTX0lOTElORSBmbG9hdCBSZW5kZXJUZXh0Ojp3aWR0aEZybwogICAg
IHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5ndGgoKSAtIHN0YXJ0KTsKICAgICBBU1NF
UlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogCisgICAgcnVuLnNl
dENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwog
ICAgIHJ1bi5zZXRBbGxvd1RhYnMoYWxsb3dUYWJzKCkpOwogICAgIHJ1bi5zZXRYUG9zKHhQb3Mp
OwogICAgIHJldHVybiBmLndpZHRoKHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7
CkBAIC0xMzMwLDYgKzEzMzIsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbChQ
YXNzUmVmCiAgICAgQVNTRVJUKCFpc0JSKCkgfHwgKHRleHRMZW5ndGgoKSA9PSAxICYmIG1fdGV4
dFswXSA9PSAnXG4nKSk7CiAKICAgICBtX2lzQWxsQVNDSUkgPSBtX3RleHQuY29udGFpbnNPbmx5
QVNDSUkoKTsKKyAgICBtX2NhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCA9IGNvbXB1dGVDYW5Vc2VT
aW1wbGVGb250Q29kZVBhdGgoKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0OjpzZWN1cmVUZXh0KFVD
aGFyIG1hc2spCkBAIC0xNDczLDYgKzE0NzYsNyBAQCBmbG9hdCBSZW5kZXJUZXh0Ojp3aWR0aCh1
bnNpZ25lZCBmcm9tLCB1CiAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5n
dGgoKSAtIGZyb20pOwogICAgICAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBy
dW4ubGVuZ3RoKCkpOwogCisgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgo
IWNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICAgICAgcnVuLnNldEFsbG93VGFicyhh
bGxvd1RhYnMoKSk7CiAgICAgICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwogICAgICAgICB3ID0gZi53
aWR0aChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwpAQCAtMTc5Myw2ICsxNzk3
LDEzIEBAIGludCBSZW5kZXJUZXh0OjpuZXh0T2Zmc2V0KGludCBjdXJyZW50KSAKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitib29sIFJlbmRlclRleHQ6OmNvbXB1dGVDYW5Vc2VTaW1wbGVGb250
Q29kZVBhdGgoKSBjb25zdAoreworICAgIGlmIChpc0FsbEFTQ0lJKCkpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBGb250OjpjaGFyYWN0ZXJSYW5nZUNvZGVQYXRoKGNoYXJhY3Rl
cnMoKSwgbGVuZ3RoKCkpID09IEZvbnQ6OlNpbXBsZTsKK30KKwogI2lmbmRlZiBOREVCVUcKIAog
dm9pZCBSZW5kZXJUZXh0OjpjaGVja0NvbnNpc3RlbmN5KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkocmV2aXNpb24gMTEzODg0KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEy
OSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocyhmbG9hdCBsZWFkV2lkdGgpOwogICAgIGJvb2wgaXNBbGxDb2xsYXBzaWJsZVdoaXRl
c3BhY2UoKTsKLSAgICAKKworICAgIGJvb2wgY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkgY29u
c3QgeyByZXR1cm4gbV9jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGg7IH0KICAgICBib29sIGtub3du
VG9IYXZlTm9PdmVyZmxvd0FuZE5vRmFsbGJhY2tGb250cygpIGNvbnN0IHsgcmV0dXJuIG1fa25v
d25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0ZvbnRzOyB9CiAKICAgICB2b2lkIHJlbW92
ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKTsKQEAgLTE0NCwxMCArMTQ1LDEyIEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CiAgICAgCiAgICAg
dmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7IC8vIFN1YmNsYXNzZWQgYnkg
U1ZHLgotCisgICAgCiBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoZmxvYXQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4mIGZh
bGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cmKTsKIAorICAgIGJvb2wgY29tcHV0ZUNhblVzZVNp
bXBsZUZvbnRDb2RlUGF0aCgpIGNvbnN0OworICAgIAogICAgIC8vIE1ha2UgbGVuZ3RoKCkgcHJp
dmF0ZSBzbyB0aGF0IGNhbGxlcnMgdGhhdCBoYXZlIGEgUmVuZGVyVGV4dCoKICAgICAvLyB3aWxs
IHVzZSB0aGUgbW9yZSBlZmZpY2llbnQgdGV4dExlbmd0aCgpIGluc3RlYWQsIHdoaWxlCiAgICAg
Ly8gY2FsbGVycyB3aXRoIGEgUmVuZGVyT2JqZWN0KiBjYW4gY29udGludWUgdG8gdXNlIGxlbmd0
aCgpLgpAQCAtMTg2LDYgKzE4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBvciByZW1vdmVkKS4KICAgICBib29sIG1fY29udGFpbnNSZXZlcnNlZFRleHQgOiAx
OwogICAgIGJvb2wgbV9pc0FsbEFTQ0lJIDogMTsKKyAgICBib29sIG1fY2FuVXNlU2ltcGxlRm9u
dENvZGVQYXRoIDogMTsKICAgICBtdXRhYmxlIGJvb2wgbV9rbm93blRvSGF2ZU5vT3ZlcmZsb3dB
bmROb0ZhbGxiYWNrRm9udHMgOiAxOwogICAgIGJvb2wgbV9uZWVkc1RyYW5zY29kaW5nIDogMTsK
IH07Cg==
</data>
<flag name="review"
          id="141917"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>