<?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>40205</bug_id>
          
          <creation_ts>2010-06-05 05:11:17 -0700</creation_ts>
          <short_desc>SVG Pattern/Gradient clean-up</short_desc>
          <delta_ts>2011-01-02 03:23:17 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>234602</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-05 05:11:17 -0700</bug_when>
    <thetext>Transformations of Patterns and Gradients can be bundeled. This calculation also needs just to be calculated once. It&apos;s not a great speed-up for most platforms, but a clean-up and preparation for new features like vectorEffects and others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234605</commentid>
    <comment_count>1</comment_count>
      <attachid>57964</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-05 05:25:03 -0700</bug_when>
    <thetext>Created attachment 57964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234606</commentid>
    <comment_count>2</comment_count>
      <attachid>57965</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-05 05:32:05 -0700</bug_when>
    <thetext>Created attachment 57965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234650</commentid>
    <comment_count>3</comment_count>
      <attachid>57965</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-06 04:07:30 -0700</bug_when>
    <thetext>Comment on attachment 57965
Patch

Good job, r=me. Just fix a list typo before landing:

WebCore/ChangeLog:11
 +          Now, that we don&apos;t recalucluate the gradient and it&apos;s transformations, it was necessary to add a way
Typo: its.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234651</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-06 04:36:02 -0700</bug_when>
    <thetext>Committed r60760: &lt;http://trac.webkit.org/changeset/60760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328389</commentid>
    <comment_count>5</comment_count>
      <attachid>57965</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-01-02 03:23:17 -0800</bug_when>
    <thetext>Comment on attachment 57965
Patch

Clearing review flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57964</attachid>
            <date>2010-06-05 05:25:03 -0700</date>
            <delta_ts>2010-06-05 05:31:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40205-20100605142501.patch</filename>
            <type>text/plain</type>
            <size>13093</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDc1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDYtMDUgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
