<?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>137134</bug_id>
          
          <creation_ts>2014-09-25 16:57:59 -0700</creation_ts>
          <short_desc>[iOS] Normalize our DeviceOrientation beta/gamma per spec</short_desc>
          <delta_ts>2014-12-12 01:28:43 -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>WebCore Misc.</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>https://w3c.github.io/deviceorientation/spec-source-orientation.html</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>mathias</cc>
    
    <cc>richt</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1037348</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-25 16:57:59 -0700</bug_when>
    <thetext>The W3C specification for DeviceOrientation says that
alpha should be [0, 360]
beta should be [-180, 180]
gamma should be [-90, 90]

CoreMotion gives us a beta in [-90, 90] and a gamma in [-180, 180]. We should consider renormalizing to match the spec.

&lt;rdar://problem/9414459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037349</commentid>
    <comment_count>1</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-25 16:59:34 -0700</bug_when>
    <thetext>Generous patch by Rich Tibbett: https://github.com/richtr/webkit/commit/92101b56132ea1a6ec186b857a9414f0505d5c24

I need to change my SDK before testing this. I&apos;ll have a look next week.
Poke me if I forget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037446</commentid>
    <comment_count>2</comment_count>
      <attachid>238704</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-09-26 01:33:28 -0700</bug_when>
    <thetext>Created attachment 238704
Normalize iOS DeviceOrientation beta/gamma per spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037449</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-26 01:42:00 -0700</bug_when>
    <thetext>Attachment 238704 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:267:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:268:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:268:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:269:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:269:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:270:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:270:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:271:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:271:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:272:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/ios/WebCoreMotionManager.mm:272:  Extra space before )  [whitespace/parens] [2]
Total errors found: 12 in 1 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037450</commentid>
    <comment_count>4</comment_count>
      <attachid>238705</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-09-26 01:53:43 -0700</bug_when>
    <thetext>Created attachment 238705
Normalize iOS DeviceOrientation beta/gamma per spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037451</commentid>
    <comment_count>5</comment_count>
      <attachid>238706</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-09-26 02:03:26 -0700</bug_when>
    <thetext>Created attachment 238706
Normalize iOS DeviceOrientation beta/gamma per spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037893</commentid>
    <comment_count>6</comment_count>
      <attachid>238844</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-09-29 01:43:32 -0700</bug_when>
    <thetext>Created attachment 238844
Normalize iOS DeviceOrientation beta/gamma per spec (alternate fix)

I&apos;ve uploaded two different patches. 

The first patch fixes the issue by creating its own compatible ZXY-based rotation matrix. The second patch reuses the rotation matrix supplied by the CMAttitude class. This _should_ be equivalent to the first solution but I&apos;m unable to test this on the iOS hardware.

Could you take a look and run both patches on iOS hardware and compare the output with e.g. Chromium on Android? The only difference should be that `alpha` is not compass-oriented on iOS (the `alpha` readings will be different but the `beta` and `gamma` readings should now be identical).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038018</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-29 12:43:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=238844) [details]
&gt; Normalize iOS DeviceOrientation beta/gamma per spec (alternate fix)
&gt; 
&gt; I&apos;ve uploaded two different patches. 
&gt; 
&gt; The first patch fixes the issue by creating its own compatible ZXY-based rotation matrix. The second patch reuses the rotation matrix supplied by the CMAttitude class. This _should_ be equivalent to the first solution but I&apos;m unable to test this on the iOS hardware.
&gt; 
&gt; Could you take a look and run both patches on iOS hardware and compare the output with e.g. Chromium on Android? The only difference should be that `alpha` is not compass-oriented on iOS (the `alpha` readings will be different but the `beta` and `gamma` readings should now be identical).

I am finishing a big refactoring and my SDK is not right for testing this.

As soon as I am finished with my big patch (should be this week), I&apos;ll get the right SDK and start looking into this.

Do you know an easy test page to verify this? Otherwise I&apos;ll write one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038175</commentid>
    <comment_count>8</comment_count>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-09-30 01:49:22 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; As soon as I am finished with my big patch (should be this week), I&apos;ll get the right SDK and start looking into this.

Thanks!

&gt; Do you know an easy test page to verify this? Otherwise I&apos;ll write one.

That&apos;s an interesting question. You can visually verifying that the mathematics make sense via the Marine Compass demo: http://people.opera.com/richt/release/demos/orientation/marinecompass/. That will not be *compass* oriented yet on iOS but the compass should hold its position.

Secondly, you can run the general calibration test I created for deviceorientation at http://sensortest.org.

Existing iOS result: http://sensortest.org/?show=415ef021148ebfe1
*Expected* iOS result (with this patch): http://sensortest.org/?show=e21248215282d46c

The results may not necessarily match exactly (there is some noise introduced by non-iOS device accelerometers) but the general data patterns should be visible and should match.

I also have a VR-like demo @ https://richtr.github.io/Full-Tilt-JS/examples/vr_test.html that should work equally well with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038385</commentid>
    <comment_count>9</comment_count>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-09-30 15:58:54 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Secondly, you can run the general calibration test I created for deviceorientation at http://sensortest.org.

Also, iOS accelerometer data is opposite to the conventions defined in the W3C spec so the SensorTest.org results may look inverted. See http://lists.w3.org/Archives/Public/public-geolocation/2014Jul/0024.html for further details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039121</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-02 21:42:33 -0700</bug_when>
    <thetext>Those two demos are really cool!
-http://people.opera.com/richt/release/demos/orientation/marinecompass/
-https://richtr.github.io/Full-Tilt-JS/examples/vr_test.html

Really beautifully done.

I tried the second patch: https://bug-137134-attachments.webkit.org/attachment.cgi?id=238844 but it looks like all the axis are inverted.

I&apos;ll have a look at the first patch tomorrow.

I&apos;ll need to brush up some math to do the review, last time I did serious coordinate system manipulation was over 10 years ago :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039173</commentid>
    <comment_count>11</comment_count>
      <attachid>239195</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-10-03 02:15:52 -0700</bug_when>
    <thetext>Created attachment 239195
Normalize iOS DeviceOrientation beta/gamma per spec (alternate fix)

&gt; I tried the second patch: https://bug-137134-attachments.webkit.org/attachment.cgi?id=238844 but it looks like all the axis are inverted.

I have uploaded a replacement patch for this. If the axis are inverted in https://bugs.webkit.org/attachment.cgi?id=238844 then this new patch should fix this.

Let me know when you get a chance to test this on iOS hardware. 

