<?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>136734</bug_id>
          
          <creation_ts>2014-09-10 21:39:58 -0700</creation_ts>
          <short_desc>Check for varying packing restrictions per program instead of per shader</short_desc>
          <delta_ts>2014-09-11 12:24:26 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roger Fong">roger_fong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1034521</commentid>
    <comment_count>0</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-09-10 21:39:58 -0700</bug_when>
    <thetext>rdar://problem/16308409</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034525</commentid>
    <comment_count>1</comment_count>
      <attachid>237931</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-09-10 21:50:43 -0700</bug_when>
    <thetext>Created attachment 237931
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034526</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-10 21:52:51 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034527</commentid>
    <comment_count>3</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-09-10 21:56:43 -0700</bug_when>
    <thetext>The spec says:

If the packing algorithm fails either for the uniform variables of a shader or for the varying variables of a program, compilation or linking must fail.

I originally understood compilation to mean, the shaders fail to compile (since you don&apos;t compile a program, you just link it). But in this case, I think compilation means the same thing as linking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034632</commentid>
    <comment_count>4</comment_count>
      <attachid>237961</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-09-11 10:13:58 -0700</bug_when>
    <thetext>Created attachment 237961
patch

with build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034662</commentid>
    <comment_count>5</comment_count>
      <attachid>237961</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-09-11 11:50:18 -0700</bug_when>
    <thetext>Comment on attachment 237961
patch

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

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:368
&gt; +        const char* builtIns[] = {
&gt; +            &quot;gl_FragCoord&quot;,
&gt; +            &quot;gl_FrontFacing&quot;,
&gt; +            &quot;gl_PointCoord&quot;
&gt; +        };
&gt; +
&gt; +        bool isBuiltIn = false;
&gt; +        for (int i = 0; i &lt; 3; ++i) {
&gt; +            if (symbolName == builtIns[i]) {
&gt; +                isBuiltIn = true;
&gt; +                break;
&gt; +            }
&gt; +        }
&gt; +
&gt; +        if (isBuiltIn)
&gt; +            continue;

I don&apos;t really have a preference here, but maybe it might be simpler to do if (symbolName == &quot;gl_FragCoord&quot; || symbolName ==...) continue;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034674</commentid>
    <comment_count>6</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2014-09-11 12:24:26 -0700</bug_when>
    <thetext>Took Dean&apos;s suggestion.

Committed:
http://trac.webkit.org/changeset/173527</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237931</attachid>
            <date>2014-09-10 21:50:43 -0700</date>
            <delta_ts>2014-09-11 10:13:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>10930</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzUwNikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDE0LTA5LTEwICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ2hlY2sgZm9yIHZhcnlpbmcgcGFja2luZyByZXN0cmljdGlvbnMgcGVyIHByb2dy