UGF0dGVybi9HcmFkaWVudCBjbGVhbi11cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMDUKKworICAgICAgICBUcmFuc2Zvcm1hdGlvbnMgb2YgU1ZH
IFBhdHRlcm5zIGFuZCBHcmFkaWVudHMgY2FuIGJlIGJ1bmRlbGVkLgorICAgICAgICBUaGlzIGNh
bGN1bGF0aW9uIGFsc28gbmVlZHMganVzdCB0byBiZSBjYWxjdWxhdGVkIG9uY2UuIEl0J3Mgbm90
IGEgZ3JlYXQgc3BlZWQtdXAgZm9yIG1vc3QgcGxhdGZvcm1zLAorICAgICAgICBidXQgYSBjbGVh
bi11cCBhbmQgcHJlcGFyYXRpb24gZm9yIG5ldyBmZWF0dXJlcyBsaWtlIHZlY3RvckVmZmVjdHMg
YW5kIG90aGVycy4KKyAgICAgICAgTm93LCB0aGF0IHdlIGRvbid0IHJlY2FsdWNsdWF0ZSB0aGUg
Z3JhZGllbnQgYW5kIGl0J3MgdHJhbnNmb3JtYXRpb25zLCBpdCB3YXMgbmVjZXNzYXJ5IHRvIGFk
ZCBhIHdheQorICAgICAgICB0byB0cmFuc2Zvcm0gYWxyZWRheSBleGlzdGluZyBncmFkaWVudHMg
b24gQ2Fpcm8uIFRoaXMgaXMgZG9uZSBpbiB0aGUgc2FtZSB3YXkgbGlrZSBTa2lhIHRyYW5zZm9y
bXMKKyAgICAgICAgZ3JhZGllbnRzIGFmdGVyIHRoZXkgd2VyZSBjcmVhdGVkLgorICAgICAgICAK
KyAgICAgICAgVGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSBmdW5jdGlvbmFsaXR5LCBzbyBubyBu
ZXcgdGVzdHMgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6c2V0UGxhdGZvcm1HcmFkaWVudFNwYWNlVHJh
bnNmb3JtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50OjphcHBseVJl
c291cmNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjphcHBseVJlc291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6Y3JlYXRlVGlsZUlt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQ
YXR0ZXJuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmg6
CisKIDIwMTAtMDYtMDUgIEFuZGVycyBCYWtrZW4gIDxhZ2Jha2tlbkBnbWFpbC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcAkocmV2aXNpb24gNjA3MDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBAIHZv
aWQgR3JhZGllbnQ6OnNldEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0KICAgICBzZXRQbGF0Zm9ybUdy
YWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKTsKIH0KIAot
I2lmICFQTEFURk9STShTS0lBKQorI2lmICFQTEFURk9STShTS0lBKSAmJiAhUExBVEZPUk0oQ0FJ
Uk8pCiB2b2lkIEdyYWRpZW50OjpzZXRQbGF0Zm9ybUdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oY29u
c3QgQWZmaW5lVHJhbnNmb3JtJikKIHsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAkocmV2aXNpb24gNjA3MDEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Niw2ICs3NiwxNSBAQCBjYWlyb19wYXR0ZXJuX3QqIEdyYWRpZW50OjpwbGF0
Zm9ybUdyYWRpCiAgICAgcmV0dXJuIG1fZ3JhZGllbnQ7CiB9CiAKK3ZvaWQgR3JhZGllbnQ6OnNl
dFBsYXRmb3JtR3JhZGllbnRTcGFjZVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdy
YWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbikKK3sKKyAgICBpZiAobV9ncmFkaWVudCkgeworICAg
ICAgICBjYWlyb19tYXRyaXhfdCBtYXRyaXggPSBncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb247
CisgICAgICAgIGNhaXJvX21hdHJpeF9pbnZlcnQoJm1hdHJpeCk7CisgICAgICAgIGNhaXJvX3Bh
dHRlcm5fc2V0X21hdHJpeChtX2dyYWRpZW50LCAmbWF0cml4KTsKKyAgICB9Cit9CisKIHZvaWQg
R3JhZGllbnQ6OmZpbGwoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpCiB7CiAgICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQu
Y3BwCShyZXZpc2lvbiA2MDcwMSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291
cmNlR3JhZGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksMTcgKzE1OSwzNSBAQCBib29s
IFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQ6OmFwcGx5UmVzCiAKICAgICBHcmFkaWVudERhdGEq
IGdyYWRpZW50RGF0YSA9IG1fZ3JhZGllbnQuZ2V0KG9iamVjdCk7CiAKKyAgICBib29sIGlzUGFp
bnRpbmdUZXh0ID0gcmVzb3VyY2VNb2RlICYgQXBwbHlUb1RleHRNb2RlOworCiAgICAgLy8gQ3Jl
YXRlIGdyYWRpZW50IG9iamVjdAotICAgIGlmICghZ3JhZGllbnREYXRhLT5ncmFkaWVudCkKKyAg
ICBpZiAoIWdyYWRpZW50RGF0YS0+Z3JhZGllbnQpIHsKICAgICAgICAgYnVpbGRHcmFkaWVudChn
cmFkaWVudERhdGEsIGdyYWRpZW50RWxlbWVudCk7CiAKKyAgICAgICAgLy8gQ0cgcGxhdGZvcm1z
IHdpbGwgaGFuZGxlIHRoZSBncmFkaWVudCBzcGFjZSB0cmFuc2Zvcm0gZm9yIHRleHQgYWZ0ZXIg
YXBwbHlpbmcgdGhlCisgICAgICAgIC8vIHJlc291cmNlLCBzbyBkb24ndCBhcHBseSBpdCBoZXJl
LiBGb3Igbm9uLUNHIHBsYXRmb3Jtcywgd2Ugd2FudCB0aGUgdGV4dCBib3VuZGluZworICAgICAg
ICAvLyBib3ggYXBwbGllZCB0byB0aGUgZ3JhZGllbnQgc3BhY2UgdHJhbnNmb3JtIG5vdywgc28g
dGhlIGdyYWRpZW50IHNoYWRlciBjYW4gdXNlIGl0LgorICAgICNpZiBQTEFURk9STShDRykKKyAg
ICAgICAgaWYgKGdyYWRpZW50RGF0YS0+Ym91bmRpbmdCb3hNb2RlICYmICFpc1BhaW50aW5nVGV4
dCkgeworICAgICNlbHNlCisgICAgICAgIGlmIChncmFkaWVudERhdGEtPmJvdW5kaW5nQm94TW9k
ZSkgeworICAgICNlbmRpZgorICAgICAgICAgICAgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94
ID0gb2JqZWN0LT5vYmplY3RCb3VuZGluZ0JveCgpOworICAgICAgICAgICAgZ3JhZGllbnREYXRh
LT51c2Vyc3BhY2VUcmFuc2Zvcm0udHJhbnNsYXRlKG9iamVjdEJvdW5kaW5nQm94LngoKSwgb2Jq
ZWN0Qm91bmRpbmdCb3gueSgpKTsKKyAgICAgICAgICAgIGdyYWRpZW50RGF0YS0+dXNlcnNwYWNl
VHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9ybShvYmplY3RCb3VuZGluZ0JveC53aWR0aCgpLCBvYmpl
Y3RCb3VuZGluZ0JveC5oZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBncmFkaWVudERh
dGEtPnVzZXJzcGFjZVRyYW5zZm9ybS5tdWx0aXBseShncmFkaWVudERhdGEtPnRyYW5zZm9ybSk7
CisgICAgICAgIGdyYWRpZW50RGF0YS0+Z3JhZGllbnQtPnNldEdyYWRpZW50U3BhY2VUcmFuc2Zv
cm0oZ3JhZGllbnREYXRhLT51c2Vyc3BhY2VUcmFuc2Zvcm0pOworICAgIH0KKwogICAgIGlmICgh
Z3JhZGllbnREYXRhLT5ncmFkaWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8g
RHJhdyBncmFkaWVudAogICAgIGNvbnRleHQtPnNhdmUoKTsKIAotICAgIGJvb2wgaXNQYWludGlu
Z1RleHQgPSByZXNvdXJjZU1vZGUgJiBBcHBseVRvVGV4dE1vZGU7CiAgICAgaWYgKGlzUGFpbnRp
bmdUZXh0KSB7CiAjaWYgUExBVEZPUk0oQ0cpCiAgICAgICAgIGlmICghY3JlYXRlTWFza0FuZFN3
YXBDb250ZXh0Rm9yVGV4dEdyYWRpZW50KGNvbnRleHQsIG1fc2F2ZWRDb250ZXh0LCBtX2ltYWdl
QnVmZmVyLCBvYmplY3QpKSB7CkBAIC0xODEsMjQgKzE5OSw2IEBAIGJvb2wgUmVuZGVyU1ZHUmVz
b3VyY2VHcmFkaWVudDo6YXBwbHlSZXMKICAgICAgICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdN
b2RlKHJlc291cmNlTW9kZSAmIEFwcGx5VG9GaWxsTW9kZSA/IGNUZXh0RmlsbCA6IGNUZXh0U3Ry
b2tlKTsKICAgICB9CiAKLSAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotCi0gICAgLy8g
Q0cgcGxhdGZvcm1zIHdpbGwgaGFuZGxlIHRoZSBncmFkaWVudCBzcGFjZSB0cmFuc2Zvcm0gZm9y
IHRleHQgYWZ0ZXIgYXBwbHlpbmcgdGhlCi0gICAgLy8gcmVzb3VyY2UsIHNvIGRvbid0IGFwcGx5
IGl0IGhlcmUuIEZvciBub24tQ0cgcGxhdGZvcm1zLCB3ZSB3YW50IHRoZSB0ZXh0IGJvdW5kaW5n
Ci0gICAgLy8gYm94IGFwcGxpZWQgdG8gdGhlIGdyYWRpZW50IHNwYWNlIHRyYW5zZm9ybSBub3cs
IHNvIHRoZSBncmFkaWVudCBzaGFkZXIgY2FuIHVzZSBpdC4KLSNpZiBQTEFURk9STShDRykKLSAg
ICBpZiAoZ3JhZGllbnREYXRhLT5ib3VuZGluZ0JveE1vZGUgJiYgIWlzUGFpbnRpbmdUZXh0KSB7
Ci0jZWxzZQotICAgIGlmIChncmFkaWVudERhdGEtPmJvdW5kaW5nQm94TW9kZSkgewotI2VuZGlm
Ci0gICAgICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCA9IG9iamVjdC0+b2JqZWN0Qm91
bmRpbmdCb3goKTsKLSAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShvYmplY3RCb3VuZGluZ0Jv
eC54KCksIG9iamVjdEJvdW5kaW5nQm94LnkoKSk7Ci0gICAgICAgIHRyYW5zZm9ybS5zY2FsZU5v
blVuaWZvcm0ob2JqZWN0Qm91bmRpbmdCb3gud2lkdGgoKSwgb2JqZWN0Qm91bmRpbmdCb3guaGVp
Z2h0KCkpOwotICAgIH0KLQotICAgIHRyYW5zZm9ybS5tdWx0aXBseShncmFkaWVudERhdGEtPnRy
YW5zZm9ybSk7Ci0gICAgZ3JhZGllbnREYXRhLT5ncmFkaWVudC0+c2V0R3JhZGllbnRTcGFjZVRy
YW5zZm9ybSh0cmFuc2Zvcm0pOwotCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxl
ID0gc3R5bGUtPnN2Z1N0eWxlKCk7CiAgICAgQVNTRVJUKHN2Z1N0eWxlKTsKIApJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuaAkocmV2aXNpb24g
NjA3MDEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0IEdyYWRpZW50RGF0YSB7CiAg
ICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudDsKIAogICAgIGJvb2wgYm91bmRpbmdCb3hNb2Rl
OworICAgIEFmZmluZVRyYW5zZm9ybSB1c2Vyc3BhY2VUcmFuc2Zvcm07CiAgICAgQWZmaW5lVHJh
bnNmb3JtIHRyYW5zZm9ybTsKIH07CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1Jlc291cmNlUGF0dGVybi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcAkocmV2aXNpb24gNjA3MDEpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
MCwyNSArOTAsMTkgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmFwcGx5UmVzbwog
CiAgICAgUGF0dGVybkRhdGEqIHBhdHRlcm5EYXRhID0gbV9wYXR0ZXJuLmdldChvYmplY3QpOwog
ICAgIGlmICghcGF0dGVybkRhdGEtPnBhdHRlcm4pIHsKLSAgICAgICAgRmxvYXRSZWN0IHBhdHRl
cm5Cb3VuZGFyaWVzOwotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybTsK
IAogICAgICAgICAvLyBDcmVhdGUgdGlsZSBpbWFnZQotICAgICAgICBPd25QdHI8SW1hZ2VCdWZm
ZXI+IHRpbGVJbWFnZSA9IGNyZWF0ZVRpbGVJbWFnZShwYXR0ZXJuQm91bmRhcmllcywgcGF0dGVy
blRyYW5zZm9ybSwgcGF0dGVybkVsZW1lbnQsIG9iamVjdCk7CisgICAgICAgIE93blB0cjxJbWFn
ZUJ1ZmZlcj4gdGlsZUltYWdlID0gY3JlYXRlVGlsZUltYWdlKHBhdHRlcm5EYXRhLCBwYXR0ZXJu
RWxlbWVudCwgb2JqZWN0KTsKICAgICAgICAgaWYgKCF0aWxlSW1hZ2UpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8gQ3JlYXRlIHBhdHRlcm4gb2JqZWN0Ci0gICAgICAg
IGJ1aWxkUGF0dGVybihwYXR0ZXJuRGF0YSwgcGF0dGVybkJvdW5kYXJpZXMsIHRpbGVJbWFnZS5y
ZWxlYXNlKCkpOworICAgICAgICBidWlsZFBhdHRlcm4ocGF0dGVybkRhdGEsIHRpbGVJbWFnZS5y
ZWxlYXNlKCkpOwogCiAgICAgICAgIGlmICghcGF0dGVybkRhdGEtPnBhdHRlcm4pCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgLy8gQ29tcHV0ZSBwYXR0ZXJuIHRyYW5zZm9y
bWF0aW9uCi0gICAgICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAgICAgIHRyYW5z
Zm9ybS50cmFuc2xhdGUocGF0dGVybkJvdW5kYXJpZXMueCgpLCBwYXR0ZXJuQm91bmRhcmllcy55
KCkpOwotICAgICAgICB0cmFuc2Zvcm0ubXVsdGlwbHkocGF0dGVyblRyYW5zZm9ybSk7Ci0gICAg
ICAgIHBhdHRlcm5EYXRhLT5wYXR0ZXJuLT5zZXRQYXR0ZXJuU3BhY2VUcmFuc2Zvcm0odHJhbnNm
b3JtKTsKKyAgICAgICAgcGF0dGVybkRhdGEtPnBhdHRlcm4tPnNldFBhdHRlcm5TcGFjZVRyYW5z
Zm9ybShwYXR0ZXJuRGF0YS0+dHJhbnNmb3JtKTsKICAgICB9CiAKICAgICAvLyBEcmF3IHBhdHRl
cm4KQEAgLTIxMiw4ICsyMDYsNyBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
OjpjYWxjCiAgICAgcmV0dXJuIHBhdHRlcm5Cb3VuZGFyaWVzSW5jbHVkaW5nT3ZlcmZsb3c7CiB9
CiAKLVBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6Y3Jl
YXRlVGlsZUltYWdlKEZsb2F0UmVjdCYgcGF0dGVybkJvdW5kYXJpZXMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCitQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBS
ZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmNyZWF0ZVRpbGVJbWFnZShQYXR0ZXJuRGF0YSogcGF0
dGVybkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBTVkdQYXR0ZXJuRWxlbWVudCogcGF0dGVybkVsZW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG9iamVjdCkgY29uc3QKIHsKQEAgLTIyNCw4ICsy
MTcsOCBAQCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBSZW5kZXJTVkdSZXNvdXJjCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94ID0gb2JqZWN0LT5v
YmplY3RCb3VuZGluZ0JveCgpOyAgICAKLSAgICBwYXR0ZXJuQm91bmRhcmllcyA9IGNhbGN1bGF0
ZVBhdHRlcm5Cb3VuZGFyaWVzKGF0dHJpYnV0ZXMsIG9iamVjdEJvdW5kaW5nQm94LCBwYXR0ZXJu
RWxlbWVudCk7IAotICAgIHBhdHRlcm5UcmFuc2Zvcm0gPSBhdHRyaWJ1dGVzLnBhdHRlcm5UcmFu
c2Zvcm0oKTsKKyAgICBGbG9hdFJlY3QgcGF0dGVybkJvdW5kYXJpZXMgPSBjYWxjdWxhdGVQYXR0
ZXJuQm91bmRhcmllcyhhdHRyaWJ1dGVzLCBvYmplY3RCb3VuZGluZ0JveCwgcGF0dGVybkVsZW1l
bnQpOyAKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybSA9IGF0dHJpYnV0ZXMu
cGF0dGVyblRyYW5zZm9ybSgpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIHZpZXdCb3hDVE0gPSBw
YXR0ZXJuRWxlbWVudC0+dmlld0JveFRvVmlld1RyYW5zZm9ybShwYXR0ZXJuRWxlbWVudC0+dmll
d0JveCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVsZW1lbnQtPnByZXNlcnZlQXNwZWN0UmF0
aW8oKSwKQEAgLTI3NiwxMSArMjY5LDE3IEBAIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IFJlbmRl
clNWR1Jlc291cmMKICAgICAgICAgcmVuZGVyU3VidHJlZVRvSW1hZ2UodGlsZUltYWdlLmdldCgp
LCBub2RlLT5yZW5kZXJlcigpKTsKICAgICB9CiAKKyAgICBwYXR0ZXJuRGF0YS0+Ym91bmRhcmll
cyA9IHBhdHRlcm5Cb3VuZGFyaWVzOworCisgICAgLy8gQ29tcHV0ZSBwYXR0ZXJuIHRyYW5zZm9y
bWF0aW9uCisgICAgcGF0dGVybkRhdGEtPnRyYW5zZm9ybS50cmFuc2xhdGUocGF0dGVybkJvdW5k
YXJpZXMueCgpLCBwYXR0ZXJuQm91bmRhcmllcy55KCkpOworICAgIHBhdHRlcm5EYXRhLT50cmFu
c2Zvcm0ubXVsdGlwbHkocGF0dGVyblRyYW5zZm9ybSk7CisKICAgICBjb250ZXh0LT5yZXN0b3Jl
KCk7CiAgICAgcmV0dXJuIHRpbGVJbWFnZS5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
UmVzb3VyY2VQYXR0ZXJuOjpidWlsZFBhdHRlcm4oUGF0dGVybkRhdGEqIHBhdHRlcm5EYXRhLCBj
b25zdCBGbG9hdFJlY3QmIHBhdHRlcm5Cb3VuZGFyaWVzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVy
PiB0aWxlSW1hZ2UpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQ
YXR0ZXJuKFBhdHRlcm5EYXRhKiBwYXR0ZXJuRGF0YSwgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4g
dGlsZUltYWdlKSBjb25zdAogewogICAgIGlmICghdGlsZUltYWdlLT5pbWFnZSgpKSB7CiAgICAg
ICAgIHBhdHRlcm5EYXRhLT5wYXR0ZXJuID0gMDsKQEAgLTI4OCwxNCArMjg3LDE0IEBAIHZvaWQg
UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjpidWlsZFBhdHQKICAgICB9CiAKICAgICBJbnRSZWN0
IHRpbGVSZWN0ID0gdGlsZUltYWdlLT5pbWFnZSgpLT5yZWN0KCk7Ci0gICAgaWYgKHRpbGVSZWN0
LndpZHRoKCkgPD0gcGF0dGVybkJvdW5kYXJpZXMud2lkdGgoKSAmJiB0aWxlUmVjdC5oZWlnaHQo
KSA8PSBwYXR0ZXJuQm91bmRhcmllcy5oZWlnaHQoKSkgeworICAgIGlmICh0aWxlUmVjdC53aWR0
aCgpIDw9IHBhdHRlcm5EYXRhLT5ib3VuZGFyaWVzLndpZHRoKCkgJiYgdGlsZVJlY3QuaGVpZ2h0
KCkgPD0gcGF0dGVybkRhdGEtPmJvdW5kYXJpZXMuaGVpZ2h0KCkpIHsKICAgICAgICAgcGF0dGVy
bkRhdGEtPnBhdHRlcm4gPSBQYXR0ZXJuOjpjcmVhdGUodGlsZUltYWdlLT5pbWFnZSgpLCB0cnVl
LCB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIERyYXcgdGhlIGZpcnN0
IGNlbGwgb2YgdGhlIHBhdHRlcm4gbWFudWFsbHkgdG8gc3VwcG9ydCBvdmVyZmxvdz0idmlzaWJs
ZSIgb24gYWxsIHBsYXRmb3Jtcy4KLSAgICBpbnQgdGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8aW50
PihwYXR0ZXJuQm91bmRhcmllcy53aWR0aCgpICsgMC41Zik7Ci0gICAgaW50IHRpbGVIZWlnaHQg
PSBzdGF0aWNfY2FzdDxpbnQ+KHBhdHRlcm5Cb3VuZGFyaWVzLmhlaWdodCgpICsgMC41Zik7Cisg
ICAgaW50IHRpbGVXaWR0aCA9IHN0YXRpY19jYXN0PGludD4ocGF0dGVybkRhdGEtPmJvdW5kYXJp
ZXMud2lkdGgoKSArIDAuNWYpOworICAgIGludCB0aWxlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50
PihwYXR0ZXJuRGF0YS0+Ym91bmRhcmllcy5oZWlnaHQoKSArIDAuNWYpOwogCiAgICAgLy8gRG9u
J3QgY3JlYXRlIEltYWdlQnVmZmVycyB3aXRoIGltYWdlIHNpemUgb2YgMAogICAgIGlmICghdGls
ZVdpZHRoIHx8ICF0aWxlSGVpZ2h0KSB7CkBAIC0zMTAsMTQgKzMwOSwxNCBAQCB2b2lkIFJlbmRl
clNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0CiAgICAgaW50IG51bVggPSBzdGF0aWNfY2Fz
dDxpbnQ+KGNlaWxmKHRpbGVSZWN0LndpZHRoKCkgLyB0aWxlV2lkdGgpKSArIDE7CiAKICAgICBu
ZXdUaWxlSW1hZ2VDb250ZXh0LT5zYXZlKCk7Ci0gICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJh
bnNsYXRlKC1wYXR0ZXJuQm91bmRhcmllcy53aWR0aCgpICogbnVtWCwgLXBhdHRlcm5Cb3VuZGFy
aWVzLmhlaWdodCgpICogbnVtWSk7CisgICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJhbnNsYXRl
KC1wYXR0ZXJuRGF0YS0+Ym91bmRhcmllcy53aWR0aCgpICogbnVtWCwgLXBhdHRlcm5EYXRhLT5i
b3VuZGFyaWVzLmhlaWdodCgpICogbnVtWSk7CiAgICAgZm9yIChpbnQgaSA9IG51bVk7IGkgPiAw
OyAtLWkpIHsKLSAgICAgICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJhbnNsYXRlKDAsIHBhdHRl
cm5Cb3VuZGFyaWVzLmhlaWdodCgpKTsKKyAgICAgICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJh
bnNsYXRlKDAsIHBhdHRlcm5EYXRhLT5ib3VuZGFyaWVzLmhlaWdodCgpKTsKICAgICAgICAgZm9y
IChpbnQgaiA9IG51bVg7IGogPiAwOyAtLWopIHsKLSAgICAgICAgICAgIG5ld1RpbGVJbWFnZUNv
bnRleHQtPnRyYW5zbGF0ZShwYXR0ZXJuQm91bmRhcmllcy53aWR0aCgpLCAwKTsKKyAgICAgICAg
ICAgIG5ld1RpbGVJbWFnZUNvbnRleHQtPnRyYW5zbGF0ZShwYXR0ZXJuRGF0YS0+Ym91bmRhcmll
cy53aWR0aCgpLCAwKTsKICAgICAgICAgICAgIG5ld1RpbGVJbWFnZUNvbnRleHQtPmRyYXdJbWFn
ZSh0aWxlSW1hZ2UtPmltYWdlKCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgdGlsZVJlY3QsIHRp
bGVSZWN0KTsKICAgICAgICAgfQotICAgICAgICBuZXdUaWxlSW1hZ2VDb250ZXh0LT50cmFuc2xh
dGUoLXBhdHRlcm5Cb3VuZGFyaWVzLndpZHRoKCkgKiBudW1YLCAwKTsKKyAgICAgICAgbmV3VGls
ZUltYWdlQ29udGV4dC0+dHJhbnNsYXRlKC1wYXR0ZXJuRGF0YS0+Ym91bmRhcmllcy53aWR0aCgp
ICogbnVtWCwgMCk7CiAgICAgfQogICAgIG5ld1RpbGVJbWFnZUNvbnRleHQtPnJlc3RvcmUoKTsK
IApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgJ
KHJldmlzaW9uIDYwNzAxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQ
YXR0ZXJuLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdHJ1Y3QgUGF0dGVybkRhdGEgewogICAgIFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJu
OworICAgIEZsb2F0UmVjdCBib3VuZGFyaWVzOworICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zv
cm07CiB9OwogCiBzdHJ1Y3QgUGF0dGVybkF0dHJpYnV0ZXM7CkBAIC02MCw4ICs2Miw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIHNfcmVzb3VyY2VUeXBlOwog
CiBwcml2YXRlOgotICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZVRpbGVJbWFnZShG
bG9hdFJlY3QmIHBhdHRlcm5Cb3VuZGFyaWVzLCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50KiwgUmVuZGVyT2JqZWN0KikgY29uc3Q7Ci0g
ICAgdm9pZCBidWlsZFBhdHRlcm4oUGF0dGVybkRhdGEqLCBjb25zdCBGbG9hdFJlY3QmIHBhdHRl
cm5Cb3VuZGFyaWVzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiB0aWxlSW1hZ2UpIGNvbnN0Owor
ICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZVRpbGVJbWFnZShQYXR0ZXJuRGF0YSos
IGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50KiwgUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdm9p
ZCBidWlsZFBhdHRlcm4oUGF0dGVybkRhdGEqLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiB0aWxl
SW1hZ2UpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVQYXR0ZXJuQm91bmRhcmllc0lu
Y2x1ZGluZ092ZXJmbG93KFBhdHRlcm5BdHRyaWJ1dGVzJiwgY29uc3QgRmxvYXRSZWN0JiBvYmpl
Y3RCb3VuZGluZ0JveCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHZpZXdCb3hDVE0sIGNvbnN0
IEZsb2F0UmVjdCYgcGF0dGVybkJvdW5kYXJpZXMpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57965</attachid>
            <date>2010-06-05 05:32:05 -0700</date>
            <delta_ts>2011-01-02 03:23:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40205-20100605143203.patch</filename>
            <type>text/plain</type>
            <size>13081</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDc1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDYtMDUgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
