<?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>115516</bug_id>
          
          <creation_ts>2013-05-02 07:22:08 -0700</creation_ts>
          <short_desc>Remove WTF::ListRefPtr class</short_desc>
          <delta_ts>2013-05-06 09:14:36 -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>Web Template Framework</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="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>883787</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-02 07:22:08 -0700</bug_when>
    <thetext>ListRefPtr is used only by FontFamily class, besides it strongly depends on FontFamily class semantics which makes it non-generic and inappropriate for being present inside WTF.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883790</commentid>
    <comment_count>1</comment_count>
      <attachid>200315</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-02 07:29:13 -0700</bug_when>
    <thetext>Created attachment 200315
WIP

project files are not updated yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883791</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-02 07:39:06 -0700</bug_when>
    <thetext>Nice!

I seem to remember that ListRefPtr was added to avoid overflowing the stack when destroying AST Nodes in JSC when you had very deep syntax trees.

I&apos;m not sure how many nested FontFamily objects you could have linked together, so it might be OK to just have the RefPtr and not do any special processing in the destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884098</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-03 00:42:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Nice!
&gt; 
&gt; I seem to remember that ListRefPtr was added to avoid overflowing the stack when destroying AST Nodes in JSC when you had very deep syntax trees.
&gt; 
&gt; I&apos;m not sure how many nested FontFamily objects you could have linked together, so it might be OK to just have the RefPtr and not do any special processing in the destructor.

I would keep the existing behaviour so far, as I am not sure that having just RefPtr won&apos;t bring the regression, because at least in principal it is still possible to face the same issue(overflowing the stack) again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884099</commentid>
    <comment_count>4</comment_count>
      <attachid>200392</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-03 01:08:41 -0700</bug_when>
    <thetext>Created attachment 200392
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884156</commentid>
    <comment_count>5</comment_count>
      <attachid>200392</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-03 07:07:50 -0700</bug_when>
    <thetext>Comment on attachment 200392
patch

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

No need to update the order files, they&apos;re re-generated by someone in the WebKit performance team every once in a while.

&gt; Source/WebCore/platform/graphics/FontFamily.h:74
&gt; +    RefPtr&lt;SharedFontFamily&gt; reaper = m_next.release();
&gt; +    while (reaper &amp;&amp; reaper-&gt;hasOneRef())
&gt; +        reaper = reaper-&gt;releaseNext(); // implicitly protects reaper-&gt;next, then derefs reaper

I&apos;d add a comment stating that this initially came from ListRefPtr and that it can probably be a regular RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884157</commentid>
    <comment_count>6</comment_count>
      <attachid>200413</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-03 07:19:11 -0700</bug_when>
    <thetext>Created attachment 200413
patch v2

Took comments from Anders into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884178</commentid>
    <comment_count>7</comment_count>
      <attachid>200422</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-03 09:42:34 -0700</bug_when>
    <thetext>Created attachment 200422
to be landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884201</commentid>
    <comment_count>8</comment_count>
      <attachid>200422</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-03 10:11:51 -0700</bug_when>
    <thetext>Comment on attachment 200422
to be landed

Clearing flags on attachment: 200422

Committed r149523: &lt;http://trac.webkit.org/changeset/149523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884202</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-03 10:11:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884423</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-03 15:57:22 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; it strongly depends on FontFamily class semantics

How does it depend on that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884773</commentid>
    <comment_count>11</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-05-05 21:18:37 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #0)