YW0gaW5zdGVhZCBvZiBwZXIgc2hhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTg1LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYzMDg0
MDk+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIGNoZWNrcyBmcm9tIEFOR0xFLgorICAg
ICAgICAqIHNyYy9jb21waWxlci90cmFuc2xhdG9yL0NvbXBpbGVyLmNwcDoKKyAgICAgICAgKFRD
b21waWxlcjo6Y29tcGlsZSk6CisgICAgICAgIChUQ29tcGlsZXI6OmVuZm9yY2VQYWNraW5nUmVz
dHJpY3Rpb25zKToKKyAgICAgICAgKiBzcmMvY29tcGlsZXIvdHJhbnNsYXRvci9TaEhhbmRsZS5o
OgorCiAyMDE0LTA5LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIHVwZGF0ZXMgc3VnZ2VzdGVkIGJ5IG5ldyB2ZXJzaW9uIG9mIFhjb2RlCkluZGV4OiBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9Db21waWxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNzM0MzMpCisrKyBTb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9Db21waWxlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzOSw4ICsyMzksMTUgQEAgYm9vbCBUQ29tcGlsZXI6OmNvbXBpbGUoY29uc3Qg
Y2hhciogY29ucwogICAgICAgICBpZiAoc3VjY2VzcyAmJiAoY29tcGlsZU9wdGlvbnMgJiBTSF9W
QVJJQUJMRVMpKQogICAgICAgICB7CiAgICAgICAgICAgICBjb2xsZWN0VmFyaWFibGVzKHJvb3Qp
OwotICAgICAgICAgICAgaWYgKGNvbXBpbGVPcHRpb25zICYgU0hfRU5GT1JDRV9QQUNLSU5HX1JF
U1RSSUNUSU9OUykKKyAgICAgICAgICAgIGlmIChjb21waWxlT3B0aW9ucyAmIFNIX0VORk9SQ0Vf
UEFDS0lOR19SRVNUUklDVElPTlMpIHsKICAgICAgICAgICAgICAgICBzdWNjZXNzID0gZW5mb3Jj
ZVBhY2tpbmdSZXN0cmljdGlvbnMoKTsKKyAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsK
KyAgICAgICAgICAgICAgICAgICAgaW5mb1NpbmsuaW5mby5wcmVmaXgoRVByZWZpeEVycm9yKTsK
KyAgICAgICAgICAgICAgICAgICAgaW5mb1NpbmsuaW5mbyA8PCAidG9vIG1hbnkgdW5pZm9ybXMi
OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAoc3VjY2VzcyAmJiBzaGFkZXJUeXBlID09
IFNIX1ZFUlRFWF9TSEFERVIgJiYKICAgICAgICAgICAgICAgICAoY29tcGlsZU9wdGlvbnMgJiBT
SF9JTklUX1ZBUllJTkdTX1dJVEhPVVRfU1RBVElDX1VTRSkpCiAgICAgICAgICAgICAgICAgaW5p
dGlhbGl6ZVZhcnlpbmdzV2l0aG91dFN0YXRpY1VzZShyb290KTsKQEAgLTQ1MywyMSArNDYwLDcg
QEAgdm9pZCBUQ29tcGlsZXI6OmNvbGxlY3RWYXJpYWJsZXMoVEludGVybQogYm9vbCBUQ29tcGls
ZXI6OmVuZm9yY2VQYWNraW5nUmVzdHJpY3Rpb25zKCkKIHsKICAgICBWYXJpYWJsZVBhY2tlciBw
YWNrZXI7Ci0gICAgYm9vbCBzdWNjZXNzID0gcGFja2VyLkNoZWNrVmFyaWFibGVzV2l0aGluUGFj
a2luZ0xpbWl0cyhtYXhVbmlmb3JtVmVjdG9ycywgdW5pZm9ybXMpOwotICAgIGlmICghc3VjY2Vz
cykgewotICAgICAgICBpbmZvU2luay5pbmZvLnByZWZpeChFUHJlZml4RXJyb3IpOwotICAgICAg
ICBpbmZvU2luay5pbmZvIDw8ICJ0b28gbWFueSB1bmlmb3JtcyI7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICBzdWNjZXNzID0gcGFja2VyLkNoZWNrVmFyaWFibGVzV2l0aGlu
UGFja2luZ0xpbWl0cyhtYXhWYXJ5aW5nVmVjdG9ycywgdmFyeWluZ3MpOwotCi0gICAgaWYgKCFz
dWNjZXNzKSB7Ci0gICAgICAgIGluZm9TaW5rLmluZm8ucHJlZml4KEVQcmVmaXhFcnJvcik7Ci0g
ICAgICAgIGluZm9TaW5rLmluZm8gPDwgInRvbyBtYW55IHZhcnlpbmdzIjsKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFja2VyLkNo
ZWNrVmFyaWFibGVzV2l0aGluUGFja2luZ0xpbWl0cyhtYXhVbmlmb3JtVmVjdG9ycywgdW5pZm9y
bXMpOwogfQogCiB2b2lkIFRDb21waWxlcjo6aW5pdGlhbGl6ZUdMUG9zaXRpb24oVEludGVybU5v
ZGUqIHJvb3QpCkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJh
bnNsYXRvci9TaEhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21waWxlci90cmFuc2xhdG9yL1NoSGFuZGxlLmgJKHJldmlzaW9uIDE3MzQzMykKKysr
IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1NoSGFuZGxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFRy
YW5zbGF0ZSB0byBvYmplY3QgY29kZS4KICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNsYXRlKFRJbnRl
cm1Ob2RlKiByb290KSA9IDA7CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmLCBhZnRlciBhcHBseWlu
ZyB0aGUgcGFja2luZyBydWxlcyBpbiB0aGUgR0xTTCAxLjAxNyBzcGVjCi0gICAgLy8gQXBwZW5k
aXggQSwgc2VjdGlvbiA3LCB0aGUgc2hhZGVyIGRvZXMgbm90IHVzZSB0b28gbWFueSB1bmlmb3Jt
cyBvciB2YXJ5aW5ncy4KKyAgICAvLyBBcHBlbmRpeCBBLCBzZWN0aW9uIDcsIHRoZSBzaGFkZXIg
ZG9lcyBub3QgdXNlIHRvbyBtYW55IHVuaWZvcm1zCiAgICAgYm9vbCBlbmZvcmNlUGFja2luZ1Jl
c3RyaWN0aW9ucygpOwogICAgIC8vIEluc2VydCBzdGF0ZW1lbnRzIHRvIGluaXRpYWxpemUgdmFy
eWluZ3Mgd2l0aG91dCBzdGF0aWMgdXNlIGluIHRoZSBiZWdpbm5pbmcKICAgICAvLyBvZiBtYWlu
KCkuIEl0IGlzIHRvIHdvcmsgYXJvdW5kIGEgTWFjIGRyaXZlciB3aGVyZSBzdWNoIHZhcnlpbmdz
IGluIGEgdmVydGV4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzM1MDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxNC0w
OS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNr
IGZvciB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIHBlciBwcm9ncmFtIGluc3RlYWQgb2Yg
cGVyIHNoYWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNjU4NS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MzA4NDA5Pi4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHdlYmds
LzEuMC4yL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbC4K
KworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmxpbmtQcm9ncmFtKTogCisgICAg
ICAgIENoZWNrIGZvciB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIHdoZW4gbGlua2luZyB0
aGUgcHJvZ3JhbS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpjaGVja1ZhcnlpbmdzUGFja2luZyk6IAorICAgICAgICBDaGVja3MgdmFyeWluZ3Mgc2hhcmVk
IGJ5IGJvdGggdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXJzIGFuZCBtYWtlcyBzdXJlCisgICAg
ICAgIHRoZXkgc2F0aXNmeSBwYWNraW5nIHJlc3RyaWN0aW9ucy4KKwogMjAxNC0wOS0xMCAgQWRl
bmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CiAKICAgICAgICAgW1NW
R10gQ2xlYW51cCBpdGVyYXRvciBjb2RlIGluIFNNSUxUaW1lQ29udGFpbmVyIHVzaW5nIHJhbmdl
LWJhc2VkIGxvb3AKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTczNDMzKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQ1Myw3ICszNDUzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmxpbmtQ
cm9ncmFtKAogICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpKSB7CiAgICAgICAgIFdlYkdMU2hh
ZGVyKiB2ZXJ0ZXhTaGFkZXIgPSBwcm9ncmFtLT5nZXRBdHRhY2hlZFNoYWRlcihHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX1NIQURFUik7CiAgICAgICAgIFdlYkdMU2hhZGVyKiBmcmFnbWVudFNo
YWRlciA9IHByb2dyYW0tPmdldEF0dGFjaGVkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFH
TUVOVF9TSEFERVIpOwotICAgICAgICBpZiAoIXZlcnRleFNoYWRlciB8fCAhdmVydGV4U2hhZGVy
LT5pc1ZhbGlkKCkgfHwgIWZyYWdtZW50U2hhZGVyIHx8ICFmcmFnbWVudFNoYWRlci0+aXNWYWxp
ZCgpIHx8ICFtX2NvbnRleHQtPnByZWNpc2lvbnNNYXRjaChvYmplY3RPclplcm8odmVydGV4U2hh
ZGVyKSwgb2JqZWN0T3JaZXJvKGZyYWdtZW50U2hhZGVyKSkpIHsKKyAgICAgICAgaWYgKCF2ZXJ0
ZXhTaGFkZXIgfHwgIXZlcnRleFNoYWRlci0+aXNWYWxpZCgpIHx8ICFmcmFnbWVudFNoYWRlciB8
fCAhZnJhZ21lbnRTaGFkZXItPmlzVmFsaWQoKSB8fCAhbV9jb250ZXh0LT5wcmVjaXNpb25zTWF0
Y2gob2JqZWN0T3JaZXJvKHZlcnRleFNoYWRlciksIG9iamVjdE9yWmVybyhmcmFnbWVudFNoYWRl
cikpIHx8ICFtX2NvbnRleHQtPmNoZWNrVmFyeWluZ3NQYWNraW5nKG9iamVjdE9yWmVybyh2ZXJ0
ZXhTaGFkZXIpLCBvYmplY3RPclplcm8oZnJhZ21lbnRTaGFkZXIpKSkgewogICAgICAgICAgICAg
cHJvZ3JhbS0+c2V0TGlua1N0YXR1cyhmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTczNDMzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAt
ODA5LDYgKzgwOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNE
T2JqZWN0KTsKICAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKKyAg
ICBib29sIGNoZWNrVmFyeWluZ3NQYWNraW5nKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hhZGVy
LCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICAgICBib29sIHByZWNp
c2lvbnNNYXRjaChQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciwgUGxhdGZvcm0zRE9iamVj
dCBmcmFnbWVudFNoYWRlcikgY29uc3Q7CiAKICAgICB2b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1
aW50IGluZGV4LCBHQzNEZmxvYXQgeCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE3MzQzMykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1v
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNlbHNlCiAjaW5jbHVkZSAi
RXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjZW5kaWYKKyNpbmNsdWRlICJBTkdMRS9TaGFkZXJMYW5n
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKQEAgLTMzNCw2ICszMzUsNjYgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdAogICAgIDo6Z2xGbHVzaCgpOwogfQogCiti
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja1ZhcnlpbmdzUGFja2luZyhQbGF0Zm9ybTNET2Jq
ZWN0IHZlcnRleFNoYWRlciwgUGxhdGZvcm0zRE9iamVjdCBmcmFnbWVudFNoYWRlcikgY29uc3QK
K3sKKyAgICBBU1NFUlQobV9zaGFkZXJTb3VyY2VNYXAuY29udGFpbnModmVydGV4U2hhZGVyKSk7
CisgICAgQVNTRVJUKG1fc2hhZGVyU291cmNlTWFwLmNvbnRhaW5zKGZyYWdtZW50U2hhZGVyKSk7
CisgICAgY29uc3QgYXV0byYgdmVydGV4RW50cnkgPSBtX3NoYWRlclNvdXJjZU1hcC5maW5kKHZl
cnRleFNoYWRlciktPnZhbHVlOworICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50RW50cnkgPSBtX3No
YWRlclNvdXJjZU1hcC5maW5kKGZyYWdtZW50U2hhZGVyKS0+dmFsdWU7CisKKyAgICBIYXNoTWFw
PFN0cmluZywgU2hWYXJpYWJsZUluZm8+IGNvbWJpbmVkVmFyeWluZ3M7CisgICAgZm9yIChjb25z
dCBhdXRvJiB2ZXJ0ZXhTeW1ib2wgOiB2ZXJ0ZXhFbnRyeS52YXJ5aW5nTWFwKSB7CisgICAgICAg
IGNvbnN0IFN0cmluZyYgc3ltYm9sTmFtZSA9IHZlcnRleFN5bWJvbC5rZXk7CisgICAgICAgIC8v
IFRoZSB2YXJ5aW5nIG1hcCBpbmNsdWRlcyB2YXJpYWJsZXMgZm9yIGVhY2ggaW5kZXggb2YgYW4g
YXJyYXkgdmFyaWFibGUuCisgICAgICAgIC8vIFdlIG9ubHkgd2FudCBhIHNpbmdsZSB2YXJpYWJs
ZSB0byByZXByZXNlbnQgdGhlIGFycmF5LgorICAgICAgICBpZiAoc3ltYm9sTmFtZS5lbmRzV2l0
aCgiXSIpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgY29uc3QgY2hhciogYnVp
bHRJbnNbXSA9IHsKKyAgICAgICAgICAgICJnbF9GcmFnQ29vcmQiLAorICAgICAgICAgICAgImds
X0Zyb250RmFjaW5nIiwKKyAgICAgICAgICAgICJnbF9Qb2ludENvb3JkIgorICAgICAgICB9Owor
CisgICAgICAgIGJvb2wgaXNCdWlsdEluID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgMzsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3ltYm9sTmFtZSA9PSBidWlsdEluc1tp
XSkgeworICAgICAgICAgICAgICAgIGlzQnVpbHRJbiA9IHRydWU7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNCdWlsdElu
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnRT
eW1ib2wgPSBmcmFnbWVudEVudHJ5LnZhcnlpbmdNYXAuZmluZChzeW1ib2xOYW1lKTsKKyAgICAg
ICAgaWYgKGZyYWdtZW50U3ltYm9sICE9IGZyYWdtZW50RW50cnkudmFyeWluZ01hcC5lbmQoKSkg
eworICAgICAgICAgICAgU2hWYXJpYWJsZUluZm8gc3ltYm9sSW5mbzsKKyAgICAgICAgICAgIHN5
bWJvbEluZm8udHlwZSA9IHN0YXRpY19jYXN0PFNoRGF0YVR5cGU+KChmcmFnbWVudFN5bWJvbC0+
dmFsdWUpLnR5cGUpOworICAgICAgICAgICAgLy8gVGhlIGFycmF5cyBhcmUgYWxyZWFkeSBzcGxp
dCB1cC4KKyAgICAgICAgICAgIHN5bWJvbEluZm8uc2l6ZSA9IChmcmFnbWVudFN5bWJvbC0+dmFs
dWUpLnNpemU7CisgICAgICAgICAgICBjb21iaW5lZFZhcnlpbmdzLmFkZChzeW1ib2xOYW1lLCBz
eW1ib2xJbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHNpemVfdCBudW1WYXJ5aW5ncyA9
IGNvbWJpbmVkVmFyeWluZ3Muc2l6ZSgpOworICAgIGlmICghbnVtVmFyeWluZ3MpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgU2hWYXJpYWJsZUluZm8qIHZhcmlhYmxlcyA9IG5ldyBTaFZh
cmlhYmxlSW5mb1tudW1WYXJ5aW5nc107CisgICAgaW50IGluZGV4ID0gMDsKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHZhcnlpbmdTeW1ib2wgOiBjb21iaW5lZFZhcnlpbmdzKSB7CisgICAgICAgIHZh
cmlhYmxlc1tpbmRleF0gPSB2YXJ5aW5nU3ltYm9sLnZhbHVlOworICAgICAgICBpbmRleCsrOwor
ICAgIH0KKyAgICAKKyAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOworICAgIDo6Z2xH
ZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxvYXRzKTsKKyAg
ICBpbnQgcmVzdWx0ID0gU2hDaGVja1ZhcmlhYmxlc1dpdGhpblBhY2tpbmdMaW1pdHMobWF4VmFy
eWluZ0Zsb2F0cyAvIDQsIHZhcmlhYmxlcywgbnVtVmFyeWluZ3MpOworCisgICAgZGVsZXRlW10g
dmFyaWFibGVzOworICAgIHJldHVybiByZXN1bHQ7Cit9CiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OnByZWNpc2lvbnNNYXRjaChQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciwgUGxhdGZv
cm0zRE9iamVjdCBmcmFnbWVudFNoYWRlcikgY29uc3QKIHsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3
MzUwNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDE0LTA5LTEwICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ2hlY2sgZm9yIHZhcnlpbmcgcGFja2luZyByZXN0cmljdGlvbnMgcGVyIHByb2dy
YW0gaW5zdGVhZCBvZiBwZXIgc2hhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTg1LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYzMDg0
MDk+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTQtMDktMTAgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIFJl
YmFzZWxpbmUgZmFpbGluZyBtZWRpYS92aWRlby0gdGVzdHMgYnJva2VuIGJ5IHIxNTY1NDYuCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24g
MTczNDcxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHdv
cmtpbmcgY29weSkKQEAgLTU1MCw3ICs1NTAsNiBAQCB3ZWJnbC8xLjAuMS9jb25mb3JtYW5jZS9n
bHNsL3NhbXBsZXJzL2dsCiB3ZWJnbC8xLjAuMS9jb25mb3JtYW5jZS9nbHNsL3NhbXBsZXJzL2ds
c2wtZnVuY3Rpb24tdGV4dHVyZTJkcHJvai5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8xLjAuMS9j
b25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBbIFNraXAg
XQogd2ViZ2wvMS4wLjEvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWxvc3QtcmVzdG9yZWQu
aHRtbCBbIEZhaWx1cmUgXQotd2ViZ2wvMS4wLjIvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDA5X3RvXzAxNi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJnbC8xLjAuMi9jb25mb3JtYW5j
ZS9jb250ZXh0L2NvbnRleHQtY3JlYXRpb24tYW5kLWRlc3RydWN0aW9uLmh0bWwgWyBGYWlsdXJl
IFRpbWVvdXQgXQogd2ViZ2wvMS4wLjIvY29uZm9ybWFuY2UvcmVuZGVyaW5nL211bHRpc2FtcGxl
LWNvcnJ1cHRpb24uaHRtbCBbIEZhaWx1cmUgVGltZW91dCBdCiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237961</attachid>
            <date>2014-09-11 10:13:58 -0700</date>
            <delta_ts>2014-09-11 11:50:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>10931</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MzUwNikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDE0LTA5LTEwICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQ2hlY2sgZm9yIHZhcnlpbmcgcGFja2luZyByZXN0cmljdGlvbnMgcGVyIHByb2dy