UGF0dGVybi9HcmFkaWVudCBjbGVhbi11cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMDUKKworICAgICAgICBUcmFuc2Zvcm1hdGlvbnMgb2YgU1ZH
IFBhdHRlcm5zIGFuZCBHcmFkaWVudHMgY2FuIGJlIGJ1bmRlbGVkLgorICAgICAgICBUaGlzIGNh
bGN1bGF0aW9uIGFsc28gbmVlZHMganVzdCB0byBiZSBjYWxjdWxhdGVkIG9uY2UuIEl0J3Mgbm90
IGEgZ3JlYXQgc3BlZWQtdXAgZm9yIG1vc3QgcGxhdGZvcm1zLAorICAgICAgICBidXQgYSBjbGVh
bi11cCBhbmQgcHJlcGFyYXRpb24gZm9yIG5ldyBmZWF0dXJlcyBsaWtlIHZlY3RvckVmZmVjdHMg
YW5kIG90aGVycy4KKyAgICAgICAgTm93LCB0aGF0IHdlIGRvbid0IHJlY2FsdWNsdWF0ZSB0aGUg
Z3JhZGllbnQgYW5kIGl0J3MgdHJhbnNmb3JtYXRpb25zLCBpdCB3YXMgbmVjZXNzYXJ5IHRvIGFk
ZCBhIHdheQorICAgICAgICB0byB0cmFuc2Zvcm0gYWxyZWRheSBleGlzdGluZyBncmFkaWVudHMg
b24gQ2Fpcm8uIFRoaXMgaXMgZG9uZSBpbiB0aGUgc2FtZSB3YXkgbGlrZSBTa2lhIHRyYW5zZm9y
bXMKKyAgICAgICAgZ3JhZGllbnRzIGFmdGVyIHRoZXkgd2VyZSBjcmVhdGVkLgorICAgICAgICAK
KyAgICAgICAgVGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSBmdW5jdGlvbmFsaXR5LCBzbyBubyBu
ZXcgdGVzdHMgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudDo6c2V0UGxhdGZvcm1HcmFkaWVudFNwYWNlVHJh
bnNmb3JtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50OjphcHBseVJl
c291cmNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjphcHBseVJlc291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6Y3JlYXRlVGlsZUlt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQ
YXR0ZXJuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmg6
CisKIDIwMTAtMDYtMDUgIEFuZGVycyBCYWtrZW4gIDxhZ2Jha2tlbkBnbWFpbC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50LmNwcAkocmV2aXNpb24gNjA3MDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBAIHZv
aWQgR3JhZGllbnQ6OnNldEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0KICAgICBzZXRQbGF0Zm9ybUdy
YWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKTsKIH0KIAot
I2lmICFQTEFURk9STShTS0lBKQorI2lmICFQTEFURk9STShTS0lBKSAmJiAhUExBVEZPUk0oQ0FJ
Uk8pCiB2b2lkIEdyYWRpZW50OjpzZXRQbGF0Zm9ybUdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oY29u
c3QgQWZmaW5lVHJhbnNmb3JtJikKIHsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAkocmV2aXNpb24gNjA3MDEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Niw2ICs3NiwxNSBAQCBjYWlyb19wYXR0ZXJuX3QqIEdyYWRpZW50OjpwbGF0
Zm9ybUdyYWRpCiAgICAgcmV0dXJuIG1fZ3JhZGllbnQ7CiB9CiAKK3ZvaWQgR3JhZGllbnQ6OnNl
dFBsYXRmb3JtR3JhZGllbnRTcGFjZVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdy
YWRpZW50U3BhY2VUcmFuc2Zvcm1hdGlvbikKK3sKKyAgICBpZiAobV9ncmFkaWVudCkgeworICAg
ICAgICBjYWlyb19tYXRyaXhfdCBtYXRyaXggPSBncmFkaWVudFNwYWNlVHJhbnNmb3JtYXRpb247
CisgICAgICAgIGNhaXJvX21hdHJpeF9pbnZlcnQoJm1hdHJpeCk7CisgICAgICAgIGNhaXJvX3Bh
dHRlcm5fc2V0X21hdHJpeChtX2dyYWRpZW50LCAmbWF0cml4KTsKKyAgICB9Cit9CisKIHZvaWQg
R3JhZGllbnQ6OmZpbGwoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpCiB7CiAgICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQu
Y3BwCShyZXZpc2lvbiA2MDcwMSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291
cmNlR3JhZGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksMTcgKzE1OSwzNSBAQCBib29s
IFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQ6OmFwcGx5UmVzCiAKICAgICBHcmFkaWVudERhdGEq
IGdyYWRpZW50RGF0YSA9IG1fZ3JhZGllbnQuZ2V0KG9iamVjdCk7CiAKKyAgICBib29sIGlzUGFp
bnRpbmdUZXh0ID0gcmVzb3VyY2VNb2RlICYgQXBwbHlUb1RleHRNb2RlOworCiAgICAgLy8gQ3Jl
YXRlIGdyYWRpZW50IG9iamVjdAotICAgIGlmICghZ3JhZGllbnREYXRhLT5ncmFkaWVudCkKKyAg
ICBpZiAoIWdyYWRpZW50RGF0YS0+Z3JhZGllbnQpIHsKICAgICAgICAgYnVpbGRHcmFkaWVudChn
cmFkaWVudERhdGEsIGdyYWRpZW50RWxlbWVudCk7CiAKKyAgICAgICAgLy8gQ0cgcGxhdGZvcm1z
IHdpbGwgaGFuZGxlIHRoZSBncmFkaWVudCBzcGFjZSB0cmFuc2Zvcm0gZm9yIHRleHQgYWZ0ZXIg
YXBwbHlpbmcgdGhlCisgICAgICAgIC8vIHJlc291cmNlLCBzbyBkb24ndCBhcHBseSBpdCBoZXJl
LiBGb3Igbm9uLUNHIHBsYXRmb3Jtcywgd2Ugd2FudCB0aGUgdGV4dCBib3VuZGluZworICAgICAg
ICAvLyBib3ggYXBwbGllZCB0byB0aGUgZ3JhZGllbnQgc3BhY2UgdHJhbnNmb3JtIG5vdywgc28g
dGhlIGdyYWRpZW50IHNoYWRlciBjYW4gdXNlIGl0LgorI2lmIFBMQVRGT1JNKENHKQorICAgICAg
ICBpZiAoZ3JhZGllbnREYXRhLT5ib3VuZGluZ0JveE1vZGUgJiYgIWlzUGFpbnRpbmdUZXh0KSB7
CisjZWxzZQorICAgICAgICBpZiAoZ3JhZGllbnREYXRhLT5ib3VuZGluZ0JveE1vZGUpIHsKKyNl
bmRpZgorICAgICAgICAgICAgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94ID0gb2JqZWN0LT5v
YmplY3RCb3VuZGluZ0JveCgpOworICAgICAgICAgICAgZ3JhZGllbnREYXRhLT51c2Vyc3BhY2VU
cmFuc2Zvcm0udHJhbnNsYXRlKG9iamVjdEJvdW5kaW5nQm94LngoKSwgb2JqZWN0Qm91bmRpbmdC
b3gueSgpKTsKKyAgICAgICAgICAgIGdyYWRpZW50RGF0YS0+dXNlcnNwYWNlVHJhbnNmb3JtLnNj
YWxlTm9uVW5pZm9ybShvYmplY3RCb3VuZGluZ0JveC53aWR0aCgpLCBvYmplY3RCb3VuZGluZ0Jv
eC5oZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBncmFkaWVudERhdGEtPnVzZXJzcGFj
ZVRyYW5zZm9ybS5tdWx0aXBseShncmFkaWVudERhdGEtPnRyYW5zZm9ybSk7CisgICAgICAgIGdy
YWRpZW50RGF0YS0+Z3JhZGllbnQtPnNldEdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRE
YXRhLT51c2Vyc3BhY2VUcmFuc2Zvcm0pOworICAgIH0KKwogICAgIGlmICghZ3JhZGllbnREYXRh
LT5ncmFkaWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRHJhdyBncmFkaWVu
dAogICAgIGNvbnRleHQtPnNhdmUoKTsKIAotICAgIGJvb2wgaXNQYWludGluZ1RleHQgPSByZXNv
dXJjZU1vZGUgJiBBcHBseVRvVGV4dE1vZGU7CiAgICAgaWYgKGlzUGFpbnRpbmdUZXh0KSB7CiAj
aWYgUExBVEZPUk0oQ0cpCiAgICAgICAgIGlmICghY3JlYXRlTWFza0FuZFN3YXBDb250ZXh0Rm9y
VGV4dEdyYWRpZW50KGNvbnRleHQsIG1fc2F2ZWRDb250ZXh0LCBtX2ltYWdlQnVmZmVyLCBvYmpl
Y3QpKSB7CkBAIC0xODEsMjQgKzE5OSw2IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVu
dDo6YXBwbHlSZXMKICAgICAgICAgY29udGV4dC0+c2V0VGV4dERyYXdpbmdNb2RlKHJlc291cmNl
TW9kZSAmIEFwcGx5VG9GaWxsTW9kZSA/IGNUZXh0RmlsbCA6IGNUZXh0U3Ryb2tlKTsKICAgICB9
CiAKLSAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotCi0gICAgLy8gQ0cgcGxhdGZvcm1z
IHdpbGwgaGFuZGxlIHRoZSBncmFkaWVudCBzcGFjZSB0cmFuc2Zvcm0gZm9yIHRleHQgYWZ0ZXIg
YXBwbHlpbmcgdGhlCi0gICAgLy8gcmVzb3VyY2UsIHNvIGRvbid0IGFwcGx5IGl0IGhlcmUuIEZv
ciBub24tQ0cgcGxhdGZvcm1zLCB3ZSB3YW50IHRoZSB0ZXh0IGJvdW5kaW5nCi0gICAgLy8gYm94
IGFwcGxpZWQgdG8gdGhlIGdyYWRpZW50IHNwYWNlIHRyYW5zZm9ybSBub3csIHNvIHRoZSBncmFk
aWVudCBzaGFkZXIgY2FuIHVzZSBpdC4KLSNpZiBQTEFURk9STShDRykKLSAgICBpZiAoZ3JhZGll
bnREYXRhLT5ib3VuZGluZ0JveE1vZGUgJiYgIWlzUGFpbnRpbmdUZXh0KSB7Ci0jZWxzZQotICAg
IGlmIChncmFkaWVudERhdGEtPmJvdW5kaW5nQm94TW9kZSkgewotI2VuZGlmCi0gICAgICAgIEZs
b2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCA9IG9iamVjdC0+b2JqZWN0Qm91bmRpbmdCb3goKTsK
LSAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShvYmplY3RCb3VuZGluZ0JveC54KCksIG9iamVj
dEJvdW5kaW5nQm94LnkoKSk7Ci0gICAgICAgIHRyYW5zZm9ybS5zY2FsZU5vblVuaWZvcm0ob2Jq
ZWN0Qm91bmRpbmdCb3gud2lkdGgoKSwgb2JqZWN0Qm91bmRpbmdCb3guaGVpZ2h0KCkpOwotICAg
IH0KLQotICAgIHRyYW5zZm9ybS5tdWx0aXBseShncmFkaWVudERhdGEtPnRyYW5zZm9ybSk7Ci0g
ICAgZ3JhZGllbnREYXRhLT5ncmFkaWVudC0+c2V0R3JhZGllbnRTcGFjZVRyYW5zZm9ybSh0cmFu
c2Zvcm0pOwotCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2
Z1N0eWxlKCk7CiAgICAgQVNTRVJUKHN2Z1N0eWxlKTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuaAkocmV2aXNpb24gNjA3MDEpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0IEdyYWRpZW50RGF0YSB7CiAgICAgUmVmUHRyPEdy
YWRpZW50PiBncmFkaWVudDsKIAogICAgIGJvb2wgYm91bmRpbmdCb3hNb2RlOworICAgIEFmZmlu
ZVRyYW5zZm9ybSB1c2Vyc3BhY2VUcmFuc2Zvcm07CiAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5z
Zm9ybTsKIH07CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlUGF0
dGVybi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VQYXR0ZXJuLmNwcAkocmV2aXNpb24gNjA3MDEpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCwyNSArOTAsMTkg
QEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmFwcGx5UmVzbwogCiAgICAgUGF0dGVy
bkRhdGEqIHBhdHRlcm5EYXRhID0gbV9wYXR0ZXJuLmdldChvYmplY3QpOwogICAgIGlmICghcGF0
dGVybkRhdGEtPnBhdHRlcm4pIHsKLSAgICAgICAgRmxvYXRSZWN0IHBhdHRlcm5Cb3VuZGFyaWVz
OwotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybTsKIAogICAgICAgICAv
LyBDcmVhdGUgdGlsZSBpbWFnZQotICAgICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IHRpbGVJbWFn
ZSA9IGNyZWF0ZVRpbGVJbWFnZShwYXR0ZXJuQm91bmRhcmllcywgcGF0dGVyblRyYW5zZm9ybSwg
cGF0dGVybkVsZW1lbnQsIG9iamVjdCk7CisgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gdGls
ZUltYWdlID0gY3JlYXRlVGlsZUltYWdlKHBhdHRlcm5EYXRhLCBwYXR0ZXJuRWxlbWVudCwgb2Jq
ZWN0KTsKICAgICAgICAgaWYgKCF0aWxlSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgLy8gQ3JlYXRlIHBhdHRlcm4gb2JqZWN0Ci0gICAgICAgIGJ1aWxkUGF0dGVy
bihwYXR0ZXJuRGF0YSwgcGF0dGVybkJvdW5kYXJpZXMsIHRpbGVJbWFnZS5yZWxlYXNlKCkpOwor
ICAgICAgICBidWlsZFBhdHRlcm4ocGF0dGVybkRhdGEsIHRpbGVJbWFnZS5yZWxlYXNlKCkpOwog
CiAgICAgICAgIGlmICghcGF0dGVybkRhdGEtPnBhdHRlcm4pCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAgICAgLy8gQ29tcHV0ZSBwYXR0ZXJuIHRyYW5zZm9ybWF0aW9uCi0gICAg
ICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAgICAgIHRyYW5zZm9ybS50cmFuc2xh
dGUocGF0dGVybkJvdW5kYXJpZXMueCgpLCBwYXR0ZXJuQm91bmRhcmllcy55KCkpOwotICAgICAg
ICB0cmFuc2Zvcm0ubXVsdGlwbHkocGF0dGVyblRyYW5zZm9ybSk7Ci0gICAgICAgIHBhdHRlcm5E
YXRhLT5wYXR0ZXJuLT5zZXRQYXR0ZXJuU3BhY2VUcmFuc2Zvcm0odHJhbnNmb3JtKTsKKyAgICAg
ICAgcGF0dGVybkRhdGEtPnBhdHRlcm4tPnNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybShwYXR0ZXJu
RGF0YS0+dHJhbnNmb3JtKTsKICAgICB9CiAKICAgICAvLyBEcmF3IHBhdHRlcm4KQEAgLTIxMiw4
ICsyMDYsNyBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjpjYWxjCiAgICAg
cmV0dXJuIHBhdHRlcm5Cb3VuZGFyaWVzSW5jbHVkaW5nT3ZlcmZsb3c7CiB9CiAKLVBhc3NPd25Q
dHI8SW1hZ2VCdWZmZXI+IFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6Y3JlYXRlVGlsZUltYWdl
KEZsb2F0UmVjdCYgcGF0dGVybkJvdW5kYXJpZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sCitQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBSZW5kZXJTVkdSZXNv
dXJjZVBhdHRlcm46OmNyZWF0ZVRpbGVJbWFnZShQYXR0ZXJuRGF0YSogcGF0dGVybkRhdGEsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTVkdQYXR0ZXJuRWxlbWVudCogcGF0dGVybkVsZW1lbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZW5kZXJPYmplY3QqIG9iamVjdCkgY29uc3QKIHsKQEAgLTIyNCw4ICsyMTcsOCBAQCBQYXNz
T3duUHRyPEltYWdlQnVmZmVyPiBSZW5kZXJTVkdSZXNvdXJjCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94ID0gb2JqZWN0LT5vYmplY3RCb3VuZGlu
Z0JveCgpOyAgICAKLSAgICBwYXR0ZXJuQm91bmRhcmllcyA9IGNhbGN1bGF0ZVBhdHRlcm5Cb3Vu
ZGFyaWVzKGF0dHJpYnV0ZXMsIG9iamVjdEJvdW5kaW5nQm94LCBwYXR0ZXJuRWxlbWVudCk7IAot
ICAgIHBhdHRlcm5UcmFuc2Zvcm0gPSBhdHRyaWJ1dGVzLnBhdHRlcm5UcmFuc2Zvcm0oKTsKKyAg
ICBGbG9hdFJlY3QgcGF0dGVybkJvdW5kYXJpZXMgPSBjYWxjdWxhdGVQYXR0ZXJuQm91bmRhcmll
cyhhdHRyaWJ1dGVzLCBvYmplY3RCb3VuZGluZ0JveCwgcGF0dGVybkVsZW1lbnQpOyAKKyAgICBB
ZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybSA9IGF0dHJpYnV0ZXMucGF0dGVyblRyYW5z
Zm9ybSgpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIHZpZXdCb3hDVE0gPSBwYXR0ZXJuRWxlbWVu
dC0+dmlld0JveFRvVmlld1RyYW5zZm9ybShwYXR0ZXJuRWxlbWVudC0+dmlld0JveCgpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGF0dGVybkVsZW1lbnQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKSwKQEAgLTI3
NiwxMSArMjY5LDE3IEBAIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IFJlbmRlclNWR1Jlc291cmMK
ICAgICAgICAgcmVuZGVyU3VidHJlZVRvSW1hZ2UodGlsZUltYWdlLmdldCgpLCBub2RlLT5yZW5k
ZXJlcigpKTsKICAgICB9CiAKKyAgICBwYXR0ZXJuRGF0YS0+Ym91bmRhcmllcyA9IHBhdHRlcm5C
b3VuZGFyaWVzOworCisgICAgLy8gQ29tcHV0ZSBwYXR0ZXJuIHRyYW5zZm9ybWF0aW9uCisgICAg
cGF0dGVybkRhdGEtPnRyYW5zZm9ybS50cmFuc2xhdGUocGF0dGVybkJvdW5kYXJpZXMueCgpLCBw
YXR0ZXJuQm91bmRhcmllcy55KCkpOworICAgIHBhdHRlcm5EYXRhLT50cmFuc2Zvcm0ubXVsdGlw
bHkocGF0dGVyblRyYW5zZm9ybSk7CisKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgcmV0
dXJuIHRpbGVJbWFnZS5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuOjpidWlsZFBhdHRlcm4oUGF0dGVybkRhdGEqIHBhdHRlcm5EYXRhLCBjb25zdCBGbG9hdFJl
Y3QmIHBhdHRlcm5Cb3VuZGFyaWVzLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiB0aWxlSW1hZ2Up
IGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKFBhdHRl
cm5EYXRhKiBwYXR0ZXJuRGF0YSwgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gdGlsZUltYWdlKSBj
b25zdAogewogICAgIGlmICghdGlsZUltYWdlLT5pbWFnZSgpKSB7CiAgICAgICAgIHBhdHRlcm5E
YXRhLT5wYXR0ZXJuID0gMDsKQEAgLTI4OCwxNCArMjg3LDE0IEBAIHZvaWQgUmVuZGVyU1ZHUmVz
b3VyY2VQYXR0ZXJuOjpidWlsZFBhdHQKICAgICB9CiAKICAgICBJbnRSZWN0IHRpbGVSZWN0ID0g
dGlsZUltYWdlLT5pbWFnZSgpLT5yZWN0KCk7Ci0gICAgaWYgKHRpbGVSZWN0LndpZHRoKCkgPD0g
cGF0dGVybkJvdW5kYXJpZXMud2lkdGgoKSAmJiB0aWxlUmVjdC5oZWlnaHQoKSA8PSBwYXR0ZXJu
Qm91bmRhcmllcy5oZWlnaHQoKSkgeworICAgIGlmICh0aWxlUmVjdC53aWR0aCgpIDw9IHBhdHRl
cm5EYXRhLT5ib3VuZGFyaWVzLndpZHRoKCkgJiYgdGlsZVJlY3QuaGVpZ2h0KCkgPD0gcGF0dGVy
bkRhdGEtPmJvdW5kYXJpZXMuaGVpZ2h0KCkpIHsKICAgICAgICAgcGF0dGVybkRhdGEtPnBhdHRl
cm4gPSBQYXR0ZXJuOjpjcmVhdGUodGlsZUltYWdlLT5pbWFnZSgpLCB0cnVlLCB0cnVlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIERyYXcgdGhlIGZpcnN0IGNlbGwgb2YgdGhl
IHBhdHRlcm4gbWFudWFsbHkgdG8gc3VwcG9ydCBvdmVyZmxvdz0idmlzaWJsZSIgb24gYWxsIHBs
YXRmb3Jtcy4KLSAgICBpbnQgdGlsZVdpZHRoID0gc3RhdGljX2Nhc3Q8aW50PihwYXR0ZXJuQm91
bmRhcmllcy53aWR0aCgpICsgMC41Zik7Ci0gICAgaW50IHRpbGVIZWlnaHQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHBhdHRlcm5Cb3VuZGFyaWVzLmhlaWdodCgpICsgMC41Zik7CisgICAgaW50IHRpbGVX
aWR0aCA9IHN0YXRpY19jYXN0PGludD4ocGF0dGVybkRhdGEtPmJvdW5kYXJpZXMud2lkdGgoKSAr
IDAuNWYpOworICAgIGludCB0aWxlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50PihwYXR0ZXJuRGF0
YS0+Ym91bmRhcmllcy5oZWlnaHQoKSArIDAuNWYpOwogCiAgICAgLy8gRG9uJ3QgY3JlYXRlIElt
YWdlQnVmZmVycyB3aXRoIGltYWdlIHNpemUgb2YgMAogICAgIGlmICghdGlsZVdpZHRoIHx8ICF0
aWxlSGVpZ2h0KSB7CkBAIC0zMTAsMTQgKzMwOSwxNCBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNl
UGF0dGVybjo6YnVpbGRQYXR0CiAgICAgaW50IG51bVggPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxm
KHRpbGVSZWN0LndpZHRoKCkgLyB0aWxlV2lkdGgpKSArIDE7CiAKICAgICBuZXdUaWxlSW1hZ2VD
b250ZXh0LT5zYXZlKCk7Ci0gICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJhbnNsYXRlKC1wYXR0
ZXJuQm91bmRhcmllcy53aWR0aCgpICogbnVtWCwgLXBhdHRlcm5Cb3VuZGFyaWVzLmhlaWdodCgp
ICogbnVtWSk7CisgICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJhbnNsYXRlKC1wYXR0ZXJuRGF0
YS0+Ym91bmRhcmllcy53aWR0aCgpICogbnVtWCwgLXBhdHRlcm5EYXRhLT5ib3VuZGFyaWVzLmhl
aWdodCgpICogbnVtWSk7CiAgICAgZm9yIChpbnQgaSA9IG51bVk7IGkgPiAwOyAtLWkpIHsKLSAg
ICAgICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJhbnNsYXRlKDAsIHBhdHRlcm5Cb3VuZGFyaWVz
LmhlaWdodCgpKTsKKyAgICAgICAgbmV3VGlsZUltYWdlQ29udGV4dC0+dHJhbnNsYXRlKDAsIHBh
dHRlcm5EYXRhLT5ib3VuZGFyaWVzLmhlaWdodCgpKTsKICAgICAgICAgZm9yIChpbnQgaiA9IG51
bVg7IGogPiAwOyAtLWopIHsKLSAgICAgICAgICAgIG5ld1RpbGVJbWFnZUNvbnRleHQtPnRyYW5z
bGF0ZShwYXR0ZXJuQm91bmRhcmllcy53aWR0aCgpLCAwKTsKKyAgICAgICAgICAgIG5ld1RpbGVJ
bWFnZUNvbnRleHQtPnRyYW5zbGF0ZShwYXR0ZXJuRGF0YS0+Ym91bmRhcmllcy53aWR0aCgpLCAw
KTsKICAgICAgICAgICAgIG5ld1RpbGVJbWFnZUNvbnRleHQtPmRyYXdJbWFnZSh0aWxlSW1hZ2Ut
PmltYWdlKCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgdGlsZVJlY3QsIHRpbGVSZWN0KTsKICAg
ICAgICAgfQotICAgICAgICBuZXdUaWxlSW1hZ2VDb250ZXh0LT50cmFuc2xhdGUoLXBhdHRlcm5C
b3VuZGFyaWVzLndpZHRoKCkgKiBudW1YLCAwKTsKKyAgICAgICAgbmV3VGlsZUltYWdlQ29udGV4
dC0+dHJhbnNsYXRlKC1wYXR0ZXJuRGF0YS0+Ym91bmRhcmllcy53aWR0aCgpICogbnVtWCwgMCk7
CiAgICAgfQogICAgIG5ld1RpbGVJbWFnZUNvbnRleHQtPnJlc3RvcmUoKTsKIApJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgJKHJldmlzaW9uIDYw
NzAxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1
Y3QgUGF0dGVybkRhdGEgewogICAgIFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJuOworICAgIEZsb2F0
UmVjdCBib3VuZGFyaWVzOworICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CiB9OwogCiBz
dHJ1Y3QgUGF0dGVybkF0dHJpYnV0ZXM7CkBAIC02MCw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIHNfcmVzb3VyY2VUeXBlOwogCiBwcml2YXRlOgot
ICAgIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZVRpbGVJbWFnZShGbG9hdFJlY3QmIHBh
dHRlcm5Cb3VuZGFyaWVzLCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IFNWR1BhdHRlcm5FbGVtZW50KiwgUmVuZGVyT2JqZWN0KikgY29uc3Q7Ci0gICAgdm9pZCBidWls
ZFBhdHRlcm4oUGF0dGVybkRhdGEqLCBjb25zdCBGbG9hdFJlY3QmIHBhdHRlcm5Cb3VuZGFyaWVz
LCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiB0aWxlSW1hZ2UpIGNvbnN0OworICAgIFBhc3NPd25Q
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZVRpbGVJbWFnZShQYXR0ZXJuRGF0YSosIGNvbnN0IFNWR1Bh
dHRlcm5FbGVtZW50KiwgUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdm9pZCBidWlsZFBhdHRl
cm4oUGF0dGVybkRhdGEqLCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiB0aWxlSW1hZ2UpIGNvbnN0
OwogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVQYXR0ZXJuQm91bmRhcmllc0luY2x1ZGluZ092ZXJm
bG93KFBhdHRlcm5BdHRyaWJ1dGVzJiwgY29uc3QgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGluZ0Jv
eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHZpZXdCb3hDVE0sIGNvbnN0IEZsb2F0UmVjdCYg
cGF0dGVybkJvdW5kYXJpZXMpIGNvbnN0OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>