&gt; &gt; it strongly depends on FontFamily class semantics
&gt; 
&gt; How does it depend on that?

 ~ListRefPtr()
{
....
  reaper = reaper-&gt;releaseNext(); // implicitly protects reaper-&gt;next, then derefs reaper
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885048</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-06 09:14:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; it strongly depends on FontFamily class semantics
&gt; &gt; 
&gt; &gt; How does it depend on that?
&gt; 
&gt;  ~ListRefPtr()
&gt; {
&gt; ....
&gt;   reaper = reaper-&gt;releaseNext(); // implicitly protects reaper-&gt;next, then derefs reaper
&gt; }

Yes, that’s the requirement to be a list in the ListRefPtr sense--a releaseNext function. What was missing was documentation of that in the ListRefPtr header.

The reason I know this is not dependent on “FontFamily class semantics” is that it wasn’t even first created for FontFamily! It was created for JavaScriptCore. So I guess I am OK with removing this class, but I don’t think the remarks “strongly dependent on class semantics” and “non-generic” are fair.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200315</attachid>
            <date>2013-05-02 07:29:13 -0700</date>
            <delta_ts>2013-05-03 01:08:41 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug115516</filename>
            <type>text/plain</type>
            <size>7105</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDM5NTJkNWU4NzllODJlNDUxMmZhYjgxY2YxYTY3MWQ1ZTZiOWI4M2IKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE1heSAyIDE3OjI2OjU3IDIwMTMgKzAzMDAKCiAgICBidWcxMTU1MTYKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMDNh
OTkuLjg4MWU4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDUtMDIgIE1pa2hhaWwgUG96
ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgUmVtb3Zl
IFdURjo6TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGlzdFJlZlB0ciB3YXMgdXNlZCBvbmx5IGJ5IEZvbnRGYW1pbHkgY2xh
c3MsIGJlc2lkZXMgaXQgc3Ryb25nbHkgZGVwZW5kZWQKKyAgICAgICAgb24gRm9udEZhbWlseSBj
bGFzcyBzZW1hbnRpY3Mgd2hpY2ggbWFkZSBpdCBub24tZ2VuZXJpYyBhbmQgaW5hcHByb3ByaWF0
ZQorICAgICAgICBmb3IgYmVpbmcgcHJlc2VudCBpbnNpZGUgV1RGLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggcmVtb3ZlcyBXVEY6Okxpc3RSZWZQdHIgY2xhc3MgYW5kIG1vdmVzIGl0cyB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBpbnRvIEZvbnRGYW1pbHkgY2xhc3MuCisKKyAgICAgICAgKiB3
dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0ZvcndhcmQuaDogCisgICAgICAgIChX
VEYpOgorICAgICAgICAqIHd0Zi9MaXN0UmVmUHRyLmg6IFJlbW92ZWQuCisKIDIwMTMtMDUtMDEg
IE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgRmFzdE1hbGxv
Yy5jcHAgc2hvdWxkIHVzZSBzeXN0ZW0gZGVmaW5lZCBwYWdlIHNpemUgaW5zdGVhZCBvZiBsaXRl
cmFsIGNvbnN0YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IGRhMGIzYjUuLmY3NjRlNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CkBAIC00Myw3ICs0Myw2IEBAIHNldChXVEZfSEVBREVSUwogICAg
IEhhc2hUcmFpdHMuaAogICAgIEhleE51bWJlci5oCiAgICAgTGlzdEhhc2hTZXQuaAotICAgIExp
c3RSZWZQdHIuaAogICAgIExvY2tlci5oCiAgICAgTUQ1LmgKICAgICBNYWluVGhyZWFkLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0Zvcndh
cmQuaAppbmRleCBhZDUxNjE0Li41MzMzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9G
b3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC0yNiw3ICsyNiw2IEBA
CiBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEZ1bmN0
aW9uOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExpc3RSZWZQdHI7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duQXJyYXlQdHI7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgT3duUHRyOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NP
d25BcnJheVB0cjsKQEAgLTYwLDcgKzU5LDYgQEAgbmFtZXNwYWNlIFdURiB7CiB9CiAKIHVzaW5n
IFdURjo6RnVuY3Rpb247Ci11c2luZyBXVEY6Okxpc3RSZWZQdHI7CiB1c2luZyBXVEY6Ok93bkFy
cmF5UHRyOwogdXNpbmcgV1RGOjpPd25QdHI7CiB1c2luZyBXVEY6OlBhc3NPd25BcnJheVB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xpc3RSZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0xpc3RSZWZQdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJhMDYzMi4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0UmVmUHRyLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw2MSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAot
ICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIFdURl9M
aXN0UmVmUHRyX2gKLSNkZWZpbmUgV1RGX0xpc3RSZWZQdHJfaAotCi0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIC8vIFNwZWNpYWxpemVkIHZlcnNpb24g
b2YgUmVmUHRyIGRlc2dpbmVkIGZvciB1c2UgaW4gc2luZ2x5LWxpbmtlZCBsaXN0cy4gCi0gICAg
Ly8gRGVyZWZzIHRoZSBsaXN0IGl0ZXJhdGl2ZWx5IHRvIGF2b2lkIHJlY3Vyc2l2ZSBkZXJlZmlu
ZyB0aGF0IGNhbiBvdmVyZmxvdyB0aGUgc3RhY2suCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGNsYXNzIExpc3RSZWZQdHIgOiBwdWJsaWMgUmVmUHRyPFQ+IHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIExpc3RSZWZQdHIoKSA6IFJlZlB0cjxUPigpIHt9Ci0gICAgICAgIExpc3RSZWZQdHIoVCog
cHRyKSA6IFJlZlB0cjxUPihwdHIpIHt9Ci0gICAgICAgIExpc3RSZWZQdHIoY29uc3QgUmVmUHRy
PFQ+JiBvKSA6IFJlZlB0cjxUPihvKSB7fQotICAgICAgICAvLyBzZWUgY29tbWVudCBpbiBQYXNz
UmVmUHRyLmggZm9yIHdoeSB0aGlzIHRha2VzIGNvbnN0IHJlZmVyZW5jZQotICAgICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4gTGlzdFJlZlB0cihjb25zdCBQYXNzUmVmUHRyPFU+JiBvKSA6IFJl
ZlB0cjxUPihvKSB7fQotICAgICAgICAKLSAgICAgICAgfkxpc3RSZWZQdHIoKQotICAgICAgICB7
Ci0gICAgICAgICAgICBSZWZQdHI8VD4gcmVhcGVyID0gdGhpcy0+cmVsZWFzZSgpOwotICAgICAg
ICAgICAgd2hpbGUgKHJlYXBlciAmJiByZWFwZXItPmhhc09uZVJlZigpKQotICAgICAgICAgICAg
ICAgIHJlYXBlciA9IHJlYXBlci0+cmVsZWFzZU5leHQoKTsgLy8gaW1wbGljaXRseSBwcm90ZWN0
cyByZWFwZXItPm5leHQsIHRoZW4gZGVyZWZzIHJlYXBlcgotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBMaXN0UmVmUHRyJiBvcGVyYXRvcj0oVCogb3B0cikgeyBSZWZQdHI8VD46Om9wZXJh
dG9yPShvcHRyKTsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAgIExpc3RSZWZQdHImIG9wZXJhdG9y
PShjb25zdCBSZWZQdHI8VD4mIG8pIHsgUmVmUHRyPFQ+OjpvcGVyYXRvcj0obyk7IHJldHVybiAq
dGhpczsgfQotICAgICAgICBMaXN0UmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxU
PiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvKTsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBMaXN0UmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRy
PFU+JiBvKSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9KG8pOyByZXR1cm4gKnRoaXM7IH0KLSAgICAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNz
UmVmUHRyPFU+JiBvKSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9KG8pOyByZXR1cm4gKnRoaXM7IH0K
LSAgICB9OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBnZXRQdHIoY29u
c3QgTGlzdFJlZlB0cjxUPiYgcCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBwLmdldCgpOwotICAg
IH0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6TGlzdFJlZlB0cjsKLQotI2Vu
ZGlmIC8vIFdURl9MaXN0UmVmUHRyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MzRjZGRkLi5jYjFkYTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDUtMDIgIE1pa2hhaWwgUG96ZG55YWtv
diAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIFdURjo6
TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTGlzdFJlZlB0ciB3YXMgdXNlZCBvbmx5IGJ5IEZvbnRGYW1pbHkgY2xhc3MsIGJl
c2lkZXMgaXQgc3Ryb25nbHkgZGVwZW5kZWQKKyAgICAgICAgb24gRm9udEZhbWlseSBjbGFzcyBz
ZW1hbnRpY3Mgd2hpY2ggbWFkZSBpdCBub24tZ2VuZXJpYyBhbmQgaW5hcHByb3ByaWF0ZQorICAg
ICAgICBmb3IgYmVpbmcgcHJlc2VudCBpbnNpZGUgV1RGLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cmVtb3ZlcyBXVEY6Okxpc3RSZWZQdHIgY2xhc3MgYW5kIG1vdmVzIGl0cyB0aGUgZnVuY3Rpb25h
bGl0eQorICAgICAgICBpbnRvIEZvbnRGYW1pbHkgY2xhc3MuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBubyBjaGFuZ2UgaW4gdGhlIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZhbWlseS5oOgorICAgICAgICAoRm9udEZhbWlseSk6CisgICAgICAgIChXZWJD
b3JlOjpGb250RmFtaWx5Ojp+Rm9udEZhbWlseSk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAx
My0wNS0wMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIHRl
eHQtY29tYmluZTogaG9yaXpvbnRhbCBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IGZvciBzb21lIGZv
bnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZh
bWlseS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oCmlu
ZGV4IGJkODY3Y2QuLmEyNWM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRGYW1pbHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmFtaWx5LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgRm9udEZhbWlseV9o
CiAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9MaXN0UmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw2ICszNyw3IEBAIGNsYXNzIFNo
YXJlZEZvbnRGYW1pbHk7CiBjbGFzcyBGb250RmFtaWx5IHsKIHB1YmxpYzoKICAgICBGb250RmFt
aWx5KCkgeyB9CisgICAgfkZvbnRGYW1pbHkoKTsKIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5KSB7IG1fZmFtaWx5ID0gZmFtaWx5OyB9CiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBmYW1pbHkoKSBjb25zdCB7IHJldHVybiBtX2ZhbWlseTsgfQpAQCAtNDks
NyArNTAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZmFtaWx5
OwotICAgIExpc3RSZWZQdHI8U2hhcmVkRm9udEZhbWlseT4gbV9uZXh0OworICAgIFJlZlB0cjxT
aGFyZWRGb250RmFtaWx5PiBtX25leHQ7CiB9OwogCiBjbGFzcyBTaGFyZWRGb250RmFtaWx5IDog
cHVibGljIEZvbnRGYW1pbHksIHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEZvbnRGYW1pbHk+IHsK
QEAgLTY2LDYgKzY3LDEzIEBAIHByaXZhdGU6CiBib29sIG9wZXJhdG9yPT0oY29uc3QgRm9udEZh
bWlseSYsIGNvbnN0IEZvbnRGYW1pbHkmKTsKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
Rm9udEZhbWlseSYgYSwgY29uc3QgRm9udEZhbWlseSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9
CiAKK2lubGluZSBGb250RmFtaWx5Ojp+Rm9udEZhbWlseSgpCit7CisgICAgUmVmUHRyPFNoYXJl
ZEZvbnRGYW1pbHk+IHJlYXBlciA9IG1fbmV4dC5yZWxlYXNlKCk7CisgICAgd2hpbGUgKHJlYXBl
ciAmJiByZWFwZXItPmhhc09uZVJlZigpKQorICAgICAgICByZWFwZXIgPSByZWFwZXItPnJlbGVh
c2VOZXh0KCk7IC8vIGltcGxpY2l0bHkgcHJvdGVjdHMgcmVhcGVyLT5uZXh0LCB0aGVuIGRlcmVm
cyByZWFwZXIKK30KKwogaW5saW5lIGNvbnN0IEZvbnRGYW1pbHkqIEZvbnRGYW1pbHk6Om5leHQo
KSBjb25zdAogewogICAgIHJldHVybiBtX25leHQuZ2V0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200392</attachid>
            <date>2013-05-03 01:08:41 -0700</date>
            <delta_ts>2013-05-03 07:19:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug115516</filename>
            <type>text/plain</type>
            <size>16111</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDhmN2QxYTZkMmE1MzcyMjRkOTJkODM0OTRkNGM0YmUxMTU2ZjhlN2EKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE1heSAyIDE3OjI2OjU3IDIwMTMgKzAzMDAKCiAgICBidWcxMTU1MTYKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIyMDNh
OTkuLmU1NzU0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMDUtMDMgIE1pa2hhaWwgUG96
ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgUmVtb3Zl
IFdURjo6TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGlzdFJlZlB0ciB3YXMgdXNlZCBvbmx5IGJ5IEZvbnRGYW1pbHkgY2xh
c3MsIGJlc2lkZXMgaXQgc3Ryb25nbHkgZGVwZW5kZWQKKyAgICAgICAgb24gRm9udEZhbWlseSBj
bGFzcyBzZW1hbnRpY3Mgd2hpY2ggbWFkZSBpdCBub24tZ2VuZXJpYyBhbmQgaW5hcHByb3ByaWF0
ZQorICAgICAgICBmb3IgYmVpbmcgcHJlc2VudCBpbnNpZGUgV1RGLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggcmVtb3ZlcyBXVEY6Okxpc3RSZWZQdHIgY2xhc3MgYW5kIG1vdmVzIGl0cyB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBpbnRvIEZvbnRGYW1pbHkgY2xhc3MuCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZj
cHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOgorICAg
ICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAqIHd0Zi9M
aXN0UmVmUHRyLmg6IFJlbW92ZWQuCisKIDIwMTMtMDUtMDEgIE1pY2hhZWwgU2Fib2ZmICA8bXNh
Ym9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgRmFzdE1hbGxvYy5jcHAgc2hvdWxkIHVzZSBzeXN0
ZW0gZGVmaW5lZCBwYWdlIHNpemUgaW5zdGVhZCBvZiBsaXRlcmFsIGNvbnN0YW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggMDY0MjQxYi4uZTE0MDkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNzksNyArNzksNiBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYv
SW50OEFycmF5LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2Uu
aCBcCiAgICAgU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaCBcCi0gICAgU291cmNlL1dURi93
dGYvTGlzdFJlZlB0ci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaCBcCiAgICAgU291
cmNlL1dURi93dGYvTUQ1LmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTUQ1LmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IGNlYzZh
NGIuLjg4M2M4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2Uv
V1RGL1dURi5wcm8KQEAgLTg0LDcgKzg0LDYgQEAgSEVBREVSUyArPSBcCiAgICAgSW50MzJBcnJh
eS5oIFwKICAgICBJbnQ4QXJyYXkuaCBcCiAgICAgTGlzdEhhc2hTZXQuaCBcCi0gICAgTGlzdFJl
ZlB0ci5oIFwKICAgICBMb2NrZXIuaCBcCiAgICAgTWFpblRocmVhZC5oIFwKICAgICBNYWxsb2Na
b25lU3VwcG9ydC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNw
cm9qIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggNDNhYjY0MS4uNzE2
MzE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysrIGIv
U291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTg5NSwxMCArODk1LDYgQEAKIAkJ
CT4KIAkJPC9GaWxlPgogCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTGlzdFJlZlB0
ci5oIgotCQkJPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxM
b2NrZXIuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKaW5k
ZXggZmFhNTc5NS4uZWQyZTQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmN4cHJvai9X
VEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCkBAIC0x
NjAsNyArMTYwLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxJbnQzMkFycmF5
LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEludDhBcnJheS5oIiAvPg0K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0SGFzaFNldC5oIiAvPg0KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0UmVmUHRyLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXExvY2tlci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0ZlxNYWluVGhyZWFkLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XE1hbGxvY1pvbmVTdXBwb3J0LmgiIC8+DQpAQCAtNDk1LDQgKzQ5NCw0IEBACiAgIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+DQogICA8
SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPg0KICAgPC9JbXBvcnRHcm91cD4N
Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0Pg0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycyBiL1Nv
dXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwppbmRleCA3ZmIzMDMzLi5h
ODM0OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZp
bHRlcnMKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBA
IC00ODIsOSArNDgyLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0SGFz
aFNldC5oIj4NCiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4N
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTGlzdFJlZlB0ci5oIj4NCi0gICAgICA8
RmlsdGVyPnd0ZjwvRmlsdGVyPg0KLSAgICA8L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlx3dGZcTG9ja2VyLmgiPg0KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+DQog
ICAgIDwvQ2xJbmNsdWRlPg0KQEAgLTcwNyw0ICs3MDQsNCBAQAogICAgIDxOb25lIEluY2x1ZGU9
IldURlBvc3RCdWlsZC5jbWQiIC8+DQogICAgIDxOb25lIEluY2x1ZGU9IldURlByZUJ1aWxkLmNt
ZCIgLz4NCiAgIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCis8L1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYjQyMjAyNy4uZmRlNGQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMzksNyArMTM5LDYgQEAKIAkJQThBNDczREYxNTFBODI1QjAwNDEy
M0ZGIC8qIEludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QTQ3MkJGMTUxQTgyNUEwMDQxMjNGRiAvKiBJbnQzMkFycmF5LmggKi87IH07
CiAJCUE4QTQ3M0UwMTUxQTgyNUIwMDQxMjNGRiAvKiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJDMDE1
MUE4MjVBMDA0MTIzRkYgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovOyB9OwogCQlBOEE0
NzNFMTE1MUE4MjVCMDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkMxMTUxQTgyNUEwMDQxMjNGRiAvKiBM
aXN0SGFzaFNldC5oICovOyB9OwotCQlBOEE0NzNFMjE1MUE4MjVCMDA0MTIzRkYgLyogTGlzdFJl
ZlB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyQzIxNTFBODI1QTAwNDEyM0ZGIC8qIExpc3RSZWZQdHIuaCAqLzsgfTsKIAkJQThBNDczRTMx
NTFBODI1QjAwNDEyM0ZGIC8qIExvY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDcyQzMxNTFBODI1QTAwNDEyM0ZGIC8qIExvY2tlci5oICov
OyB9OwogCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZE1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkM1MTUxQTgy
NUEwMDQxMjNGRiAvKiBNYWluVGhyZWFkTWFjLm1tICovOyB9OwogCQlBOEE0NzNFNTE1MUE4MjVC
MDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJDNjE1MUE4MjVBMDA0MTIzRkYgLyogTWFpblRocmVhZC5j
cHAgKi87IH07CkBAIC00MTUsNyArNDE0LDYgQEAKIAkJQThBNDcyQkYxNTFBODI1QTAwNDEyM0ZG
IC8qIEludDMyQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50MzJB
cnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJDMDE1MUE4MjVBMDA0
MTIzRkYgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4QTQ3MkMxMTUxQTgyNUEwMDQxMjNGRiAvKiBMaXN0SGFzaFNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXN0SGFzaFNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEE0NzJDMjE1MUE4MjVBMDA0MTIzRkYgLyogTGlzdFJlZlB0ci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXN0UmVmUHRyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNGRiAvKiBMb2NrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9ja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkM1MTUxQTgyNUEwMDQxMjNGRiAvKiBNYWluVGhyZWFk
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWFpblRocmVh
ZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyQzYxNTFBODI1QTAw
NDEyM0ZGIC8qIE1haW5UaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWFpblRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTAs
NyArNjg4LDYgQEAKIAkJCQlBOEE0NzJCRDE1MUE4MjVBMDA0MTIzRkYgLyogSW50OEFycmF5Lmgg
Ki8sCiAJCQkJQThBNDcyQzAxNTFBODI1QTAwNDEyM0ZGIC8qIEludGVncmFsVHlwZWRBcnJheUJh
c2UuaCAqLywKIAkJCQlBOEE0NzJDMTE1MUE4MjVBMDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCAq
LywKLQkJCQlBOEE0NzJDMjE1MUE4MjVBMDA0MTIzRkYgLyogTGlzdFJlZlB0ci5oICovLAogCQkJ
CUE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNGRiAvKiBMb2NrZXIuaCAqLywKIAkJCQlBOEE0NzJDNjE1
MUE4MjVBMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgKi8sCiAJCQkJQThBNDcyQzcxNTFBODI1
QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuaCAqLywKQEAgLTEwMDQsNyArMTAwMSw2IEBACiAJCQkJ
MjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0UwMTUxQTgyNUIwMDQxMjNGRiAvKiBJbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFMTE1MUE4MjVCMDA0MTIz
RkYgLyogTGlzdEhhc2hTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0UyMTUxQTgyNUIw
MDQxMjNGRiAvKiBMaXN0UmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFMzE1MUE4
MjVCMDA0MTIzRkYgLyogTG9ja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFNjE1MUE4
MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRTcx
NTFBODI1QjAwNDEyM0ZGIC8qIE1hbGxvY1pvbmVTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKaW5kZXggZGEwYjNiNS4uZjc2NGU0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50
eHQKQEAgLTQzLDcgKzQzLDYgQEAgc2V0KFdURl9IRUFERVJTCiAgICAgSGFzaFRyYWl0cy5oCiAg
ICAgSGV4TnVtYmVyLmgKICAgICBMaXN0SGFzaFNldC5oCi0gICAgTGlzdFJlZlB0ci5oCiAgICAg
TG9ja2VyLmgKICAgICBNRDUuaAogICAgIE1haW5UaHJlYWQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IGFkNTE2
MTQuLjUzMzMwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTI2LDcgKzI2LDYgQEAKIG5hbWVzcGFjZSBXVEYg
ewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRnVuY3Rpb247Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gY2xhc3MgTGlzdFJlZlB0cjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBPd25BcnJheVB0cjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25Q
dHI7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093bkFycmF5UHRyOwpAQCAt
NjAsNyArNTksNiBAQCBuYW1lc3BhY2UgV1RGIHsKIH0KIAogdXNpbmcgV1RGOjpGdW5jdGlvbjsK
LXVzaW5nIFdURjo6TGlzdFJlZlB0cjsKIHVzaW5nIFdURjo6T3duQXJyYXlQdHI7CiB1c2luZyBX
VEY6Ok93blB0cjsKIHVzaW5nIFdURjo6UGFzc093bkFycmF5UHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTGlzdFJlZlB0ci5oIGIvU291cmNlL1dURi93dGYvTGlzdFJlZlB0ci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmEwNjMyLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0xpc3RSZWZQdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgV1RGX0xpc3RSZWZQdHJfaAotI2Rl
ZmluZSBXVEZfTGlzdFJlZlB0cl9oCi0KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXVEYgewotCi0gICAgLy8gU3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBSZWZQdHIgZGVzZ2lu
ZWQgZm9yIHVzZSBpbiBzaW5nbHktbGlua2VkIGxpc3RzLiAKLSAgICAvLyBEZXJlZnMgdGhlIGxp
c3QgaXRlcmF0aXZlbHkgdG8gYXZvaWQgcmVjdXJzaXZlIGRlcmVmaW5nIHRoYXQgY2FuIG92ZXJm
bG93IHRoZSBzdGFjay4KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgTGlzdFJlZlB0
ciA6IHB1YmxpYyBSZWZQdHI8VD4gewotICAgIHB1YmxpYzoKLSAgICAgICAgTGlzdFJlZlB0cigp
IDogUmVmUHRyPFQ+KCkge30KLSAgICAgICAgTGlzdFJlZlB0cihUKiBwdHIpIDogUmVmUHRyPFQ+
KHB0cikge30KLSAgICAgICAgTGlzdFJlZlB0cihjb25zdCBSZWZQdHI8VD4mIG8pIDogUmVmUHRy
PFQ+KG8pIHt9Ci0gICAgICAgIC8vIHNlZSBjb21tZW50IGluIFBhc3NSZWZQdHIuaCBmb3Igd2h5
IHRoaXMgdGFrZXMgY29uc3QgcmVmZXJlbmNlCi0gICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBV
PiBMaXN0UmVmUHRyKGNvbnN0IFBhc3NSZWZQdHI8VT4mIG8pIDogUmVmUHRyPFQ+KG8pIHt9Ci0g
ICAgICAgIAotICAgICAgICB+TGlzdFJlZlB0cigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFJl
ZlB0cjxUPiByZWFwZXIgPSB0aGlzLT5yZWxlYXNlKCk7Ci0gICAgICAgICAgICB3aGlsZSAocmVh
cGVyICYmIHJlYXBlci0+aGFzT25lUmVmKCkpCi0gICAgICAgICAgICAgICAgcmVhcGVyID0gcmVh
cGVyLT5yZWxlYXNlTmV4dCgpOyAvLyBpbXBsaWNpdGx5IHByb3RlY3RzIHJlYXBlci0+bmV4dCwg
dGhlbiBkZXJlZnMgcmVhcGVyCi0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIExpc3RSZWZQ
dHImIG9wZXJhdG9yPShUKiBvcHRyKSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9KG9wdHIpOyByZXR1
cm4gKnRoaXM7IH0KLSAgICAgICAgTGlzdFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxU
PiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvKTsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAg
IExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKSB7IFJlZlB0cjxU
Pjo6b3BlcmF0b3I9KG8pOyByZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFU+IExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4mIG8pIHsgUmVmUHRy
PFQ+OjpvcGVyYXRvcj0obyk7IHJldHVybiAqdGhpczsgfQotICAgICAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVT4gTGlzdFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mIG8pIHsg
UmVmUHRyPFQ+OjpvcGVyYXRvcj0obyk7IHJldHVybiAqdGhpczsgfQotICAgIH07Ci0KLSAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQqIGdldFB0cihjb25zdCBMaXN0UmVmUHRyPFQ+
JiBwKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHAuZ2V0KCk7Ci0gICAgfQotCi19IC8vIG5hbWVz
cGFjZSBXVEYKLQotdXNpbmcgV1RGOjpMaXN0UmVmUHRyOwotCi0jZW5kaWYgLy8gV1RGX0xpc3RS
ZWZQdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzNGNkZGQuLjM4ZDMxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMy0wNS0wMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pk
bnlha292QGludGVsLmNvbT4KKworICAgICAgICBSZW1vdmUgV1RGOjpMaXN0UmVmUHRyIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU1MTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMaXN0UmVm
UHRyIHdhcyB1c2VkIG9ubHkgYnkgRm9udEZhbWlseSBjbGFzcywgYmVzaWRlcyBpdCBzdHJvbmds
eSBkZXBlbmRlZAorICAgICAgICBvbiBGb250RmFtaWx5IGNsYXNzIHNlbWFudGljcyB3aGljaCBt
YWRlIGl0IG5vbi1nZW5lcmljIGFuZCBpbmFwcHJvcHJpYXRlCisgICAgICAgIGZvciBiZWluZyBw
cmVzZW50IGluc2lkZSBXVEYuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIFdURjo6TGlz
dFJlZlB0ciBjbGFzcyBhbmQgbW92ZXMgaXRzIHRoZSBmdW5jdGlvbmFsaXR5CisgICAgICAgIGlu
dG8gRm9udEZhbWlseSBjbGFzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBp
biB0aGUgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIHBh
Z2UvRnJhbWVUcmVlLmg6CisgICAgICAgIChGcmFtZVRyZWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRGYW1pbHkuaDoKKyAgICAgICAgKEZvbnRGYW1pbHkpOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udEZhbWlseTo6fkZvbnRGYW1pbHkpOgorICAgICAgICAoV2ViQ29yZSk6CisK
IDIwMTMtMDUtMDEgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAg
ICB0ZXh0LWNvbWJpbmU6IGhvcml6b250YWwgZG9lcyBub3Qgd29yayBwcm9wZXJseSBmb3Igc29t
ZSBmb250cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDM1NTkzNDguLjdkMTQ3NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5vcmRlcgpAQCAtODAxLDcgKzgwMSw3IEBAIF9fWk43V2ViQ29yZTE1Rm9udERlc2NyaXB0
aW9uQzFFUktTMF8KIF9fWk43V2ViQ29yZTEwRm9udEZhbWlseUMxRVJLUzBfCiBfX1pON1dlYkNv
cmUxOFN0eWxlSW5oZXJpdGVkRGF0YUMxRVJLUzBfCiBfX1pON1dlYkNvcmU0Rm9udEMxRVJLUzBf
Ci1fX1pOM1dURjEwTGlzdFJlZlB0cklON1dlYkNvcmUxNlNoYXJlZEZvbnRGYW1pbHlFRUQyRXYK
K19fWk4zV1RGNlJlZlB0cklON1dlYkNvcmUxNlNoYXJlZEZvbnRGYW1pbHlFRUQyRXYKIF9fWk4z
V1RGMTRkZXJlZklmTm90TnVsbElON1dlYkNvcmUxNlNoYXJlZEZvbnRGYW1pbHlFRUV2UFRfCiBf
X1pOSzdXZWJDb3JlNEZvbnQ2dXBkYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyRm9udFNlbGVj
dG9yRUVFCiBfX1pON1dlYkNvcmUxNkZvbnRGYWxsYmFja0xpc3QxMGludmFsaWRhdGVFTjNXVEYx
MFBhc3NSZWZQdHJJTlNfMTJGb250U2VsZWN0b3JFRUUKQEAgLTQyODU5LDQgKzQyODU5LDQgQEAg
X19aTDMxcG9pbnRlckFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlvbgogX19aTjdXZWJDb3JlTDE5Z1By
b3BlcnR5V3JhcHBlck1hcEUKIF9fWk43V2ViQ29yZUwxMmdGdW5jdGlvbk1hcEUKIF9fWk43V2Vi
Q29yZUwxMmdGdW5jdGlvbk1hcEUKLV9fWk43V2ViQ29yZTZFZGl0b3IyNnRvZ2dsZU92ZXJ3cml0
ZU1vZGVFbmFibGVkRXYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitfX1pON1dlYkNvcmU2
RWRpdG9yMjZ0b2dnbGVPdmVyd3JpdGVNb2RlRW5hYmxlZEV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUu
aAppbmRleCA0YTY5YjMyLi41ZWU3MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKQEAgLTkz
LDcgKzkzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBdG9taWNTdHJpbmcgbV9u
YW1lOyAvLyBUaGUgYWN0dWFsIGZyYW1lIG5hbWUgKG1heSBiZSBlbXB0eSkuCiAgICAgICAgIEF0
b21pY1N0cmluZyBtX3VuaXF1ZU5hbWU7CiAKLSAgICAgICAgLy8gRklYTUU6IHVzZSBMaXN0UmVm
UHRyPwogICAgICAgICBSZWZQdHI8RnJhbWU+IG1fbmV4dFNpYmxpbmc7CiAgICAgICAgIEZyYW1l
KiBtX3ByZXZpb3VzU2libGluZzsKICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX2ZpcnN0Q2hpbGQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmgKaW5kZXgg
YmQ4NjdjZC4uYTI1YzZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udEZhbWlseS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRGYW1pbHkuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBGb250RmFtaWx5X2gKIAog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL0xpc3RSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgU2hhcmVk
Rm9udEZhbWlseTsKIGNsYXNzIEZvbnRGYW1pbHkgewogcHVibGljOgogICAgIEZvbnRGYW1pbHko
KSB7IH0KKyAgICB+Rm9udEZhbWlseSgpOwogCiAgICAgdm9pZCBzZXRGYW1pbHkoY29uc3QgQXRv
bWljU3RyaW5nJiBmYW1pbHkpIHsgbV9mYW1pbHkgPSBmYW1pbHk7IH0KICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseSgpIGNvbnN0IHsgcmV0dXJuIG1fZmFtaWx5OyB9CkBAIC00OSw3ICs1
MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9mYW1pbHk7Ci0g
ICAgTGlzdFJlZlB0cjxTaGFyZWRGb250RmFtaWx5PiBtX25leHQ7CisgICAgUmVmUHRyPFNoYXJl
ZEZvbnRGYW1pbHk+IG1fbmV4dDsKIH07CiAKIGNsYXNzIFNoYXJlZEZvbnRGYW1pbHkgOiBwdWJs
aWMgRm9udEZhbWlseSwgcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRm9udEZhbWlseT4gewpAQCAt
NjYsNiArNjcsMTMgQEAgcHJpdmF0ZToKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250RmFtaWx5
JiwgY29uc3QgRm9udEZhbWlseSYpOwogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGb250
RmFtaWx5JiBhLCBjb25zdCBGb250RmFtaWx5JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAor
aW5saW5lIEZvbnRGYW1pbHk6On5Gb250RmFtaWx5KCkKK3sKKyAgICBSZWZQdHI8U2hhcmVkRm9u
dEZhbWlseT4gcmVhcGVyID0gbV9uZXh0LnJlbGVhc2UoKTsKKyAgICB3aGlsZSAocmVhcGVyICYm
IHJlYXBlci0+aGFzT25lUmVmKCkpCisgICAgICAgIHJlYXBlciA9IHJlYXBlci0+cmVsZWFzZU5l
eHQoKTsgLy8gaW1wbGljaXRseSBwcm90ZWN0cyByZWFwZXItPm5leHQsIHRoZW4gZGVyZWZzIHJl
YXBlcgorfQorCiBpbmxpbmUgY29uc3QgRm9udEZhbWlseSogRm9udEZhbWlseTo6bmV4dCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fbmV4dC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA5ZGNj
MTE2Li5lMDJjODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDUt
MDMgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFdURjo6TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQub3JkZXI6IAorICAgICAgICAg
ICAgRXhwb3J0ZWQgV1RGOjpSZWZQdHI8V2ViQ29yZTo6U2hhcmVkRm9udEZhbWlseT46On5SZWZQ
dHIoKSByYXRoZXIKKyAgICAgICAgICAgIHRoYW4gV1RGOjpMaXN0UmVmUHRyPFdlYkNvcmU6OlNo
YXJlZEZvbnRGYW1pbHk+Ojp+TGlzdFJlZlB0cigpLgorCiAyMDExLTA1LTAxICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtNYWNdIFdlYktpdCBkb2Vzbid0IGVu
YWJsZSBvciBkaXNhYmxlIGF1dG9jb3JyZWN0aW9ucyB3aGVuIHN5c3RlbSBwcmVmZXJlbmNlcyBh
cmUgY2hhbmdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCmluZGV4IGFkZWVmNzIuLjNiMDMzNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJLaXQub3JkZXIKQEAgLTYyLDcgKzYyLDcgQEAgX1dlYkxvY2FsaXplZFN0cmlu
ZwogLVtOU1N0cmluZyhXZWJLaXRFeHRyYXMpIF93ZWJfd2lkdGhXaXRoRm9udDpdCiBfX1pON1dl
YkNvcmUxNkZvbnRGYWxsYmFja0xpc3REMUV2CiBfX1pON1dlYkNvcmUxMEZvbnRGYW1pbHlEMUV2
Ci1fX1pOM1dURjEwTGlzdFJlZlB0cklON1dlYkNvcmUxNlNoYXJlZEZvbnRGYW1pbHlFRUQyRXYK
K19fWk4zV1RGNlJlZlB0cklON1dlYkNvcmUxNlNoYXJlZEZvbnRGYW1pbHlFRUQyRXYKIF9fWk4z
V1RGMTRkZXJlZklmTm90TnVsbElON1dlYkNvcmUxNlNoYXJlZEZvbnRGYW1pbHlFRUV2UFRfCiAr
W1dlYlN0cmluZ1RydW5jYXRvciBpbml0aWFsaXplXQogK1tXZWJTdHJpbmdUcnVuY2F0b3IgY2Vu
dGVyVHJ1bmNhdGVTdHJpbmc6dG9XaWR0aDp3aXRoRm9udDpdCg==
</data>
<flag name="review"
          id="221842"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200413</attachid>
            <date>2013-05-03 07:19:11 -0700</date>
            <delta_ts>2013-05-03 09:42:34 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug115516_v2</filename>
            <type>text/plain</type>
            <size>13899</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDU2ZDZiZWQwZDVmZWEwNGEyM2FjZjRkZjM5MzE4YjkyYmZhYmIxOGUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIE1heSAzIDE3OjE2OjAwIDIwMTMgKzAzMDAKCiAgICBidWcxMTU1MTYKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDc5YjUw
NjguLmVkNWM1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMDUtMDMgIE1pa2hhaWwgUG96
ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgUmVtb3Zl
IFdURjo6TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGlzdFJlZlB0ciB3YXMgdXNlZCBvbmx5IGJ5IEZvbnRGYW1pbHkgY2xh
c3MsIGJlc2lkZXMgaXQgc3Ryb25nbHkgZGVwZW5kZWQKKyAgICAgICAgb24gRm9udEZhbWlseSBj
bGFzcyBzZW1hbnRpY3Mgd2hpY2ggbWFkZSBpdCBub24tZ2VuZXJpYyBhbmQgaW5hcHByb3ByaWF0
ZQorICAgICAgICBmb3IgYmVpbmcgcHJlc2VudCBpbnNpZGUgV1RGLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggcmVtb3ZlcyBXVEY6Okxpc3RSZWZQdHIgY2xhc3MgYW5kIG1vdmVzIGl0cyB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBpbnRvIEZvbnRGYW1pbHkgY2xhc3MuCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZj
cHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOgorICAg
ICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAqIHd0Zi9M
aXN0UmVmUHRyLmg6IFJlbW92ZWQuCisKIDIwMTMtMDUtMDIgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXaW5DYWlyb10gVW5yZXZpZXdlZCBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDY0MjQxYi4uZTE0MDkwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtNzksNyArNzksNiBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291
cmNlL1dURi93dGYvSW50OEFycmF5LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlw
ZWRBcnJheUJhc2UuaCBcCiAgICAgU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaCBcCi0gICAg
U291cmNlL1dURi93dGYvTGlzdFJlZlB0ci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9Mb2NrZXIu
aCBcCiAgICAgU291cmNlL1dURi93dGYvTUQ1LmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTUQ1
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJv
CmluZGV4IGNlYzZhNGIuLjg4M2M4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybwor
KysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTg0LDcgKzg0LDYgQEAgSEVBREVSUyArPSBcCiAg
ICAgSW50MzJBcnJheS5oIFwKICAgICBJbnQ4QXJyYXkuaCBcCiAgICAgTGlzdEhhc2hTZXQuaCBc
Ci0gICAgTGlzdFJlZlB0ci5oIFwKICAgICBMb2NrZXIuaCBcCiAgICAgTWFpblRocmVhZC5oIFwK
ICAgICBNYWxsb2Nab25lU3VwcG9ydC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZj
cHJvai9XVEYudmNwcm9qIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXgg
NDNhYjY0MS4uNzE2MzE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52
Y3Byb2oKKysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTg5NSwxMCAr
ODk1LDYgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQotCQkJUmVsYXRpdmVQYXRoPSIuLlx3
dGZcTGlzdFJlZlB0ci5oIgotCQkJPgotCQk8L0ZpbGU+Ci0JCTxGaWxlCiAJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHd0ZlxMb2NrZXIuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2oKaW5kZXggZTA4YzEzZi4uNDkxODliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYudmN4cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52
Y3hwcm9qCkBAIC0xNjAsNyArMTYwLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxJbnQzMkFycmF5LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEludDhB
cnJheS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0SGFzaFNldC5o
IiAvPg0KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0UmVmUHRyLmgiIC8+DQog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXExvY2tlci5oIiAvPg0KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxNYWluVGhyZWFkLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXE1hbGxvY1pvbmVTdXBwb3J0LmgiIC8+DQpAQCAtNDk1LDQgKzQ5NCw0IEBA
CiAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdl
dHMiIC8+DQogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPg0KICAgPC9J
bXBvcnRHcm91cD4NCi08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Q
cm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ou
ZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwppbmRl
eCAyNWZmMGVkLi43YzZlNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dU
Ri52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJv
ai5maWx0ZXJzCkBAIC00ODMsOSArNDgzLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHd0ZlxMaXN0SGFzaFNldC5oIj4NCiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPg0KICAgICA8
L0NsSW5jbHVkZT4NCi0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTGlzdFJlZlB0ci5o
Ij4NCi0gICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPg0KLSAgICA8L0NsSW5jbHVkZT4NCiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTG9ja2VyLmgiPg0KICAgICAgIDxGaWx0ZXI+d3Rm
PC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRlPg0KQEAgLTcwOSw0ICs3MDYsNCBAQAogICAgIDxO
b25lIEluY2x1ZGU9IldURlBvc3RCdWlsZC5jbWQiIC8+DQogICAgIDxOb25lIEluY2x1ZGU9IldU
RlByZUJ1aWxkLmNtZCIgLz4NCiAgIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYjQyMjAyNy4uZmRlNGQ2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzksNyArMTM5LDYgQEAKIAkJQThBNDczREYx
NTFBODI1QjAwNDEyM0ZGIC8qIEludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkJGMTUxQTgyNUEwMDQxMjNGRiAvKiBJbnQzMkFy
cmF5LmggKi87IH07CiAJCUE4QTQ3M0UwMTUxQTgyNUIwMDQxMjNGRiAvKiBJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEE0NzJDMDE1MUE4MjVBMDA0MTIzRkYgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICov
OyB9OwogCQlBOEE0NzNFMTE1MUE4MjVCMDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkMxMTUxQTgyNUEw
MDQxMjNGRiAvKiBMaXN0SGFzaFNldC5oICovOyB9OwotCQlBOEE0NzNFMjE1MUE4MjVCMDA0MTIz
RkYgLyogTGlzdFJlZlB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDcyQzIxNTFBODI1QTAwNDEyM0ZGIC8qIExpc3RSZWZQdHIuaCAqLzsgfTsK
IAkJQThBNDczRTMxNTFBODI1QjAwNDEyM0ZGIC8qIExvY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyQzMxNTFBODI1QTAwNDEyM0ZGIC8q
IExvY2tlci5oICovOyB9OwogCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVh
ZE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QTQ3MkM1MTUxQTgyNUEwMDQxMjNGRiAvKiBNYWluVGhyZWFkTWFjLm1tICovOyB9OwogCQlBOEE0
NzNFNTE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJDNjE1MUE4MjVBMDA0MTIzRkYgLyog
TWFpblRocmVhZC5jcHAgKi87IH07CkBAIC00MTUsNyArNDE0LDYgQEAKIAkJQThBNDcyQkYxNTFB
ODI1QTAwNDEyM0ZGIC8qIEludDMyQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW50MzJBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJD
MDE1MUE4MjVBMDA0MTIzRkYgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkMxMTUxQTgyNUEwMDQxMjNGRiAvKiBMaXN0SGFz
aFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXN0SGFzaFNldC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJDMjE1MUE4MjVBMDA0MTIzRkYgLyog
TGlzdFJlZlB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXN0UmVmUHRy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNG
RiAvKiBMb2NrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9ja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkM1MTUxQTgyNUEwMDQxMjNGRiAv
KiBNYWluVGhyZWFkTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTWFpblRocmVhZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcy
QzYxNTFBODI1QTAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWFpblRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02OTAsNyArNjg4LDYgQEAKIAkJCQlBOEE0NzJCRDE1MUE4MjVBMDA0MTIzRkYgLyog
SW50OEFycmF5LmggKi8sCiAJCQkJQThBNDcyQzAxNTFBODI1QTAwNDEyM0ZGIC8qIEludGVncmFs
VHlwZWRBcnJheUJhc2UuaCAqLywKIAkJCQlBOEE0NzJDMTE1MUE4MjVBMDA0MTIzRkYgLyogTGlz
dEhhc2hTZXQuaCAqLywKLQkJCQlBOEE0NzJDMjE1MUE4MjVBMDA0MTIzRkYgLyogTGlzdFJlZlB0
ci5oICovLAogCQkJCUE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNGRiAvKiBMb2NrZXIuaCAqLywKIAkJ
CQlBOEE0NzJDNjE1MUE4MjVBMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgKi8sCiAJCQkJQThB
NDcyQzcxNTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuaCAqLywKQEAgLTEwMDQsNyArMTAw
MSw2IEBACiAJCQkJMjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0Nv
bnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0UwMTUxQTgyNUIwMDQxMjNGRiAv
KiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFMTE1
MUE4MjVCMDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3
M0UyMTUxQTgyNUIwMDQxMjNGRiAvKiBMaXN0UmVmUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzNFMzE1MUE4MjVCMDA0MTIzRkYgLyogTG9ja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzNFNjE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDczRTcxNTFBODI1QjAwNDEyM0ZGIC8qIE1hbGxvY1pvbmVTdXBwb3J0LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZGEwYjNiNS4uZjc2NGU0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTQzLDcgKzQzLDYgQEAgc2V0KFdURl9IRUFERVJTCiAgICAgSGFz
aFRyYWl0cy5oCiAgICAgSGV4TnVtYmVyLmgKICAgICBMaXN0SGFzaFNldC5oCi0gICAgTGlzdFJl
ZlB0ci5oCiAgICAgTG9ja2VyLmgKICAgICBNRDUuaAogICAgIE1haW5UaHJlYWQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5o
CmluZGV4IGFkNTE2MTQuLjUzMzMwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zvcndh
cmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTI2LDcgKzI2LDYgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRnVuY3Rpb247
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGlzdFJlZlB0cjsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25BcnJheVB0cjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBPd25QdHI7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093bkFy
cmF5UHRyOwpAQCAtNjAsNyArNTksNiBAQCBuYW1lc3BhY2UgV1RGIHsKIH0KIAogdXNpbmcgV1RG
OjpGdW5jdGlvbjsKLXVzaW5nIFdURjo6TGlzdFJlZlB0cjsKIHVzaW5nIFdURjo6T3duQXJyYXlQ
dHI7CiB1c2luZyBXVEY6Ok93blB0cjsKIHVzaW5nIFdURjo6UGFzc093bkFycmF5UHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTGlzdFJlZlB0ci5oIGIvU291cmNlL1dURi93dGYvTGlz
dFJlZlB0ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmEwNjMyLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xpc3RSZWZQdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYx
ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgV1RGX0xpc3RS
ZWZQdHJfaAotI2RlZmluZSBXVEZfTGlzdFJlZlB0cl9oCi0KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgLy8gU3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBS
ZWZQdHIgZGVzZ2luZWQgZm9yIHVzZSBpbiBzaW5nbHktbGlua2VkIGxpc3RzLiAKLSAgICAvLyBE
ZXJlZnMgdGhlIGxpc3QgaXRlcmF0aXZlbHkgdG8gYXZvaWQgcmVjdXJzaXZlIGRlcmVmaW5nIHRo
YXQgY2FuIG92ZXJmbG93IHRoZSBzdGFjay4KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xh
c3MgTGlzdFJlZlB0ciA6IHB1YmxpYyBSZWZQdHI8VD4gewotICAgIHB1YmxpYzoKLSAgICAgICAg
TGlzdFJlZlB0cigpIDogUmVmUHRyPFQ+KCkge30KLSAgICAgICAgTGlzdFJlZlB0cihUKiBwdHIp
IDogUmVmUHRyPFQ+KHB0cikge30KLSAgICAgICAgTGlzdFJlZlB0cihjb25zdCBSZWZQdHI8VD4m
IG8pIDogUmVmUHRyPFQ+KG8pIHt9Ci0gICAgICAgIC8vIHNlZSBjb21tZW50IGluIFBhc3NSZWZQ
dHIuaCBmb3Igd2h5IHRoaXMgdGFrZXMgY29uc3QgcmVmZXJlbmNlCi0gICAgICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBVPiBMaXN0UmVmUHRyKGNvbnN0IFBhc3NSZWZQdHI8VT4mIG8pIDogUmVmUHRy
PFQ+KG8pIHt9Ci0gICAgICAgIAotICAgICAgICB+TGlzdFJlZlB0cigpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIFJlZlB0cjxUPiByZWFwZXIgPSB0aGlzLT5yZWxlYXNlKCk7Ci0gICAgICAgICAg
ICB3aGlsZSAocmVhcGVyICYmIHJlYXBlci0+aGFzT25lUmVmKCkpCi0gICAgICAgICAgICAgICAg
cmVhcGVyID0gcmVhcGVyLT5yZWxlYXNlTmV4dCgpOyAvLyBpbXBsaWNpdGx5IHByb3RlY3RzIHJl
YXBlci0+bmV4dCwgdGhlbiBkZXJlZnMgcmVhcGVyCi0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIExpc3RSZWZQdHImIG9wZXJhdG9yPShUKiBvcHRyKSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9
KG9wdHIpOyByZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgTGlzdFJlZlB0ciYgb3BlcmF0b3I9KGNv
bnN0IFJlZlB0cjxUPiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvKTsgcmV0dXJuICp0aGlz
OyB9Ci0gICAgICAgIExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBv
KSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9KG8pOyByZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFU+IExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4m
IG8pIHsgUmVmUHRyPFQ+OjpvcGVyYXRvcj0obyk7IHJldHVybiAqdGhpczsgfQotICAgICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gTGlzdFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQ
dHI8VT4mIG8pIHsgUmVmUHRyPFQ+OjpvcGVyYXRvcj0obyk7IHJldHVybiAqdGhpczsgfQotICAg
IH07Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQqIGdldFB0cihjb25zdCBM
aXN0UmVmUHRyPFQ+JiBwKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHAuZ2V0KCk7Ci0gICAgfQot
Ci19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpMaXN0UmVmUHRyOwotCi0jZW5kaWYg
Ly8gV1RGX0xpc3RSZWZQdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0NjRiYmUuLjAyYTAwMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wNS0wMyAgTWlraGFpbCBQb3pkbnlha292ICA8
bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBSZW1vdmUgV1RGOjpMaXN0
UmVmUHRyIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTU1MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBMaXN0UmVmUHRyIHdhcyB1c2VkIG9ubHkgYnkgRm9udEZhbWlseSBjbGFzcywgYmVzaWRl
cyBpdCBzdHJvbmdseSBkZXBlbmRlZAorICAgICAgICBvbiBGb250RmFtaWx5IGNsYXNzIHNlbWFu
dGljcyB3aGljaCBtYWRlIGl0IG5vbi1nZW5lcmljIGFuZCBpbmFwcHJvcHJpYXRlCisgICAgICAg
IGZvciBiZWluZyBwcmVzZW50IGluc2lkZSBXVEYuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1v
dmVzIFdURjo6TGlzdFJlZlB0ciBjbGFzcyBhbmQgbW92ZXMgaXRzIHRoZSBmdW5jdGlvbmFsaXR5
CisgICAgICAgIGludG8gRm9udEZhbWlseSBjbGFzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IG5vIGNoYW5nZSBpbiB0aGUgYmVoYXZpb3IuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5o
OgorICAgICAgICAoRnJhbWVUcmVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFtaWx5Lmg6CisgICAgICAgIChGb250RmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
YW1pbHk6On5Gb250RmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEzLTA1LTAyICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGaW5lIHR1bmUg
ZGVwZW5kZW5jaWVzIGZvciBnbHNsYW5nIGdlbmVyYXRlZCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVU
cmVlLmgKaW5kZXggNGE2OWIzMi4uNWVlNzE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCkBA
IC05Myw3ICs5Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQXRvbWljU3RyaW5n
IG1fbmFtZTsgLy8gVGhlIGFjdHVhbCBmcmFtZSBuYW1lIChtYXkgYmUgZW1wdHkpLgogICAgICAg
ICBBdG9taWNTdHJpbmcgbV91bmlxdWVOYW1lOwogCi0gICAgICAgIC8vIEZJWE1FOiB1c2UgTGlz
dFJlZlB0cj8KICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX25leHRTaWJsaW5nOwogICAgICAgICBG
cmFtZSogbV9wcmV2aW91c1NpYmxpbmc7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9maXJzdENo
aWxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZh
bWlseS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseS5oCmlu
ZGV4IGJkODY3Y2QuLmQ4MzFkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRGYW1pbHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmFtaWx5LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgRm9udEZhbWlseV9o
CiAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9MaXN0UmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw2ICszNyw3IEBAIGNsYXNzIFNo
YXJlZEZvbnRGYW1pbHk7CiBjbGFzcyBGb250RmFtaWx5IHsKIHB1YmxpYzoKICAgICBGb250RmFt
aWx5KCkgeyB9CisgICAgfkZvbnRGYW1pbHkoKTsKIAogICAgIHZvaWQgc2V0RmFtaWx5KGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5KSB7IG1fZmFtaWx5ID0gZmFtaWx5OyB9CiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBmYW1pbHkoKSBjb25zdCB7IHJldHVybiBtX2ZhbWlseTsgfQpAQCAtNDks
NyArNTAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZmFtaWx5
OwotICAgIExpc3RSZWZQdHI8U2hhcmVkRm9udEZhbWlseT4gbV9uZXh0OworICAgIFJlZlB0cjxT
aGFyZWRGb250RmFtaWx5PiBtX25leHQ7CiB9OwogCiBjbGFzcyBTaGFyZWRGb250RmFtaWx5IDog
cHVibGljIEZvbnRGYW1pbHksIHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEZvbnRGYW1pbHk+IHsK
QEAgLTY2LDYgKzY3LDE1IEBAIHByaXZhdGU6CiBib29sIG9wZXJhdG9yPT0oY29uc3QgRm9udEZh
bWlseSYsIGNvbnN0IEZvbnRGYW1pbHkmKTsKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
Rm9udEZhbWlseSYgYSwgY29uc3QgRm9udEZhbWlseSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9
CiAKK2lubGluZSBGb250RmFtaWx5Ojp+Rm9udEZhbWlseSgpCit7CisgICAgLy8gVGhpcyBjb2Rl
IGNhbWUgZnJvbSByZW1vdmVkIExpc3RSZWZQdHIgdG8gYXZvaWQgcG9zc2libGUgb3ZlcmZsb3dp
bmcgdGhlIHN0YWNrLgorICAgIC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgbmVlZCBpdD8KKyAgICBS
ZWZQdHI8U2hhcmVkRm9udEZhbWlseT4gcmVhcGVyID0gbV9uZXh0LnJlbGVhc2UoKTsKKyAgICB3
aGlsZSAocmVhcGVyICYmIHJlYXBlci0+aGFzT25lUmVmKCkpCisgICAgICAgIHJlYXBlciA9IHJl
YXBlci0+cmVsZWFzZU5leHQoKTsgLy8gaW1wbGljaXRseSBwcm90ZWN0cyByZWFwZXItPm5leHQs
IHRoZW4gZGVyZWZzIHJlYXBlcgorfQorCiBpbmxpbmUgY29uc3QgRm9udEZhbWlseSogRm9udEZh
bWlseTo6bmV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbmV4dC5nZXQoKTsK
</data>
<flag name="review"
          id="221861"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200422</attachid>
            <date>2013-05-03 09:42:34 -0700</date>
            <delta_ts>2013-05-03 10:11:50 -0700</delta_ts>
            <desc>to be landed</desc>
            <filename>bug115516_v3</filename>
            <type>text/plain</type>
            <size>13538</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDBlODU5OGE3MGQwZjI4MGVkYjFiNGUxN2VhOWQzZTE3MjM0ZjllNDQKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIE1heSAzIDE5OjQwOjAxIDIwMTMgKzAzMDAKCiAgICBidWcxMTU1MTYKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDc5YjUw
NjguLmU3ZjM3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMDUtMDMgIE1pa2hhaWwgUG96
ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgUmVtb3Zl
IFdURjo6TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgorCisgICAgICAgIExpc3RSZWZQdHIgd2FzIHVzZWQgb25seSBieSBGb250RmFtaWx5IGNs
YXNzLCBiZXNpZGVzIGl0IHN0cm9uZ2x5IGRlcGVuZGVkCisgICAgICAgIG9uIEZvbnRGYW1pbHkg
Y2xhc3Mgc2VtYW50aWNzIHdoaWNoIG1hZGUgaXQgbm9uLWdlbmVyaWMgYW5kIGluYXBwcm9wcmlh
dGUKKyAgICAgICAgZm9yIGJlaW5nIHByZXNlbnQgaW5zaWRlIFdURi4KKworICAgICAgICBUaGlz
IHBhdGNoIHJlbW92ZXMgV1RGOjpMaXN0UmVmUHRyIGNsYXNzIGFuZCBtb3ZlcyBpdHMgdGhlIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaW50byBGb250RmFtaWx5IGNsYXNzLgorCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52
Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvajoKKyAg
ICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKiB3dGYv
TGlzdFJlZlB0ci5oOiBSZW1vdmVkLgorCiAyMDEzLTA1LTAyICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDA2NDI0MWIuLmUxNDA5MGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTc5LDcgKzc5LDYgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNv
dXJjZS9XVEYvd3RmL0ludDhBcnJheS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmggXAotICAg
IFNvdXJjZS9XVEYvd3RmL0xpc3RSZWZQdHIuaCBcCiAgICAgU291cmNlL1dURi93dGYvTG9ja2Vy
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01ENS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL01E
NS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBy
bwppbmRleCBjZWM2YTRiLi44ODNjODM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8K
KysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC04NCw3ICs4NCw2IEBAIEhFQURFUlMgKz0gXAog
ICAgIEludDMyQXJyYXkuaCBcCiAgICAgSW50OEFycmF5LmggXAogICAgIExpc3RIYXNoU2V0Lmgg
XAotICAgIExpc3RSZWZQdHIuaCBcCiAgICAgTG9ja2VyLmggXAogICAgIE1haW5UaHJlYWQuaCBc
CiAgICAgTWFsbG9jWm9uZVN1cHBvcnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4
IDQzYWI2NDEuLjcxNjMxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYu
dmNwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC04OTUsMTAg
Kzg5NSw2IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKLQkJCVJlbGF0aXZlUGF0aD0iLi5c
d3RmXExpc3RSZWZQdHIuaCIKLQkJCT4KLQkJPC9GaWxlPgotCQk8RmlsZQogCQkJUmVsYXRpdmVQ
YXRoPSIuLlx3dGZcTG9ja2VyLmgiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dU
Ri52Y3hwcm9qCmluZGV4IGUwOGMxM2YuLmFkY2I2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvagpAQCAtMTYwLDcgKzE2MCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcSW50MzJBcnJheS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxJbnQ4
QXJyYXkuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTGlzdEhhc2hTZXQu
aCIgLz4NCi0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTGlzdFJlZlB0ci5oIiAvPg0K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMb2NrZXIuaCIgLz4NCiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcTWFpblRocmVhZC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHd0ZlxNYWxsb2Nab25lU3VwcG9ydC5oIiAvPg0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RGLnZj
eHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwppbmRleCAyNWZmMGVkLi5lMzY2NjBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291
cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBAIC00ODMsOSArNDgzLDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0SGFzaFNldC5oIj4NCiAgICAg
ICA8RmlsdGVyPnd0ZjwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCi0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcTGlzdFJlZlB0ci5oIj4NCi0gICAgICA8RmlsdGVyPnd0ZjwvRmls
dGVyPg0KLSAgICA8L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
TG9ja2VyLmgiPg0KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRl
Pg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI0MjIwMjcu
LmZkZTRkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM5LDcgKzEzOSw2IEBACiAJCUE4QTQ3M0RGMTUxQTgyNUIwMDQxMjNGRiAvKiBJbnQzMkFycmF5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJC
RjE1MUE4MjVBMDA0MTIzRkYgLyogSW50MzJBcnJheS5oICovOyB9OwogCQlBOEE0NzNFMDE1MUE4
MjVCMDA0MTIzRkYgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyQzAxNTFBODI1QTAwNDEyM0ZGIC8q
IEludGVncmFsVHlwZWRBcnJheUJhc2UuaCAqLzsgfTsKIAkJQThBNDczRTExNTFBODI1QjAwNDEy
M0ZGIC8qIExpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzJDMTE1MUE4MjVBMDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCAqLzsg
fTsKLQkJQThBNDczRTIxNTFBODI1QjAwNDEyM0ZGIC8qIExpc3RSZWZQdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkMyMTUxQTgyNUEwMDQx
MjNGRiAvKiBMaXN0UmVmUHRyLmggKi87IH07CiAJCUE4QTQ3M0UzMTUxQTgyNUIwMDQxMjNGRiAv
KiBMb2NrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QTQ3MkMzMTUxQTgyNUEwMDQxMjNGRiAvKiBMb2NrZXIuaCAqLzsgfTsKIAkJQThBNDczRTQx
NTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJDNTE1MUE4MjVBMDA0MTIzRkYgLyogTWFp
blRocmVhZE1hYy5tbSAqLzsgfTsKIAkJQThBNDczRTUxNTFBODI1QjAwNDEyM0ZGIC8qIE1haW5U
aHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBNDcyQzYxNTFBODI1QTAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuY3BwICovOyB9OwpAQCAtNDE1
LDcgKzQxNCw2IEBACiAJCUE4QTQ3MkJGMTUxQTgyNUEwMDQxMjNGRiAvKiBJbnQzMkFycmF5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDMyQXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyQzAxNTFBODI1QTAwNDEyM0ZGIC8qIEludGVncmFs
VHlwZWRBcnJheUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdy
YWxUeXBlZEFycmF5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJD
MTE1MUE4MjVBMDA0MTIzRkYgLyogTGlzdEhhc2hTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTGlzdEhhc2hTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThBNDcyQzIxNTFBODI1QTAwNDEyM0ZGIC8qIExpc3RSZWZQdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGlzdFJlZlB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBOEE0NzJDMzE1MUE4MjVBMDA0MTIzRkYgLyogTG9ja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExvY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJDNTE1MUE4MjVBMDA0MTIzRkYgLyogTWFpblRocmVhZE1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1haW5UaHJlYWRNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkM2MTUxQTgyNUEwMDQxMjNGRiAvKiBNYWluVGhy
ZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1haW5UaHJlYWQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjkwLDcgKzY4OCw2IEBACiAJCQkJ
QThBNDcyQkQxNTFBODI1QTAwNDEyM0ZGIC8qIEludDhBcnJheS5oICovLAogCQkJCUE4QTQ3MkMw
MTUxQTgyNUEwMDQxMjNGRiAvKiBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmggKi8sCiAJCQkJQThB
NDcyQzExNTFBODI1QTAwNDEyM0ZGIC8qIExpc3RIYXNoU2V0LmggKi8sCi0JCQkJQThBNDcyQzIx
NTFBODI1QTAwNDEyM0ZGIC8qIExpc3RSZWZQdHIuaCAqLywKIAkJCQlBOEE0NzJDMzE1MUE4MjVB
MDA0MTIzRkYgLyogTG9ja2VyLmggKi8sCiAJCQkJQThBNDcyQzYxNTFBODI1QTAwNDEyM0ZGIC8q
IE1haW5UaHJlYWQuY3BwICovLAogCQkJCUE4QTQ3MkM3MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWlu
VGhyZWFkLmggKi8sCkBAIC0xMDA0LDcgKzEwMDEsNiBAQAogCQkJCTI2MTQ3QjBBMTVERENDREMw
MEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzNFMDE1MUE4MjVCMDA0MTIzRkYgLyogSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRTExNTFBODI1QjAwNDEyM0ZGIC8qIExpc3RIYXNoU2V0
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEE0NzNFMjE1MUE4MjVCMDA0MTIzRkYgLyogTGlzdFJl
ZlB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRTMxNTFBODI1QjAwNDEyM0ZGIC8qIExv
Y2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRTYxNTFBODI1QjAwNDEyM0ZGIC8qIE1h
aW5UaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0U3MTUxQTgyNUIwMDQxMjNGRiAv
KiBNYWxsb2Nab25lU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGRhMGIzYjUuLmY3NjRlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC00Myw3ICs0Myw2
IEBAIHNldChXVEZfSEVBREVSUwogICAgIEhhc2hUcmFpdHMuaAogICAgIEhleE51bWJlci5oCiAg
ICAgTGlzdEhhc2hTZXQuaAotICAgIExpc3RSZWZQdHIuaAogICAgIExvY2tlci5oCiAgICAgTUQ1
LmgKICAgICBNYWluVGhyZWFkLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQu
aCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRleCBhZDUxNjE0Li41MzMzMDc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9y
d2FyZC5oCkBAIC0yNiw3ICsyNiw2IEBACiBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIEZ1bmN0aW9uOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIExpc3RSZWZQdHI7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duQXJyYXlQ
dHI7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25BcnJheVB0cjsKQEAgLTYwLDcgKzU5LDYgQEAgbmFt
ZXNwYWNlIFdURiB7CiB9CiAKIHVzaW5nIFdURjo6RnVuY3Rpb247Ci11c2luZyBXVEY6Okxpc3RS
ZWZQdHI7CiB1c2luZyBXVEY6Ok93bkFycmF5UHRyOwogdXNpbmcgV1RGOjpPd25QdHI7CiB1c2lu
ZyBXVEY6OlBhc3NPd25BcnJheVB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xpc3RS
ZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL0xpc3RSZWZQdHIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGJhMDYzMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0UmVm
UHRyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAo
QykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaWZuZGVmIFdURl9MaXN0UmVmUHRyX2gKLSNkZWZpbmUgV1RGX0xpc3RSZWZQ
dHJfaAotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAg
IC8vIFNwZWNpYWxpemVkIHZlcnNpb24gb2YgUmVmUHRyIGRlc2dpbmVkIGZvciB1c2UgaW4gc2lu
Z2x5LWxpbmtlZCBsaXN0cy4gCi0gICAgLy8gRGVyZWZzIHRoZSBsaXN0IGl0ZXJhdGl2ZWx5IHRv
IGF2b2lkIHJlY3Vyc2l2ZSBkZXJlZmluZyB0aGF0IGNhbiBvdmVyZmxvdyB0aGUgc3RhY2suCi0g
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIExpc3RSZWZQdHIgOiBwdWJsaWMgUmVmUHRy
PFQ+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIExpc3RSZWZQdHIoKSA6IFJlZlB0cjxUPigpIHt9
Ci0gICAgICAgIExpc3RSZWZQdHIoVCogcHRyKSA6IFJlZlB0cjxUPihwdHIpIHt9Ci0gICAgICAg
IExpc3RSZWZQdHIoY29uc3QgUmVmUHRyPFQ+JiBvKSA6IFJlZlB0cjxUPihvKSB7fQotICAgICAg
ICAvLyBzZWUgY29tbWVudCBpbiBQYXNzUmVmUHRyLmggZm9yIHdoeSB0aGlzIHRha2VzIGNvbnN0
IHJlZmVyZW5jZQotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gTGlzdFJlZlB0cihjb25z
dCBQYXNzUmVmUHRyPFU+JiBvKSA6IFJlZlB0cjxUPihvKSB7fQotICAgICAgICAKLSAgICAgICAg
fkxpc3RSZWZQdHIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBSZWZQdHI8VD4gcmVhcGVyID0g
dGhpcy0+cmVsZWFzZSgpOwotICAgICAgICAgICAgd2hpbGUgKHJlYXBlciAmJiByZWFwZXItPmhh
c09uZVJlZigpKQotICAgICAgICAgICAgICAgIHJlYXBlciA9IHJlYXBlci0+cmVsZWFzZU5leHQo
KTsgLy8gaW1wbGljaXRseSBwcm90ZWN0cyByZWFwZXItPm5leHQsIHRoZW4gZGVyZWZzIHJlYXBl
cgotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBMaXN0UmVmUHRyJiBvcGVyYXRvcj0oVCog
b3B0cikgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvcHRyKTsgcmV0dXJuICp0aGlzOyB9Ci0gICAg
ICAgIExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VD4mIG8pIHsgUmVmUHRyPFQ+
OjpvcGVyYXRvcj0obyk7IHJldHVybiAqdGhpczsgfQotICAgICAgICBMaXN0UmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvKTsg
cmV0dXJuICp0aGlzOyB9Ci0gICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBMaXN0UmVmUHRy
JiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyPFU+JiBvKSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9KG8p
OyByZXR1cm4gKnRoaXM7IH0KLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IExpc3RSZWZQ
dHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFU+JiBvKSB7IFJlZlB0cjxUPjo6b3BlcmF0
b3I9KG8pOyByZXR1cm4gKnRoaXM7IH0KLSAgICB9OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGlubGluZSBUKiBnZXRQdHIoY29uc3QgTGlzdFJlZlB0cjxUPiYgcCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBwLmdldCgpOwotICAgIH0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5n
IFdURjo6TGlzdFJlZlB0cjsKLQotI2VuZGlmIC8vIFdURl9MaXN0UmVmUHRyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0ODQ0YjdiLi4wZGQzNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMt
MDUtMDMgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+
CisKKyAgICAgICAgUmVtb3ZlIFdURjo6TGlzdFJlZlB0ciBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1NTE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kZXJzIENhcmxzc29uLgorCisgICAgICAgIExpc3RSZWZQdHIgd2FzIHVzZWQgb25s
eSBieSBGb250RmFtaWx5IGNsYXNzLCBiZXNpZGVzIGl0IHN0cm9uZ2x5IGRlcGVuZGVkCisgICAg
ICAgIG9uIEZvbnRGYW1pbHkgY2xhc3Mgc2VtYW50aWNzIHdoaWNoIG1hZGUgaXQgbm9uLWdlbmVy
aWMgYW5kIGluYXBwcm9wcmlhdGUKKyAgICAgICAgZm9yIGJlaW5nIHByZXNlbnQgaW5zaWRlIFdU
Ri4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgV1RGOjpMaXN0UmVmUHRyIGNsYXNzIGFu
ZCBtb3ZlcyBpdHMgdGhlIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaW50byBGb250RmFtaWx5IGNs
YXNzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hhbmdlIGluIHRoZSBiZWhhdmlvci4K
KworICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmg6CisgICAgICAgIChGcmFtZVRyZWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuaDoKKyAgICAgICAgKEZvbnRGYW1p
bHkpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhbWlseTo6fkZvbnRGYW1pbHkpOgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTMtMDUtMDMgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFu
LmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiBjYWxsaW5nIFFXZWJGcmFt
ZTo6ZXZhbHVhdGVKYXZhU2NyaXB0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAppbmRleCA0YTY5YjMy
Li41ZWU3MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKQEAgLTkzLDcgKzkzLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBdG9taWNTdHJpbmcgbV9uYW1lOyAvLyBUaGUgYWN0
dWFsIGZyYW1lIG5hbWUgKG1heSBiZSBlbXB0eSkuCiAgICAgICAgIEF0b21pY1N0cmluZyBtX3Vu
aXF1ZU5hbWU7CiAKLSAgICAgICAgLy8gRklYTUU6IHVzZSBMaXN0UmVmUHRyPwogICAgICAgICBS
ZWZQdHI8RnJhbWU+IG1fbmV4dFNpYmxpbmc7CiAgICAgICAgIEZyYW1lKiBtX3ByZXZpb3VzU2li
bGluZzsKICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX2ZpcnN0Q2hpbGQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmgKaW5kZXggYmQ4NjdjZC4uZDgzMWQ4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWls
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1pbHkuaApA
QCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBGb250RmFtaWx5X2gKIAogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL0xpc3RSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgU2hhcmVkRm9udEZhbWlseTsKIGNs
YXNzIEZvbnRGYW1pbHkgewogcHVibGljOgogICAgIEZvbnRGYW1pbHkoKSB7IH0KKyAgICB+Rm9u
dEZhbWlseSgpOwogCiAgICAgdm9pZCBzZXRGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHkpIHsgbV9mYW1pbHkgPSBmYW1pbHk7IH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSgpIGNvbnN0IHsgcmV0dXJuIG1fZmFtaWx5OyB9CkBAIC00OSw3ICs1MCw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9mYW1pbHk7Ci0gICAgTGlzdFJlZlB0cjxT
aGFyZWRGb250RmFtaWx5PiBtX25leHQ7CisgICAgUmVmUHRyPFNoYXJlZEZvbnRGYW1pbHk+IG1f
bmV4dDsKIH07CiAKIGNsYXNzIFNoYXJlZEZvbnRGYW1pbHkgOiBwdWJsaWMgRm9udEZhbWlseSwg
cHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRm9udEZhbWlseT4gewpAQCAtNjYsNiArNjcsMTUgQEAg
cHJpdmF0ZToKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250RmFtaWx5JiwgY29uc3QgRm9udEZh
bWlseSYpOwogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGb250RmFtaWx5JiBhLCBjb25z
dCBGb250RmFtaWx5JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAoraW5saW5lIEZvbnRGYW1p
bHk6On5Gb250RmFtaWx5KCkKK3sKKyAgICAvLyBUaGlzIGNvZGUgY2FtZSBmcm9tIHJlbW92ZWQg
TGlzdFJlZlB0ciB0byBhdm9pZCBwb3NzaWJsZSBvdmVyZmxvd2luZyB0aGUgc3RhY2suCisgICAg
Ly8gRklYTUU6IERvIHdlIHJlYWxseSBuZWVkIGl0PworICAgIFJlZlB0cjxTaGFyZWRGb250RmFt
aWx5PiByZWFwZXIgPSBtX25leHQucmVsZWFzZSgpOworICAgIHdoaWxlIChyZWFwZXIgJiYgcmVh
cGVyLT5oYXNPbmVSZWYoKSkKKyAgICAgICAgcmVhcGVyID0gcmVhcGVyLT5yZWxlYXNlTmV4dCgp
OyAvLyBpbXBsaWNpdGx5IHByb3RlY3RzIHJlYXBlci0+bmV4dCwgdGhlbiBkZXJlZnMgcmVhcGVy
Cit9CisKIGlubGluZSBjb25zdCBGb250RmFtaWx5KiBGb250RmFtaWx5OjpuZXh0KCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9uZXh0LmdldCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>