<?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>6198</bug_id>
          
          <creation_ts>2005-12-22 09:33:52 -0800</creation_ts>
          <short_desc>use RefPtr a few places in RenderText and related classes</short_desc>
          <delta_ts>2005-12-27 10:24:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26381</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-22 09:33:52 -0800</bug_when>
    <thetext> </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26382</commentid>
    <comment_count>1</comment_count>
      <attachid>5222</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-22 09:37:12 -0800</bug_when>
    <thetext>Created attachment 5222
use RefPtr and PassRefPtr a bit

This patch came out of some stuff I had sitting around from the time we fixed
leaks a while back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26383</commentid>
    <comment_count>2</comment_count>
      <attachid>5222</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-22 11:33:33 -0800</bug_when>
    <thetext>Comment on attachment 5222
use RefPtr and PassRefPtr a bit

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26386</commentid>
    <comment_count>3</comment_count>
      <attachid>5222</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-22 13:00:29 -0800</bug_when>
    <thetext>Comment on attachment 5222
use RefPtr and PassRefPtr a bit

ggaren beat me to it again!  I too read this all through and it looked sane.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5222</attachid>
            <date>2005-12-22 09:37:12 -0800</date>
            <delta_ts>2005-12-22 11:33:33 -0800</delta_ts>
            <desc>use RefPtr and PassRefPtr a bit</desc>
            <filename>LeakRelatedPatch.txt</filename>
            <type>text/plain</type>
            <size>23325</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9D
aGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjYKZGlmZiAtcCAtdSAtcjEuMjYgQ2hh
bmdlTG9nCi0tLSBDaGFuZ2VMb2cJMjIgRGVjIDIwMDUgMTY6NTM6NTIgLTAwMDAJMS4yNgorKysg
Q2hhbmdlTG9nCTIyIERlYyAyMDA1IDE3OjM1OjU0IC0wMDAwCkBAIC0xLDUgKzEsNDcgQEAKIDIw
MDUtMTItMjIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5OAorICAgICAgICAgIHVzZSBSZWZQdHIg
YSBmZXcgcGxhY2VzIGluIFJlbmRlclRleHQgYW5kIHJlbGF0ZWQgY2xhc3NlcworCisgICAgICAg
ICoga2h0bWwvaHRtbC9odG1scGFyc2VyLmNwcDoKKyAgICAgICAgKEhUTUxQYXJzZXI6OnBhcnNl
VG9rZW4pOiBVc2UgZ2V0IHNpbmNlIHRleHQgcG9pbnRlciBpcyBSZWZQdHIgbm93LgorICAgICAg
ICAoSFRNTFBhcnNlcjo6dGV4dENyZWF0ZUVycm9yQ2hlY2spOiBEaXR0by4KKyAgICAgICAgKEhU
TUxQYXJzZXI6OmNvbW1lbnRDcmVhdGVFcnJvckNoZWNrKTogRGl0dG8uCisgICAgICAgIChIVE1M
UGFyc2VyOjpoYW5kbGVJc2luZGV4KTogR2V0IHJpZCBvZiBleHBsaWNpdCBkZXJlZiwgbm8gbG9u
Z2VyIG5lZWRlZC4KKworICAgICAgICAqIGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5oOiBNYWtl
IGF0dHJzIGFuZCB0ZXh0IGZpZWxkcyBvZiBUb2tlbiB1c2UKKyAgICAgICAgUmVmUHRyLiBBbHNv
IHN0b3AgdXNpbmcgYml0IGZpZWxkcyBmb3IgdGhlIGZsYWdzIGluIFRva2VuIC0tIHRoZXJlJ3Mg
bm8KKyAgICAgICAgZXZpZGVuY2UgdGhpcyBtYWtlcyB0aGluZ3MgZmFzdGVyLgorICAgICAgICAq
IGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5jcHA6CisgICAgICAgIChraHRtbDo6VG9rZW46OmFk
ZEF0dHJpYnV0ZSk6IEdldCByaWQgb2YgZXhwbGljaXQgcmVmLCBubyBsb25nZXIgbmVlZGVkLgor
ICAgICAgICAoa2h0bWw6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUb2tlbik6IERpdHRvLgorCisg
ICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ibG9jay5jcHA6IChraHRtbDo6UmVuZGVy
QmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyKToKKyAgICAgICAgVXNlIGEgUGFzc1JlZlB0ci4KKwor
ICAgICAgICAqIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfdGV4dC5jcHA6CisgICAgICAgIChraHRt
bDo6UmVuZGVyVGV4dDo6cHJldmlvdXNPZmZzZXQpOiBVc2UgZ2V0IHNpbmNlIHN0ciBwb2ludGVy
IGlzIFJlZlB0ciBub3cuCisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dDo6bmV4dE9mZnNldCk6
IERpdHRvLgorICAgICAgICAoa2h0bWw6OlJlbmRlclRleHQ6OlJlbmRlclRleHQpOiBHZXQgcmlk
IG9mIGV4cGxpY2l0IHJlZiwgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgQ2hhbmdlIHRvIHVz
ZSBpbml0aWFsaXplciBzeW50YXggaW5zdGVhZCBvZiBhc3NpZ25tZW50LgorICAgICAgICAoa2h0
bWw6OlJlbmRlclRleHQ6OnNldFN0eWxlKTogVXNlIFBhc3NSZWZQdHIuCisgICAgICAgIChraHRt
bDo6UmVuZGVyVGV4dDo6b3JpZ2luYWxTdHJpbmcpOiBEaXR0by4KKyAgICAgICAgKGtodG1sOjpS
ZW5kZXJUZXh0OjpzZXRUZXh0KTogR2V0IHJpZCBvZiBleHBsaWNpdCByZWYsIG5vIGxvbmdlciBu
ZWVkZWQuCisgICAgICAgIChraHRtbDo6UmVuZGVyVGV4dEZyYWdtZW50OjpSZW5kZXJUZXh0RnJh
Z21lbnQpOiBHZXQgcmlkIG9mIGV4cGxpY2l0IHJlZiwKKyAgICAgICAgbm8gbG9uZ2VyIG5lZWRl
ZC4KKyAgICAgICAgKGtodG1sOjpSZW5kZXJUZXh0RnJhZ21lbnQ6Om9yaWdpbmFsU3RyaW5nKTog
VXNlIFBhc3NSZWZQdHIuCisKKyAgICAgICAgKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQu
aDogQ2hhbmdlIFNPRlRfSFlQRU4gdG8gYmUgYSBjb25zdGFudCByYXRoZXIgdGhhbgorICAgICAg
ICBhIHByZXByb2Nlc3NvciBtYWNyby4gVXNlZCBQYXNzUmVmUHRyIGluIGEgY291cGxlIHBsYWNl
cy4gTWFkZSBSZW5kZXJUZXh0J3Mgc3RyCisgICAgICAgIGFuZCBSZW5kZXJUZXh0RnJhZ21lbnQn
cyBtX2dlbmVyYXRlZENvbnRlbnRTdHIgYmUgUmVmUHRyLgorCisgICAgICAgICoga2h0bWwvaHRt
bC9odG1sX2lubGluZWltcGwuY3BwOiBBZGQgYSBuZXdseS1uZWVkZWQgaW5jbHVkZSwgc29ydCB0
aGVtLgorICAgICAgICAqIGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwOiBBZGQgYSBuZXdseS1u
ZWVkZWQgaW5jbHVkZS4KKworMjAwNS0xMi0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KIAogICAgICAgICAtIGZpeCBodHRwOi8v
YnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTYxOTMKSW5kZXg6IGtodG1s
L2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNTUKZGlmZiAtcCAtdSAtcjEuNTUga2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3Bw
Ci0tLSBraHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5jcHAJOCBEZWMgMjAwNSAwODo0MDoyNiAt
MDAwMAkxLjU1CisrKyBraHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5jcHAJMjIgRGVjIDIwMDUg
MTc6MzY6MTAgLTAwMDAKQEAgLTI1LDIwICsyNSwyMCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiaHRtbC9odG1sX2lubGluZWltcGwuaCIKLSNpbmNsdWRlICJodG1sL2h0bWxf
aW1hZ2VpbXBsLmgiCi0jaW5jbHVkZSAiaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oIgogCi0jaW5j
bHVkZSAia2h0bWx2aWV3LmgiCi0jaW5jbHVkZSAia2h0bWxfcGFydC5oIgogI2luY2x1ZGUgImNz
cy9jc3NoZWxwZXIuaCIKICNpbmNsdWRlICJjc3MvY3NzcHJvcGVydGllcy5oIgotI2luY2x1ZGUg
ImNzcy9jc3N2YWx1ZXMuaCIKICNpbmNsdWRlICJjc3MvY3Nzc3R5bGVzZWxlY3Rvci5oIgotI2lu
Y2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKLSNpbmNsdWRlICJ4bWwvRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgImNzcy9jc3N2YWx1ZXMuaCIKKyNpbmNsdWRlICJodG1sL2h0bWxfZG9jdW1l
bnRpbXBsLmgiCisjaW5jbHVkZSAiaHRtbC9odG1sX2ltYWdlaW1wbC5oIgorI2luY2x1ZGUgImto
dG1sX3BhcnQuaCIKKyNpbmNsdWRlICJraHRtbHZpZXcuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcv
cmVuZGVyX2JyLmgiCisjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl9mbG93LmgiCiAjaW5jbHVk
ZSAicmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5oIgotCisjaW5jbHVkZSAieG1sL0V2ZW50TmFtZXMu
aCIKKyNpbmNsdWRlICJ4bWwvZG9tMl9ldmVudHNpbXBsLmgiCiAjaW5jbHVkZSA8a2RlYnVnLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBraHRtbDsKSW5kZXg6IGtodG1sL2h0bWwvaHRtbHBhcnNlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1s
cGFyc2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjYKZGlmZiAtcCAtdSAtcjEuMTI2
IGtodG1sL2h0bWwvaHRtbHBhcnNlci5jcHAKLS0tIGtodG1sL2h0bWwvaHRtbHBhcnNlci5jcHAJ
MjAgRGVjIDIwMDUgMDk6MTY6NDUgLTAwMDAJMS4xMjYKKysrIGtodG1sL2h0bWwvaHRtbHBhcnNl
ci5jcHAJMjIgRGVjIDIwMDUgMTc6MzY6MTEgLTAwMDAKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lk
IEhUTUxQYXJzZXI6OnBhcnNlVG9rZW4oVG9rZW4gKnQpCiAgICAgLy8gc2V0IGF0dHJpYnV0ZXMK
ICAgICBpZiAobi0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIEhUTUxFbGVtZW50SW1wbCAq
ZSA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50SW1wbCo+KG4pOwotICAgICAgICBlLT5zZXRBdHRy
aWJ1dGVNYXAodC0+YXR0cnMpOworICAgICAgICBlLT5zZXRBdHRyaWJ1dGVNYXAodC0+YXR0cnMu
Z2V0KCkpOwogCiAgICAgICAgIC8vIHRha2UgY2FyZSBvZiBvcHRpb25hbCBjbG9zZSB0YWdzCiAg
ICAgICAgIGlmIChlLT5lbmRUYWdSZXF1aXJlbWVudCgpID09IFRhZ1N0YXR1c09wdGlvbmFsKQpA
QCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgSFRNTFBhcnNlcjo6cGFyc2VUb2tlbihUb2tlbiAqdCkK
ICAgICAgICAgICAgIEVsZW1lbnRJbXBsKiBlID0gc3RhdGljX2Nhc3Q8RWxlbWVudEltcGwqPihu
KTsKICAgICAgICAgICAgIGUtPnNldEF0dHJpYnV0ZU1hcCgwKTsKICAgICAgICAgfQotICAgICAg
ICAgICAgCisKICAgICAgICAgaWYgKG1hcCA9PSBuKQogICAgICAgICAgICAgbWFwID0gMDsKIApA
QCAtNjAxLDE0ICs2MDEsMTQgQEAgdHlwZWRlZiBIYXNoTWFwPERPTVN0cmluZ0ltcGwgKiwgQ3Jl
YXRlRQogCiBib29sIEhUTUxQYXJzZXI6OnRleHRDcmVhdGVFcnJvckNoZWNrKFRva2VuKiB0LCBO
b2RlSW1wbComIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSBuZXcgVGV4dEltcGwoZG9jdW1lbnQs
IHQtPnRleHQpOworICAgIHJlc3VsdCA9IG5ldyBUZXh0SW1wbChkb2N1bWVudCwgdC0+dGV4dC5n
ZXQoKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEhUTUxQYXJzZXI6OmNvbW1lbnRD
cmVhdGVFcnJvckNoZWNrKFRva2VuKiB0LCBOb2RlSW1wbComIHJlc3VsdCkKIHsKICAgICBpZiAo
aW5jbHVkZXNDb21tZW50c0luRE9NKQotICAgICAgICByZXN1bHQgPSBuZXcgQ29tbWVudEltcGwo
ZG9jdW1lbnQsIHQtPnRleHQpOworICAgICAgICByZXN1bHQgPSBuZXcgQ29tbWVudEltcGwoZG9j
dW1lbnQsIHQtPnRleHQuZ2V0KCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTI5Niw4
ICsxMjk2LDcgQEAgTm9kZUltcGwqIEhUTUxQYXJzZXI6OmhhbmRsZUlzaW5kZXgoVG9rZQogewog
ICAgIE5vZGVJbXBsKiBuID0gbmV3IEhUTUxEaXZFbGVtZW50SW1wbChkb2N1bWVudCk7CiAKLSAg
ICBOYW1lZE1hcHBlZEF0dHJNYXBJbXBsKiBhdHRycyA9IHQtPmF0dHJzOwotICAgIHQtPmF0dHJz
ID0gMDsKKyAgICBOYW1lZE1hcHBlZEF0dHJNYXBJbXBsKiBhdHRycyA9IHQtPmF0dHJzLmdldCgp
OwogCiAgICAgUmVmUHRyPEhUTUxJc0luZGV4RWxlbWVudEltcGw+IGlzSW5kZXggPSBuZXcgSFRN
TElzSW5kZXhFbGVtZW50SW1wbChkb2N1bWVudCwgZm9ybSk7CiAgICAgaXNJbmRleC0+c2V0QXR0
cmlidXRlTWFwKGF0dHJzKTsKQEAgLTEzMDcsNyArMTMwNiw3IEBAIE5vZGVJbXBsKiBIVE1MUGFy
c2VyOjpoYW5kbGVJc2luZGV4KFRva2UKICAgICBpZiAoYXR0cnMpIHsKICAgICAgICAgaWYgKEF0
dHJpYnV0ZUltcGwgKmEgPSBhdHRycy0+Z2V0QXR0cmlidXRlSXRlbShwcm9tcHRBdHRyKSkKICAg
ICAgICAgICAgIHRleHQgPSBhLT52YWx1ZSgpLmRvbVN0cmluZygpICsgIiAiOwotICAgICAgICBh
dHRycy0+ZGVyZWYoKTsKKyAgICAgICAgdC0+YXR0cnMgPSAwOwogICAgIH0KIAogICAgIG4tPmFk
ZENoaWxkKG5ldyBIVE1MSFJFbGVtZW50SW1wbChkb2N1bWVudCkpOwpJbmRleDoga2h0bWwvaHRt
bC9odG1sdG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEy
OApkaWZmIC1wIC11IC1yMS4xMjgga2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAotLS0ga2h0
bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAkyMiBEZWMgMjAwNSAxNjo1MDowNyAtMDAwMAkxLjEy
OAorKysga2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcAkyMiBEZWMgMjAwNSAxNzozNjoxMyAt
MDAwMApAQCAtMTQyLDEwICsxNDIsOCBAQCB2b2lkIFRva2VuOjphZGRBdHRyaWJ1dGUoRG9jdW1l
bnRJbXBsKiBkCiAgICAgQXR0cmlidXRlSW1wbCogYSA9IDA7CiAgICAgaWYgKCFhdHRyTmFtZS5p
c0VtcHR5KCkgJiYgYXR0ck5hbWUgIT0gIi8iKSB7CiAgICAgICAgIGEgPSBuZXcgTWFwcGVkQXR0
cmlidXRlSW1wbChhdHRyTmFtZSwgdik7Ci0gICAgICAgIGlmICghYXR0cnMpIHsKKyAgICAgICAg
aWYgKCFhdHRycykKICAgICAgICAgICAgIGF0dHJzID0gbmV3IE5hbWVkTWFwcGVkQXR0ck1hcElt
cGwoMCk7Ci0gICAgICAgICAgICBhdHRycy0+cmVmKCk7Ci0gICAgICAgIH0KICAgICAgICAgYXR0
cnMtPmluc2VydEF0dHJpYnV0ZShhKTsKICAgICB9CiB9CkBAIC0xNjgxLDcgKzE2NzksNiBAQCB2
b2lkIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NUb2tlbigpCiAKICNlbmRpZgogICAgICAgICBjdXJy
VG9rZW4udGV4dCA9IG5ldyBET01TdHJpbmdJbXBsKCBidWZmZXIsIGRlc3QgLSBidWZmZXIgKTsK
LSAgICAgICAgY3VyclRva2VuLnRleHQtPnJlZigpOwogICAgICAgICBpZiAoY3VyclRva2VuLnRh
Z05hbWUgIT0gY29tbWVudEF0b20pCiAgICAgICAgICAgICBjdXJyVG9rZW4udGFnTmFtZSA9IHRl
eHRBdG9tOwogICAgIH0KSW5kZXg6IGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXplci5o
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ3CmRpZmYgLXAgLXUgLXIxLjQ3IGtodG1sL2h0bWwv
aHRtbHRva2VuaXplci5oCi0tLSBraHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuaAkyMSBOb3YgMjAw
NSAwMToyMDoxNSAtMDAwMAkxLjQ3CisrKyBraHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuaAkyMiBE
ZWMgMjAwNSAxNzozNjoxMyAtMDAwMApAQCAtNjQsNDcgKzY0LDI3IEBAIGNsYXNzIENhY2hlZFNj
cmlwdDsKIGNsYXNzIFRva2VuCiB7CiBwdWJsaWM6Ci0gICAgVG9rZW4oKSB7Ci0gICAgICAgIGF0
dHJzID0gMDsKLSAgICAgICAgdGV4dCA9IDA7Ci0gICAgICAgIGJlZ2luVGFnID0gdHJ1ZTsKLSAg
ICAgICAgZmxhdCA9IGZhbHNlOwotICAgICAgICAvL3FEZWJ1ZygibmV3IHRva2VuLCBjcmVhdGlu
ZyAlMDhseCIsIGF0dHJzKTsKLSAgICB9CisgICAgVG9rZW4oKSA6IGJlZ2luVGFnKHRydWUpLCBm
bGF0KGZhbHNlKSB7IH0KIAotICAgIH5Ub2tlbigpIHsKLSAgICAgICAgaWYgKGF0dHJzKSBhdHRy
cy0+ZGVyZWYoKTsKLSAgICAgICAgaWYgKHRleHQpIHRleHQtPmRlcmVmKCk7Ci0gICAgfQotCi0g
ICAgdm9pZCBhZGRBdHRyaWJ1dGUoRE9NOjpEb2N1bWVudEltcGwqIGRvYywgY29uc3QgRE9NOjpB
dG9taWNTdHJpbmcmIGF0dHJOYW1lLCBjb25zdCBET006OkF0b21pY1N0cmluZyYgdik7CisgICAg
dm9pZCBhZGRBdHRyaWJ1dGUoRE9NOjpEb2N1bWVudEltcGwqLCBjb25zdCBET006OkF0b21pY1N0
cmluZyYgYXR0ck5hbWUsIGNvbnN0IERPTTo6QXRvbWljU3RyaW5nJiB2KTsKIAogICAgIGJvb2wg
aXNPcGVuVGFnKGNvbnN0IERPTTo6UXVhbGlmaWVkTmFtZSYgZnVsbE5hbWUpIGNvbnN0IHsgcmV0
dXJuIGJlZ2luVGFnICYmIGZ1bGxOYW1lLmxvY2FsTmFtZSgpID09IHRhZ05hbWU7IH0KICAgICBi
b29sIGlzQ2xvc2VUYWcoY29uc3QgRE9NOjpRdWFsaWZpZWROYW1lJiBmdWxsTmFtZSkgY29uc3Qg
eyByZXR1cm4gIWJlZ2luVGFnICYmIGZ1bGxOYW1lLmxvY2FsTmFtZSgpID09IHRhZ05hbWU7IH0K
IAogICAgIHZvaWQgcmVzZXQoKQogICAgIHsKLSAgICAgICAgaWYgKGF0dHJzKSB7Ci0gICAgICAg
ICAgICBhdHRycy0+ZGVyZWYoKTsKLSAgICAgICAgICAgIGF0dHJzID0gMDsKLSAgICAgICAgfQot
ICAgICAgICAKKyAgICAgICAgYXR0cnMgPSAwOworICAgICAgICB0ZXh0ID0gMDsgICAgICAgIAog
ICAgICAgICB0YWdOYW1lID0gRE9NOjpudWxsQXRvbTsKLSAgICAgICAgCi0gICAgICAgIGlmICh0
ZXh0KSB7Ci0gICAgICAgICAgICB0ZXh0LT5kZXJlZigpOwotICAgICAgICAgICAgdGV4dCA9IDA7
Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGJlZ2luVGFnID0gdHJ1ZTsKICAgICAgICAg
ZmxhdCA9IGZhbHNlOwogICAgIH0KIAotICAgIERPTTo6TmFtZWRNYXBwZWRBdHRyTWFwSW1wbCog
YXR0cnM7Ci0gICAgRE9NOjpET01TdHJpbmdJbXBsKiB0ZXh0OworICAgIFJlZlB0cjxET006Ok5h
bWVkTWFwcGVkQXR0ck1hcEltcGw+IGF0dHJzOworICAgIFJlZlB0cjxET006OkRPTVN0cmluZ0lt
cGw+IHRleHQ7CiAgICAgRE9NOjpBdG9taWNTdHJpbmcgdGFnTmFtZTsKLSAgICBib29sIGJlZ2lu
VGFnIDogMTsKLSAgICBib29sIGZsYXQgOiAxOworICAgIGJvb2wgYmVnaW5UYWc7CisgICAgYm9v
bCBmbGF0OwogfTsKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDoga2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9ibG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ibG9jay5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMjIwCmRpZmYgLXAgLXUgLXIxLjIyMCBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Jsb2NrLmNw
cAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9ibG9jay5jcHAJMTkgRGVjIDIwMDUgMTk6NDE6
MzggLTAwMDAJMS4yMjAKKysrIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfYmxvY2suY3BwCTIyIERl
YyAyMDA1IDE3OjM2OjE2IC0wMDAwCkBAIC0zMzQ3LDcgKzMzNDcsNyBAQCB2b2lkIFJlbmRlckJs
b2NrOjp1cGRhdGVGaXJzdExldHRlcigpCiAgICAgICAgIC8vIFRoZSBvcmlnaW5hbCBzdHJpbmcg
aXMgZ29pbmcgdG8gYmUgZWl0aGVyIGEgZ2VuZXJhdGVkIGNvbnRlbnQgc3RyaW5nIG9yIGEgRE9N
IG5vZGUncwogICAgICAgICAvLyBzdHJpbmcuICBXZSB3YW50IHRoZSBvcmlnaW5hbCBzdHJpbmcg
YmVmb3JlIGl0IGdvdCB0cmFuc2Zvcm1lZCBpbiBjYXNlIGZpcnN0LWxldHRlciBoYXMKICAgICAg
ICAgLy8gbm8gdGV4dC10cmFuc2Zvcm0gb3IgYSBkaWZmZXJlbnQgdGV4dC10cmFuc2Zvcm0gYXBw
bGllZCB0byBpdC4KLSAgICAgICAgUmVmUHRyPERPTVN0cmluZ0ltcGw+IG9sZFRleHQgPSB0ZXh0
T2JqLT5vcmlnaW5hbFN0cmluZygpOworICAgICAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0ltcGw+
IG9sZFRleHQgPSB0ZXh0T2JqLT5vcmlnaW5hbFN0cmluZygpOwogICAgICAgICBLSFRNTEFzc2Vy
dChvbGRUZXh0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChvbGRUZXh0ICYmIG9sZFRleHQtPmwg
PiAwKSB7CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfdGV4dC5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjEzCmRpZmYgLXAgLXUgLXIxLjIxMyBraHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX3RleHQuY3BwCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3RleHQu
Y3BwCTE5IERlYyAyMDA1IDE5OjUyOjUwIC0wMDAwCTEuMjEzCisrKyBraHRtbC9yZW5kZXJpbmcv
cmVuZGVyX3RleHQuY3BwCTIyIERlYyAyMDA1IDE3OjM2OjE3IC0wMDAwCkBAIC02NzEsMzIgKzY3
MSwzMiBAQCB1bnNpZ25lZCBJbmxpbmVUZXh0Qm94OjpjYXJldE1heFJlbmRlcmVkCiAgICAgcmV0
dXJuIG1fc3RhcnQgKyBtX2xlbjsKIH0KIAotc3RhdGljIFVCcmVha0l0ZXJhdG9yICpnZXRDaGFy
YWN0ZXJCcmVha0l0ZXJhdG9yKGNvbnN0IERPTVN0cmluZ0ltcGwgKmkpCitzdGF0aWMgVUJyZWFr
SXRlcmF0b3IqIGdldENoYXJhY3RlckJyZWFrSXRlcmF0b3IoY29uc3QgRE9NU3RyaW5nSW1wbCog
aSkKIHsKLSAgICAvLyBUaGUgbG9jYWxlIGlzIGN1cnJlbnRseSBpZ25vcmVkIHdoZW4gZGV0ZXJt
aW5pbmcgY2hhcmFjdGVyIGNsdXN0ZXIgYnJlYWtzLiAgVGhpcyBtYXkgY2hhbmdlCi0gICAgLy8g
aW4gdGhlIGZ1dHVyZSAoYWNjb3JkaW5nIHRvIERlYm9yYWggR29sZHNtaXRoKS4KKyAgICAvLyBU
aGUgbG9jYWxlIGlzIGN1cnJlbnRseSBpZ25vcmVkIHdoZW4gZGV0ZXJtaW5pbmcgY2hhcmFjdGVy
IGNsdXN0ZXIgYnJlYWtzLgorICAgIC8vIFRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLCBh
Y2NvcmRpbmcgdG8gRGVib3JhaCBHb2xkc21pdGguCiAgICAgc3RhdGljIGJvb2wgY3JlYXRlZEl0
ZXJhdG9yID0gZmFsc2U7Ci0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9yICppdGVyYXRvcjsKKyAg
ICBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yOwogICAgIFVFcnJvckNvZGUgc3RhdHVz
OwogICAgIGlmICghY3JlYXRlZEl0ZXJhdG9yKSB7CiAgICAgICAgIHN0YXR1cyA9IFVfWkVST19F
UlJPUjsKLSAgICAgICAgaXRlcmF0b3IgPSB1YnJrX29wZW4oVUJSS19DSEFSQUNURVIsICJlbl91
cyIsIE5VTEwsIDAsICZzdGF0dXMpOworICAgICAgICBpdGVyYXRvciA9IHVicmtfb3BlbihVQlJL
X0NIQVJBQ1RFUiwgImVuX3VzIiwgMCwgMCwgJnN0YXR1cyk7CiAgICAgICAgIGNyZWF0ZWRJdGVy
YXRvciA9IHRydWU7CiAgICAgfQogICAgIGlmICghaXRlcmF0b3IpCi0gICAgICAgIHJldHVybiBO
VUxMOworICAgICAgICByZXR1cm4gMDsKIAogICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKICAg
ICB1YnJrX3NldFRleHQoaXRlcmF0b3IsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIgKj4o
aS0+cyksIGktPmwsICZzdGF0dXMpOwogICAgIGlmIChzdGF0dXMgIT0gVV9aRVJPX0VSUk9SKQot
ICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICByZXR1cm4gaXRl
cmF0b3I7CiB9CiAKLWludCBSZW5kZXJUZXh0OjpwcmV2aW91c09mZnNldCAoaW50IGN1cnJlbnQp
IGNvbnN0CitpbnQgUmVuZGVyVGV4dDo6cHJldmlvdXNPZmZzZXQoaW50IGN1cnJlbnQpIGNvbnN0
CiB7Ci0gICAgVUJyZWFrSXRlcmF0b3IgKml0ZXJhdG9yID0gZ2V0Q2hhcmFjdGVyQnJlYWtJdGVy
YXRvcihzdHIpOworICAgIFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvciA9IGdldENoYXJhY3RlckJy
ZWFrSXRlcmF0b3Ioc3RyLmdldCgpKTsKICAgICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICByZXR1
cm4gY3VycmVudCAtIDE7CiAKQEAgLTcwNyw5ICs3MDcsOSBAQCBpbnQgUmVuZGVyVGV4dDo6cHJl
dmlvdXNPZmZzZXQgKGludCBjdXJyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotaW50IFJlbmRl
clRleHQ6Om5leHRPZmZzZXQgKGludCBjdXJyZW50KSBjb25zdAoraW50IFJlbmRlclRleHQ6Om5l
eHRPZmZzZXQoaW50IGN1cnJlbnQpIGNvbnN0CiB7Ci0gICAgVUJyZWFrSXRlcmF0b3IgKml0ZXJh
dG9yID0gZ2V0Q2hhcmFjdGVyQnJlYWtJdGVyYXRvcihzdHIpOworICAgIFVCcmVha0l0ZXJhdG9y
KiBpdGVyYXRvciA9IGdldENoYXJhY3RlckJyZWFrSXRlcmF0b3Ioc3RyLmdldCgpKTsKICAgICBp
ZiAoIWl0ZXJhdG9yKQogICAgICAgICByZXR1cm4gY3VycmVudCArIDE7CiAgICAgCkBAIC03NjAs
MzMgKzc2MCwxNiBAQCBpbnQgSW5saW5lVGV4dEJveDo6cG9zaXRpb25Gb3JPZmZzZXQoaW50CiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlbmRlclRleHQ6OlJlbmRlclRleHQo
RE9NOjpOb2RlSW1wbCogbm9kZSwgRE9NU3RyaW5nSW1wbCAqX3N0cikKLSAgICA6IFJlbmRlck9i
amVjdChub2RlKSwgbV9saW5lc0RpcnR5KGZhbHNlKSwgbV9jb250YWluc1JldmVyc2VkVGV4dChm
YWxzZSkKKyAgICA6IFJlbmRlck9iamVjdChub2RlKSwgc3RyKF9zdHIpLCBtX2ZpcnN0VGV4dEJv
eCgwKSwgbV9sYXN0VGV4dEJveCgwKQorICAgICwgbV9taW5XaWR0aCgtMSksIG1fbWF4V2lkdGgo
LTEpLCBtX3NlbGVjdGlvblN0YXRlKFNlbGVjdGlvbk5vbmUpCisgICAgLCBtX2xpbmVzRGlydHko
ZmFsc2UpLCBtX2NvbnRhaW5zUmV2ZXJzZWRUZXh0KGZhbHNlKQorICAgICwgbV9hbGxBc2NpaUNo
ZWNrZWQoZmFsc2UpLCBtX2FsbEFzY2lpKGZhbHNlKQorICAgICwgbV9tb25vc3BhY2VDaGFyYWN0
ZXJXaWR0aCgwKQogewotICAgIC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKLSAgICBz
ZXRSZW5kZXJUZXh0KCk7ICAgLy8gb3VyIG9iamVjdCBpbmhlcml0cyBmcm9tIFJlbmRlclRleHQK
LQotICAgIG1fbWluV2lkdGggPSAtMTsKLSAgICBtX21heFdpZHRoID0gLTE7Ci0KLSAgICBtX21v
bm9zcGFjZUNoYXJhY3RlcldpZHRoID0gMDsKLSAgICBtX2FsbEFzY2lpQ2hlY2tlZCA9IGZhbHNl
OwotICAgIG1fYWxsQXNjaWkgPSBmYWxzZTsKLQotICAgIHN0ciA9IF9zdHI7Ci0gICAgaWYgKHN0
cikgeworICAgIHNldFJlbmRlclRleHQoKTsKKyAgICBpZiAoc3RyKQogICAgICAgICBzdHIgPSBz
dHItPnJlcGxhY2UoJ1xcJywgYmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpKTsKLSAgICAgICAg
c3RyLT5yZWYoKTsKLSAgICB9CiAgICAgS0hUTUxBc3NlcnQoIXN0ciB8fCAhc3RyLT5sIHx8IHN0
ci0+cyk7Ci0KLSAgICBtX2ZpcnN0VGV4dEJveCA9IG1fbGFzdFRleHRCb3ggPSAwOwotICAgIAot
ICAgIG1fc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25Ob25lOwotCi0jaWZkZWYgREVCVUdfTEFZ
T1VUCi0gICAgUUNvbnN0U3RyaW5nIGNzdHIoc3RyLT5zLCBzdHItPmwpOwotICAgIGtkRGVidWco
IDYwNDAgKSA8PCAiUmVuZGVyVGV4dCBjdHIoICI8PCBjc3RyLnFzdHJpbmcoKS5sZW5ndGgoKSA8
PCAiICkgICciIDw8IGNzdHIucXN0cmluZygpIDw8ICInIiA8PCBlbmRsOwotI2VuZGlmCiB9CiAK
IHZvaWQgUmVuZGVyVGV4dDo6c2V0U3R5bGUoUmVuZGVyU3R5bGUgKl9zdHlsZSkKQEAgLTc5OCw3
ICs3ODEsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFN0eWxlKFJlbmRlclN0eWxlICpfCiAgICAg
ICAgIFJlbmRlck9iamVjdDo6c2V0U3R5bGUoIF9zdHlsZSApOwogCiAgICAgICAgIGlmIChuZWVk
VG9UcmFuc2Zvcm1UZXh0KSB7Ci0gICAgICAgICAgICBSZWZQdHI8RE9NU3RyaW5nSW1wbD4gdGV4
dFRvVHJhbnNmb3JtID0gb3JpZ2luYWxTdHJpbmcoKTsKKyAgICAgICAgICAgIFBhc3NSZWZQdHI8
RE9NU3RyaW5nSW1wbD4gdGV4dFRvVHJhbnNmb3JtID0gb3JpZ2luYWxTdHJpbmcoKTsKICAgICAg
ICAgICAgIGlmICh0ZXh0VG9UcmFuc2Zvcm0pCiAgICAgICAgICAgICAgICAgc2V0VGV4dCh0ZXh0
VG9UcmFuc2Zvcm0uZ2V0KCksIHRydWUpOwogICAgICAgICB9CkBAIC04MDgsMTEgKzc5MSw2IEBA
IHZvaWQgUmVuZGVyVGV4dDo6c2V0U3R5bGUoUmVuZGVyU3R5bGUgKl8KICAgICB9CiB9CiAKLVJl
bmRlclRleHQ6On5SZW5kZXJUZXh0KCkKLXsKLSAgICBpZihzdHIpIHN0ci0+ZGVyZWYoKTsKLX0K
LQogdm9pZCBSZW5kZXJUZXh0OjpkZXN0cm95KCkKIHsKICAgICBpZiAoIWRvY3VtZW50QmVpbmdE
ZXN0cm95ZWQoKSkgewpAQCAtODkxLDkgKzg2OSw5IEBAIGJvb2wgUmVuZGVyVGV4dDo6aXNUZXh0
RnJhZ21lbnQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPERPTVN0cmlu
Z0ltcGw+IFJlbmRlclRleHQ6Om9yaWdpbmFsU3RyaW5nKCkgY29uc3QKK1Bhc3NSZWZQdHI8RE9N
U3RyaW5nSW1wbD4gUmVuZGVyVGV4dDo6b3JpZ2luYWxTdHJpbmcoKSBjb25zdAogewotICAgIHJl
dHVybiBlbGVtZW50KCkgPyBSZWZQdHI8RE9NU3RyaW5nSW1wbD4oZWxlbWVudCgpLT5zdHJpbmco
KSkgOiBSZWZQdHI8RE9NU3RyaW5nSW1wbD4oKTsKKyAgICByZXR1cm4gcGFzcyhlbGVtZW50KCkg
PyBlbGVtZW50KCktPnN0cmluZygpIDogMCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1
dGVSZWN0cyhRVmFsdWVMaXN0PFFSZWN0PiYgcmVjdHMsIGludCBfdHgsIGludCBfdHkpCkBAIC0x
MTAwLDE2ICsxMDc4LDEwIEBAIFFSZWN0IFJlbmRlclRleHQ6OmNhcmV0UmVjdChpbnQgb2Zmc2V0
LCAKIAogdm9pZCBSZW5kZXJUZXh0Ojpwb3NPZkNoYXIoaW50IGNociwgaW50ICZ4LCBpbnQgJnkp
CiB7Ci0gICAgYWJzb2x1dGVQb3NpdGlvbiggeCwgeSwgZmFsc2UgKTsKLQotICAgIC8vaWYoIGNo
ciA+IChpbnQpIHN0ci0+bCApCi0gICAgLy9jaHIgPSBzdHItPmw7CisgICAgYWJzb2x1dGVQb3Np
dGlvbih4LCB5LCBmYWxzZSk7CiAKICAgICBpbnQgcG9zOwotICAgIElubGluZVRleHRCb3ggKiBz
ID0gZmluZE5leHRJbmxpbmVUZXh0Qm94KCBjaHIsIHBvcyApOwotCi0gICAgaWYgKCBzICkKLSAg
ICB7CisgICAgaWYgKElubGluZVRleHRCb3gqIHMgPSBmaW5kTmV4dElubGluZVRleHRCb3goY2hy
LCBwb3MpKSB7CiAgICAgICAgIC8vIHMgaXMgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgY2hhcmFj
dGVyCiAgICAgICAgIHggKz0gcy0+bV94OyAvLyB0aGlzIGlzIHRoZSB4IG9mIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIGxpbmUsIGJ1dCBpdCdzIGdvb2QgZW5vdWdoIGZvciBub3cKICAgICAgICAgeSAr
PSBzLT5tX3k7CkBAIC0xNTc2LDcgKzE1NDgsNiBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFRleHQo
RE9NU3RyaW5nSW1wbCAqCiAgICAgICAgICAgICAgICAgZGVmYXVsdDo7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KLSAgICAgICAgc3RyLT5yZWYoKTsKICAgICB9CiAKICAgICBjYWNoZVdpZHRo
cygpOwpAQCAtMTgyMiwyOCArMTc5MywxNCBAQCBJbmxpbmVCb3ggKlJlbmRlclRleHQ6OmlubGlu
ZUJveChpbnQgb2ZmCiAgICAgcmV0dXJuIDA7CiB9CiAKLVJlbmRlclRleHRGcmFnbWVudDo6UmVu
ZGVyVGV4dEZyYWdtZW50KERPTTo6Tm9kZUltcGwqIF9ub2RlLCBET006OkRPTVN0cmluZ0ltcGwq
IF9zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRP
ZmZzZXQsIGludCBsZW5ndGgpCi06UmVuZGVyVGV4dChfbm9kZSwgX3N0ci0+c3Vic3RyaW5nKHN0
YXJ0T2Zmc2V0LCBsZW5ndGgpKSwgCi1tX3N0YXJ0KHN0YXJ0T2Zmc2V0KSwgbV9lbmQobGVuZ3Ro
KSwgbV9nZW5lcmF0ZWRDb250ZW50U3RyKDApCi17fQotCi1SZW5kZXJUZXh0RnJhZ21lbnQ6OlJl
bmRlclRleHRGcmFnbWVudChET006Ok5vZGVJbXBsKiBfbm9kZSwgRE9NOjpET01TdHJpbmdJbXBs
KiBfc3RyKQotOlJlbmRlclRleHQoX25vZGUsIF9zdHIpLCBtX3N0YXJ0KDApCi17Ci0gICAgbV9n
ZW5lcmF0ZWRDb250ZW50U3RyID0gX3N0cjsKLSAgICBpZiAoX3N0cikgewotICAgICAgICBfc3Ry
LT5yZWYoKTsKLSAgICAgICAgbV9lbmQgPSBfc3RyLT5sOwotICAgIH0KLSAgICBlbHNlCi0gICAg
ICAgIG1fZW5kID0gMDsKK1JlbmRlclRleHRGcmFnbWVudDo6UmVuZGVyVGV4dEZyYWdtZW50KERP
TTo6Tm9kZUltcGwqIG5vZGUsIERPTTo6RE9NU3RyaW5nSW1wbCogc3RyLCBpbnQgc3RhcnRPZmZz
ZXQsIGludCBsZW5ndGgpCisgICAgOiBSZW5kZXJUZXh0KG5vZGUsIHN0ciA/IHN0ci0+c3Vic3Ry
aW5nKHN0YXJ0T2Zmc2V0LCBsZW5ndGgpIDogMCksIG1fc3RhcnQoc3RhcnRPZmZzZXQpLCBtX2Vu
ZChsZW5ndGgpCit7CiB9Ci0gICAgCi1SZW5kZXJUZXh0RnJhZ21lbnQ6On5SZW5kZXJUZXh0RnJh
Z21lbnQoKQorCitSZW5kZXJUZXh0RnJhZ21lbnQ6OlJlbmRlclRleHRGcmFnbWVudChET006Ok5v
ZGVJbXBsKiBub2RlLCBET006OkRPTVN0cmluZ0ltcGwqIHN0cikKKyAgICA6IFJlbmRlclRleHQo
bm9kZSwgc3RyKSwgbV9zdGFydCgwKSwgbV9lbmQoc3RyID8gc3RyLT5sIDogMCksIG1fZ2VuZXJh
dGVkQ29udGVudFN0cihzdHIpCiB7Ci0gICAgaWYgKG1fZ2VuZXJhdGVkQ29udGVudFN0cikKLSAg
ICAgICAgbV9nZW5lcmF0ZWRDb250ZW50U3RyLT5kZXJlZigpOwogfQogCiBib29sIFJlbmRlclRl
eHRGcmFnbWVudDo6aXNUZXh0RnJhZ21lbnQoKSBjb25zdApAQCAtMTg1MSw3ICsxODA4LDcgQEAg
Ym9vbCBSZW5kZXJUZXh0RnJhZ21lbnQ6OmlzVGV4dEZyYWdtZW50KAogICAgIHJldHVybiB0cnVl
OwogfQogCi1SZWZQdHI8RE9NU3RyaW5nSW1wbD4gUmVuZGVyVGV4dEZyYWdtZW50OjpvcmlnaW5h
bFN0cmluZygpIGNvbnN0CitQYXNzUmVmUHRyPERPTVN0cmluZ0ltcGw+IFJlbmRlclRleHRGcmFn
bWVudDo6b3JpZ2luYWxTdHJpbmcoKSBjb25zdAogewogICAgIERPTTo6RE9NU3RyaW5nSW1wbCog
cmVzdWx0ID0gMDsKICAgICBpZiAoZWxlbWVudCgpKQpAQCAtMTg2MCw3ICsxODE3LDcgQEAgUmVm
UHRyPERPTVN0cmluZ0ltcGw+IFJlbmRlclRleHRGcmFnbWVudAogICAgICAgICByZXN1bHQgPSBj
b250ZW50U3RyaW5nKCk7CiAgICAgaWYgKHJlc3VsdCAmJiAoc3RhcnQoKSA+IDAgfHwgc3RhcnQo
KSA8IHJlc3VsdC0+bCkpCiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC0+c3Vic3RyaW5nKHN0YXJ0
KCksIGVuZCgpKTsKLSAgICByZXR1cm4gUmVmUHRyPERPTVN0cmluZ0ltcGw+KHJlc3VsdCk7Cisg
ICAgcmV0dXJuIHBhc3MocmVzdWx0KTsKIH0KIAogfQpJbmRleDoga2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl90ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTQKZGlmZiAt
cCAtdSAtcjEuOTQga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgKLS0tIGtodG1sL3JlbmRl
cmluZy9yZW5kZXJfdGV4dC5oCTEgRGVjIDIwMDUgMTA6MzI6MjQgLTAwMDAJMS45NAorKysga2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgJMjIgRGVjIDIwMDUgMTc6MzY6MTggLTAwMDAKQEAg
LTIxLDI5ICsyMSwyOCBAQAogICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAgKgogICov
Ci0jaWZuZGVmIFJFTkRFUlRFWFRfSAotI2RlZmluZSBSRU5ERVJURVhUX0gKIAotI2luY2x1ZGUg
ImRvbS9kb21fc3RyaW5nLmgiCi0jaW5jbHVkZSAieG1sL2RvbV9zdHJpbmdpbXBsLmgiCi0jaW5j
bHVkZSAieG1sL2RvbV90ZXh0aW1wbC5oIgotI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfb2Jq
ZWN0LmgiCi0jaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl9mbG93LmgiCisjaWZuZGVmIEtIVE1M
X1JFTkRFUlRFWFRfSAorI2RlZmluZSBLSFRNTF9SRU5ERVJURVhUX0gKIAotI2luY2x1ZGUgPHFw
dHJ2ZWN0b3IuaD4KLSNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlICJLV1FLSFRNTFBhcnQu
aCIKKyNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2xpbmUuaCIKKyNpbmNsdWRlICJ4bWwvZG9t
X3RleHRpbXBsLmgiCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8a3htbGNvcmUvUGFz
c1JlZlB0ci5oPgogCiBjbGFzcyBRUGFpbnRlcjsKIGNsYXNzIFFGb250TWV0cmljczsKIAogbmFt
ZXNwYWNlIERPTSB7Ci0gICAgY2xhc3MgUG9zaXRpb247CisgICAgY2xhc3MgRE9NU3RyaW5nOwor
ICAgIGNsYXNzIERPTVN0cmluZ0ltcGw7CiAgICAgY2xhc3MgRG9jdW1lbnRNYXJrZXI7CisgICAg
Y2xhc3MgUG9zaXRpb247CiB9OwogCiAvLyBEZWZpbmUgYSBjb25zdGFudCBmb3Igc29mdCBoeXBo
ZW4ncyB1bmljb2RlIHZhbHVlLgotI2RlZmluZSBTT0ZUX0hZUEhFTiAxNzMKK2NvbnN0IHVuc2ln
bmVkIHNob3J0IFNPRlRfSFlQSEVOID0gMTczOwogCiBjb25zdCBpbnQgY05vVHJ1bmNhdGlvbiA9
IC0xOwogY29uc3QgaW50IGNGdWxsVHJ1bmNhdGlvbiA9IC0yOwpAQCAtNTEsNyArNTAsNiBAQCBj
b25zdCBpbnQgY0Z1bGxUcnVuY2F0aW9uID0gLTI7CiBuYW1lc3BhY2Uga2h0bWwKIHsKICAgICBj
bGFzcyBSZW5kZXJUZXh0OwotICAgIGNsYXNzIFJlbmRlclN0eWxlOwogCiBjbGFzcyBJbmxpbmVU
ZXh0Qm94IDogcHVibGljIElubGluZVJ1bkJveAogewpAQCAtMTYyLDExICsxNjAsMTAgQEAgY2xh
c3MgUmVuZGVyVGV4dCA6IHB1YmxpYyBSZW5kZXJPYmplY3QKICAgICBmcmllbmQgY2xhc3MgSW5s
aW5lVGV4dEJveDsKIAogcHVibGljOgotICAgIFJlbmRlclRleHQoRE9NOjpOb2RlSW1wbCogbm9k
ZSwgRE9NOjpET01TdHJpbmdJbXBsICpfc3RyKTsKLSAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0KCk7
CisgICAgUmVuZGVyVGV4dChET006Ok5vZGVJbXBsKiwgRE9NOjpET01TdHJpbmdJbXBsKik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RnJhZ21lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxET006OkRPTVN0cmluZ0ltcGw+IG9yaWdpbmFsU3RyaW5nKCkgY29uc3Q7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPERPTTo6RE9NU3RyaW5nSW1wbD4gb3JpZ2luYWxTdHJpbmcoKSBjb25z
dDsKICAgICAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKnJlbmRlck5hbWUoKSBjb25zdCB7IHJl
dHVybiAiUmVuZGVyVGV4dCI7IH0KIApAQCAtMTc4LDggKzE3NSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRlbGV0ZVRleHRCb3hlcygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CiAgICAg
Ci0gICAgRE9NOjpET01TdHJpbmcgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0cjsgfQotICAgIERP
TTo6RE9NU3RyaW5nSW1wbCAqc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RyOyB9CisgICAgRE9N
OjpET01TdHJpbmcgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0ci5nZXQoKTsgfQorICAgIERPTTo6
RE9NU3RyaW5nSW1wbCogc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RyLmdldCgpOyB9CiAKICAg
ICB2aXJ0dWFsIElubGluZUJveCogY3JlYXRlSW5saW5lQm94KGJvb2wsYm9vbCwgYm9vbCBpc09u
bHlSdW4gPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJveGVzKGJvb2wgZnVs
bExheW91dCwgYm9vbCBpc1Jvb3RJbmxpbmVCb3ggPSBmYWxzZSk7CkBAIC0yMzQsMTEgKzIzMSwx
MSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBRRm9udCAmZm9udCgpOwogICAgIHZpcnR1
YWwgc2hvcnQgdmVydGljYWxQb3NpdGlvbkhpbnQoIGJvb2wgZmlyc3RMaW5lICkgY29uc3Q7CiAK
LSAgICB2b2lkIHNldFRleHQoRE9NOjpET01TdHJpbmdJbXBsICp0ZXh0LCBib29sIGZvcmNlPWZh
bHNlKTsKLSAgICB2b2lkIHNldFRleHRXaXRoT2Zmc2V0KERPTTo6RE9NU3RyaW5nSW1wbCAqdGV4
dCwgdWludCBvZmZzZXQsIHVpbnQgbGVuLCBib29sIGZvcmNlPWZhbHNlKTsKKyAgICB2b2lkIHNl
dFRleHQoRE9NOjpET01TdHJpbmdJbXBsKiwgYm9vbCBmb3JjZSA9IGZhbHNlKTsKKyAgICB2b2lk
IHNldFRleHRXaXRoT2Zmc2V0KERPTTo6RE9NU3RyaW5nSW1wbCosIHVpbnQgb2Zmc2V0LCB1aW50
IGxlbiwgYm9vbCBmb3JjZSA9IGZhbHNlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVj
dGlvbkxlYWYoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBTZWxlY3Rpb25T
dGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIGNvbnN0IHtyZXR1cm4gbV9zZWxlY3Rpb25TdGF0ZTt9Cisg
ICAgdmlydHVhbCBTZWxlY3Rpb25TdGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2VsZWN0aW9uU3RhdGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUo
U2VsZWN0aW9uU3RhdGUgcyk7CiAgICAgdmlydHVhbCBRUmVjdCBzZWxlY3Rpb25SZWN0KCk7CiAg
ICAgdmlydHVhbCBRUmVjdCBjYXJldFJlY3QoaW50IG9mZnNldCwgRUFmZmluaXR5IGFmZmluaXR5
LCBpbnQgKmV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDApOwpAQCAtMjUyLDggKzI0OSw3IEBAIHB1
YmxpYzoKICAgICBjb25zdCBRRm9udE1ldHJpY3MgJm1ldHJpY3MoYm9vbCBmaXJzdExpbmUpIGNv
bnN0OwogICAgIGNvbnN0IEZvbnQgKmh0bWxGb250KGJvb2wgZmlyc3RMaW5lKSBjb25zdDsKIAot
ICAgIERPTTo6VGV4dEltcGwgKmVsZW1lbnQoKSBjb25zdAotICAgIHsgcmV0dXJuIHN0YXRpY19j
YXN0PERPTTo6VGV4dEltcGwqPihSZW5kZXJPYmplY3Q6OmVsZW1lbnQoKSk7IH0KKyAgICBET006
OlRleHRJbXBsICplbGVtZW50KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NOjpUZXh0
SW1wbCo+KFJlbmRlck9iamVjdDo6ZWxlbWVudCgpKTsgfQogCiAgICAgSW5saW5lVGV4dEJveCog
Zmlyc3RUZXh0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFRleHRCb3g7IH0KICAgICBJbmxp
bmVUZXh0Qm94KiBsYXN0VGV4dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFRleHRCb3g7IH0K
QEAgLTI3OSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lVGV4dEJveCAqIGZpbmROZXh0
SW5saW5lVGV4dEJveCggaW50IG9mZnNldCwgaW50ICZwb3MgKSBjb25zdDsKIAogcHJvdGVjdGVk
OiAvLyBtZW1iZXJzCi0gICAgRE9NOjpET01TdHJpbmdJbXBsICpzdHI7CisgICAgUmVmUHRyPERP
TTo6RE9NU3RyaW5nSW1wbD4gc3RyOwogICAgIAogICAgIElubGluZVRleHRCb3gqIG1fZmlyc3RU
ZXh0Qm94OwogICAgIElubGluZVRleHRCb3gqIG1fbGFzdFRleHRCb3g7CkBAIC0zMTUsMjMgKzMx
MSwyMSBAQCBwcm90ZWN0ZWQ6IC8vIG1lbWJlcnMKIGNsYXNzIFJlbmRlclRleHRGcmFnbWVudCA6
IHB1YmxpYyBSZW5kZXJUZXh0CiB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyVGV4dEZyYWdtZW50KERP
TTo6Tm9kZUltcGwqIF9ub2RlLCBET006OkRPTVN0cmluZ0ltcGwqIF9zdHIsCi0gICAgICAgICAg
ICAgICAgICAgICAgIGludCBzdGFydE9mZnNldCwgaW50IGxlbmd0aCk7Ci0gICAgUmVuZGVyVGV4
dEZyYWdtZW50KERPTTo6Tm9kZUltcGwqIF9ub2RlLCBET006OkRPTVN0cmluZ0ltcGwqIF9zdHIp
OwotICAgIH5SZW5kZXJUZXh0RnJhZ21lbnQoKTsKKyAgICBSZW5kZXJUZXh0RnJhZ21lbnQoRE9N
OjpOb2RlSW1wbCosIERPTTo6RE9NU3RyaW5nSW1wbCosIGludCBzdGFydE9mZnNldCwgaW50IGxl
bmd0aCk7CisgICAgUmVuZGVyVGV4dEZyYWdtZW50KERPTTo6Tm9kZUltcGwqLCBET006OkRPTVN0
cmluZ0ltcGwqKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RnJhZ21lbnQoKSBjb25z
dDsKICAgICAKICAgICB1aW50IHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydDsgfQogICAg
IHVpbnQgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KICAgICAKLSAgICBET006OkRPTVN0
cmluZ0ltcGwqIGNvbnRlbnRTdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX2dlbmVyYXRlZENvbnRl
bnRTdHI7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxET006OkRPTVN0cmluZ0ltcGw+IG9yaWdpbmFs
U3RyaW5nKCkgY29uc3Q7CisgICAgRE9NOjpET01TdHJpbmdJbXBsKiBjb250ZW50U3RyaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9nZW5lcmF0ZWRDb250ZW50U3RyLmdldCgpOyB9CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPERPTTo6RE9NU3RyaW5nSW1wbD4gb3JpZ2luYWxTdHJpbmcoKSBjb25zdDsK
ICAgICAKIHByaXZhdGU6CiAgICAgdWludCBtX3N0YXJ0OwogICAgIHVpbnQgbV9lbmQ7Ci0gICAg
RE9NOjpET01TdHJpbmdJbXBsKiBtX2dlbmVyYXRlZENvbnRlbnRTdHI7CisgICAgUmVmUHRyPERP
TTo6RE9NU3RyaW5nSW1wbD4gbV9nZW5lcmF0ZWRDb250ZW50U3RyOwogfTsKIAogaW5saW5lIFJl
bmRlclRleHQgKklubGluZVRleHRCb3g6OnRleHRPYmplY3QoKSBjb25zdApJbmRleDoga3dxL0tX
UVJlbmRlclRyZWVEZWJ1Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNv
cmUva3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTAK
ZGlmZiAtcCAtdSAtcjEuNTAga3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAKLS0tIGt3cS9LV1FS
ZW5kZXJUcmVlRGVidWcuY3BwCTE2IERlYyAyMDA1IDE2OjQwOjE2IC0wMDAwCTEuNTAKKysrIGt3
cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwCTIyIERlYyAyMDA1IDE3OjM2OjE5IC0wMDAwCkBAIC00
NSwyOCArNDUsMTIgQEAKIAogI2luY2x1ZGUgIktXUUtIVE1MUGFydC5oIgogI2luY2x1ZGUgIktX
UVRleHRTdHJlYW0uaCIKKyNpbmNsdWRlICJLV1FQdHJWZWN0b3IuaCIKIAotdXNpbmcgRE9NOjpE
b2N1bWVudEltcGw7Ci11c2luZyBET006OkpTRWRpdG9yOwotdXNpbmcgRE9NOjpOb2RlSW1wbDsK
LXVzaW5nIERPTTo6UG9zaXRpb247Ci0KLXVzaW5nIGtodG1sOjpCb3JkZXJWYWx1ZTsKLXVzaW5n
IGtodG1sOjpFQm9yZGVyU3R5bGU7Ci11c2luZyBraHRtbDo6SW5saW5lVGV4dEJveDsKLXVzaW5n
IGtodG1sOjpSZW5kZXJMYXllcjsKLXVzaW5nIGtodG1sOjpSZW5kZXJPYmplY3Q7Ci11c2luZyBr
aHRtbDo6UmVuZGVyVGFibGVDZWxsOwotdXNpbmcga2h0bWw6OlJlbmRlcldpZGdldDsKLXVzaW5n
IGtodG1sOjpSZW5kZXJUZXh0OwotdXNpbmcga2h0bWw6OlJlbmRlckNhbnZhczsKLXVzaW5nIGto
dG1sOjpSZW5kZXJCUjsKLXVzaW5nIGtodG1sOjpTZWxlY3Rpb25Db250cm9sbGVyOwotdXNpbmcg
a2h0bWw6OnRyYW5zcGFyZW50Q29sb3I7Ci11c2luZyBraHRtbDo6VVBTVFJFQU07Cit1c2luZyBu
YW1lc3BhY2UgRE9NOwordXNpbmcgbmFtZXNwYWNlIGtodG1sOwogCi1zdGF0aWMgdm9pZCB3cml0
ZUxheWVycyhRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJl
bmRlckxheWVyKiBsLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVJlY3QmIHBhaW50
RGlydHlSZWN0LCBpbnQgaW5kZW50PTApOworc3RhdGljIHZvaWQgd3JpdGVMYXllcnMoUVRleHRT
dHJlYW0mLCBjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJMYXllciosIGNvbnN0
IFFSZWN0JiBwYWludERpcnR5UmVjdCwgaW50IGluZGVudCA9IDApOwogCiAjaWYgIVNWR19TVVBQ
T1JUCiBzdGF0aWMgUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25z
dCBRUmVjdCAmcikK
</data>
<flag name="review"
          id="1068"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>