Thank you for your help :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039400</commentid>
    <comment_count>12</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-03 16:23:33 -0700</bug_when>
    <thetext>First patch also has incorrect orientation in the demos :(

I think we should postpone this by a month when I am done with CSS 4. The 30 minutes clean build is a bit of a pain in the ass at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039688</commentid>
    <comment_count>13</comment_count>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-10-06 02:45:44 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; First patch also has incorrect orientation in the demos :(

I&apos;m trying to understand what went wrong. I have made a JavaScript-based test that mirrors the native code provided in the first patch (https://bug-137134-attachments.webkit.org/attachment.cgi?id=238706). 

This test can be found at: http://people.opera.com/richt/release/tests/orientation/ios_deviceorientation_fix/vr_test.html.

You must lock your device&apos;s screen rotation to the default screen orientation (i.e. with the home button at the bottom of the screen) to observe the correct behaviour. The other demos posted above apply screen rotation fixes which will report correct *screen-adjusted* Euler angle results. Is that why this seemed broken perhaps?

&gt; 
&gt; I think we should postpone this by a month when I am done with CSS 4. The 30 minutes clean build is a bit of a pain in the ass at the moment.

This can wait as I know you are busy. If you do get a chance to test patch 1 again though I would be very thankful. If it is not working perhaps you could provide more detailed feedback on what is actually happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040167</commentid>
    <comment_count>14</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-07 17:15:38 -0700</bug_when>
    <thetext>I am sorry, I am not helping you much with my fuzzy reports.

I currently work on some CSS features on OS X. I expect to work on iOS device by the end of the month or early next month. It is gonna be easier for me to work on this fix then.

If I have not given sign of life on this bug by November 1, please write me an angry email to wake me up :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044971</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-29 21:02:54 -0700</bug_when>
    <thetext>So I just tested the first patch again to make a video of what is wrong...and everything works.

I think I probably messed up last time and applied the second patch twice by accident. :(

Let&apos;s move forward to review? Can you add a changelog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045715</commentid>
    <comment_count>16</comment_count>
      <attachid>240843</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-11-03 06:01:56 -0800</bug_when>
    <thetext>Created attachment 240843
Normalize iOS DeviceOrientation beta/gamma per spec

Added a ChangeLog entry for this patch at Source/WebCore/ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045719</commentid>
    <comment_count>17</comment_count>
      <attachid>240845</attachid>
    <who name="Rich Tibbett">richt</who>
    <bug_when>2014-11-03 06:11:54 -0800</bug_when>
    <thetext>Created attachment 240845
Normalize iOS DeviceOrientation beta/gamma per spec

Fixed ChangeLog entry for this patch at Source/WebCore/ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047147</commentid>
    <comment_count>18</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-07 12:27:37 -0800</bug_when>
    <thetext>Rich, is this for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054713</commentid>
    <comment_count>19</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-12-11 17:40:48 -0800</bug_when>
    <thetext>Committed r177198: &lt;http://trac.webkit.org/changeset/177198&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238704</attachid>
            <date>2014-09-26 01:33:28 -0700</date>
            <delta_ts>2014-09-26 01:53:43 -0700</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec</desc>
            <filename>deviceorientation-fix.patch</filename>
            <type>text/plain</type>
            <size>4516</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSAxYzJmNDdmNzAyYWFlNTFlYTcyZDVjYzQ1OWIyYjdkYzg5ODQyZjBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IEZyaSwgMjYgU2VwIDIwMTQgMTA6MzA6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBO
b3JtYWxpemUgaU9TIERldmljZU9yaWVudGF0aW9uIGJldGEvZ2FtbWEgcGVyIHNwZWMKCi0tLQog
Li4uL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICAgfCA4MyAr
KysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwg
MTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkNvcmVNb3Rpb25NYW5hZ2VyLm1tCmluZGV4IDQwMjA0ODUuLmM3YWE2OWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KQEAg
LTI1NiwyMiArMjU2LDczIEBAIHN0YXRpYyBjb25zdCBkb3VibGUga0dyYXZpdHkgPSA5LjgwNjY1
OwogICAgICAgICBWZWN0b3I8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBv
cmllbnRhdGlvbkNsaWVudHM7CiAgICAgICAgIGNvcHlUb1ZlY3RvcihtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50cywgb3JpZW50YXRpb25DbGllbnRzKTsKIAotICAgICAgICAvLyBOb3RlIHRoYXQg
dGhlIFczQyBEZXZpY2VPcmllbnRhdGlvbiBzcGVjaWZpY2F0aW9uIGxhYmVscyB0aGUgWCBheGlz
Ci0gICAgICAgIC8vIGFzIHBhc3NpbmcgYmV0d2VlbiB0aGUgc2lkZXMgb2YgdGhlIGRldmljZSwg
YW5kIHRoZSBZIGF4aXMgYXMgcGFzc2luZwotICAgICAgICAvLyBmcm9tIHRvcCB0byBib3R0b20g
b2YgdGhlIGRldmljZS4gQ29udmVudGlvbmFsIFRhaXQtQnJ5YW4gRXVsZXIgYW5nbGVzCi0gICAg
ICAgIC8vIGhhdmUgdGhlIFggYXhpcyBwb2ludGluZyBmb3J3YXJkICh0aGUgaGVhZGluZyBvZiB0
aGUgYWlyY3JhZnQsIGZvcgotICAgICAgICAvLyBleGFtcGxlKSwgd2hpY2ggaXMgd2hhdCB5b3Ug
d291bGQgInJvbGwiIGFyb3VuZCwgYW5kIHdoYXQgdGhlIFczQyBzYXlzCi0gICAgICAgIC8vIGlz
IHRoZSBZIGF4aXMuIFVuZm9ydHVuYXRlbHkgQ29yZU1vdGlvbiBkb2Vzbid0IG5vcm1hbGl6ZSBp
biB0aGUKLSAgICAgICAgLy8gc2FtZSBvcmRlciBhcyB0aGUgVzNDIHJlcXVlc3RzLCBzbyBvdXIg
YmV0YSBpcyBbLTkwLCA5MF0gYW5kIGdhbW1hIGlzCi0gICAgICAgIC8vIFstMTgwLCAxODBdLiBG
b3IgbW9zdCBwcmFjdGljYWwgdXNlcyB0aGlzIGlzIGFjY2VwdGFibGUuCi0gICAgICAgIC8vIFNl
ZSA8cmRhcjovL3Byb2JsZW0vOTQxNDQ1OT4gTm9ybWFsaXplIG91ciBEZXZpY2VPcmllbnRhdGlv
biBiZXRhL2dhbW1hIHBlciBzcGVjCi0KLSAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBa
IGF4aXMgKHBvaW50aW5nIHVwLCBub3JtYWxpemVkIHRvIFswLCAzNjBdIGRlZykuCi0gICAgICAg
IGRvdWJsZSBhbHBoYSA9IHJhZDJkZWcoYXR0aXR1ZGUueWF3ID4gMCA/IGF0dGl0dWRlLnlhdyA6
IChNX1BJICogMiArIGF0dGl0dWRlLnlhdykpOwotICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQg
dGhlIFggYXhpcyAoc2lkZSB0byBzaWRlKS4KLSAgICAgICAgZG91YmxlIGJldGEgPSByYWQyZGVn
KGF0dGl0dWRlLnBpdGNoKTsKLSAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBZIGF4aXMg
KHRvcCB0byBib3R0b20pLgotICAgICAgICBkb3VibGUgZ2FtbWEgPSByYWQyZGVnKGF0dGl0dWRl
LnJvbGwpOworICAgICAgICAvLyBDb21wb3NlIHRoZSByYXcgbW90aW9uIGRhdGEgdG8gYW4gaW50
ZXJtZWRpYXRlIFpYWS1iYXNlZCAzeDMgcm90YXRpb24KKyAgICAgICAgLy8gbWF0cml4IChSKSB3
aGVyZSBbej1hdHRpdHVkZS55YXcsIHg9YXR0aXR1ZGUucGl0Y2gsIHk9YXR0aXR1ZGUucm9sbF0K
KyAgICAgICAgLy8gaW4gdGhlIGZvcm06CisgICAgICAgIC8vCisgICAgICAgIC8vICAgLyAgUlsw
XSAgIFJbMV0gICBSWzJdICBcCisgICAgICAgIC8vICAgfCAgUlszXSAgIFJbNF0gICBSWzVdICB8
CisgICAgICAgIC8vICAgXCAgUls2XSAgIFJbN10gICBSWzhdICAvCisKKyAgICAgICAgZG91Ymxl
IGNYID0gY29zKCBhdHRpdHVkZS5waXRjaCApOworICAgICAgICBkb3VibGUgY1kgPSBjb3MoIGF0
dGl0dWRlLnJvbGwgKTsKKyAgICAgICAgZG91YmxlIGNaID0gY29zKCBhdHRpdHVkZS55YXcgKTsK
KyAgICAgICAgZG91YmxlIHNYID0gc2luKCBhdHRpdHVkZS5waXRjaCApOworICAgICAgICBkb3Vi
bGUgc1kgPSBzaW4oIGF0dGl0dWRlLnJvbGwgKTsKKyAgICAgICAgZG91YmxlIHNaID0gc2luKCBh
dHRpdHVkZS55YXcgKTsKKworICAgICAgICBkb3VibGUgUltdID0geworICAgICAgICAgICAgY1og
KiBjWSAtIHNaICogc1ggKiBzWSwKKyAgICAgICAgICAgIC0gY1ggKiBzWiwKKyAgICAgICAgICAg
IGNZICogc1ogKiBzWCArIGNaICogc1ksCisgICAgICAgICAgICBjWSAqIHNaICsgY1ogKiBzWCAq
IHNZLAorICAgICAgICAgICAgY1ogKiBjWCwKKyAgICAgICAgICAgIHNaICogc1kgLSBjWiAqIGNZ
ICogc1gsCisgICAgICAgICAgICAtIGNYICogc1ksCisgICAgICAgICAgICBzWCwKKyAgICAgICAg
ICAgIGNYICogY1kKKyAgICAgICAgfTsKKworICAgICAgICAvLyBDb21wdXRlIGNvcnJlY3QsIG5v
cm1hbGl6ZWQgdmFsdWVzIGZvciBEZXZpY2VPcmllbnRhdGlvbiBmcm9tCisgICAgICAgIC8vIHJv
dGF0aW9uIG1hdHJpeCAoUikgYWNjb3JkaW5nIHRvIHRoZSBhbmdsZSBjb252ZW50aW9ucyBkZWZp
bmVkIGluIHRoZQorICAgICAgICAvLyBXM0MgRGV2aWNlT3JpZW50YXRpb24gc3BlY2lmaWNhdGlv
bi4KKworICAgICAgICBkb3VibGUgelJvdDsKKyAgICAgICAgZG91YmxlIHhSb3Q7CisgICAgICAg
IGRvdWJsZSB5Um90OworCisgICAgICAgIGlmIChSWzhdID4gMCkgeworICAgICAgICAgICAgelJv
dCA9IGF0YW4yKC1SWzFdLCBSWzRdKTsKKyAgICAgICAgICAgIHhSb3QgPSBhc2luKFJbN10pOwor
ICAgICAgICAgICAgeVJvdCA9IGF0YW4yKC1SWzZdLCBSWzhdKTsKKyAgICAgICAgfSBlbHNlIGlm
IChSWzhdIDwgMCkgeworICAgICAgICAgICAgelJvdCA9IGF0YW4yKFJbMV0sIC1SWzRdKTsKKyAg
ICAgICAgICAgIHhSb3QgPSAtYXNpbihSWzddKTsKKyAgICAgICAgICAgIHhSb3QgKz0gKHhSb3Qg
Pj0gMCkgPyAtTV9QSSA6IE1fUEk7CisgICAgICAgICAgICB5Um90ID0gYXRhbjIoUls2XSwgLVJb
OF0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKFJbNl0gPiAwKSB7CisgICAg
ICAgICAgICAgICAgelJvdCA9IGF0YW4yKC1SWzFdLCBSWzRdKTsKKyAgICAgICAgICAgICAgICB4
Um90ID0gYXNpbihSWzddKTsKKyAgICAgICAgICAgICAgICB5Um90ID0gLU1fUElfMjsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoUls2XSA8IDApIHsKKyAgICAgICAgICAgICAgICB6Um90ID0gYXRh
bjIoUlsxXSwgLVJbNF0pOworICAgICAgICAgICAgICAgIHhSb3QgPSAtYXNpbihSWzddKTsKKyAg
ICAgICAgICAgICAgICB4Um90ICs9ICh4Um90ID49IDApID8gLU1fUEkgOiBNX1BJOworICAgICAg
ICAgICAgICAgIHlSb3QgPSAtTV9QSV8yOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB6Um90ID0gYXRhbjIoUlszXSwgUlswXSk7CisgICAgICAgICAgICAgICAgeFJvdCA9
IChSWzddID4gMCkgPyBNX1BJXzIgOiAtTV9QSV8yOworICAgICAgICAgICAgICAgIHlSb3QgPSAw
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUm90YXRpb24gYXJvdW5k
IHRoZSBaIGF4aXMgKHBvaW50aW5nIHVwLiBub3JtYWxpemVkIHRvIFswLCAzNjBdIGRlZykuCisg
ICAgICAgIGRvdWJsZSBhbHBoYSA9IHJhZDJkZWcoelJvdCA+IDAgPyB6Um90IDogKE1fUEkgKiAy
ICsgelJvdCkpOworICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFggYXhpcyAodG9wIHRv
IGJvdHRvbSkuCisgICAgICAgIGRvdWJsZSBiZXRhICA9IHJhZDJkZWcoeFJvdCk7CisgICAgICAg
IC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUgWSBheGlzIChzaWRlIHRvIHNpZGUpLgorICAgICAgICBk
b3VibGUgZ2FtbWEgPSByYWQyZGVnKHlSb3QpOwogCiAgICAgICAgIGRvdWJsZSBoZWFkaW5nID0g
KG1faGVhZGluZ0F2YWlsYWJsZSAmJiBuZXdIZWFkaW5nKSA/IG5ld0hlYWRpbmcubWFnbmV0aWNI
ZWFkaW5nIDogMDsKICAgICAgICAgZG91YmxlIGhlYWRpbmdBY2N1cmFjeSA9IChtX2hlYWRpbmdB
dmFpbGFibGUgJiYgbmV3SGVhZGluZykgPyBuZXdIZWFkaW5nLmhlYWRpbmdBY2N1cmFjeSA6IC0x
OwotLSAKMS45LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238705</attachid>
            <date>2014-09-26 01:53:43 -0700</date>
            <delta_ts>2014-09-26 02:03:26 -0700</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec</desc>
            <filename>deviceorientation-fix.patch</filename>
            <type>text/plain</type>
            <size>5848</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSAxYzJmNDdmNzAyYWFlNTFlYTcyZDVjYzQ1OWIyYjdkYzg5ODQyZjBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IEZyaSwgMjYgU2VwIDIwMTQgMTA6MzA6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv
Ml0gTm9ybWFsaXplIGlPUyBEZXZpY2VPcmllbnRhdGlvbiBiZXRhL2dhbW1hIHBlciBzcGVjCgot
LS0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbSAgIHwg
ODMgKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY3IGluc2VydGlvbnMo
KyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQppbmRleCA0MDIwNDg1Li5jN2FhNjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1t
CkBAIC0yNTYsMjIgKzI1Niw3MyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIGtHcmF2aXR5ID0gOS44
MDY2NTsKICAgICAgICAgVmVjdG9yPFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
Kj4gb3JpZW50YXRpb25DbGllbnRzOwogICAgICAgICBjb3B5VG9WZWN0b3IobV9kZXZpY2VPcmll
bnRhdGlvbkNsaWVudHMsIG9yaWVudGF0aW9uQ2xpZW50cyk7CiAKLSAgICAgICAgLy8gTm90ZSB0
aGF0IHRoZSBXM0MgRGV2aWNlT3JpZW50YXRpb24gc3BlY2lmaWNhdGlvbiBsYWJlbHMgdGhlIFgg
YXhpcwotICAgICAgICAvLyBhcyBwYXNzaW5nIGJldHdlZW4gdGhlIHNpZGVzIG9mIHRoZSBkZXZp
Y2UsIGFuZCB0aGUgWSBheGlzIGFzIHBhc3NpbmcKLSAgICAgICAgLy8gZnJvbSB0b3AgdG8gYm90
dG9tIG9mIHRoZSBkZXZpY2UuIENvbnZlbnRpb25hbCBUYWl0LUJyeWFuIEV1bGVyIGFuZ2xlcwot
ICAgICAgICAvLyBoYXZlIHRoZSBYIGF4aXMgcG9pbnRpbmcgZm9yd2FyZCAodGhlIGhlYWRpbmcg
b2YgdGhlIGFpcmNyYWZ0LCBmb3IKLSAgICAgICAgLy8gZXhhbXBsZSksIHdoaWNoIGlzIHdoYXQg
eW91IHdvdWxkICJyb2xsIiBhcm91bmQsIGFuZCB3aGF0IHRoZSBXM0Mgc2F5cwotICAgICAgICAv
LyBpcyB0aGUgWSBheGlzLiBVbmZvcnR1bmF0ZWx5IENvcmVNb3Rpb24gZG9lc24ndCBub3JtYWxp
emUgaW4gdGhlCi0gICAgICAgIC8vIHNhbWUgb3JkZXIgYXMgdGhlIFczQyByZXF1ZXN0cywgc28g
b3VyIGJldGEgaXMgWy05MCwgOTBdIGFuZCBnYW1tYSBpcwotICAgICAgICAvLyBbLTE4MCwgMTgw
XS4gRm9yIG1vc3QgcHJhY3RpY2FsIHVzZXMgdGhpcyBpcyBhY2NlcHRhYmxlLgotICAgICAgICAv
LyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk0MTQ0NTk+IE5vcm1hbGl6ZSBvdXIgRGV2aWNlT3JpZW50
YXRpb24gYmV0YS9nYW1tYSBwZXIgc3BlYwotCi0gICAgICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0
aGUgWiBheGlzIChwb2ludGluZyB1cCwgbm9ybWFsaXplZCB0byBbMCwgMzYwXSBkZWcpLgotICAg
ICAgICBkb3VibGUgYWxwaGEgPSByYWQyZGVnKGF0dGl0dWRlLnlhdyA+IDAgPyBhdHRpdHVkZS55
YXcgOiAoTV9QSSAqIDIgKyBhdHRpdHVkZS55YXcpKTsKLSAgICAgICAgLy8gUm90YXRpb24gYXJv
dW5kIHRoZSBYIGF4aXMgKHNpZGUgdG8gc2lkZSkuCi0gICAgICAgIGRvdWJsZSBiZXRhID0gcmFk
MmRlZyhhdHRpdHVkZS5waXRjaCk7Ci0gICAgICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUgWSBh
eGlzICh0b3AgdG8gYm90dG9tKS4KLSAgICAgICAgZG91YmxlIGdhbW1hID0gcmFkMmRlZyhhdHRp
dHVkZS5yb2xsKTsKKyAgICAgICAgLy8gQ29tcG9zZSB0aGUgcmF3IG1vdGlvbiBkYXRhIHRvIGFu
IGludGVybWVkaWF0ZSBaWFktYmFzZWQgM3gzIHJvdGF0aW9uCisgICAgICAgIC8vIG1hdHJpeCAo
Uikgd2hlcmUgW3o9YXR0aXR1ZGUueWF3LCB4PWF0dGl0dWRlLnBpdGNoLCB5PWF0dGl0dWRlLnJv
bGxdCisgICAgICAgIC8vIGluIHRoZSBmb3JtOgorICAgICAgICAvLworICAgICAgICAvLyAgIC8g
IFJbMF0gICBSWzFdICAgUlsyXSAgXAorICAgICAgICAvLyAgIHwgIFJbM10gICBSWzRdICAgUls1
XSAgfAorICAgICAgICAvLyAgIFwgIFJbNl0gICBSWzddICAgUls4XSAgLworCisgICAgICAgIGRv
dWJsZSBjWCA9IGNvcyggYXR0aXR1ZGUucGl0Y2ggKTsKKyAgICAgICAgZG91YmxlIGNZID0gY29z
KCBhdHRpdHVkZS5yb2xsICk7CisgICAgICAgIGRvdWJsZSBjWiA9IGNvcyggYXR0aXR1ZGUueWF3
ICk7CisgICAgICAgIGRvdWJsZSBzWCA9IHNpbiggYXR0aXR1ZGUucGl0Y2ggKTsKKyAgICAgICAg
ZG91YmxlIHNZID0gc2luKCBhdHRpdHVkZS5yb2xsICk7CisgICAgICAgIGRvdWJsZSBzWiA9IHNp
biggYXR0aXR1ZGUueWF3ICk7CisKKyAgICAgICAgZG91YmxlIFJbXSA9IHsKKyAgICAgICAgICAg
IGNaICogY1kgLSBzWiAqIHNYICogc1ksCisgICAgICAgICAgICAtIGNYICogc1osCisgICAgICAg
ICAgICBjWSAqIHNaICogc1ggKyBjWiAqIHNZLAorICAgICAgICAgICAgY1kgKiBzWiArIGNaICog
c1ggKiBzWSwKKyAgICAgICAgICAgIGNaICogY1gsCisgICAgICAgICAgICBzWiAqIHNZIC0gY1og
KiBjWSAqIHNYLAorICAgICAgICAgICAgLSBjWCAqIHNZLAorICAgICAgICAgICAgc1gsCisgICAg
ICAgICAgICBjWCAqIGNZCisgICAgICAgIH07CisKKyAgICAgICAgLy8gQ29tcHV0ZSBjb3JyZWN0
LCBub3JtYWxpemVkIHZhbHVlcyBmb3IgRGV2aWNlT3JpZW50YXRpb24gZnJvbQorICAgICAgICAv
LyByb3RhdGlvbiBtYXRyaXggKFIpIGFjY29yZGluZyB0byB0aGUgYW5nbGUgY29udmVudGlvbnMg
ZGVmaW5lZCBpbiB0aGUKKyAgICAgICAgLy8gVzNDIERldmljZU9yaWVudGF0aW9uIHNwZWNpZmlj
YXRpb24uCisKKyAgICAgICAgZG91YmxlIHpSb3Q7CisgICAgICAgIGRvdWJsZSB4Um90OworICAg
ICAgICBkb3VibGUgeVJvdDsKKworICAgICAgICBpZiAoUls4XSA+IDApIHsKKyAgICAgICAgICAg
IHpSb3QgPSBhdGFuMigtUlsxXSwgUls0XSk7CisgICAgICAgICAgICB4Um90ID0gYXNpbihSWzdd
KTsKKyAgICAgICAgICAgIHlSb3QgPSBhdGFuMigtUls2XSwgUls4XSk7CisgICAgICAgIH0gZWxz
ZSBpZiAoUls4XSA8IDApIHsKKyAgICAgICAgICAgIHpSb3QgPSBhdGFuMihSWzFdLCAtUls0XSk7
CisgICAgICAgICAgICB4Um90ID0gLWFzaW4oUls3XSk7CisgICAgICAgICAgICB4Um90ICs9ICh4
Um90ID49IDApID8gLU1fUEkgOiBNX1BJOworICAgICAgICAgICAgeVJvdCA9IGF0YW4yKFJbNl0s
IC1SWzhdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChSWzZdID4gMCkgewor
ICAgICAgICAgICAgICAgIHpSb3QgPSBhdGFuMigtUlsxXSwgUls0XSk7CisgICAgICAgICAgICAg
ICAgeFJvdCA9IGFzaW4oUls3XSk7CisgICAgICAgICAgICAgICAgeVJvdCA9IC1NX1BJXzI7Cisg
ICAgICAgICAgICB9IGVsc2UgaWYgKFJbNl0gPCAwKSB7CisgICAgICAgICAgICAgICAgelJvdCA9
IGF0YW4yKFJbMV0sIC1SWzRdKTsKKyAgICAgICAgICAgICAgICB4Um90ID0gLWFzaW4oUls3XSk7
CisgICAgICAgICAgICAgICAgeFJvdCArPSAoeFJvdCA+PSAwKSA/IC1NX1BJIDogTV9QSTsKKyAg
ICAgICAgICAgICAgICB5Um90ID0gLU1fUElfMjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgelJvdCA9IGF0YW4yKFJbM10sIFJbMF0pOworICAgICAgICAgICAgICAgIHhS
b3QgPSAoUls3XSA+IDApID8gTV9QSV8yIDogLU1fUElfMjsKKyAgICAgICAgICAgICAgICB5Um90
ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFJvdGF0aW9uIGFy
b3VuZCB0aGUgWiBheGlzIChwb2ludGluZyB1cC4gbm9ybWFsaXplZCB0byBbMCwgMzYwXSBkZWcp
LgorICAgICAgICBkb3VibGUgYWxwaGEgPSByYWQyZGVnKHpSb3QgPiAwID8gelJvdCA6IChNX1BJ
ICogMiArIHpSb3QpKTsKKyAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBYIGF4aXMgKHRv
cCB0byBib3R0b20pLgorICAgICAgICBkb3VibGUgYmV0YSAgPSByYWQyZGVnKHhSb3QpOworICAg
ICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFkgYXhpcyAoc2lkZSB0byBzaWRlKS4KKyAgICAg
ICAgZG91YmxlIGdhbW1hID0gcmFkMmRlZyh5Um90KTsKIAogICAgICAgICBkb3VibGUgaGVhZGlu
ZyA9IChtX2hlYWRpbmdBdmFpbGFibGUgJiYgbmV3SGVhZGluZykgPyBuZXdIZWFkaW5nLm1hZ25l
dGljSGVhZGluZyA6IDA7CiAgICAgICAgIGRvdWJsZSBoZWFkaW5nQWNjdXJhY3kgPSAobV9oZWFk
aW5nQXZhaWxhYmxlICYmIG5ld0hlYWRpbmcpID8gbmV3SGVhZGluZy5oZWFkaW5nQWNjdXJhY3kg
OiAtMTsKLS0gCjEuOS4xCgoKRnJvbSBlZDUwZTU4Mjg5NGY4YjY5MzMxYTJhNGQ5N2JhZmI3OTI1
YTQ5NjVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gu
dGliYmV0dEBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjYgU2VwIDIwMTQgMTA6NTI6MzMgKzAyMDAK
U3ViamVjdDogW1BBVENIIDIvMl0gRml4IGNvZGUgdG8gbWF0Y2ggV2ViS2l0IGNvZGUgc3R5bGUg
cnVsZXMKCi0tLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLm1tIHwgMTIgKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp
LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJDb3JlTW90aW9uTWFuYWdlci5tbQppbmRleCBjN2FhNjljLi5jNmRmOTY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCkBA
IC0yNjQsMTIgKzI2NCwxMiBAQCBzdGF0aWMgY29uc3QgZG91YmxlIGtHcmF2aXR5ID0gOS44MDY2
NTsKICAgICAgICAgLy8gICB8ICBSWzNdICAgUls0XSAgIFJbNV0gIHwKICAgICAgICAgLy8gICBc
ICBSWzZdICAgUls3XSAgIFJbOF0gIC8KIAotICAgICAgICBkb3VibGUgY1ggPSBjb3MoIGF0dGl0
dWRlLnBpdGNoICk7Ci0gICAgICAgIGRvdWJsZSBjWSA9IGNvcyggYXR0aXR1ZGUucm9sbCApOwot
ICAgICAgICBkb3VibGUgY1ogPSBjb3MoIGF0dGl0dWRlLnlhdyApOwotICAgICAgICBkb3VibGUg
c1ggPSBzaW4oIGF0dGl0dWRlLnBpdGNoICk7Ci0gICAgICAgIGRvdWJsZSBzWSA9IHNpbiggYXR0
aXR1ZGUucm9sbCApOwotICAgICAgICBkb3VibGUgc1ogPSBzaW4oIGF0dGl0dWRlLnlhdyApOwor
ICAgICAgICBkb3VibGUgY1ggPSBjb3MoYXR0aXR1ZGUucGl0Y2gpOworICAgICAgICBkb3VibGUg
Y1kgPSBjb3MoYXR0aXR1ZGUucm9sbCk7CisgICAgICAgIGRvdWJsZSBjWiA9IGNvcyhhdHRpdHVk
ZS55YXcpOworICAgICAgICBkb3VibGUgc1ggPSBzaW4oYXR0aXR1ZGUucGl0Y2gpOworICAgICAg
ICBkb3VibGUgc1kgPSBzaW4oYXR0aXR1ZGUucm9sbCk7CisgICAgICAgIGRvdWJsZSBzWiA9IHNp
bihhdHRpdHVkZS55YXcpOwogCiAgICAgICAgIGRvdWJsZSBSW10gPSB7CiAgICAgICAgICAgICBj
WiAqIGNZIC0gc1ogKiBzWCAqIHNZLAotLSAKMS45LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238706</attachid>
            <date>2014-09-26 02:03:26 -0700</date>
            <delta_ts>2014-11-03 06:01:56 -0800</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec</desc>
            <filename>deviceorientation-fix.patch</filename>
            <type>text/plain</type>
            <size>4504</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSAwYjllZDkwYjFlNzViOTEyYWZhZTk2MjcwN2M5YzY0MDNiMDc4ZTdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IEZyaSwgMjYgU2VwIDIwMTQgMTE6MDI6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBO
b3JtYWxpemUgaU9TIERldmljZU9yaWVudGF0aW9uIGJldGEvZ2FtbWEgcGVyIHNwZWMKCi0tLQog
Li4uL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICAgfCA4MyAr
KysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwg
MTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkNvcmVNb3Rpb25NYW5hZ2VyLm1tCmluZGV4IDQwMjA0ODUuLmM2ZGY5NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KQEAg
LTI1NiwyMiArMjU2LDczIEBAIHN0YXRpYyBjb25zdCBkb3VibGUga0dyYXZpdHkgPSA5LjgwNjY1
OwogICAgICAgICBWZWN0b3I8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBv
cmllbnRhdGlvbkNsaWVudHM7CiAgICAgICAgIGNvcHlUb1ZlY3RvcihtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50cywgb3JpZW50YXRpb25DbGllbnRzKTsKIAotICAgICAgICAvLyBOb3RlIHRoYXQg
dGhlIFczQyBEZXZpY2VPcmllbnRhdGlvbiBzcGVjaWZpY2F0aW9uIGxhYmVscyB0aGUgWCBheGlz
Ci0gICAgICAgIC8vIGFzIHBhc3NpbmcgYmV0d2VlbiB0aGUgc2lkZXMgb2YgdGhlIGRldmljZSwg
YW5kIHRoZSBZIGF4aXMgYXMgcGFzc2luZwotICAgICAgICAvLyBmcm9tIHRvcCB0byBib3R0b20g
b2YgdGhlIGRldmljZS4gQ29udmVudGlvbmFsIFRhaXQtQnJ5YW4gRXVsZXIgYW5nbGVzCi0gICAg
ICAgIC8vIGhhdmUgdGhlIFggYXhpcyBwb2ludGluZyBmb3J3YXJkICh0aGUgaGVhZGluZyBvZiB0
aGUgYWlyY3JhZnQsIGZvcgotICAgICAgICAvLyBleGFtcGxlKSwgd2hpY2ggaXMgd2hhdCB5b3Ug
d291bGQgInJvbGwiIGFyb3VuZCwgYW5kIHdoYXQgdGhlIFczQyBzYXlzCi0gICAgICAgIC8vIGlz
IHRoZSBZIGF4aXMuIFVuZm9ydHVuYXRlbHkgQ29yZU1vdGlvbiBkb2Vzbid0IG5vcm1hbGl6ZSBp
biB0aGUKLSAgICAgICAgLy8gc2FtZSBvcmRlciBhcyB0aGUgVzNDIHJlcXVlc3RzLCBzbyBvdXIg
YmV0YSBpcyBbLTkwLCA5MF0gYW5kIGdhbW1hIGlzCi0gICAgICAgIC8vIFstMTgwLCAxODBdLiBG
b3IgbW9zdCBwcmFjdGljYWwgdXNlcyB0aGlzIGlzIGFjY2VwdGFibGUuCi0gICAgICAgIC8vIFNl
ZSA8cmRhcjovL3Byb2JsZW0vOTQxNDQ1OT4gTm9ybWFsaXplIG91ciBEZXZpY2VPcmllbnRhdGlv
biBiZXRhL2dhbW1hIHBlciBzcGVjCi0KLSAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBa
IGF4aXMgKHBvaW50aW5nIHVwLCBub3JtYWxpemVkIHRvIFswLCAzNjBdIGRlZykuCi0gICAgICAg
IGRvdWJsZSBhbHBoYSA9IHJhZDJkZWcoYXR0aXR1ZGUueWF3ID4gMCA/IGF0dGl0dWRlLnlhdyA6
IChNX1BJICogMiArIGF0dGl0dWRlLnlhdykpOwotICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQg
dGhlIFggYXhpcyAoc2lkZSB0byBzaWRlKS4KLSAgICAgICAgZG91YmxlIGJldGEgPSByYWQyZGVn
KGF0dGl0dWRlLnBpdGNoKTsKLSAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBZIGF4aXMg
KHRvcCB0byBib3R0b20pLgotICAgICAgICBkb3VibGUgZ2FtbWEgPSByYWQyZGVnKGF0dGl0dWRl
LnJvbGwpOworICAgICAgICAvLyBDb21wb3NlIHRoZSByYXcgbW90aW9uIGRhdGEgdG8gYW4gaW50
ZXJtZWRpYXRlIFpYWS1iYXNlZCAzeDMgcm90YXRpb24KKyAgICAgICAgLy8gbWF0cml4IChSKSB3
aGVyZSBbej1hdHRpdHVkZS55YXcsIHg9YXR0aXR1ZGUucGl0Y2gsIHk9YXR0aXR1ZGUucm9sbF0K
KyAgICAgICAgLy8gaW4gdGhlIGZvcm06CisgICAgICAgIC8vCisgICAgICAgIC8vICAgLyAgUlsw
XSAgIFJbMV0gICBSWzJdICBcCisgICAgICAgIC8vICAgfCAgUlszXSAgIFJbNF0gICBSWzVdICB8
CisgICAgICAgIC8vICAgXCAgUls2XSAgIFJbN10gICBSWzhdICAvCisKKyAgICAgICAgZG91Ymxl
IGNYID0gY29zKGF0dGl0dWRlLnBpdGNoKTsKKyAgICAgICAgZG91YmxlIGNZID0gY29zKGF0dGl0
dWRlLnJvbGwpOworICAgICAgICBkb3VibGUgY1ogPSBjb3MoYXR0aXR1ZGUueWF3KTsKKyAgICAg
ICAgZG91YmxlIHNYID0gc2luKGF0dGl0dWRlLnBpdGNoKTsKKyAgICAgICAgZG91YmxlIHNZID0g
c2luKGF0dGl0dWRlLnJvbGwpOworICAgICAgICBkb3VibGUgc1ogPSBzaW4oYXR0aXR1ZGUueWF3
KTsKKworICAgICAgICBkb3VibGUgUltdID0geworICAgICAgICAgICAgY1ogKiBjWSAtIHNaICog
c1ggKiBzWSwKKyAgICAgICAgICAgIC0gY1ggKiBzWiwKKyAgICAgICAgICAgIGNZICogc1ogKiBz
WCArIGNaICogc1ksCisgICAgICAgICAgICBjWSAqIHNaICsgY1ogKiBzWCAqIHNZLAorICAgICAg
ICAgICAgY1ogKiBjWCwKKyAgICAgICAgICAgIHNaICogc1kgLSBjWiAqIGNZICogc1gsCisgICAg
ICAgICAgICAtIGNYICogc1ksCisgICAgICAgICAgICBzWCwKKyAgICAgICAgICAgIGNYICogY1kK
KyAgICAgICAgfTsKKworICAgICAgICAvLyBDb21wdXRlIGNvcnJlY3QsIG5vcm1hbGl6ZWQgdmFs
dWVzIGZvciBEZXZpY2VPcmllbnRhdGlvbiBmcm9tCisgICAgICAgIC8vIHJvdGF0aW9uIG1hdHJp
eCAoUikgYWNjb3JkaW5nIHRvIHRoZSBhbmdsZSBjb252ZW50aW9ucyBkZWZpbmVkIGluIHRoZQor
ICAgICAgICAvLyBXM0MgRGV2aWNlT3JpZW50YXRpb24gc3BlY2lmaWNhdGlvbi4KKworICAgICAg
ICBkb3VibGUgelJvdDsKKyAgICAgICAgZG91YmxlIHhSb3Q7CisgICAgICAgIGRvdWJsZSB5Um90
OworCisgICAgICAgIGlmIChSWzhdID4gMCkgeworICAgICAgICAgICAgelJvdCA9IGF0YW4yKC1S
WzFdLCBSWzRdKTsKKyAgICAgICAgICAgIHhSb3QgPSBhc2luKFJbN10pOworICAgICAgICAgICAg
eVJvdCA9IGF0YW4yKC1SWzZdLCBSWzhdKTsKKyAgICAgICAgfSBlbHNlIGlmIChSWzhdIDwgMCkg
eworICAgICAgICAgICAgelJvdCA9IGF0YW4yKFJbMV0sIC1SWzRdKTsKKyAgICAgICAgICAgIHhS
b3QgPSAtYXNpbihSWzddKTsKKyAgICAgICAgICAgIHhSb3QgKz0gKHhSb3QgPj0gMCkgPyAtTV9Q
SSA6IE1fUEk7CisgICAgICAgICAgICB5Um90ID0gYXRhbjIoUls2XSwgLVJbOF0pOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKFJbNl0gPiAwKSB7CisgICAgICAgICAgICAgICAg
elJvdCA9IGF0YW4yKC1SWzFdLCBSWzRdKTsKKyAgICAgICAgICAgICAgICB4Um90ID0gYXNpbihS
WzddKTsKKyAgICAgICAgICAgICAgICB5Um90ID0gLU1fUElfMjsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoUls2XSA8IDApIHsKKyAgICAgICAgICAgICAgICB6Um90ID0gYXRhbjIoUlsxXSwgLVJb
NF0pOworICAgICAgICAgICAgICAgIHhSb3QgPSAtYXNpbihSWzddKTsKKyAgICAgICAgICAgICAg
ICB4Um90ICs9ICh4Um90ID49IDApID8gLU1fUEkgOiBNX1BJOworICAgICAgICAgICAgICAgIHlS
b3QgPSAtTV9QSV8yOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB6Um90
ID0gYXRhbjIoUlszXSwgUlswXSk7CisgICAgICAgICAgICAgICAgeFJvdCA9IChSWzddID4gMCkg
PyBNX1BJXzIgOiAtTV9QSV8yOworICAgICAgICAgICAgICAgIHlSb3QgPSAwOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBaIGF4aXMg
KHBvaW50aW5nIHVwLiBub3JtYWxpemVkIHRvIFswLCAzNjBdIGRlZykuCisgICAgICAgIGRvdWJs
ZSBhbHBoYSA9IHJhZDJkZWcoelJvdCA+IDAgPyB6Um90IDogKE1fUEkgKiAyICsgelJvdCkpOwor
ICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFggYXhpcyAodG9wIHRvIGJvdHRvbSkuCisg
ICAgICAgIGRvdWJsZSBiZXRhICA9IHJhZDJkZWcoeFJvdCk7CisgICAgICAgIC8vIFJvdGF0aW9u
IGFyb3VuZCB0aGUgWSBheGlzIChzaWRlIHRvIHNpZGUpLgorICAgICAgICBkb3VibGUgZ2FtbWEg
PSByYWQyZGVnKHlSb3QpOwogCiAgICAgICAgIGRvdWJsZSBoZWFkaW5nID0gKG1faGVhZGluZ0F2
YWlsYWJsZSAmJiBuZXdIZWFkaW5nKSA/IG5ld0hlYWRpbmcubWFnbmV0aWNIZWFkaW5nIDogMDsK
ICAgICAgICAgZG91YmxlIGhlYWRpbmdBY2N1cmFjeSA9IChtX2hlYWRpbmdBdmFpbGFibGUgJiYg
bmV3SGVhZGluZykgPyBuZXdIZWFkaW5nLmhlYWRpbmdBY2N1cmFjeSA6IC0xOwotLSAKMS45LjEK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238844</attachid>
            <date>2014-09-29 01:43:32 -0700</date>
            <delta_ts>2014-10-03 02:15:52 -0700</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec (alternate fix)</desc>
            <filename>deviceorientation-fix1.patch</filename>
            <type>text/plain</type>
            <size>3638</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSA0ZDk5NzIxZDU3YzA5YzBiMzQ3ZTdmNDlmZjkxNDkzY2ZiZDQ1YTI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IE1vbiwgMjkgU2VwIDIwMTQgMTA6Mzg6NTQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBO
b3JtYWxpemUgaU9TIERldmljZU9yaWVudGF0aW9uIGJldGEvZ2FtbWEgcGVyIHNwZWMKIChhbHRl
cm5hdGUgZml4KQoKLS0tCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXIubW0gICB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0
MCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KaW5kZXggNDAyMDQ4NS4uOWM2
MGI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rp
b25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlci5tbQpAQCAtMjU2LDIyICsyNTYsNDggQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBr
R3Jhdml0eSA9IDkuODA2NjU7CiAgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUyo+IG9yaWVudGF0aW9uQ2xpZW50czsKICAgICAgICAgY29weVRvVmVjdG9y
KG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLCBvcmllbnRhdGlvbkNsaWVudHMpOwogCi0gICAg
ICAgIC8vIE5vdGUgdGhhdCB0aGUgVzNDIERldmljZU9yaWVudGF0aW9uIHNwZWNpZmljYXRpb24g
bGFiZWxzIHRoZSBYIGF4aXMKLSAgICAgICAgLy8gYXMgcGFzc2luZyBiZXR3ZWVuIHRoZSBzaWRl
cyBvZiB0aGUgZGV2aWNlLCBhbmQgdGhlIFkgYXhpcyBhcyBwYXNzaW5nCi0gICAgICAgIC8vIGZy
b20gdG9wIHRvIGJvdHRvbSBvZiB0aGUgZGV2aWNlLiBDb252ZW50aW9uYWwgVGFpdC1CcnlhbiBF
dWxlciBhbmdsZXMKLSAgICAgICAgLy8gaGF2ZSB0aGUgWCBheGlzIHBvaW50aW5nIGZvcndhcmQg
KHRoZSBoZWFkaW5nIG9mIHRoZSBhaXJjcmFmdCwgZm9yCi0gICAgICAgIC8vIGV4YW1wbGUpLCB3
aGljaCBpcyB3aGF0IHlvdSB3b3VsZCAicm9sbCIgYXJvdW5kLCBhbmQgd2hhdCB0aGUgVzNDIHNh
eXMKLSAgICAgICAgLy8gaXMgdGhlIFkgYXhpcy4gVW5mb3J0dW5hdGVseSBDb3JlTW90aW9uIGRv
ZXNuJ3Qgbm9ybWFsaXplIGluIHRoZQotICAgICAgICAvLyBzYW1lIG9yZGVyIGFzIHRoZSBXM0Mg
cmVxdWVzdHMsIHNvIG91ciBiZXRhIGlzIFstOTAsIDkwXSBhbmQgZ2FtbWEgaXMKLSAgICAgICAg
Ly8gWy0xODAsIDE4MF0uIEZvciBtb3N0IHByYWN0aWNhbCB1c2VzIHRoaXMgaXMgYWNjZXB0YWJs
ZS4KLSAgICAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS85NDE0NDU5PiBOb3JtYWxpemUgb3Vy
IERldmljZU9yaWVudGF0aW9uIGJldGEvZ2FtbWEgcGVyIHNwZWMKLQotICAgICAgICAvLyBSb3Rh
dGlvbiBhcm91bmQgdGhlIFogYXhpcyAocG9pbnRpbmcgdXAsIG5vcm1hbGl6ZWQgdG8gWzAsIDM2
MF0gZGVnKS4KLSAgICAgICAgZG91YmxlIGFscGhhID0gcmFkMmRlZyhhdHRpdHVkZS55YXcgPiAw
ID8gYXR0aXR1ZGUueWF3IDogKE1fUEkgKiAyICsgYXR0aXR1ZGUueWF3KSk7CisgICAgICAgIC8v
IENvbXB1dGUgY29ycmVjdCwgbm9ybWFsaXplZCB2YWx1ZXMgZm9yIERldmljZU9yaWVudGF0aW9u
IGZyb20KKyAgICAgICAgLy8gQ29yZU1vdGlvbiByb3RhdGlvbiBtYXRyaXggYWNjb3JkaW5nIHRv
IHRoZSBhbmdsZSBjb252ZW50aW9ucyBkZWZpbmVkCisgICAgICAgIC8vIGluIHRoZSBXM0MgRGV2
aWNlT3JpZW50YXRpb24gc3BlY2lmaWNhdGlvbi4KKworICAgICAgICBDTVJvdGF0aW9uTWF0cml4
IFIgPSBhdHRpdHVkZS5yb3RhdGlvbk1hdHJpeDsKKworICAgICAgICBkb3VibGUgelJvdDsKKyAg
ICAgICAgZG91YmxlIHhSb3Q7CisgICAgICAgIGRvdWJsZSB5Um90OworCisgICAgICAgIGlmIChS
Lm0zMyA+IDApIHsKKyAgICAgICAgICAgIHpSb3QgPSBhdGFuMigtUi5tMTIsIFIubTIyKTsKKyAg
ICAgICAgICAgIHhSb3QgPSBhc2luKFIubTMyKTsKKyAgICAgICAgICAgIHlSb3QgPSBhdGFuMigt
Ui5tMzEsIFIubTMzKTsKKyAgICAgICAgfSBlbHNlIGlmIChSLm0zMyA8IDApIHsKKyAgICAgICAg
ICAgIHpSb3QgPSBhdGFuMihSLm0xMiwgLVIubTIyKTsKKyAgICAgICAgICAgIHhSb3QgPSAtYXNp
bihSLm0zMik7CisgICAgICAgICAgICB4Um90ICs9ICh4Um90ID49IDApID8gLU1fUEkgOiBNX1BJ
OworICAgICAgICAgICAgeVJvdCA9IGF0YW4yKFIubTMxLCAtUi5tMzMpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgaWYgKFIubTMxID4gMCkgeworICAgICAgICAgICAgICAgIHpSb3Qg
PSBhdGFuMigtUi5tMTIsIFIubTIyKTsKKyAgICAgICAgICAgICAgICB4Um90ID0gYXNpbihSLm0z
Mik7CisgICAgICAgICAgICAgICAgeVJvdCA9IC1NX1BJXzI7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKFIubTMxIDwgMCkgeworICAgICAgICAgICAgICAgIHpSb3QgPSBhdGFuMihSLm0xMiwgLVIu
bTIyKTsKKyAgICAgICAgICAgICAgICB4Um90ID0gLWFzaW4oUi5tMzIpOworICAgICAgICAgICAg
ICAgIHhSb3QgKz0gKHhSb3QgPj0gMCkgPyAtTV9QSSA6IE1fUEk7CisgICAgICAgICAgICAgICAg
eVJvdCA9IC1NX1BJXzI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHpS
b3QgPSBhdGFuMihSLm0yMSwgUi5tMTEpOworICAgICAgICAgICAgICAgIHhSb3QgPSAoUi5tMzIg
PiAwKSA/IE1fUEkgLyAyIDogLU1fUElfMjsKKyAgICAgICAgICAgICAgICB5Um90ID0gMDsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUg
WiBheGlzIChwb2ludGluZyB1cC4gbm9ybWFsaXplZCB0byBbMCwgMzYwXSBkZWcpLgorICAgICAg
ICBkb3VibGUgYWxwaGEgPSByYWQyZGVnKHpSb3QgPiAwID8gelJvdCA6IChNX1BJICogMiArIHpS
b3QpKTsKICAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRoZSBYIGF4aXMgKHNpZGUgdG8gc2lk
ZSkuCi0gICAgICAgIGRvdWJsZSBiZXRhID0gcmFkMmRlZyhhdHRpdHVkZS5waXRjaCk7CisgICAg
ICAgIGRvdWJsZSBiZXRhICA9IHJhZDJkZWcoeFJvdCk7CiAgICAgICAgIC8vIFJvdGF0aW9uIGFy
b3VuZCB0aGUgWSBheGlzICh0b3AgdG8gYm90dG9tKS4KLSAgICAgICAgZG91YmxlIGdhbW1hID0g
cmFkMmRlZyhhdHRpdHVkZS5yb2xsKTsKKyAgICAgICAgZG91YmxlIGdhbW1hID0gcmFkMmRlZyh5
Um90KTsKIAogICAgICAgICBkb3VibGUgaGVhZGluZyA9IChtX2hlYWRpbmdBdmFpbGFibGUgJiYg
bmV3SGVhZGluZykgPyBuZXdIZWFkaW5nLm1hZ25ldGljSGVhZGluZyA6IDA7CiAgICAgICAgIGRv
dWJsZSBoZWFkaW5nQWNjdXJhY3kgPSAobV9oZWFkaW5nQXZhaWxhYmxlICYmIG5ld0hlYWRpbmcp
ID8gbmV3SGVhZGluZy5oZWFkaW5nQWNjdXJhY3kgOiAtMTsKLS0gCjEuOS4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239195</attachid>
            <date>2014-10-03 02:15:52 -0700</date>
            <delta_ts>2014-10-03 02:15:52 -0700</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec (alternate fix)</desc>
            <filename>deviceorientation_fix1.patch</filename>
            <type>text/plain</type>
            <size>4420</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSA5MzUxMzYzZGM2NjI1OTZiZDE4ZTEzMTBmMzY0NjY0NjY4YmMwZjMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IEZyaSwgMyBPY3QgMjAxNCAxMToxMDowMCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIE5b
QnVnIDEzNzEzNF0gTm9ybWFsaXplIGlPUyBEZXZpY2VPcmllbnRhdGlvbiBiZXRhL2dhbW1hIHBl
cgogc3BlYwoKLS0tCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFn
ZXIubW0gICB8IDYwICsrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MyBp
bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KaW5kZXggNDAyMDQ4NS4uZDI3N2Zl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlci5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIHN0YXRpYyBjb25zdCBkb3VibGUga0dyYXZp
dHkgPSA5LjgwNjY1OwogICAgIC8vIG1vdGlvbiBvciBsb2NhdGlvbiBtYW5hZ2VyLCBidXQgd2Ug
c2hvdWxkIGd1YXJkIGZvciB0aGlzIGNhc2UganVzdCBpbiBjYXNlLgogICAgIGlmICghbV9tb3Rp
b25NYW5hZ2VyIHx8ICFtX2xvY2F0aW9uTWFuYWdlcikKICAgICAgICAgcmV0dXJuOwotICAgIAor
CiAgICAgLy8gV2Ugc2hvdWxkLCBob3dldmVyLCBndWFyZCBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhl
IG1hbmFnZXJzIHJldHVybiBuaWwgZGF0YS4KICAgICBDTURldmljZU1vdGlvbiAqZGV2aWNlTW90
aW9uID0gbV9tb3Rpb25NYW5hZ2VyLmRldmljZU1vdGlvbjsKICAgICBpZiAobV9neXJvQXZhaWxh
YmxlICYmIGRldmljZU1vdGlvbikKQEAgLTI1MywyOSArMjUzLDU1IEBAIHN0YXRpYyBjb25zdCBk
b3VibGUga0dyYXZpdHkgPSA5LjgwNjY1OwogCiAgICAgICAgIENNQXR0aXR1ZGUqIGF0dGl0dWRl
ID0gbmV3TW90aW9uLmF0dGl0dWRlOwogCi0gICAgICAgIFZlY3RvcjxXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUyo+IG9yaWVudGF0aW9uQ2xpZW50czsKLSAgICAgICAgY29weVRv
VmVjdG9yKG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLCBvcmllbnRhdGlvbkNsaWVudHMpOwor
ICAgICAgICAvLyBDb21wdXRlIGNvcnJlY3QsIG5vcm1hbGl6ZWQgdmFsdWVzIGZvciBEZXZpY2VP
cmllbnRhdGlvbiBmcm9tCisgICAgICAgIC8vIENvcmVNb3Rpb24gcm90YXRpb24gbWF0cml4IGFj
Y29yZGluZyB0byB0aGUgYW5nbGUgY29udmVudGlvbnMgZGVmaW5lZAorICAgICAgICAvLyBpbiB0
aGUgVzNDIERldmljZU9yaWVudGF0aW9uIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgQ01Sb3Rh
dGlvbk1hdHJpeCBSID0gYXR0aXR1ZGUucm90YXRpb25NYXRyaXg7CisKKyAgICAgICAgZG91Ymxl
IHpSb3Q7CisgICAgICAgIGRvdWJsZSB4Um90OworICAgICAgICBkb3VibGUgeVJvdDsKKworICAg
ICAgICBpZiAoUi5tMzMgPiAwKSB7CisgICAgICAgICAgICB6Um90ID0gYXRhbjIoLVIubTIxLCBS
Lm0yMik7CisgICAgICAgICAgICB4Um90ID0gYXNpbihSLm0yMyk7CisgICAgICAgICAgICB5Um90
ID0gYXRhbjIoLVIubTEzLCBSLm0zMyk7CisgICAgICAgIH0gZWxzZSBpZiAoUi5tMzMgPCAwKSB7
CisgICAgICAgICAgICB6Um90ID0gYXRhbjIoUi5tMjEsIC1SLm0yMik7CisgICAgICAgICAgICB4
Um90ID0gLWFzaW4oUi5tMjMpOworICAgICAgICAgICAgeFJvdCArPSAoeFJvdCA+PSAwKSA/IC1N
X1BJIDogTV9QSTsKKyAgICAgICAgICAgIHlSb3QgPSBhdGFuMihSLm0xMywgLVIubTMzKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChSLm0xMyA+IDApIHsKKyAgICAgICAgICAg
ICAgICB6Um90ID0gYXRhbjIoLVIubTIxLCBSLm0yMik7CisgICAgICAgICAgICAgICAgeFJvdCA9
IGFzaW4oUi5tMjMpOworICAgICAgICAgICAgICAgIHlSb3QgPSAtTV9QSV8yOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChSLm0xMyA8IDApIHsKKyAgICAgICAgICAgICAgICB6Um90ID0gYXRhbjIo
Ui5tMjEsIC1SLm0yMik7CisgICAgICAgICAgICAgICAgeFJvdCA9IC1hc2luKFIubTIzKTsKKyAg
ICAgICAgICAgICAgICB4Um90ICs9ICh4Um90ID49IDApID8gLU1fUEkgOiBNX1BJOworICAgICAg
ICAgICAgICAgIHlSb3QgPSAtTV9QSV8yOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB6Um90ID0gYXRhbjIoUi5tMTIsIFIubTExKTsKKyAgICAgICAgICAgICAgICB4Um90
ID0gKFIubTIzID4gMCkgPyBNX1BJXzIgOiAtTV9QSV8yOworICAgICAgICAgICAgICAgIHlSb3Qg
PSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CiAKLSAgICAgICAgLy8gTm90ZSB0aGF0IHRo
ZSBXM0MgRGV2aWNlT3JpZW50YXRpb24gc3BlY2lmaWNhdGlvbiBsYWJlbHMgdGhlIFggYXhpcwot
ICAgICAgICAvLyBhcyBwYXNzaW5nIGJldHdlZW4gdGhlIHNpZGVzIG9mIHRoZSBkZXZpY2UsIGFu
ZCB0aGUgWSBheGlzIGFzIHBhc3NpbmcKLSAgICAgICAgLy8gZnJvbSB0b3AgdG8gYm90dG9tIG9m
IHRoZSBkZXZpY2UuIENvbnZlbnRpb25hbCBUYWl0LUJyeWFuIEV1bGVyIGFuZ2xlcwotICAgICAg
ICAvLyBoYXZlIHRoZSBYIGF4aXMgcG9pbnRpbmcgZm9yd2FyZCAodGhlIGhlYWRpbmcgb2YgdGhl
IGFpcmNyYWZ0LCBmb3IKLSAgICAgICAgLy8gZXhhbXBsZSksIHdoaWNoIGlzIHdoYXQgeW91IHdv
dWxkICJyb2xsIiBhcm91bmQsIGFuZCB3aGF0IHRoZSBXM0Mgc2F5cwotICAgICAgICAvLyBpcyB0
aGUgWSBheGlzLiBVbmZvcnR1bmF0ZWx5IENvcmVNb3Rpb24gZG9lc24ndCBub3JtYWxpemUgaW4g
dGhlCi0gICAgICAgIC8vIHNhbWUgb3JkZXIgYXMgdGhlIFczQyByZXF1ZXN0cywgc28gb3VyIGJl
dGEgaXMgWy05MCwgOTBdIGFuZCBnYW1tYSBpcwotICAgICAgICAvLyBbLTE4MCwgMTgwXS4gRm9y
IG1vc3QgcHJhY3RpY2FsIHVzZXMgdGhpcyBpcyBhY2NlcHRhYmxlLgotICAgICAgICAvLyBTZWUg
PHJkYXI6Ly9wcm9ibGVtLzk0MTQ0NTk+IE5vcm1hbGl6ZSBvdXIgRGV2aWNlT3JpZW50YXRpb24g
YmV0YS9nYW1tYSBwZXIgc3BlYwotCi0gICAgICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUgWiBh
eGlzIChwb2ludGluZyB1cCwgbm9ybWFsaXplZCB0byBbMCwgMzYwXSBkZWcpLgotICAgICAgICBk
b3VibGUgYWxwaGEgPSByYWQyZGVnKGF0dGl0dWRlLnlhdyA+IDAgPyBhdHRpdHVkZS55YXcgOiAo
TV9QSSAqIDIgKyBhdHRpdHVkZS55YXcpKTsKKyAgICAgICAgLy8gUm90YXRpb24gYXJvdW5kIHRo
ZSBaIGF4aXMgKHBvaW50aW5nIHVwLiBub3JtYWxpemVkIHRvIFswLCAzNjBdIGRlZykuCisgICAg
ICAgIGRvdWJsZSBhbHBoYSA9IHJhZDJkZWcoelJvdCA+IDAgPyB6Um90IDogKE1fUEkgKiAyICsg
elJvdCkpOwogICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFggYXhpcyAoc2lkZSB0byBz
aWRlKS4KLSAgICAgICAgZG91YmxlIGJldGEgPSByYWQyZGVnKGF0dGl0dWRlLnBpdGNoKTsKKyAg
ICAgICAgZG91YmxlIGJldGEgID0gcmFkMmRlZyh4Um90KTsKICAgICAgICAgLy8gUm90YXRpb24g
YXJvdW5kIHRoZSBZIGF4aXMgKHRvcCB0byBib3R0b20pLgotICAgICAgICBkb3VibGUgZ2FtbWEg
PSByYWQyZGVnKGF0dGl0dWRlLnJvbGwpOworICAgICAgICBkb3VibGUgZ2FtbWEgPSByYWQyZGVn
KHlSb3QpOwogCiAgICAgICAgIGRvdWJsZSBoZWFkaW5nID0gKG1faGVhZGluZ0F2YWlsYWJsZSAm
JiBuZXdIZWFkaW5nKSA/IG5ld0hlYWRpbmcubWFnbmV0aWNIZWFkaW5nIDogMDsKICAgICAgICAg
ZG91YmxlIGhlYWRpbmdBY2N1cmFjeSA9IChtX2hlYWRpbmdBdmFpbGFibGUgJiYgbmV3SGVhZGlu
ZykgPyBuZXdIZWFkaW5nLmhlYWRpbmdBY2N1cmFjeSA6IC0xOwogCisgICAgICAgIFZlY3RvcjxX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG9yaWVudGF0aW9uQ2xpZW50czsK
KyAgICAgICAgY29weVRvVmVjdG9yKG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLCBvcmllbnRh
dGlvbkNsaWVudHMpOworCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3JpZW50YXRp
b25DbGllbnRzLnNpemUoKTsgKytpKQogICAgICAgICAgICAgb3JpZW50YXRpb25DbGllbnRzW2ld
LT5vcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBoZWFkaW5nLCBoZWFkaW5n
QWNjdXJhY3kpOwogICAgIH0pOwotLSAKMS45LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240843</attachid>
            <date>2014-11-03 06:01:56 -0800</date>
            <delta_ts>2014-11-03 06:11:54 -0800</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec</desc>
            <filename>deviceorientation-fix.patch</filename>
            <type>text/plain</type>
            <size>5469</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSBlN2RmZjQ5ZWM2NDM0MzJhNDRiZGI3MmJmYzY4MjlkNTlmYzQ4YmI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IEZyaSwgMDEgTm92IDIwMTQgMTA6MjU6MzAgKzAyMDAKU3ViamVjdDogW1BBVENIXSBb
aU9TXSBOb3JtYWxpemUgRGV2aWNlT3JpZW50YXRpb24gYmV0YS9nYW1tYSBwZXIgc3BlYwoKLS0t
CiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4
ICsrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0g
ICB8IDgzICsrKysrKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0
aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3MmIxNTEuLmE3ZGE0Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0xMS0wMSAgUmljaCBUaWJiZXR0IDxy
aWNoLnRpYmJldHRAZ21haWwuY29tPgorCisgICAgICAgIFtpT1NdIE5vcm1hbGl6ZSBpT1MgRGV2
aWNlT3JpZW50YXRpb24gYmV0YS9nYW1tYSBwZXIgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzEzNAorICAgICAgICA8cmFkcjovL3Byb2Js
ZW0vOTQxNDQ1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgorCisg
ICAgICAgIE5vcm1hbGl6ZSBEZXZpY2VPcmllbnRhdGlvbiBiZXRhIGFuZCBnYW1tYSBvbiBpT1Mg
dG8gbWF0Y2ggdGhlCisgICAgICAgIGNvbnZlbnRpb25zIGRlZmluZWQgaW4gdGhlIFczQyBEZXZp
Y2VPcmllbnRhdGlvbiBFdmVudHMgc3BlY2lmaWNhdGlvbi4KKworICAgICAgICBiZXRhIHZhbHVl
cyBhcmUgcmV0dXJuZWQgaW4gdGhlIHJhbmdlIFstMTgwLCAxODApLiBnYW1tYSB2YWx1ZXMgYXJl
CisgICAgICAgIHJldHVybmVkIGluIHRoZSByYW5nZSBbLTkwLCA5MCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vaU9TL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tOgorCiAyMDE0LTA5LTI0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2UgdGlnaHRlciB0eXBpbmcgZm9yIHJlbmRlciBvYmplY3RzIGluIFJlbmRl
ckdlb21ldHJ5TWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
Q29yZU1vdGlvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29y
ZU1vdGlvbk1hbmFnZXIubW0KaW5kZXggNDAyMDQ4NS4uYzZkZjk2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQpAQCAtMjU2
LDIyICsyNTYsNzMgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBrR3Jhdml0eSA9IDkuODA2NjU7CiAg
ICAgICAgIFZlY3RvcjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG9yaWVu
dGF0aW9uQ2xpZW50czsKICAgICAgICAgY29weVRvVmVjdG9yKG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnRzLCBvcmllbnRhdGlvbkNsaWVudHMpOwogCi0gICAgICAgIC8vIE5vdGUgdGhhdCB0aGUg
VzNDIERldmljZU9yaWVudGF0aW9uIHNwZWNpZmljYXRpb24gbGFiZWxzIHRoZSBYIGF4aXMKLSAg
ICAgICAgLy8gYXMgcGFzc2luZyBiZXR3ZWVuIHRoZSBzaWRlcyBvZiB0aGUgZGV2aWNlLCBhbmQg
dGhlIFkgYXhpcyBhcyBwYXNzaW5nCi0gICAgICAgIC8vIGZyb20gdG9wIHRvIGJvdHRvbSBvZiB0
aGUgZGV2aWNlLiBDb252ZW50aW9uYWwgVGFpdC1CcnlhbiBFdWxlciBhbmdsZXMKLSAgICAgICAg
Ly8gaGF2ZSB0aGUgWCBheGlzIHBvaW50aW5nIGZvcndhcmQgKHRoZSBoZWFkaW5nIG9mIHRoZSBh
aXJjcmFmdCwgZm9yCi0gICAgICAgIC8vIGV4YW1wbGUpLCB3aGljaCBpcyB3aGF0IHlvdSB3b3Vs
ZCAicm9sbCIgYXJvdW5kLCBhbmQgd2hhdCB0aGUgVzNDIHNheXMKLSAgICAgICAgLy8gaXMgdGhl
IFkgYXhpcy4gVW5mb3J0dW5hdGVseSBDb3JlTW90aW9uIGRvZXNuJ3Qgbm9ybWFsaXplIGluIHRo
ZQotICAgICAgICAvLyBzYW1lIG9yZGVyIGFzIHRoZSBXM0MgcmVxdWVzdHMsIHNvIG91ciBiZXRh
IGlzIFstOTAsIDkwXSBhbmQgZ2FtbWEgaXMKLSAgICAgICAgLy8gWy0xODAsIDE4MF0uIEZvciBt
b3N0IHByYWN0aWNhbCB1c2VzIHRoaXMgaXMgYWNjZXB0YWJsZS4KLSAgICAgICAgLy8gU2VlIDxy
ZGFyOi8vcHJvYmxlbS85NDE0NDU5PiBOb3JtYWxpemUgb3VyIERldmljZU9yaWVudGF0aW9uIGJl
dGEvZ2FtbWEgcGVyIHNwZWMKLQotICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFogYXhp
cyAocG9pbnRpbmcgdXAsIG5vcm1hbGl6ZWQgdG8gWzAsIDM2MF0gZGVnKS4KLSAgICAgICAgZG91
YmxlIGFscGhhID0gcmFkMmRlZyhhdHRpdHVkZS55YXcgPiAwID8gYXR0aXR1ZGUueWF3IDogKE1f
UEkgKiAyICsgYXR0aXR1ZGUueWF3KSk7Ci0gICAgICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUg
WCBheGlzIChzaWRlIHRvIHNpZGUpLgotICAgICAgICBkb3VibGUgYmV0YSA9IHJhZDJkZWcoYXR0
aXR1ZGUucGl0Y2gpOwotICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFkgYXhpcyAodG9w
IHRvIGJvdHRvbSkuCi0gICAgICAgIGRvdWJsZSBnYW1tYSA9IHJhZDJkZWcoYXR0aXR1ZGUucm9s
bCk7CisgICAgICAgIC8vIENvbXBvc2UgdGhlIHJhdyBtb3Rpb24gZGF0YSB0byBhbiBpbnRlcm1l
ZGlhdGUgWlhZLWJhc2VkIDN4MyByb3RhdGlvbgorICAgICAgICAvLyBtYXRyaXggKFIpIHdoZXJl
IFt6PWF0dGl0dWRlLnlhdywgeD1hdHRpdHVkZS5waXRjaCwgeT1hdHRpdHVkZS5yb2xsXQorICAg
ICAgICAvLyBpbiB0aGUgZm9ybToKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAvICBSWzBdICAg
UlsxXSAgIFJbMl0gIFwKKyAgICAgICAgLy8gICB8ICBSWzNdICAgUls0XSAgIFJbNV0gIHwKKyAg
ICAgICAgLy8gICBcICBSWzZdICAgUls3XSAgIFJbOF0gIC8KKworICAgICAgICBkb3VibGUgY1gg
PSBjb3MoYXR0aXR1ZGUucGl0Y2gpOworICAgICAgICBkb3VibGUgY1kgPSBjb3MoYXR0aXR1ZGUu
cm9sbCk7CisgICAgICAgIGRvdWJsZSBjWiA9IGNvcyhhdHRpdHVkZS55YXcpOworICAgICAgICBk
b3VibGUgc1ggPSBzaW4oYXR0aXR1ZGUucGl0Y2gpOworICAgICAgICBkb3VibGUgc1kgPSBzaW4o
YXR0aXR1ZGUucm9sbCk7CisgICAgICAgIGRvdWJsZSBzWiA9IHNpbihhdHRpdHVkZS55YXcpOwor
CisgICAgICAgIGRvdWJsZSBSW10gPSB7CisgICAgICAgICAgICBjWiAqIGNZIC0gc1ogKiBzWCAq
IHNZLAorICAgICAgICAgICAgLSBjWCAqIHNaLAorICAgICAgICAgICAgY1kgKiBzWiAqIHNYICsg
Y1ogKiBzWSwKKyAgICAgICAgICAgIGNZICogc1ogKyBjWiAqIHNYICogc1ksCisgICAgICAgICAg
ICBjWiAqIGNYLAorICAgICAgICAgICAgc1ogKiBzWSAtIGNaICogY1kgKiBzWCwKKyAgICAgICAg
ICAgIC0gY1ggKiBzWSwKKyAgICAgICAgICAgIHNYLAorICAgICAgICAgICAgY1ggKiBjWQorICAg
ICAgICB9OworCisgICAgICAgIC8vIENvbXB1dGUgY29ycmVjdCwgbm9ybWFsaXplZCB2YWx1ZXMg
Zm9yIERldmljZU9yaWVudGF0aW9uIGZyb20KKyAgICAgICAgLy8gcm90YXRpb24gbWF0cml4IChS
KSBhY2NvcmRpbmcgdG8gdGhlIGFuZ2xlIGNvbnZlbnRpb25zIGRlZmluZWQgaW4gdGhlCisgICAg
ICAgIC8vIFczQyBEZXZpY2VPcmllbnRhdGlvbiBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgIGRv
dWJsZSB6Um90OworICAgICAgICBkb3VibGUgeFJvdDsKKyAgICAgICAgZG91YmxlIHlSb3Q7CisK
KyAgICAgICAgaWYgKFJbOF0gPiAwKSB7CisgICAgICAgICAgICB6Um90ID0gYXRhbjIoLVJbMV0s
IFJbNF0pOworICAgICAgICAgICAgeFJvdCA9IGFzaW4oUls3XSk7CisgICAgICAgICAgICB5Um90
ID0gYXRhbjIoLVJbNl0sIFJbOF0pOworICAgICAgICB9IGVsc2UgaWYgKFJbOF0gPCAwKSB7Cisg
ICAgICAgICAgICB6Um90ID0gYXRhbjIoUlsxXSwgLVJbNF0pOworICAgICAgICAgICAgeFJvdCA9
IC1hc2luKFJbN10pOworICAgICAgICAgICAgeFJvdCArPSAoeFJvdCA+PSAwKSA/IC1NX1BJIDog
TV9QSTsKKyAgICAgICAgICAgIHlSb3QgPSBhdGFuMihSWzZdLCAtUls4XSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBpZiAoUls2XSA+IDApIHsKKyAgICAgICAgICAgICAgICB6Um90
ID0gYXRhbjIoLVJbMV0sIFJbNF0pOworICAgICAgICAgICAgICAgIHhSb3QgPSBhc2luKFJbN10p
OworICAgICAgICAgICAgICAgIHlSb3QgPSAtTV9QSV8yOworICAgICAgICAgICAgfSBlbHNlIGlm
IChSWzZdIDwgMCkgeworICAgICAgICAgICAgICAgIHpSb3QgPSBhdGFuMihSWzFdLCAtUls0XSk7
CisgICAgICAgICAgICAgICAgeFJvdCA9IC1hc2luKFJbN10pOworICAgICAgICAgICAgICAgIHhS
b3QgKz0gKHhSb3QgPj0gMCkgPyAtTV9QSSA6IE1fUEk7CisgICAgICAgICAgICAgICAgeVJvdCA9
IC1NX1BJXzI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHpSb3QgPSBh
dGFuMihSWzNdLCBSWzBdKTsKKyAgICAgICAgICAgICAgICB4Um90ID0gKFJbN10gPiAwKSA/IE1f
UElfMiA6IC1NX1BJXzI7CisgICAgICAgICAgICAgICAgeVJvdCA9IDA7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFogYXhpcyAocG9p
bnRpbmcgdXAuIG5vcm1hbGl6ZWQgdG8gWzAsIDM2MF0gZGVnKS4KKyAgICAgICAgZG91YmxlIGFs
cGhhID0gcmFkMmRlZyh6Um90ID4gMCA/IHpSb3QgOiAoTV9QSSAqIDIgKyB6Um90KSk7CisgICAg
ICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUgWCBheGlzICh0b3AgdG8gYm90dG9tKS4KKyAgICAg
ICAgZG91YmxlIGJldGEgID0gcmFkMmRlZyh4Um90KTsKKyAgICAgICAgLy8gUm90YXRpb24gYXJv
dW5kIHRoZSBZIGF4aXMgKHNpZGUgdG8gc2lkZSkuCisgICAgICAgIGRvdWJsZSBnYW1tYSA9IHJh
ZDJkZWcoeVJvdCk7CiAKICAgICAgICAgZG91YmxlIGhlYWRpbmcgPSAobV9oZWFkaW5nQXZhaWxh
YmxlICYmIG5ld0hlYWRpbmcpID8gbmV3SGVhZGluZy5tYWduZXRpY0hlYWRpbmcgOiAwOwogICAg
ICAgICBkb3VibGUgaGVhZGluZ0FjY3VyYWN5ID0gKG1faGVhZGluZ0F2YWlsYWJsZSAmJiBuZXdI
ZWFkaW5nKSA/IG5ld0hlYWRpbmcuaGVhZGluZ0FjY3VyYWN5IDogLTE7Ci0tIAoxLjkuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240845</attachid>
            <date>2014-11-03 06:11:54 -0800</date>
            <delta_ts>2014-11-03 06:11:54 -0800</delta_ts>
            <desc>Normalize iOS DeviceOrientation beta/gamma per spec</desc>
            <filename>deviceorientation-fix.patch</filename>
            <type>text/plain</type>
            <size>5469</size>
            <attacher name="Rich Tibbett">richt</attacher>
            
              <data encoding="base64">RnJvbSBlN2RmZjQ5ZWM2NDM0MzJhNDRiZGI3MmJmYzY4MjlkNTlmYzQ4YmI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoIFRpYmJldHQgPHJpY2gudGliYmV0dEBnbWFpbC5jb20+
CkRhdGU6IEZyaSwgMDMgTm92IDIwMTQgMTA6MzA6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIXSBb
aU9TXSBOb3JtYWxpemUgRGV2aWNlT3JpZW50YXRpb24gYmV0YS9nYW1tYSBwZXIgc3BlYwoKLS0t
CiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4
ICsrKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0g
ICB8IDgzICsrKysrKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0
aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3MmIxNTEuLmE3ZGE0Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0xMS0wMyAgUmljaCBUaWJiZXR0IDxy
aWNoLnRpYmJldHRAZ21haWwuY29tPgorCisgICAgICAgIFtpT1NdIE5vcm1hbGl6ZSBpT1MgRGV2
aWNlT3JpZW50YXRpb24gYmV0YS9nYW1tYSBwZXIgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzEzNAorICAgICAgICA8cmFkcjovL3Byb2Js
ZW0vOTQxNDQ1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgorCisg
ICAgICAgIE5vcm1hbGl6ZSBEZXZpY2VPcmllbnRhdGlvbiBiZXRhIGFuZCBnYW1tYSBvbiBpT1Mg
dG8gbWF0Y2ggdGhlCisgICAgICAgIGNvbnZlbnRpb25zIGRlZmluZWQgaW4gdGhlIFczQyBEZXZp
Y2VPcmllbnRhdGlvbiBFdmVudHMgc3BlY2lmaWNhdGlvbi4KKworICAgICAgICBiZXRhIHZhbHVl
cyBhcmUgcmV0dXJuZWQgaW4gdGhlIHJhbmdlIFstMTgwLCAxODApLiBnYW1tYSB2YWx1ZXMgYXJl
CisgICAgICAgIHJldHVybmVkIGluIHRoZSByYW5nZSBbLTkwLCA5MCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tOgorCiAyMDE0LTA5LTI0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2UgdGlnaHRlciB0eXBpbmcgZm9yIHJlbmRlciBvYmplY3RzIGluIFJlbmRl
ckdlb21ldHJ5TWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
Q29yZU1vdGlvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29y
ZU1vdGlvbk1hbmFnZXIubW0KaW5kZXggNDAyMDQ4NS4uYzZkZjk2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQpAQCAtMjU2
LDIyICsyNTYsNzMgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBrR3Jhdml0eSA9IDkuODA2NjU7CiAg
ICAgICAgIFZlY3RvcjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG9yaWVu
dGF0aW9uQ2xpZW50czsKICAgICAgICAgY29weVRvVmVjdG9yKG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnRzLCBvcmllbnRhdGlvbkNsaWVudHMpOwogCi0gICAgICAgIC8vIE5vdGUgdGhhdCB0aGUg
VzNDIERldmljZU9yaWVudGF0aW9uIHNwZWNpZmljYXRpb24gbGFiZWxzIHRoZSBYIGF4aXMKLSAg
ICAgICAgLy8gYXMgcGFzc2luZyBiZXR3ZWVuIHRoZSBzaWRlcyBvZiB0aGUgZGV2aWNlLCBhbmQg
dGhlIFkgYXhpcyBhcyBwYXNzaW5nCi0gICAgICAgIC8vIGZyb20gdG9wIHRvIGJvdHRvbSBvZiB0
aGUgZGV2aWNlLiBDb252ZW50aW9uYWwgVGFpdC1CcnlhbiBFdWxlciBhbmdsZXMKLSAgICAgICAg
Ly8gaGF2ZSB0aGUgWCBheGlzIHBvaW50aW5nIGZvcndhcmQgKHRoZSBoZWFkaW5nIG9mIHRoZSBh
aXJjcmFmdCwgZm9yCi0gICAgICAgIC8vIGV4YW1wbGUpLCB3aGljaCBpcyB3aGF0IHlvdSB3b3Vs
ZCAicm9sbCIgYXJvdW5kLCBhbmQgd2hhdCB0aGUgVzNDIHNheXMKLSAgICAgICAgLy8gaXMgdGhl
IFkgYXhpcy4gVW5mb3J0dW5hdGVseSBDb3JlTW90aW9uIGRvZXNuJ3Qgbm9ybWFsaXplIGluIHRo
ZQotICAgICAgICAvLyBzYW1lIG9yZGVyIGFzIHRoZSBXM0MgcmVxdWVzdHMsIHNvIG91ciBiZXRh
IGlzIFstOTAsIDkwXSBhbmQgZ2FtbWEgaXMKLSAgICAgICAgLy8gWy0xODAsIDE4MF0uIEZvciBt
b3N0IHByYWN0aWNhbCB1c2VzIHRoaXMgaXMgYWNjZXB0YWJsZS4KLSAgICAgICAgLy8gU2VlIDxy
ZGFyOi8vcHJvYmxlbS85NDE0NDU5PiBOb3JtYWxpemUgb3VyIERldmljZU9yaWVudGF0aW9uIGJl
dGEvZ2FtbWEgcGVyIHNwZWMKLQotICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFogYXhp
cyAocG9pbnRpbmcgdXAsIG5vcm1hbGl6ZWQgdG8gWzAsIDM2MF0gZGVnKS4KLSAgICAgICAgZG91
YmxlIGFscGhhID0gcmFkMmRlZyhhdHRpdHVkZS55YXcgPiAwID8gYXR0aXR1ZGUueWF3IDogKE1f
UEkgKiAyICsgYXR0aXR1ZGUueWF3KSk7Ci0gICAgICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUg
WCBheGlzIChzaWRlIHRvIHNpZGUpLgotICAgICAgICBkb3VibGUgYmV0YSA9IHJhZDJkZWcoYXR0
aXR1ZGUucGl0Y2gpOwotICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFkgYXhpcyAodG9w
IHRvIGJvdHRvbSkuCi0gICAgICAgIGRvdWJsZSBnYW1tYSA9IHJhZDJkZWcoYXR0aXR1ZGUucm9s
bCk7CisgICAgICAgIC8vIENvbXBvc2UgdGhlIHJhdyBtb3Rpb24gZGF0YSB0byBhbiBpbnRlcm1l
ZGlhdGUgWlhZLWJhc2VkIDN4MyByb3RhdGlvbgorICAgICAgICAvLyBtYXRyaXggKFIpIHdoZXJl
IFt6PWF0dGl0dWRlLnlhdywgeD1hdHRpdHVkZS5waXRjaCwgeT1hdHRpdHVkZS5yb2xsXQorICAg
ICAgICAvLyBpbiB0aGUgZm9ybToKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAvICBSWzBdICAg
UlsxXSAgIFJbMl0gIFwKKyAgICAgICAgLy8gICB8ICBSWzNdICAgUls0XSAgIFJbNV0gIHwKKyAg
ICAgICAgLy8gICBcICBSWzZdICAgUls3XSAgIFJbOF0gIC8KKworICAgICAgICBkb3VibGUgY1gg
PSBjb3MoYXR0aXR1ZGUucGl0Y2gpOworICAgICAgICBkb3VibGUgY1kgPSBjb3MoYXR0aXR1ZGUu
cm9sbCk7CisgICAgICAgIGRvdWJsZSBjWiA9IGNvcyhhdHRpdHVkZS55YXcpOworICAgICAgICBk
b3VibGUgc1ggPSBzaW4oYXR0aXR1ZGUucGl0Y2gpOworICAgICAgICBkb3VibGUgc1kgPSBzaW4o
YXR0aXR1ZGUucm9sbCk7CisgICAgICAgIGRvdWJsZSBzWiA9IHNpbihhdHRpdHVkZS55YXcpOwor
CisgICAgICAgIGRvdWJsZSBSW10gPSB7CisgICAgICAgICAgICBjWiAqIGNZIC0gc1ogKiBzWCAq
IHNZLAorICAgICAgICAgICAgLSBjWCAqIHNaLAorICAgICAgICAgICAgY1kgKiBzWiAqIHNYICsg
Y1ogKiBzWSwKKyAgICAgICAgICAgIGNZICogc1ogKyBjWiAqIHNYICogc1ksCisgICAgICAgICAg
ICBjWiAqIGNYLAorICAgICAgICAgICAgc1ogKiBzWSAtIGNaICogY1kgKiBzWCwKKyAgICAgICAg
ICAgIC0gY1ggKiBzWSwKKyAgICAgICAgICAgIHNYLAorICAgICAgICAgICAgY1ggKiBjWQorICAg
ICAgICB9OworCisgICAgICAgIC8vIENvbXB1dGUgY29ycmVjdCwgbm9ybWFsaXplZCB2YWx1ZXMg
Zm9yIERldmljZU9yaWVudGF0aW9uIGZyb20KKyAgICAgICAgLy8gcm90YXRpb24gbWF0cml4IChS
KSBhY2NvcmRpbmcgdG8gdGhlIGFuZ2xlIGNvbnZlbnRpb25zIGRlZmluZWQgaW4gdGhlCisgICAg
ICAgIC8vIFczQyBEZXZpY2VPcmllbnRhdGlvbiBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgIGRv
dWJsZSB6Um90OworICAgICAgICBkb3VibGUgeFJvdDsKKyAgICAgICAgZG91YmxlIHlSb3Q7CisK
KyAgICAgICAgaWYgKFJbOF0gPiAwKSB7CisgICAgICAgICAgICB6Um90ID0gYXRhbjIoLVJbMV0s
IFJbNF0pOworICAgICAgICAgICAgeFJvdCA9IGFzaW4oUls3XSk7CisgICAgICAgICAgICB5Um90
ID0gYXRhbjIoLVJbNl0sIFJbOF0pOworICAgICAgICB9IGVsc2UgaWYgKFJbOF0gPCAwKSB7Cisg
ICAgICAgICAgICB6Um90ID0gYXRhbjIoUlsxXSwgLVJbNF0pOworICAgICAgICAgICAgeFJvdCA9
IC1hc2luKFJbN10pOworICAgICAgICAgICAgeFJvdCArPSAoeFJvdCA+PSAwKSA/IC1NX1BJIDog
TV9QSTsKKyAgICAgICAgICAgIHlSb3QgPSBhdGFuMihSWzZdLCAtUls4XSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBpZiAoUls2XSA+IDApIHsKKyAgICAgICAgICAgICAgICB6Um90
ID0gYXRhbjIoLVJbMV0sIFJbNF0pOworICAgICAgICAgICAgICAgIHhSb3QgPSBhc2luKFJbN10p
OworICAgICAgICAgICAgICAgIHlSb3QgPSAtTV9QSV8yOworICAgICAgICAgICAgfSBlbHNlIGlm
IChSWzZdIDwgMCkgeworICAgICAgICAgICAgICAgIHpSb3QgPSBhdGFuMihSWzFdLCAtUls0XSk7
CisgICAgICAgICAgICAgICAgeFJvdCA9IC1hc2luKFJbN10pOworICAgICAgICAgICAgICAgIHhS
b3QgKz0gKHhSb3QgPj0gMCkgPyAtTV9QSSA6IE1fUEk7CisgICAgICAgICAgICAgICAgeVJvdCA9
IC1NX1BJXzI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHpSb3QgPSBh
dGFuMihSWzNdLCBSWzBdKTsKKyAgICAgICAgICAgICAgICB4Um90ID0gKFJbN10gPiAwKSA/IE1f
UElfMiA6IC1NX1BJXzI7CisgICAgICAgICAgICAgICAgeVJvdCA9IDA7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICAvLyBSb3RhdGlvbiBhcm91bmQgdGhlIFogYXhpcyAocG9p
bnRpbmcgdXAuIG5vcm1hbGl6ZWQgdG8gWzAsIDM2MF0gZGVnKS4KKyAgICAgICAgZG91YmxlIGFs
cGhhID0gcmFkMmRlZyh6Um90ID4gMCA/IHpSb3QgOiAoTV9QSSAqIDIgKyB6Um90KSk7CisgICAg
ICAgIC8vIFJvdGF0aW9uIGFyb3VuZCB0aGUgWCBheGlzICh0b3AgdG8gYm90dG9tKS4KKyAgICAg
ICAgZG91YmxlIGJldGEgID0gcmFkMmRlZyh4Um90KTsKKyAgICAgICAgLy8gUm90YXRpb24gYXJv
dW5kIHRoZSBZIGF4aXMgKHNpZGUgdG8gc2lkZSkuCisgICAgICAgIGRvdWJsZSBnYW1tYSA9IHJh
ZDJkZWcoeVJvdCk7CiAKICAgICAgICAgZG91YmxlIGhlYWRpbmcgPSAobV9oZWFkaW5nQXZhaWxh
YmxlICYmIG5ld0hlYWRpbmcpID8gbmV3SGVhZGluZy5tYWduZXRpY0hlYWRpbmcgOiAwOwogICAg
ICAgICBkb3VibGUgaGVhZGluZ0FjY3VyYWN5ID0gKG1faGVhZGluZ0F2YWlsYWJsZSAmJiBuZXdI
ZWFkaW5nKSA/IG5ld0hlYWRpbmcuaGVhZGluZ0FjY3VyYWN5IDogLTE7Ci0tIAoxLjkuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>