YW0gaW5zdGVhZCBvZiBwZXIgc2hhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTg1LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYzMDg0
MDk+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIGNoZWNrcyBmcm9tIEFOR0xFLgorICAg
ICAgICAqIHNyYy9jb21waWxlci90cmFuc2xhdG9yL0NvbXBpbGVyLmNwcDoKKyAgICAgICAgKFRD
b21waWxlcjo6Y29tcGlsZSk6CisgICAgICAgIChUQ29tcGlsZXI6OmVuZm9yY2VQYWNraW5nUmVz
dHJpY3Rpb25zKToKKyAgICAgICAgKiBzcmMvY29tcGlsZXIvdHJhbnNsYXRvci9TaEhhbmRsZS5o
OgorCiAyMDE0LTA5LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIHVwZGF0ZXMgc3VnZ2VzdGVkIGJ5IG5ldyB2ZXJzaW9uIG9mIFhjb2RlCkluZGV4OiBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9Db21waWxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxNzM0MzMpCisrKyBTb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9Db21waWxlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzOSw4ICsyMzksMTUgQEAgYm9vbCBUQ29tcGlsZXI6OmNvbXBpbGUoY29uc3Qg
Y2hhciogY29ucwogICAgICAgICBpZiAoc3VjY2VzcyAmJiAoY29tcGlsZU9wdGlvbnMgJiBTSF9W
QVJJQUJMRVMpKQogICAgICAgICB7CiAgICAgICAgICAgICBjb2xsZWN0VmFyaWFibGVzKHJvb3Qp
OwotICAgICAgICAgICAgaWYgKGNvbXBpbGVPcHRpb25zICYgU0hfRU5GT1JDRV9QQUNLSU5HX1JF
U1RSSUNUSU9OUykKKyAgICAgICAgICAgIGlmIChjb21waWxlT3B0aW9ucyAmIFNIX0VORk9SQ0Vf
UEFDS0lOR19SRVNUUklDVElPTlMpIHsKICAgICAgICAgICAgICAgICBzdWNjZXNzID0gZW5mb3Jj
ZVBhY2tpbmdSZXN0cmljdGlvbnMoKTsKKyAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsK
KyAgICAgICAgICAgICAgICAgICAgaW5mb1NpbmsuaW5mby5wcmVmaXgoRVByZWZpeEVycm9yKTsK
KyAgICAgICAgICAgICAgICAgICAgaW5mb1NpbmsuaW5mbyA8PCAidG9vIG1hbnkgdW5pZm9ybXMi
OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAoc3VjY2VzcyAmJiBzaGFkZXJUeXBlID09
IFNIX1ZFUlRFWF9TSEFERVIgJiYKICAgICAgICAgICAgICAgICAoY29tcGlsZU9wdGlvbnMgJiBT
SF9JTklUX1ZBUllJTkdTX1dJVEhPVVRfU1RBVElDX1VTRSkpCiAgICAgICAgICAgICAgICAgaW5p
dGlhbGl6ZVZhcnlpbmdzV2l0aG91dFN0YXRpY1VzZShyb290KTsKQEAgLTQ1MywyMSArNDYwLDcg
QEAgdm9pZCBUQ29tcGlsZXI6OmNvbGxlY3RWYXJpYWJsZXMoVEludGVybQogYm9vbCBUQ29tcGls
ZXI6OmVuZm9yY2VQYWNraW5nUmVzdHJpY3Rpb25zKCkKIHsKICAgICBWYXJpYWJsZVBhY2tlciBw
YWNrZXI7Ci0gICAgYm9vbCBzdWNjZXNzID0gcGFja2VyLkNoZWNrVmFyaWFibGVzV2l0aGluUGFj
a2luZ0xpbWl0cyhtYXhVbmlmb3JtVmVjdG9ycywgdW5pZm9ybXMpOwotICAgIGlmICghc3VjY2Vz
cykgewotICAgICAgICBpbmZvU2luay5pbmZvLnByZWZpeChFUHJlZml4RXJyb3IpOwotICAgICAg
ICBpbmZvU2luay5pbmZvIDw8ICJ0b28gbWFueSB1bmlmb3JtcyI7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICBzdWNjZXNzID0gcGFja2VyLkNoZWNrVmFyaWFibGVzV2l0aGlu
UGFja2luZ0xpbWl0cyhtYXhWYXJ5aW5nVmVjdG9ycywgdmFyeWluZ3MpOwotCi0gICAgaWYgKCFz
dWNjZXNzKSB7Ci0gICAgICAgIGluZm9TaW5rLmluZm8ucHJlZml4KEVQcmVmaXhFcnJvcik7Ci0g
ICAgICAgIGluZm9TaW5rLmluZm8gPDwgInRvbyBtYW55IHZhcnlpbmdzIjsKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFja2VyLkNo
ZWNrVmFyaWFibGVzV2l0aGluUGFja2luZ0xpbWl0cyhtYXhVbmlmb3JtVmVjdG9ycywgdW5pZm9y
bXMpOwogfQogCiB2b2lkIFRDb21waWxlcjo6aW5pdGlhbGl6ZUdMUG9zaXRpb24oVEludGVybU5v
ZGUqIHJvb3QpCkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJh
bnNsYXRvci9TaEhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21waWxlci90cmFuc2xhdG9yL1NoSGFuZGxlLmgJKHJldmlzaW9uIDE3MzQzMykKKysr
IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1NoSGFuZGxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFRy
YW5zbGF0ZSB0byBvYmplY3QgY29kZS4KICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNsYXRlKFRJbnRl
cm1Ob2RlKiByb290KSA9IDA7CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmLCBhZnRlciBhcHBseWlu
ZyB0aGUgcGFja2luZyBydWxlcyBpbiB0aGUgR0xTTCAxLjAxNyBzcGVjCi0gICAgLy8gQXBwZW5k
aXggQSwgc2VjdGlvbiA3LCB0aGUgc2hhZGVyIGRvZXMgbm90IHVzZSB0b28gbWFueSB1bmlmb3Jt
cyBvciB2YXJ5aW5ncy4KKyAgICAvLyBBcHBlbmRpeCBBLCBzZWN0aW9uIDcsIHRoZSBzaGFkZXIg
ZG9lcyBub3QgdXNlIHRvbyBtYW55IHVuaWZvcm1zCiAgICAgYm9vbCBlbmZvcmNlUGFja2luZ1Jl
c3RyaWN0aW9ucygpOwogICAgIC8vIEluc2VydCBzdGF0ZW1lbnRzIHRvIGluaXRpYWxpemUgdmFy
eWluZ3Mgd2l0aG91dCBzdGF0aWMgdXNlIGluIHRoZSBiZWdpbm5pbmcKICAgICAvLyBvZiBtYWlu
KCkuIEl0IGlzIHRvIHdvcmsgYXJvdW5kIGEgTWFjIGRyaXZlciB3aGVyZSBzdWNoIHZhcnlpbmdz
IGluIGEgdmVydGV4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzM1MDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxNC0w
OS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNr
IGZvciB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIHBlciBwcm9ncmFtIGluc3RlYWQgb2Yg
cGVyIHNoYWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNjU4NS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MzA4NDA5Pi4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHdlYmds
LzEuMC4yL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbC4K
KworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmxpbmtQcm9ncmFtKTogCisgICAg
ICAgIENoZWNrIGZvciB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIHdoZW4gbGlua2luZyB0
aGUgcHJvZ3JhbS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpjaGVja1ZhcnlpbmdzUGFja2luZyk6IAorICAgICAgICBDaGVja3MgdmFyeWluZ3Mgc2hhcmVk
IGJ5IGJvdGggdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXJzIGFuZCBtYWtlcyBzdXJlCisgICAg
ICAgIHRoZXkgc2F0aXNmeSBwYWNraW5nIHJlc3RyaWN0aW9ucy4KKwogMjAxNC0wOS0xMCAgQWRl
bmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CiAKICAgICAgICAgW1NW
R10gQ2xlYW51cCBpdGVyYXRvciBjb2RlIGluIFNNSUxUaW1lQ29udGFpbmVyIHVzaW5nIHJhbmdl
LWJhc2VkIGxvb3AKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTczNDMzKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQ1Myw3ICszNDUzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmxpbmtQ
cm9ncmFtKAogICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpKSB7CiAgICAgICAgIFdlYkdMU2hh
ZGVyKiB2ZXJ0ZXhTaGFkZXIgPSBwcm9ncmFtLT5nZXRBdHRhY2hlZFNoYWRlcihHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX1NIQURFUik7CiAgICAgICAgIFdlYkdMU2hhZGVyKiBmcmFnbWVudFNo
YWRlciA9IHByb2dyYW0tPmdldEF0dGFjaGVkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFH
TUVOVF9TSEFERVIpOwotICAgICAgICBpZiAoIXZlcnRleFNoYWRlciB8fCAhdmVydGV4U2hhZGVy
LT5pc1ZhbGlkKCkgfHwgIWZyYWdtZW50U2hhZGVyIHx8ICFmcmFnbWVudFNoYWRlci0+aXNWYWxp
ZCgpIHx8ICFtX2NvbnRleHQtPnByZWNpc2lvbnNNYXRjaChvYmplY3RPclplcm8odmVydGV4U2hh
ZGVyKSwgb2JqZWN0T3JaZXJvKGZyYWdtZW50U2hhZGVyKSkpIHsKKyAgICAgICAgaWYgKCF2ZXJ0
ZXhTaGFkZXIgfHwgIXZlcnRleFNoYWRlci0+aXNWYWxpZCgpIHx8ICFmcmFnbWVudFNoYWRlciB8
fCAhZnJhZ21lbnRTaGFkZXItPmlzVmFsaWQoKSB8fCAhbV9jb250ZXh0LT5wcmVjaXNpb25zTWF0
Y2gob2JqZWN0T3JaZXJvKHZlcnRleFNoYWRlciksIG9iamVjdE9yWmVybyhmcmFnbWVudFNoYWRl
cikpIHx8ICFtX2NvbnRleHQtPmNoZWNrVmFyeWluZ3NQYWNraW5nKG9iamVjdE9yWmVybyh2ZXJ0
ZXhTaGFkZXIpLCBvYmplY3RPclplcm8oZnJhZ21lbnRTaGFkZXIpKSkgewogICAgICAgICAgICAg
cHJvZ3JhbS0+c2V0TGlua1N0YXR1cyhmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTczNDMzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAt
ODA5LDYgKzgwOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNE
T2JqZWN0KTsKICAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKKyAg
ICBib29sIGNoZWNrVmFyeWluZ3NQYWNraW5nKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hhZGVy
LCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICAgICBib29sIHByZWNp
c2lvbnNNYXRjaChQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciwgUGxhdGZvcm0zRE9iamVj
dCBmcmFnbWVudFNoYWRlcikgY29uc3Q7CiAKICAgICB2b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1
aW50IGluZGV4LCBHQzNEZmxvYXQgeCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE3MzQzMykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1v
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNlbHNlCiAjaW5jbHVkZSAi
RXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjZW5kaWYKKyNpbmNsdWRlICJBTkdMRVdlYktpdEJyaWRn
ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVy
LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCkBAIC0zMzQsNiArMzM1LDY2IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUoaW50IHdpZHQKICAgICA6OmdsRmx1c2goKTsKIH0KIAor
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9i
amVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNvbnN0
Cit7CisgICAgQVNTRVJUKG1fc2hhZGVyU291cmNlTWFwLmNvbnRhaW5zKHZlcnRleFNoYWRlcikp
OworICAgIEFTU0VSVChtX3NoYWRlclNvdXJjZU1hcC5jb250YWlucyhmcmFnbWVudFNoYWRlcikp
OworICAgIGNvbnN0IGF1dG8mIHZlcnRleEVudHJ5ID0gbV9zaGFkZXJTb3VyY2VNYXAuZmluZCh2
ZXJ0ZXhTaGFkZXIpLT52YWx1ZTsKKyAgICBjb25zdCBhdXRvJiBmcmFnbWVudEVudHJ5ID0gbV9z
aGFkZXJTb3VyY2VNYXAuZmluZChmcmFnbWVudFNoYWRlciktPnZhbHVlOworCisgICAgSGFzaE1h
cDxTdHJpbmcsIFNoVmFyaWFibGVJbmZvPiBjb21iaW5lZFZhcnlpbmdzOworICAgIGZvciAoY29u
c3QgYXV0byYgdmVydGV4U3ltYm9sIDogdmVydGV4RW50cnkudmFyeWluZ01hcCkgeworICAgICAg
ICBjb25zdCBTdHJpbmcmIHN5bWJvbE5hbWUgPSB2ZXJ0ZXhTeW1ib2wua2V5OworICAgICAgICAv
LyBUaGUgdmFyeWluZyBtYXAgaW5jbHVkZXMgdmFyaWFibGVzIGZvciBlYWNoIGluZGV4IG9mIGFu
IGFycmF5IHZhcmlhYmxlLgorICAgICAgICAvLyBXZSBvbmx5IHdhbnQgYSBzaW5nbGUgdmFyaWFi
bGUgdG8gcmVwcmVzZW50IHRoZSBhcnJheS4KKyAgICAgICAgaWYgKHN5bWJvbE5hbWUuZW5kc1dp
dGgoIl0iKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnN0IGNoYXIqIGJ1
aWx0SW5zW10gPSB7CisgICAgICAgICAgICAiZ2xfRnJhZ0Nvb3JkIiwKKyAgICAgICAgICAgICJn
bF9Gcm9udEZhY2luZyIsCisgICAgICAgICAgICAiZ2xfUG9pbnRDb29yZCIKKyAgICAgICAgfTsK
KworICAgICAgICBib29sIGlzQnVpbHRJbiA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IDM7ICsraSkgeworICAgICAgICAgICAgaWYgKHN5bWJvbE5hbWUgPT0gYnVpbHRJbnNb
aV0pIHsKKyAgICAgICAgICAgICAgICBpc0J1aWx0SW4gPSB0cnVlOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzQnVpbHRJ
bikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50
U3ltYm9sID0gZnJhZ21lbnRFbnRyeS52YXJ5aW5nTWFwLmZpbmQoc3ltYm9sTmFtZSk7CisgICAg
ICAgIGlmIChmcmFnbWVudFN5bWJvbCAhPSBmcmFnbWVudEVudHJ5LnZhcnlpbmdNYXAuZW5kKCkp
IHsKKyAgICAgICAgICAgIFNoVmFyaWFibGVJbmZvIHN5bWJvbEluZm87CisgICAgICAgICAgICBz
eW1ib2xJbmZvLnR5cGUgPSBzdGF0aWNfY2FzdDxTaERhdGFUeXBlPigoZnJhZ21lbnRTeW1ib2wt
PnZhbHVlKS50eXBlKTsKKyAgICAgICAgICAgIC8vIFRoZSBhcnJheXMgYXJlIGFscmVhZHkgc3Bs
aXQgdXAuCisgICAgICAgICAgICBzeW1ib2xJbmZvLnNpemUgPSAoZnJhZ21lbnRTeW1ib2wtPnZh
bHVlKS5zaXplOworICAgICAgICAgICAgY29tYmluZWRWYXJ5aW5ncy5hZGQoc3ltYm9sTmFtZSwg
c3ltYm9sSW5mbyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzaXplX3QgbnVtVmFyeWluZ3Mg
PSBjb21iaW5lZFZhcnlpbmdzLnNpemUoKTsKKyAgICBpZiAoIW51bVZhcnlpbmdzKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIFNoVmFyaWFibGVJbmZvKiB2YXJpYWJsZXMgPSBuZXcgU2hW
YXJpYWJsZUluZm9bbnVtVmFyeWluZ3NdOworICAgIGludCBpbmRleCA9IDA7CisgICAgZm9yIChj
b25zdCBhdXRvJiB2YXJ5aW5nU3ltYm9sIDogY29tYmluZWRWYXJ5aW5ncykgeworICAgICAgICB2
YXJpYWJsZXNbaW5kZXhdID0gdmFyeWluZ1N5bWJvbC52YWx1ZTsKKyAgICAgICAgaW5kZXgrKzsK
KyAgICB9CisgICAgCisgICAgR0MzRGludCBtYXhWYXJ5aW5nRmxvYXRzID0gMDsKKyAgICA6Omds
R2V0SW50ZWdlcnYoR0xfTUFYX1ZBUllJTkdfRkxPQVRTLCAmbWF4VmFyeWluZ0Zsb2F0cyk7Cisg
ICAgaW50IHJlc3VsdCA9IFNoQ2hlY2tWYXJpYWJsZXNXaXRoaW5QYWNraW5nTGltaXRzKG1heFZh
cnlpbmdGbG9hdHMgLyA0LCB2YXJpYWJsZXMsIG51bVZhcnlpbmdzKTsKKworICAgIGRlbGV0ZVtd
IHZhcmlhYmxlczsKKyAgICByZXR1cm4gcmVzdWx0OworfQogCiBib29sIEdyYXBoaWNzQ29udGV4
dDNEOjpwcmVjaXNpb25zTWF0Y2goUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRm
b3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNvbnN0CiB7CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
NzM1MDYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNC0wOS0xMCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgor
CisgICAgICAgIENoZWNrIGZvciB2YXJ5aW5nIHBhY2tpbmcgcmVzdHJpY3Rpb25zIHBlciBwcm9n
cmFtIGluc3RlYWQgb2YgcGVyIHNoYWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNjU4NS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MzA4
NDA5Pi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE0LTA5LTEwICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBS
ZWJhc2VsaW5lIGZhaWxpbmcgbWVkaWEvdmlkZW8tIHRlc3RzIGJyb2tlbiBieSByMTU2NTQ2LgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDE3MzQ3MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC01NTAsNyArNTUwLDYgQEAgd2ViZ2wvMS4wLjEvY29uZm9ybWFuY2Uv
Z2xzbC9zYW1wbGVycy9nbAogd2ViZ2wvMS4wLjEvY29uZm9ybWFuY2UvZ2xzbC9zYW1wbGVycy9n
bHNsLWZ1bmN0aW9uLXRleHR1cmUyZHByb2ouaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMS4wLjEv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgWyBTa2lw
IF0KIHdlYmdsLzEuMC4xL2NvbmZvcm1hbmNlL2NvbnRleHQvY29udGV4dC1sb3N0LXJlc3RvcmVk
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmdsLzEuMC4yL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAwOV90b18wMTYuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvMS4wLjIvY29uZm9ybWFu
Y2UvY29udGV4dC9jb250ZXh0LWNyZWF0aW9uLWFuZC1kZXN0cnVjdGlvbi5odG1sIFsgRmFpbHVy
ZSBUaW1lb3V0IF0KIHdlYmdsLzEuMC4yL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9tdWx0aXNhbXBs
ZS1jb3JydXB0aW9uLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQgXQogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBbIFNraXAgXQo=
</data>
<flag name="review"
          id="262723"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>