Java tutorial
package com.google.android.gms.common; import android.app.Activity; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.content.res.Resources; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.media.TransportMediator; import android.text.TextUtils; import android.util.Base64; import android.util.Log; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer.Std; import com.google.android.gms.C0192R; import com.google.android.gms.drive.DriveFile; import com.google.android.gms.internal.fd; import com.google.android.gms.internal.fi; import com.google.android.gms.internal.gk; import com.google.android.gms.internal.gr; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.security.cert.CertificateException; import java.security.cert.CertificateExpiredException; import java.security.cert.CertificateFactory; import java.security.cert.CertificateNotYetValidException; import java.security.cert.X509Certificate; import java.util.Arrays; import java.util.NoSuchElementException; import java.util.Scanner; import org.apache.commons.codec.CharEncoding; import org.json.zip.JSONzip; public final class GooglePlayServicesUtil { static final byte[][] Aj; static final byte[][] Ak; static final byte[][] Al; static final byte[][] Am; static final byte[][] An; static final byte[][] Ao; private static final byte[][] Ap; private static final byte[][] Aq; public static boolean Ar = false; public static boolean As = false; private static int At = 0; private static final Object Au; public static final String GMS_ERROR_DIALOG = "GooglePlayServicesErrorDialog"; public static final String GOOGLE_PLAY_SERVICES_PACKAGE = "com.google.android.gms"; public static final int GOOGLE_PLAY_SERVICES_VERSION_CODE = 4452000; public static final String GOOGLE_PLAY_STORE_PACKAGE = "com.android.vending"; static { Aj = new byte[][] { ag( "0\u0082\u0004C0\u0082\u0003+\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u00c2\u00e0\u0087FdJ0\u008d0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0004\u0005\u00000t1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android0\u001e\u0017\r080821231334Z\u0017\r360107231334Z0t1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android0\u0082\u0001 0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\r\u00000\u0082\u0001\b\u0002\u0082\u0001\u0001\u0000\u00abV.\u0000\u00d8;\u00a2\b\u00ae\n\u0096o\u0012N)\u00da\u0011\u00f2\u00abV\u00d0\u008fX\u00e2\u00cc\u00a9\u0013\u0003\u00e9\u00b7T\u00d3r\u00f6@\u00a7\u001b\u001d\u00cb\u0013\tgbNFV\u00a7wj\u0092\u0019=\u00b2\u00e5\u00bf\u00b7$\u00a9\u001ew\u0018\u008b\u000ejG\u00a4;3\u00d9`\u009bw\u00181E\u00cc\u00df{.Xft\u00c9\u00e1V[\u001fLjYU\u00bf\u00f2Q\u00a6=\u00ab\u00f9\u00c5\\'\"\"R\u00e8u\u00e4\u00f8\u0015Jd_\u0089qh\u00c0\u00b1\u00bf\u00c6\u0012\u00ea\u00bfxWi\u00bb4\u00aay\u0084\u00dc~.\u00a2vL\u00ae\u0083\u0007\u00d8\u00c1qT\u00d7\u00ee_d\u00a5\u001aD\u00a6\u0002\u00c2I\u0005AW\u00dc\u0002\u00cd_\\\u000eU\u00fb\u00ef\u0085\u0019\u00fb\u00e3'\u00f0\u00b1Q\u0016\u0092\u00c5\u00a0o\u0019\u00d1\u0083\u0085\u00f5\u00c4\u00db\u00c2\u00d6\u00b9?h\u00cc)y\u00c7\u000e\u0018\u00ab\u0093\u0086k;\u00d5\u00db\u0089\u0099U*\u000e;L\u0099\u00dfX\u00fb\u0091\u008b\u00ed\u00c1\u0082\u00ba5\u00e0\u0003\u00c1\u00b4\u00b1\r\u00d2D\u00a8\u00ee$\u00ff\u00fd38r\u00abR!\u0098^\u00da\u00b0\u00fc\r\u000b\u0014[j\u00a1\u0092\u0085\u008ey\u0002\u0001\u0003\u00a3\u0081\u00d90\u0081\u00d60\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u00c7}\u008c\u00c2!\u0017V%\u009a\u007f\u00d3\u0082\u00dfk\u00e3\u0098\u00e4\u00d7\u0086\u00a50\u0081\u00a6\u0006\u0003U\u001d#\u0004\u0081\u009e0\u0081\u009b\u0080\u0014\u00c7}\u008c\u00c2!\u0017V%\u009a\u007f\u00d3\u0082\u00dfk\u00e3\u0098\u00e4\u00d7\u0086\u00a5\u00a1x\u00a4v0t1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android\u0082\t\u0000\u00c2\u00e0\u0087FdJ0\u008d0\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0004\u0005\u0000\u0003\u0082\u0001\u0001\u0000m\u00d2R\u00ce\u00ef\u00850,6\n\u00aa\u00ce\u0093\u009b\u00cf\u00f2\u00cc\u00a9\u0004\u00bb]z\u0016a\u00f8\u00aeF\u00b2\u0099B\u0004\u00d0\u00ffJh\u00c7\u00ed\u001aS\u001e\u00c4YZb<\u00e6\u0007c\u00b1g)zz\u00e3W\u0012\u00c4\u0007\u00f2\b\u00f0\u00cb\u0010\u0094)\u0012M{\u0010b\u0019\u00c0\u0084\u00ca>\u00b3\u00f9\u00ad_\u00b8q\u00ef\u0092&\u009a\u008b\u00e2\u008b\u00f1mD\u00c8\u00d9\u00a0\u008el\u00b2\u00f0\u0005\u00bb?\u00e2\u00cb\u0096D~\u0086\u008es\u0010v\u00adE\u00b3?`\t\u00ea\u0019\u00c1a\u00e6&A\u00aa\u0099'\u001d\u00fdR(\u00c5\u00c5\u0087\u0087]\u00db\u007fE'X\u00d6a\u00f6\u00cc\f\u00cc\u00b75.BL\u00c46\\R52\u00f72Q7Y<J\u00e3A\u00f4\u00dbA\u00ed\u00da\r\u000b\u0010q\u00a7\u00c4@\u00f0\u00fe\u009e\u00a0\u001c\u00b6'\u00cagCi\u00d0\u0084\u00bd/\u00d9\u0011\u00ff\u0006\u00cd\u00bf,\u00fa\u0010\u00dc\u000f\u0089:\u00e3Wb\u0091\u0090H\u00c7\u00ef\u00c6LqD\u0017\u0083B\u00f7\u0005\u0081\u00c9\u00deW:\u00f5[9\r\u00d7\u00fd\u00b9A\u00861\u0089]_u\u009f0\u0011&\u0087\u00ffb\u0014\u0010\u00c0i0\u008a"), ag("0\u0082\u0004\u00a80\u0082\u0003\u0090\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u00d5\u0085\u00b8l}\u00d3N\u00f50\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0004\u0005\u00000\u0081\u00941\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android1\"0 \u0006\t*\u0086H\u0086\u00f7\r\u0001\t\u0001\u0016\u0013android@android.com0\u001e\u0017\r080415233656Z\u0017\r350901233656Z0\u0081\u00941\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android1\"0 \u0006\t*\u0086H\u0086\u00f7\r\u0001\t\u0001\u0016\u0013android@android.com0\u0082\u0001 0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\r\u00000\u0082\u0001\b\u0002\u0082\u0001\u0001\u0000\u00d6\u00ce.\b\n\u00bf\u00e21M\u00d1\u008d\u00b3\u00cf\u00d3\u0018\\\u00b4=3\u00fa\ft\u00e1\u00bd\u00b6\u00d1\u00db\u0089\u0013\u00f6,\\9\u00dfV\u00f8F\u0081=e\u00be\u00c0\u00f3\u00caBk\u0007\u00c5\u00a8\u00edZ9\u0090\u00c1g\u00e7k\u00c9\u0099\u00b9'\u0089K\u008f\u000b\"\u0000\u0019\u0094\u00a9)\u0015\u00e5r\u00c5m*0\u001b\u00a3o\u00c5\u00fc\u0011:\u00d6\u00cb\u009et5\u00a1m#\u00ab}\u00fa\u00ee\u00e1e\u00e4\u00df\u001f\n\u008d\u00bd\u00a7\n\u0086\u009dQlN\u009d\u0005\u0011\u0096\u00ca|\fU\u007f\u0017[\u00c3u\u00f9H\u00c5j\u00ae\u0086\b\u009b\u00a4O\u008a\u00a6\u00a4\u00dd\u009a}\u00bf,\n5\"\u0082\u00ad\u0006\u00b8\u00cc\u0018^\u00b1Uy\u00ee\u00f8m\b\u000b\u001da\u0089\u00c0\u00f9\u00af\u0098\u00b1\u00c2\u00eb\u00d1\u0007\u00eaE\u00ab\u00dbh\u00a3\u00c7\u0083\u008a^T\u0088\u00c7lS\u00d4\u000b\u0012\u001d\u00e7\u00bb\u00d3\u000eb\f\u0018\u008a\u00e1\u00aaa\u00db\u00bc\u0087\u00dd<d_/U\u00f3\u00d4\u00c3u\u00ec@p\u00a9?qQ\u00d86p\u00c1j\u0097\u001a\u00be^\u00f2\u00d1\u0018\u0090\u00e1\u00b8\u00ae\u00f3)\u008c\u00f0f\u00bf\u009el\u00e1D\u00ac\u009a\u00e8m\u001c\u001b\u000f\u0002\u0001\u0003\u00a3\u0081\u00fc0\u0081\u00f90\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u008d\u001c\u00c5\u00be\u0095LC<a\u0086:\u0015\u00b0L\u00bc\u0003\u00f2O\u00e0\u00b20\u0081\u00c9\u0006\u0003U\u001d#\u0004\u0081\u00c10\u0081\u00be\u0080\u0014\u008d\u001c\u00c5\u00be\u0095LC<a\u0086:\u0015\u00b0L\u00bc\u0003\u00f2O\u00e0\u00b2\u00a1\u0081\u009a\u00a4\u0081\u00970\u0081\u00941\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android1\"0 \u0006\t*\u0086H\u0086\u00f7\r\u0001\t\u0001\u0016\u0013android@android.com\u0082\t\u0000\u00d5\u0085\u00b8l}\u00d3N\u00f50\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0004\u0005\u0000\u0003\u0082\u0001\u0001\u0000\u0019\u00d3\f\u00f1\u0005\u00fbx\u0092?L\r}\u00d2##=@\u0096z\u00cf\u00ce\u0000\b\u001d[\u00d7\u00c6\u00e9\u00d6\u00ed k\u000e\u0011 \u0095\u0006Al\u00a2D\u0093\u0099\u0013\u00d2kJ\u00a0\u00e0\u00f5$\u00ca\u00d2\u00bb\\nL\u00a1\u0001j\u0015\u0091n\u00a1\u00ec]\u00c9Z^:\u0001\u00006\u00f4\u0092H\u00d5\u0010\u009b\u00bf.\u001ea\u0081\u0086g:;\u00e5m\u00af\u000bw\u00b1\u00c2)\u00e3\u00c2U\u00e3\u00e8L\u0090]#\u0087\u00ef\u00ba\t\u00cb\u00f1; +NZ\"\u00c92cHJ#\u00d2\u00fc)\u00fa\u009f\u00199u\u00973\u00af\u00d8\u00aa\u0016\u000fB\u0096\u00c2\u00d0\u0016>\u0081\u0082\u0085\u009cfC\u00e9\u00c1\u0096/\u00a0\u00c1\u008333[\u00c0\u0090\u00ff\u009ak\"\u00de\u00d1\u00adDB)\u00a59\u00a9N\u00ef\u00ad\u00ab\u00d0e\u00ce\u00d2K>Q\u00e5\u00dd{fx{\u00ef\u0012\u00fe\u0097\u00fb\u00a4\u0084\u00c4#\u00fbO\u00f8\u00ccIL\u0002\u00f0\u00f5\u0005\u0016\u0012\u00ffe)9>\u008eF\u00ea\u00c5\u00bb!\u00f2w\u00c1Q\u00aa_*\u00a6'\u00d1\u00e8\u009d\u00a7\n\u00b6\u00035i\u00de;\u0098\u0097\u00bf\u00ff|\u00a9\u00da>\u0012C\u00f6\u000b") }; Ak = new byte[][] { ag( "0\u0082\u0002R0\u0082\u0001\u00bb\u0002\u0004I4\u0098~0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0004\u0005\u00000p1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u000b0\t\u0006\u0003U\u0004\b\u0013\u0002CA1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle, Inc1\u00140\u0012\u0006\u0003U\u0004\u000b\u0013\u000bGoogle, Inc1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Unknown0\u001e\u0017\r081202020758Z\u0017\r360419020758Z0p1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u000b0\t\u0006\u0003U\u0004\b\u0013\u0002CA1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle, Inc1\u00140\u0012\u0006\u0003U\u0004\u000b\u0013\u000bGoogle, Inc1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Unknown0\u0081\u009f0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0081\u008d\u00000\u0081\u0089\u0002\u0081\u0081\u0000\u009fH\u0003\u0019\u0090\u00f9\u00b1G&8N\u0004S\u00d1\u008f\u008c\u000b\u00bf\u008d\u00c7{%\u0004\u00a4\u00b1 |LlD\u00ba\u00bc\u0000\u00ad\u00c6a\u000f\u00a6\u00b6\u00ab-\u00a8\u000e3\u00f2\u00ee\u00f1k&\u00a3\u00f6\u00b8[\u009a\u00fa\u00ca\u0090\u009f\u00fb\u00be\u00b3\u00f4\u00c9O~\u0081\"\u00a7\u0098\u00e0\u00eb\u00a7\\\u00ed=\u00d2)\u00fase\u00f4\u0015\u0016AZ\u00a9\u00c1a}\u00d5\u0083\u00ce\u0019\u00ba\u00e8\u00a0\u00bb\u00d8\u0085\u00fc\u0017\u00a9\u00b4\u00bd&@\u0080Q!\u00aa\u00db\u0093w\u00de\u00b4\u0000\u00138\u0014\u0018\u0088.\u00c5\"\u0082\u00fcX\r\u0002\u0003\u0001\u0000\u00010\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0004\u0005\u0000\u0003\u0081\u0081\u0000@\u0086f\u009e\u00d61\u00daC\u0084\u00dd\u00d0a\u00d2&\u00e0s\u00b9\u008c\u00c4\u00b9\u009d\u00f8\u00b5\u00e4\u00be\u009e<\u00be\u0097P\u001e\u0083\u00df\u001co\u00a9Y\u00c0\u00ce`\\O\u00d2\u00acm\u001c\u0084\u00ce\u00de Gl\u00ba\u00b1\u009b\u00e8\u00f2 :\u00ffw\u0017\u00ade-\u008f\u00cc\u0089\u0007\b\u00d1!m\u00a8DWY&I\u00e0\u00e9\u00d3\u00c4\u00bbL\u00f5\u008d\u00a1\u009d\u00b1\u00d4\u00fcA\u00bc\u00b9XOd\u00e6_A\r\u0005)\u00fd[h\u0083\u008c\u0014\u001d\n\u009b\u00d1\u00db\u0011\u0091\u00cb*\r\u00f7\u0090\u00ea\f\u00b1-\u00b3\u00a4"), ag("0\u0082\u0004\u00a80\u0082\u0003\u0090\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u0084~O\u00f2\u00d6\u00b5\u00de\u008e0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u00000\u0081\u00941\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android1\"0 \u0006\t*\u0086H\u0086\u00f7\r\u0001\t\u0001\u0016\u0013android@android.com0\u001e\u0017\r100120010135Z\u0017\r370607010135Z0\u0081\u00941\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android1\"0 \u0006\t*\u0086H\u0086\u00f7\r\u0001\t\u0001\u0016\u0013android@android.com0\u0082\u0001 0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\r\u00000\u0082\u0001\b\u0002\u0082\u0001\u0001\u0000\u00d8(q|6\u00d1\u0017\u000f\u00d4M\n{\u000f\u0007\u0011&\u00e8[\u00bf\u00df3\u00b04`\u0000Z\u0094\u00cc\u00fbe\u00a5\u00db\u00a0\u00b2C\u00df`\u00b1\u0091\u00bf\u009d\u0006\u00df\u001d\u008a\\\n3\u00e2\u00d1c\u00f5\u0013\u00df\u001d\"SA\u00ea<3y\"\u00e8\\\u0002\u00ec4\u00ce\u00d9L\u00b8\u0007#\u00a6#\u00ffK\u00af\u00fb\u00b4\u00e5\u00ef\u00e6w;>\u00a2\u00be\u00b8\u00bc\u00b2\u0002g\u00cf\u00e7\u0085Q\u001f\u0083.\u00f9\u0087\u00abu\u0094\u00fe\u001e)\u00cf\u00bcM\b:\u001f\u0012R\u0000ws\u0096\u00f2\u0016[i{\u0000\u00a3\u00a0\u00c1:\u00cc0\u008a\u0093\u00f2!c\u00c1n\u009c=J\u00b2\u0014\u009f6LE\u00c0C\u00142p9\u00f1\u00da\t`\u0093\u00f1\u00b3\u00fc\u0018\u00b6V\u0010\u0095\u00c6\"_\u00c7\u0010+\u0098|o\u0013\u00a4]$\u00e3\u00e0\u00c5N\u0085\u009dg\u00e3[g\b'\u0013\u00d2\u00d6\u00f0W\u00dd4W\u00d1\u009f\u00c4\u00fe\u008d\u00dd\u00ec\u008c:O?\u0097#\u0005\u0019\u00a7\n(64\u00ac5\u0081\u00a3J\u00bd\u00a1}\u0084Z\n\t\u0085\u00fb\u00f8\u0006\u000b\u0003j'x`\u0081c\u00fa\f7\u00b9\u00e7\u00f2\u00a1\u000ev\u00bcw\u0002\u0001\u0003\u00a3\u0081\u00fc0\u0081\u00f90\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u00b5\u00c7\u00f9\u0012ox\r:\u00fb\u00caess?\u00f5\"k\u009b\u001770\u0081\u00c9\u0006\u0003U\u001d#\u0004\u0081\u00c10\u0081\u00be\u0080\u0014\u00b5\u00c7\u00f9\u0012ox\r:\u00fb\u00caess?\u00f5\"k\u009b\u00177\u00a1\u0081\u009a\u00a4\u0081\u00970\u0081\u00941\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00100\u000e\u0006\u0003U\u0004\u0003\u0013\u0007Android1\"0 \u0006\t*\u0086H\u0086\u00f7\r\u0001\t\u0001\u0016\u0013android@android.com\u0082\t\u0000\u0084~O\u00f2\u00d6\u00b5\u00de\u008e0\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u0000\u0003\u0082\u0001\u0001\u0000L>\u00a7e}&\u00e6\u00bb\u00d7\u0011\f\u008f\u0019\u00df\u001f\u008d\u00a1\t}3\u0086\u000fi\u00de\u00bf\u00ca\u00dbF\u00a3~\u0087\u00e5\u00b3\u000f\u00bb4{\u001cuU\u00bc\u00bb<\u0099T\u0014\u0080F\u0096_\u009cy*\u0002\u00d0\u00db\u00e5\u00a6Ga\u00b3yG\u00abk\u00ff\u00b0\u00ba\u00c6\u00a2\u00c1\u00a0\u00cd\u00f8b\u00f8w\u00a9g\r\u00fdo\u0006.@n\u00ce\u0018\u0006\f`I\u008d\u00fc6\u009f'\u0011q\u0098\u00e5o\u00cb\u00a1R\u00e6\u0005\u008d\u00ce\u0094\u00ceY\u001f\u00c4\u00f4\u00a9\u0098+3\u00ba\u00d8\u0019mwoU\u00b7\u00d0\u001a\u00cf1\u00dd\u00d7\f\u00ec\u00b7\u0089xv\u0006e\u0010\u00f9I\u00a5RJ11\u00b3\u00cbeA\u00cf\u008b5B\u000e\u00bc\u00c4R%Y\u0096?Bfi\u0005rfbO\u00b3\u0098\u00cf\u00dbR\u0017\u0088\u001d\u0011\u001cn\u0003F\u0016\u00f8Q!\u0018\u00d0\u00a2\u00a6\u009d\u0013\u00d7\u0092\u00f0\u00cd\u0011\u00db\u00d5\u008e#\u0083ZT\u00a5J\u00c2Q\u00e7\u00d2,Dj?\u00ee\u0014\u0012\u0010\u00e9DGK@c\u0007\u00bb&\u0084+Ok\u00d3U\u0082\u001cs\u0096Q\u00ff\u00a2`[\u0005\u00e2$\u0095\u00d7\u0015\u00d8z\u0091\u00f6") }; Al = new byte[][] { ag( "0\u0082\u0002\u00a70\u0082\u0002e\u00a0\u0003\u0002\u0001\u0002\u0002\u0004P\u0005|B0\u000b\u0006\u0007*\u0086H\u00ce8\u0004\u0003\u0005\u0000071\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00160\u0014\u0006\u0003U\u0004\u0003\u0013\rAndroid Debug0\u001e\u0017\r120717145250Z\u0017\r220715145250Z071\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00100\u000e\u0006\u0003U\u0004\n\u0013\u0007Android1\u00160\u0014\u0006\u0003U\u0004\u0003\u0013\rAndroid Debug0\u0082\u0001\u00b70\u0082\u0001,\u0006\u0007*\u0086H\u00ce8\u0004\u00010\u0082\u0001\u001f\u0002\u0081\u0081\u0000\u00fd\u007fS\u0081\u001du\u0012)R\u00dfJ\u009c.\u00ec\u00e4\u00e7\u00f6\u0011\u00b7R<\u00efD\u0000\u00c3\u001e?\u0080\u00b6Q&iE]@\"Q\u00fbY=\u008dX\u00fa\u00bf\u00c5\u00f5\u00ba0\u00f6\u00cb\u009bUl\u00d7\u0081;\u0080\u001d4o\u00f2f`\u00b7k\u0099P\u00a5\u00a4\u009f\u009f\u00e8\u0004{\u0010\"\u00c2O\u00bb\u00a9\u00d7\u00fe\u00b7\u00c6\u001b\u00f8;W\u00e7\u00c6\u00a8\u00a6\u0015\u000f\u0004\u00fb\u0083\u00f6\u00d3\u00c5\u001e\u00c3\u00025T\u0013Z\u0016\u00912\u00f6u\u00f3\u00ae+a\u00d7*\u00ef\u00f2\"\u0003\u0019\u009d\u00d1H\u0001\u00c7\u0002\u0015\u0000\u0097`P\u008f\u0015#\u000b\u00cc\u00b2\u0092\u00b9\u0082\u00a2\u00eb\u0084\u000b\u00f0X\u001c\u00f5\u0002\u0081\u0081\u0000\u00f7\u00e1\u00a0\u0085\u00d6\u009b=\u00de\u00cb\u00bc\u00ab\\6\u00b8W\u00b9y\u0094\u00af\u00bb\u00fa:\u00ea\u0082\u00f9WL\u000b=\u0007\u0082gQYW\u008e\u00ba\u00d4YO\u00e6q\u0007\u0010\u0081\u0080\u00b4I\u0016q#\u00e8L(\u0016\u0013\u00b7\u00cf\t2\u008c\u00c8\u00a6\u00e1<\u0016z\u008bT|\u008d(\u00e0\u00a3\u00ae\u001e+\u00b3\u00a6u\u0091n\u00a3\u007f\u000b\u00fa!5b\u00f1\u00fbbz\u0001$;\u00cc\u00a4\u00f1\u00be\u00a8Q\u0090\u0089\u00a8\u0083\u00df\u00e1Z\u00e5\u009f\u0006\u0092\u008bf^\u0080{U%d\u0001L;\u00fe\u00cfI*\u0003\u0081\u0084\u0000\u0002\u0081\u0080j\u00d1\u001b\u00d7\u00d5f\u00d2z\u00f49\u00c0.Ah\u00ac\u00fdE\u00b4\u00be\u0085\u00bc\u0099\u008c{\u009b\u008e\u001cwTi?\u008c\rB\u008a\u00a4\u00fc\u00e1\u0010\u0084\u00818BO\u00a6\u008c\u00d10RN\u00ef\u00f6\u00f178c\u0082/\u00a67)\u008b\u00feMF\u00a0\u00b8fe\u00ee\u00f0A\u00179\u0001\u0003[\u001c\u0080j\u00a3\u0018\u0018\r0:\u00a8\u00cc\u009eY#\u00e0jo\u00ab\u00fauh<E;\u00b2\u0007w|\u00f2\u00fd\u00e7\u00cf\u00b1\u009b\u001408\u0014\u00aa\u001d\u00f7\u00b4=[\"+W\u0006\u00b4\u008b\u00940\u000b\u0006\u0007*\u0086H\u00ce8\u0004\u0003\u0005\u0000\u0003/\u00000,\u0002\u0014\t\u00d2\u00d1\u00b0G\u0002)\u00b5\u00be\u00d2\u0090&a\u00d1\u0012\u00f2p\u00c5\u00e6\u001d\u0002\u0014gP\u0002\u0006\u00a7\u0080P\u00bax\u00ae\u00c7\u0017O\u0016\u0004\u007f\u0084\u00ea\u00a2\u00f7") }; Am = new byte[][] { ag( "0\u0082\u0004L0\u0082\u00034\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u00a8\u00cd\u0017\u00c9=\u00a5\u00d9\u00900\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u00000w1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00130\u0011\u0006\u0003U\u0004\u0003\u0013\nGoogle NFC0\u001e\u0017\r110324010653Z\u0017\r380809010653Z0w1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00130\u0011\u0006\u0003U\u0004\u0003\u0013\nGoogle NFC0\u0082\u0001 0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\r\u00000\u0082\u0001\b\u0002\u0082\u0001\u0001\u0000\u00c3\u000f\u0088\u00ad\u00d9\u00b4\u0092\tj,XjZ\u009a\u00805k\u00fa\u0002iX\u00f8\u00ff\f]\u00fa\u00f5\u009fI&\u008a\u00d8p\u00de\u00e8!\u00a5>\u001f[\u0017\u000f\u00c9bE\u00a3\u00c9\u0082\u00a7\u00cbE'\u0005;\u00e3^4\u00f3\u0096\u00d2K\"\u0091\u00ec\fR\u008dn&\u0092te\u00e0hu\u00eab\u001f\u007f\u00f9\u008c@\u00e34[ I\u0007\u00cc\u0093Tt:\u00cd\u00aa\u00ceeV_H\u00bat\u00cdA!\u00cd\u00c8v\u00df5\"\u00ba\u00db\t\\ \u00d94\u00c5j>\\9>\u00e5\u00f0\u00e0/\u008f\u00e0b\u001f\u0091\u008d\u001f5\u00a8$\u0089%,o\u00a6\u00b63\u0092\u00a7hk>Ha-\u0006\u00a9\u00cfoI\u00bf\u00f1\u001d]\u0096(\u009c\u009d\u00fe\u0014\u00acWbC\u0096\u0097\u00dd)\u00ea\u00fd\u00b9\u0081\r\u00e3&5\u0013\u00a9\u0005\u00ac\u008e\u008e\u00af \u0090~Fu\nZ\u00b7\u00bf\u009aw&/G\u00b0?Z<nm{Q4?i\u00c7\u00f7%\u00f7\u000b\u00cc\u001bJ\u00d5\u0092%\u000bpZ\u0086\u00e6\u00e8>\u00e2\u00ae7\u00feW\u0001\u00bc\u00bd\u00b2o\u00ee\u00fd\u00ff\u00f6\u000fj[\u00df\u00b5\u00b6G\u0093\u0002\u0001\u0003\u00a3\u0081\u00dc0\u0081\u00d90\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u001c\u00ce\u00ce\u000e\u00eaM\u00c1\u0012\u001f\u00c7Q_\r\n\fr\u00e0\u008c\u00c9m0\u0081\u00a9\u0006\u0003U\u001d#\u0004\u0081\u00a10\u0081\u009e\u0080\u0014\u001c\u00ce\u00ce\u000e\u00eaM\u00c1\u0012\u001f\u00c7Q_\r\n\fr\u00e0\u008c\u00c9m\u00a1{\u00a4y0w1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00130\u0011\u0006\u0003U\u0004\u0003\u0013\nGoogle NFC\u0082\t\u0000\u00a8\u00cd\u0017\u00c9=\u00a5\u00d9\u00900\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u0000\u0003\u0082\u0001\u0001\u0000\u00a4p\u00c7(\u00e1\u00d3\u001b\u0006\u00d9\u00afj\u00e7h\u00b5e\u0004lW\u0080k\u0098CrI1\u00d7]L\u00a1\f2\u0015 \u00d3<\u00cf\u00ed*\u00a6Tb#L\u009e\u00f9\u00b6\u00f9\u0010\u00ccgk\u0099\u00cb\u007f\u0098\u0095\u00d6\u00c0gcWO\u00bbx3\u0012u\u00dc\\\u00f3\u008f\u00ba\u00a9\u0018\u00d7\u0093\u008c\u0005\u001f\u00fb\u00a2\u00ad\u00e8\u00f3\u0003\u00cd\u00e8\u00d9\u00e6\u008a\u0004\u008d\u001f\u00db\u009e|\u009f*I\u00b2\"\u00c6\u008f\u00ffB+\u00f1Ui\u00b8^\u00ee\u00ed\u00b0J\u00a3\bs\u00db\u00e6K\u009c\u009et\u00f8\u00f2\u00c2\u00f6\u00c4\u0001$\u00aa\u00a8\u00d1x\r\u0018Q+T\n\u00dd(\u00b3\u00e9X\u0019q\u00a4\u0017\r\u00d8h\u00cf_1\u00e4G\u0012\u00b2\u00c2;\u00b5\u00107\u00d7\u00ef\u009f\u0087\u00a6\u00e5\u00bd\u00b3^,\u00ebk\u00b0\"cl\u0017\u00a5j\u0096\u00bczP%\u008c\u000b\u00d2\u00ed{1UZ\u0018E.\u00172\u001a\rR\u0083\u008c\u0082\u00f6?t-t\u00ffyXj\\\u00bb\u007f\u00afq\u0098\u00a8K\u00cftC\u0010\u00e9\u00e9'Y\u007f\u0000\u00a2=\u00d0\u0006`\u0080\f\"8\u00d9\u000b/\u00b3r\u00df\u00db\u00bau\u00bd\u0085."), ag("0\u0082\u0004L0\u0082\u00034\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u00dev\u0095\u0004\u001dvP\u00c00\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u00000w1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00130\u0011\u0006\u0003U\u0004\u0003\u0013\nGoogle NFC0\u001e\u0017\r110324010324Z\u0017\r380809010324Z0w1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00130\u0011\u0006\u0003U\u0004\u0003\u0013\nGoogle NFC0\u0082\u0001 0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\r\u00000\u0082\u0001\b\u0002\u0082\u0001\u0001\u0000\u00e6\u00ff=\u00ef\u00e9*\u00a1\rq\u00eb\u000f\u00a6@\u008b\u00c06\u00b7\u00e2C\u00ee\u00edh\u00a6\u00a4v=\u00c7\u00a5*1u|\u00da\u00c6\u001f\u00e5\u0010\u00bbs\u00c7\u0016\u00e4\u0000\u0001\u0004&[4\u007f\u00ce\u00ce\u00f4\u00c4+\u00f1\u00e17\u009d\u00d0\u00a8v\u00f0(\"\u007f\u00bb\u00c1\u00f9\u00bd\u00d5\u00d7\u0013\u00b2\u00f6\u00a95\u00a3y\u00d2\u00cb\u00a9\u00c9o\u0092\u00d2\u00d0x|\u0011\u00f1\u00eb\u0019T\u0080\b\u00a6\u00a0r\u00b3K\u0091\u0083l\u00fa\n\u00e1'g\u0080\u00e9\u0000u0\u0016i\u0086\u00a1\u001c\u009c\u00efF\u00ce\u00f7\u00c7\u0004\u0080m\u00de\u00941\u00fb`(M\u0012\n\u00b0\u00e7\u00de\u001dc?\u0007h}F\u008cQ\u0013\u009a\u00ff\u00fd\u00c6\u00bc\u009a |\u00a9\u0004\u00b8\u00be\u001d\u00a0\u00aa{N\u0097uoC`d\u0088\u00be\\\u00ae<h\u00e8\u00bbyB\u00cd\u00f5\u0016\u0007\u00c90\u00a2\u00fc\u00dae[u\u00d0u\u009c\u00ba\u0089\u00ad\u0006\u00e79\u00bd\u000b\u00a2\u009b\u001f@B\u0096\u00c2\u00c0\u00a8Z\u0084\u007fZ\u00b0\u00d0g\u00c6\u00c3\u00ec\u009cI! B\u00acc\u00a7\u00e5;Tle\u00b4`\u0080\u00b4\u00e3\u00e6\u0080\u00e2>\u001fw\u00cf\u00e7\u00f6\u00detK\u001ae\u0002\u0001\u0003\u00a3\u0081\u00dc0\u0081\u00d90\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u00a2\u00e8\u0090d\u00b0]\b\u0086\\4\u00db\u0093\n\u009d\u0084\u0000P\u0011z\u00ec0\u0081\u00a9\u0006\u0003U\u001d#\u0004\u0081\u00a10\u0081\u009e\u0080\u0014\u00a2\u00e8\u0090d\u00b0]\b\u0086\\4\u00db\u0093\n\u009d\u0084\u0000P\u0011z\u00ec\u00a1{\u00a4y0w1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00130\u0011\u0006\u0003U\u0004\u0003\u0013\nGoogle NFC\u0082\t\u0000\u00dev\u0095\u0004\u001dvP\u00c00\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u0000\u0003\u0082\u0001\u0001\u00007q\u0087\f\u00e8|<R\u00ea\u0084\u0089\u00920\u00c6\u00e9b\u00d9KM_\u0012\u0093\u00c2]\u0088&\u0015A\u00fd\u0090\u00b5U]\u0012\u0085\u00ce\u00f3\u00b81,?]\u00f6\u0091\u00a8\u00aa\u00e0L\u00b9\u0081\u00b3\u0005\u00e4'\u00fd\u001d-\u009e\u0019\u0087\u00e1\u00d2\u0090x\u00f1<\u0084R\u0099\u000f\u0018!\u0098\u0002c\u00d8\u00d4\u00bd6Q\u0093H\u00d8\u00d8\u00ba&\u00d8\u00b9\u009f\u00bf\t\u00f5\u00fd>\u00bb\u000e\u00a3\u00c2\u00f0\u00c97o\u001e\u001f\u00cav\u00f3\u00a6\u00a4\u0005B\u009d\b\u001bu*z\u0090\u00b7V\u00e9\u00abD\u00daA\u00ab\u00c8\u00e1\u00e8\u00f8\u008a\u00c2u\u008d\u00a7C\u00fbs\u00e6Pq\u009aW\u0084\f\u00cbkz\u00dd!\u00b9\u009f\u00c6\u0081\u00e4V\u00e1\u0087,\"=\\\u0007J\u00dfU\u00f6\u00ab\u00da&\u008c-\u008bd\u00ea\n\u0088E\u00ee\u00cd\u0096\u008f\u0092\u00b4\u0093\u0012~u\u00c7S\u00c3\u00ff0\u00cb\u00c6x\u00b5\u001c\u009fR\u0096\u0014r\u00f1}\u00a2\n\r\u00c6'J\u00a2F44\u00c1\u00a9\u00b6\u0014\u00dfi}\u008f\u00f5\u00ca\u0081\u0001\u00e7\u00a2\\}\u00b3\u00fb\u0005]eV\u009c\u0004\u00b0\u001d8\u009c\u00ab\u00baW\u00b3\u00a1p>\u00c2\u00e7J\u0088\u00d34") }; An = new byte[][] { ag( "0\u0082\u0005a0\u0082\u0003K\u0002\u0006\u0001D\u009e\u0091\u0096\u00d30\u000b\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u00050v1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00120\u0010\u0006\u0003U\u0004\u0003\u0013\tClockWork0\u001e\u0017\r140307220225Z\u0017\r380119031407Z0v1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\u0013\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Android1\u00120\u0010\u0006\u0003U\u0004\u0003\u0013\tClockWork0\u0082\u0002\"0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0002\u000f\u00000\u0082\u0002\n\u0002\u0082\u0002\u0001\u0000\u00ba<\u007f9\u000b\u00feY\u008ab\u00bc\u00fc\u008b<\u0094\u00c6'Z\u0099\u0015\u00ed\u00dc\u00dd7:Uj\u0099\u000b\u00e2\u00fdC\u00f7\u009f\u0018\u00b3\u0001\u00d2@'\u00e3r\u007f\t\u00ce\u00fd\u00e2\u009c|&\u00b0\u008a \u00de6}\u001a\u00df\u00e3N\u00a7\u008f\u00ae7\u00f3\u0090\u00f5\u00e0&rzN\b(;\u00efv\u00f8\u00f6C\u00bc\u0015'6\u00a0H?\u00c9\u00b7\u0091\u00abR<\u00f3\u00bd\u0086{f-*'L\u0000\u00d8\u0090\u00e7\u009d\u0011\u00e8\u00b0&_\u00ed\u00a9u\u00dc\u00c8\u00e5B\u0099\u0089\u008e\u0090\u0013jbq\u008c.\u000b/9yQ\u00db$\u00b1W\u00a1\u00bf\u00e7\u00c5k\u00ceJ8\u000b%\u00fa\u00b9&c>\u00a8\u0094\u00048\u00e0\u00b6\u0094\u000b\u00b9\u009e\u0089~.\u00fa\u0005<2)\u009b\u00d9ao\u00a4\u00bd\u0096\u0082!{7C\u001f\u00cd\u00d8\u0082\u00ed!\u00a7\u00f2\u00f0F\u007f\u00e0\u0095\u001c\u00bcZ\u0098b\u00e3J\u0015k\u00e1Z\u0017\u00ff\u0002\u0017\u0098dD\u00d6\u0013\u00b1\u001e\u00d7_\u0083\u0080\u0018\u00ee\u00b4\u00fd\u0094\u00e4\u008fZ\u00e3\u001c\u00e4\u00af\u00a468\u00b6\u0097,\u0085\\\u00d2\u00db\n\u0001\u00c42a(\u00e4\u00c5\u0019z\u00be\u00ac\u00ccm\u00c2\u00e8\u00ad\u00a4B_\u000f\u0090\u00d5\u00a5\u00a5X$a\u00bfx\u0011\u00e1.\u00ce\u000e\u00ea\u0006\u0003?\u0096T9\u00ed\u00e0q\u00ff\u00c4l \u00f2\u00df\u00be##:\u007fd\u00c1\u00ce\t\u00ad\u00a1\u00cb\u00cek\u00f6\u00bc\u00a2.\u009b\u0098\u009cJ\u00c0\u00c9j\u009dluO\u00ec\u0018q\u00d8{\u0010\u0098\u00c1\u00a0\u00de`\u00bc}w\u00de0\u00d5N\u00b8G\u00cek\u0012|\u0019\u001e\u00a7\u0093o\nF\u00c1F\u00f36\u00b94\u00ea\u00baZ_\u001c\u0003d\u00b7R\u0096UD2P\u00fdc\u00aa\u00e5{\u00eb\u00ab\u00e0&?\t\bM\u0019D\u0006\f:\u00d9\u00bb\u00ba\u007fy\u00f4\u00de<+-7\u00ba\u00b3\rK\u00b9\u0011\u00dcQi\u00e0\u00af\u0095R\u00f4\u00d3\u008e=\u00b3\u00f2\u00cb\u0080\u001cR\u0002Rpa\u00bf\u0001\u00b0B\u00d0~\u0089\u00e4\u008f\u0011\u00a9\u00aa\u00a0'\u00f0D\u0095\u009e\u00da(\u00c5\u00dd\u00d8SW\u00a7\u001e9\u00bb\u0082Q\u00b3W\u00ebor\u0018\u00fc\u00cc\u0017\u0018\u0081\u00a60gF1\u00e0U\u00949\u001azg\u009a\u00f2Z\u00a0b\u0001\u00d6\"\u00b8\u00d0\t\u00dd\u0011\u00d5\u0006\u00a2\u0003\u000f$'\u00aeg\u00d8\u001b47yy\u0002\u0003\u0001\u0000\u00010\u000b\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0003\u0082\u0002\u0001\u0000\u00a4\u00c4\u0096\u00964a\u00c8\u00955\u00a5\u00b1\n\u00cd\u0001$7j\u0089\u00da'C\u009d\u00ac0\u0003Hg\u000b +\u00ad\u00e3?/\u00ba*\u0007d\u0003\u00b5\u000b\u00e8q\u00ca*\u00b2\u009b\u00be\u00bd\u00bb\u00c4\u0006\u00db\t9A\u00c9\u008c\u0017j\u000eF\u00ff\u0090\u00ff\u0000\u0016\u0016\u0004D\u0080n\u00dc\u0082\u00e10\u00fe\u0010\u0086\u001e\u00e3\u0005\u009d\u00b7~=\u009d\u00a9\u00a2\u00ad4\u00a9\u00d2\u00b4\u00da\u001b&\u00fdZ[p\u001c\u00d5l\u00fe\u00e9dz\u00e4\u0014;\u0097\u00a6|\u0002\u0080e\u00b1\u007f\u009e\u0014\u00f22\u00a5\u00ef\u0017\u00e1d\u00a1I\u0017\u0092\u0096\u0094\u001c0\u00bdZ6\u00ab\u00f8\u00f3B\u00c8\u00e3\u00af\u00bcoICs\u0007}j\u009c\u0011\u00d79\"\rZ\u00d7\u00b5\u0019/\u009b\u001c\u00fe\u0096\u008fJr\u00b1\u00b8Tu\u00e0\u00e9\u0088\u00behr\u0088fe\u00b1+\u00f4\u00ee\u00c3\"VT\u00f5\u00e1\u00f2+\u008b\u00ebU\u008e\u00befw\u008b\u00d6_\t\u0091-\u00f9^\u0080\u009d\u00fe\u00ef\u000f\u00c7\u00ea\u00ca]\u000e\u00be\u001dA\u0004\u001f\u00e7 \u00cb2\u009b0~9.\u0013\u0097\u00f1 9Ti0\u0084\u008b\u007f\u0002\u0017@\u0089-\u00f6\u00c7\u00a0r\u00e7\u00df8\u00ba\u00c3\u00d7\"5o\u00e6T\u007fj|W\u008a\u00dfg\u00c9=+5\u0088\u0093T5\u00f0\u00f9\u00a1\u0013\u00ce-\u00ec\u00cdm\u00a1\u009d\u00c3KA\u0082\u00ec\u00ae\u00d6 \u00ebR\u00850%\u00c5\u00e0\u0004\u00ec\u00b4Q\u00bcE\u00e1HZ\u00cc6\u007f\u00b6I\u0092\u00afYLU\u001b\u000b\u00c98\u00cb\u00d6\u001a\u00d5gY\u0090 \u00f7:e\u00e1\u00a9\u00c8\u00a4\u0088\u00db\u00ac\u0083\u001e\u00eb\u0091\u008f\f\u0092)\t^\u00deA\u0005{<\u00ae\u00eaN\u0016\u00c5\u00b9EK\u0092\u00e2Y\u008a\u0011\u00b4\u0094\u00a2\u001f?z\u00bf\u0083\u00c0g\u00f4\u0018.\u0098A\u009b\u00a4\u00e4\u0093\u008a4\u0080\u00f0\u0086/\u00ed\u00afWrJU3W\u008f\u00da_\u00b3\u00cd\u00fc\u00f9T\u0080\u007f\u00ff\u00d8\u00c9Qw\u00e7u\u0004\u00a6B\u00be\\\u00db\u00a0\u00e1\u0000e\u00fc|h\u0012\u009c\u00ed'\u00b3\u00a8\u0004\u00d7\u00a4\u00cd\u00d9\f\u00d3\u00ec\u00cb\u0005\u00a8\u00c8\u008a`\u009a\u00d0V\u00a0N\u00b4\u008a\u001e\u0005\u0095\u00fd9\\\u001f\u00a7{\u00b3\u001d\u00a5$4^\n\u00bdN\u0001\u00b5\u0006\u0082O\u00ea\u00baB\u00d3-\u00d4\u0092g>\u00cf\u00c0\u0017\u009d\u0086\u001d&\u00e9\u00cd\\F\u00ef\u00d0"), ag("0\u0082\u0003\u00bf0\u0082\u0002\u00a7\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u00da\u0098\u00c3\u00d9\u0015s\u00d3\u00ef0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u00000v1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\f\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\f\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\f\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\f\u0007Android1\u00120\u0010\u0006\u0003U\u0004\u0003\f\tClockWork0\u001e\u0017\r140307220118Z\u0017\r410723220118Z0v1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\f\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\f\rMountain View1\u00140\u0012\u0006\u0003U\u0004\n\f\u000bGoogle Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\f\u0007Android1\u00120\u0010\u0006\u0003U\u0004\u0003\f\tClockWork0\u0082\u0001\"0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\u000f\u00000\u0082\u0001\n\u0002\u0082\u0001\u0001\u0000\u00dc\u001doK(\u00ed80\u0014\u00b2\u009c\u0082\u00f6\u00da\u00ff\u00d3\u001d\u00de{\u008c\u001ec\b@e\u000bX\u00b1e\u00a3j\u00ae\u00b6,qS\u0095.\u0004E\t\u00af\u0082\u001f\u0094\u00ba\u009fO\u0018d\u00c3\u00a7\u00b5\u00d6S\u00cc\u0000\u0015\u009d\u0000\u0010\u00e1\u00e5f\u00fa7\u00aa\u00ff\u00186]\u00ae{J\u0085\u00dd\u00b1\u00f3\u0083\u00ccGp\u00a2>\u0095b\u0091\u00fe\u00b5r\u00c1i1Z\u00afN\u00f4\u00ea\u00a5\u00ae\u0086\u001f\u00cd\u00d6\u00e7\u00e5\u00ea\u00d41\u0013tFF\f|(\u00fb2,\u0092\u0095\\\\z\u00a8\u0095w\u00c3p?\u0097\u00e0\u0098\u00b7~\u00b6\u00a0n\u00ackr\u00ea\u00a0\u00ad!\n\u00b0*\u001f\u00dc\u00fcvbttA\u00a9?<\u00ea\u008a\u0016\u00f4\u008c\u0097\"\u00c1\u00e32A2~\u00c2\u00c9\u00f701.\u008d\u001b\u00ef\u00ee)\u000bE\u001a4\u0089,\u00ac\u00ef[\u0014r\u00d6\u00d9~\u00f9T(\u00cc\u008a\u00d5\u00ef\u0004\u00b8\u00c4\u00f1\u00f5\r\u00d2B\u00d5]rXf\u0085P[^K\u001b\u001eY\u00ad\u008c\u001d\u0085/\u00a0\u0082H\u0015g;\u00c6\u00e6C)\u00ec\u00c4\u00ea\u00d4\u00db\u0084d\u00a9k1\u0083\u009f\u009f\u00db\u00c9\u0007\u0002\u0003\u0001\u0000\u0001\u00a3P0N0\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u0084\u0085G\u0010\u0084\u00a4<\u00b3\u00ea\u00f8?\u00ab!b\u00a0\u0095\u0000\u00ce,z0\u001f\u0006\u0003U\u001d#\u0004\u00180\u0016\u0080\u0014\u0084\u0085G\u0010\u0084\u00a4<\u00b3\u00ea\u00f8?\u00ab!b\u00a0\u0095\u0000\u00ce,z0\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u0000\u0003\u0082\u0001\u0001\u0000\u00079b\u000b\u00a2}*\u000fT\u0088C\u00ad\u001b`\u008e\u001c)\u00d9\u0001(\u0081\u00ea\u00fc?\u00d6(__bj\u0097>\u00f0W\u00e6\u0097\u00ee\u00b2\u00ac\\\u00a2\u00e6\u0005\u00ca=3\u00f5\u0090\u0099k\u008b\u00002\u00c4G\u00e6P\u000f%\u00bd\u0017\u00ca\u00f9\u0095\u00039\u0083@\u00c8\u00eel\u00dc\u00b5;\u00ed\u00e4\u00b1\u00f2H\u00e7\u00d0 \u0099\u009e\u0081\u00e7\u00ca\u00ea\u00a52\u00cf\u00da\u0099\u00feJ\u00a5\u00ed@@ND\u00f7[\u00ef\u00d2\u007f\u00ca\u00db5\u00b8\u00b2\u001b\u0094xF^\u0017\"\u00f2z\u00fb+\u000bn\u0015\u008eD\u00c4\u00ab\fOe{\u0019\u00d7}\u008fS\u00c9\u00cf\u00b9\u00ee-OE\u00b6T\u00e0\u0012\u00bc\u008d\u00e9\u0081\u00e4\u00c2\u00e2\u00c3\u00d3\u009eQ\u0093\u0003\u00d8\u00aeM,\u00c1\u00c8b\u008dxW\u00aeu?\u001d{\u0002\u00a3\u00a7\u0005x\u00c6\u0005\u00e3\u0005\u001cl\u001d\u00a9I\u001a\u00ce\u0013\u00bb\u0088\u00d0}\u0081}\u00d4\u0094&Q\u0097\u0084\u00ae\u0096\u0095\u00a4G5\r\u0089\u00eb@^\u0090\u00f2\u00ab\u00f3f\u00ae/\u00caX\u00d2\u00f6\u00bf\u001d\u00bfK\u001cH\u009e\u00e0\u00a0\u0001T\u00df\u00cf\u0002%\u0012\u00f5\u00a1\u00c7\"\u009es\u001d\u00e3\u00f0G\u00d6\u00f8") }; Ao = new byte[][] { ag( "0\u0082\u0003m0\u0082\u0002W\u0002\u0006\u0001=d\u00f8\u00d6\u00b30\u000b\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u00050|1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00150\u0013\u0006\u0003U\u0004\n\u0013\fGoogle, Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007GoogleX1\u00170\u0015\u0006\u0003U\u0004\u0003\u0013\u000eGlass Platform0\u001e\u0017\r130313181742Z\u0017\r380119031407Z0|1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\u0013\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\u0013\rMountain View1\u00150\u0013\u0006\u0003U\u0004\n\u0013\fGoogle, Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007GoogleX1\u00170\u0015\u0006\u0003U\u0004\u0003\u0013\u000eGlass Platform0\u0082\u0001\"0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\u000f\u00000\u0082\u0001\n\u0002\u0082\u0001\u0001\u0000\u00a13\u00a6\u00d2i\u00af\u00d86\u00e3\u00ae\u00dc-\u00a4\u00ad\u008e9\u00bf\u00f8\u00e2\u0019\u00e6H3\u00b4\u0018\u00b5\u0084=5l\u00ec\u0014\u00b8\u009eG\u0097F\u00b4\u0098\u000b\u008f\u0083\u00df\u001eB\u00a1\u00fe\u00f4\u00d1\u0091\u00f5\u00d7B\f\u00c0\u0085\u00d8\u009b+\u00e7\u00dae\t\u00c4\u00af?\u00db\u00ce/PT\u00ef\u00ec\u00e7A\u00a9\u00e9\u0091RZ\u0013#\u0003\u00ff\u00ce\u0089\u0015D\u00a6\u008c9\u00bb\u00ca\u00d8t\u00af\u00a0\u00bc\u00bc\u00f5\u0016\u00f6\u008fY\u00da7\u00c1\u00ad\u009e/\u00e8\u00a3\u00c4Z\u00e6\u001e\u0086\u00ca\u008b\u00a8W\u00a2\u0005C9\u00ed\u00bfo\u0096\u00f0@n\u00c2\u0081A\u00bd\buq\u0089c).\u008as\u00a9)\u0004\u00f9=\u00eck\u00bd@c\u00bc\u00a5>y\u00b8\u0096\u00a9Cp|\u00b9\u00fcA;X\u000f0\u00f0GE\u00b4\u00f57\u009f\u00ad\u00a7\u00e6\u0087\u0081\u008f\u001a\u00ff\u00fcw\u000bN\u00d3<>\u0081<ttb\u001ez\u00ad\u00d4w\u00ad\u0005\u00dcuL\u0084\r3\r\u00c1X\u00f5\u00e6\u00e1\u0087\u00f5\u00a2`<Q&\u00acB\u00f4\u0018\u00db xF)\u00e0\u0085\r\u00a7\u00eb\u0006\u00925\u00d9\u0098\u00baG\u00b5E\fZ\u00a2d\u00d8\u008a/\u0095\u0002\u0003\u0001\u0000\u00010\u000b\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0003\u0082\u0001\u0001\u0000\u0086\u00e8\u0015J\u00f4\u00d8\u00f4u\u00b0\u00e3[\u00f0\u00d2R\u0006c\bL\u00cf\u00d1\u0086r%\u00e9K\u00fe\u00c1J\u001f\u00be7Erp\u00c0\u0085\u00ffV\u00f6V\u00c1P\u007f\u0089\u00e9\u00cb\u00b9\u00d9l\u0087\u001c;\u000b\u00a1\u00e6<\u00ea\u00f5\u00d4\u00e6\u00ab\u0099C*\u00dc\u00b1\u0097\u0013W\u00f2c\u00b4\u0082\u00e8\u0096\u0088\u00cd\u00ae\u00d0\u00bc\u008bp}\u00f3\u0016\u00ed.\u00a9\u00b6Vx\u00d4M\u00fe\u00ed\u00e4/\u00b0#\u00afcc\u00b1NS\u00c4\u0081B\u008d\u00b2+\u0086\u00f8\u0093\u00ab\u008d\u00c0\u00bfi\u0087\u0089\u0005\u00f7\u00f3[(\u0012K\u00e6\u0098c\u001dF\f9_5\u00e9u\u00abF\u00de\f?\u00df0\u00cf\u000f\u0007\u00d9E\u00ad}\u00c7\u00a8d;IC\u00e0.&[\u0010\u008bt\u00d5\u00f9K\u00f9X\u0085\u00ec\u00da\u00fa\u00aao\u00c5\u00be\u00a8\u00ccf\u00fd!\u00bb\u0090\u00b2n\u00cf\u009ae\u00e9\u00f8.\u00b5{g\u00ec\u00c1\u00e9x\u00b7\u00da'\u0017\u0088\u00e6\u00d6\u001d\u00e7\u0080\u00a6l!\u00bf\u00c2Y\u00b6\u00de\u00c9\u00bdz\u00b5\u00f2\u00d3\u00db\u00c5\u0013\u0005\u00da\u009f\u00da\u00a8\u00ef\u00e2)<\u00a2\u0017:\u00ec#\u0084\b`pNw\u0093\u0085\u00c9\u00c0\u00a6b0\u00a7"), ag("0\u0082\u0003\u00c90\u0082\u0002\u00b1\u00a0\u0003\u0002\u0001\u0002\u0002\t\u0000\u00c3i \u00ad\u00dft\u009d\u00c70\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u00000|1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\f\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\f\rMountain View1\u00150\u0013\u0006\u0003U\u0004\n\f\fGoogle, Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\f\u0007GoogleX1\u00170\u0015\u0006\u0003U\u0004\u0003\f\u000eGlass Platform0\u001e\u0017\r130226205628Z\u0017\r400714205628Z0|1\u000b0\t\u0006\u0003U\u0004\u0006\u0013\u0002US1\u00130\u0011\u0006\u0003U\u0004\b\f\nCalifornia1\u00160\u0014\u0006\u0003U\u0004\u0007\f\rMountain View1\u00150\u0013\u0006\u0003U\u0004\n\f\fGoogle, Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\f\u0007GoogleX1\u00170\u0015\u0006\u0003U\u0004\u0003\f\u000eGlass Platform0\u0082\u0001 0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0082\u0001\r\u00000\u0082\u0001\b\u0002\u0082\u0001\u0001\u0000\u00af\u0092\u00caG\u00ea\u00e4\u0092\u00d0;\u001e\b\u00e0\t\u0097w\u00a2\u00f8\u0006\u00c6\u00a2\u0017\u001d\u00ed\u00a7[p\u00e2:\u00a2\u00f1\u00b9\u00bfh\u008c\u00a5/?v,\u00be\u00c6:\b\u00d1BZ\u00c3\u001b\u00e92m\u0001\u001e|\u0006\u00ce\u00a1\u00c8J\u00ebp?\u00d09\u0097*1\u0006\u00b2}\u0098\u0004^|\u00e1T\u0004K\"\u00ca\u00a5\u001d[\u00f5\u00f9\u00b1$\u00e2\"\u00basA-\u00d4Y0h\u0082,Fg1\u00b0Y\u00af\u00a6\u00a4\u00e8\u00dd?^\u00b5\u007f@\u00f8\u00ba\u0011](G@)\u00d7\u001f1\u00e5\u00bb\u00b0\u00ea^0\u00a0\u00e4\u0086u\u00b5\u00a4\u00fd4\u0017\n\u00d4.\u00d8P\u00eb9T,+\u00e9\u00b5m5\u008f\u0092\u00fe\u00b6\u00b2\u00a8\u00984i\u00faK\u00e6+\u00c8\u00a4|\u00e8\u0000\u0003l\u00ae\u00f0\u00f53s\u00c9X\u0015\u00b8\u00ca\u00d9s[\u00bf\u00b7\u0000e\u0084h\u00bem\u00e6w\u0010-E\u00bf\u00b69z\u0094\u009f:\u001f\u0001%\u00b8\u0015\u0005\u008f\u0005\u00b7\u00ab\u00dd\u0088\u0093\u00c2`\u001f~\u00f1X\u0096\u00d5(\u00e1\u00ad;pmhE\u000f%:\u0013\u00edy\u00c0\u0002l\u00a8\u0084\u0013\u0011\u00d5\u008f\u00cb\u0093\u0084\u00df\u00b7\u0002\u0001\u0003\u00a3P0N0\u001d\u0006\u0003U\u001d\u000e\u0004\u0016\u0004\u0014\u00f3SB\u001f\u000f\u00cd{#j_\u0084\u00b5\u001ffWc\u0019\u00d0{\u008f0\u001f\u0006\u0003U\u001d#\u0004\u00180\u0016\u0080\u0014\u00f3SB\u001f\u000f\u00cd{#j_\u0084\u00b5\u001ffWc\u0019\u00d0{\u008f0\f\u0006\u0003U\u001d\u0013\u0004\u00050\u0003\u0001\u0001\u00ff0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u0000\u0003\u0082\u0001\u0001\u0000\u00a9\u0090X\u00b1/\u0007\u00ef\u0014}C\u00c5=\u00c2\u00c9\u00e8\u00e1\u0001\u00a5b\bfF\u0091\u00bc\u0004\u00b7\u001d\u00f7yx\u00dc!\u0089/\u00fc|\u0003\u00fa\u00afY%;\u00e8\u0095\u00f52\u00c2_]u\u00ba\u00e6\u00ef\u00ba\u00b4XRp(hk\u0001B'\u00a5A\u00b7C\u00a7\u00b3/\u008a4\u00d1[Y\u00f4\u00a0\u0015X%\u00fd\u00bc\u009e\u00ec>\u00d2t\u00ce\u00ec\u00c7\u0001\u00cb\u00ab[Ug\"3wn\u00f7\u00e4\u00b4\u00e2\u0001R\u000eF\u00d5EI\\\u0014\u00c0y\u00ad}\u001f\u00fd\u009c\u00e3\u00a2\u00b1\u00ca\u001bQ[\u00a0+7[\u00f7/\u008a6\u000f\u00f3\u0097\u0095-\u0082\u00ad`S:\u00da\u00d7\u00c5~#dRE\u00a5\u00ba\u00ca\u00caBT\u00fd!\u00b3d\u009b!_\u0004v\u00f2\u00e9\u0086I\u0019\u00f7\u0088W\u00a0\u008b\u0013Xv\nF!\u00ee\u0003U\u00d9\u00bb@h\u000f\u00da\u00f3\u00b1\u008e\u00a8\u008d\u0090f\u0004+\u00cb@\u00853\u00e0w,\u00d6\u00e3\u00aa\u001e\u0083\u00a0\u00c6\u00f1\u0002\u0004\u00fa\u00e5[\u00a3\u00e1\u00d9\u00df\u00eb\u00d4@U\u00fc\u0007\u00a8\u00e6\u00ad\u008d;\u00d4\u00117\u00f6/_f\u00a3\u00f7\u0018$\u00f5O({\u00da\u00f8?") }; Ap = m108a(Aj, Ak, Al, Am, An, Ao); Aq = new byte[][] { Aj[0], Ak[0], Am[0], An[0], Ao[0] }; Ar = false; As = false; At = -1; Au = new Object(); } private GooglePlayServicesUtil() { } public static boolean m105a(PackageManager packageManager, PackageInfo packageInfo) { boolean z = true; boolean z2 = false; if (packageInfo == null) { return false; } if (m114c(packageManager)) { if (m107a(packageInfo, Ap) == null) { z = false; } return z; } if (m107a(packageInfo, Aq) != null) { z2 = true; } if (z2 || m107a(packageInfo, Ap) == null) { return z2; } Log.w("GooglePlayServicesUtil", "Test-keys aren't accepted on this build."); return z2; } public static boolean m106a(Resources resources) { if (resources == null) { return false; } return (gr.fu() && ((resources.getConfiguration().screenLayout & 15) > 3)) || m112b(resources); } private static byte[] m107a(PackageInfo packageInfo, byte[]... bArr) { try { CertificateFactory instance = CertificateFactory.getInstance("X509"); if (packageInfo.signatures.length != 1) { Log.w("GooglePlayServicesUtil", "Package has more than one signature."); return null; } try { try { ((X509Certificate) instance .generateCertificate(new ByteArrayInputStream(packageInfo.signatures[0].toByteArray()))) .checkValidity(); byte[] toByteArray = packageInfo.signatures[0].toByteArray(); for (byte[] bArr2 : bArr) { if (Arrays.equals(bArr2, toByteArray)) { return bArr2; } } if (Log.isLoggable("GooglePlayServicesUtil", 2)) { Log.v("GooglePlayServicesUtil", "Signature not valid. Found: \n" + Base64.encodeToString(toByteArray, 0)); } return null; } catch (CertificateExpiredException e) { Log.w("GooglePlayServicesUtil", "Certificate has expired."); return null; } catch (CertificateNotYetValidException e2) { Log.w("GooglePlayServicesUtil", "Certificate is not yet valid."); return null; } } catch (CertificateException e3) { Log.w("GooglePlayServicesUtil", "Could not generate certificate."); return null; } } catch (CertificateException e4) { Log.w("GooglePlayServicesUtil", "Could not get certificate instance."); return null; } } private static byte[][] m108a(byte[][]... bArr) { int i = 0; for (byte[][] length : bArr) { i += length.length; } byte[][] bArr2 = new byte[i][]; int length2 = bArr.length; int i2 = 0; int i3 = 0; while (i2 < length2) { byte[][] bArr3 = bArr[i2]; i = i3; i3 = 0; while (i3 < bArr3.length) { int i4 = i + 1; bArr2[i] = bArr3[i3]; i3++; i = i4; } i2++; i3 = i; } return bArr2; } private static byte[] ag(String str) { try { return str.getBytes(CharEncoding.ISO_8859_1); } catch (UnsupportedEncodingException e) { throw new AssertionError(e); } } public static Intent m109b(Context context, int i) { switch (i) { case Std.STD_FILE /*1*/: case Std.STD_URL /*2*/: return fi.ao(GOOGLE_PLAY_SERVICES_PACKAGE); case Std.STD_URI /*3*/: return fi.am(GOOGLE_PLAY_SERVICES_PACKAGE); case Std.STD_INET_SOCKET_ADDRESS /*12*/: return fi.eS(); default: return null; } } public static boolean m110b(PackageManager packageManager) { synchronized (Au) { if (At == -1) { try { if (m107a(packageManager.getPackageInfo(GOOGLE_PLAY_SERVICES_PACKAGE, 64), Ap[1]) != null) { At = 1; } else { At = 0; } } catch (NameNotFoundException e) { At = 0; } } } return At != 0; } public static boolean m111b(PackageManager packageManager, String str) { try { return m105a(packageManager, packageManager.getPackageInfo(str, 64)); } catch (NameNotFoundException e) { if (Log.isLoggable("GooglePlayServicesUtil", 3)) { Log.d("GooglePlayServicesUtil", "Package manager can't find package " + str + ", defaulting to false"); } return false; } } private static boolean m112b(Resources resources) { Configuration configuration = resources.getConfiguration(); return gr.fw() && (configuration.screenLayout & 15) <= 3 && configuration.smallestScreenWidthDp >= 600; } public static String m113c(Context context, int i) { Resources resources = context.getResources(); switch (i) { case Std.STD_FILE /*1*/: return m106a(context.getResources()) ? resources.getString(C0192R.string.common_google_play_services_install_text_tablet) : resources.getString(C0192R.string.common_google_play_services_install_text_phone); case Std.STD_URL /*2*/: return resources.getString(C0192R.string.common_google_play_services_update_text); case Std.STD_URI /*3*/: return resources.getString(C0192R.string.common_google_play_services_enable_text); case Std.STD_JAVA_TYPE /*5*/: return resources.getString(C0192R.string.common_google_play_services_invalid_account_text); case Std.STD_PATTERN /*7*/: return resources.getString(C0192R.string.common_google_play_services_network_error_text); case Std.STD_CHARSET /*9*/: return resources.getString(C0192R.string.common_google_play_services_unsupported_text); case Std.STD_INET_SOCKET_ADDRESS /*12*/: return resources.getString(C0192R.string.common_google_play_services_unsupported_date_text); default: return resources.getString(C0192R.string.common_google_play_services_unknown_issue); } } public static boolean m114c(PackageManager packageManager) { return m110b(packageManager) || !dX(); } public static String m115d(Context context, int i) { Resources resources = context.getResources(); switch (i) { case Std.STD_FILE /*1*/: return resources.getString(C0192R.string.common_google_play_services_install_button); case Std.STD_URL /*2*/: return resources.getString(C0192R.string.common_google_play_services_update_button); case Std.STD_URI /*3*/: return resources.getString(C0192R.string.common_google_play_services_enable_button); default: return resources.getString(17039370); } } public static boolean dX() { return Ar ? As : "user".equals(Build.TYPE); } public static String m116e(Context context, int i) { Resources resources = context.getResources(); switch (i) { case Std.STD_FILE /*1*/: return resources.getString(C0192R.string.f17x8f024ee1); case Std.STD_URL /*2*/: return resources.getString(C0192R.string.common_google_play_services_notification_needs_update_title); case Std.STD_URI /*3*/: return resources.getString(C0192R.string.common_google_play_services_needs_enabling_title); case Std.STD_JAVA_TYPE /*5*/: return resources.getString(C0192R.string.common_google_play_services_invalid_account_text); case Std.STD_PATTERN /*7*/: return resources.getString(C0192R.string.common_google_play_services_network_error_text); case Std.STD_CHARSET /*9*/: return resources.getString(C0192R.string.common_google_play_services_unsupported_text); case Std.STD_INET_SOCKET_ADDRESS /*12*/: return resources.getString(C0192R.string.common_google_play_services_unsupported_date_text); default: return resources.getString(C0192R.string.common_google_play_services_unknown_issue); } } public static Dialog getErrorDialog(int errorCode, Activity activity, int requestCode) { return getErrorDialog(errorCode, activity, requestCode, null); } public static Dialog getErrorDialog(int errorCode, Activity activity, int requestCode, OnCancelListener cancelListener) { Builder message = new Builder(activity).setMessage(m113c(activity, errorCode)); if (cancelListener != null) { message.setOnCancelListener(cancelListener); } OnClickListener fdVar = new fd(activity, m109b((Context) activity, errorCode), requestCode); CharSequence d = m115d(activity, errorCode); if (d != null) { message.setPositiveButton(d, fdVar); } switch (errorCode) { case JSONzip.zipEmptyObject /*0*/: return null; case Std.STD_FILE /*1*/: return message.setTitle(C0192R.string.common_google_play_services_install_title).create(); case Std.STD_URL /*2*/: return message.setTitle(C0192R.string.common_google_play_services_update_title).create(); case Std.STD_URI /*3*/: return message.setTitle(C0192R.string.common_google_play_services_enable_title).create(); case Std.STD_CLASS /*4*/: case Std.STD_CURRENCY /*6*/: return message.create(); case Std.STD_JAVA_TYPE /*5*/: Log.e("GooglePlayServicesUtil", "An invalid account was specified when connecting. Please provide a valid account."); return message.setTitle(C0192R.string.common_google_play_services_invalid_account_title).create(); case Std.STD_PATTERN /*7*/: Log.e("GooglePlayServicesUtil", "Network error occurred. Please retry request later."); return message.setTitle(C0192R.string.common_google_play_services_network_error_title).create(); case Std.STD_LOCALE /*8*/: Log.e("GooglePlayServicesUtil", "Internal error occurred. Please see logs for detailed information"); return message.create(); case Std.STD_CHARSET /*9*/: Log.e("GooglePlayServicesUtil", "Google Play services is invalid. Cannot recover."); return message.setTitle(C0192R.string.common_google_play_services_unsupported_title).create(); case Std.STD_TIME_ZONE /*10*/: Log.e("GooglePlayServicesUtil", "Developer error occurred. Please see logs for detailed information"); return message.create(); case Std.STD_INET_ADDRESS /*11*/: Log.e("GooglePlayServicesUtil", "The application is not licensed to the user."); return message.create(); case Std.STD_INET_SOCKET_ADDRESS /*12*/: Log.e("GooglePlayServicesUtil", "The date of the device is not valid."); return message.setTitle(C0192R.string.common_google_play_services_unsupported_title).create(); default: Log.e("GooglePlayServicesUtil", "Unexpected error code " + errorCode); return message.create(); } } public static PendingIntent getErrorPendingIntent(int errorCode, Context context, int requestCode) { Intent b = m109b(context, errorCode); return b == null ? null : PendingIntent.getActivity(context, requestCode, b, DriveFile.MODE_READ_ONLY); } public static String getErrorString(int errorCode) { switch (errorCode) { case JSONzip.zipEmptyObject /*0*/: return "SUCCESS"; case Std.STD_FILE /*1*/: return "SERVICE_MISSING"; case Std.STD_URL /*2*/: return "SERVICE_VERSION_UPDATE_REQUIRED"; case Std.STD_URI /*3*/: return "SERVICE_DISABLED"; case Std.STD_CLASS /*4*/: return "SIGN_IN_REQUIRED"; case Std.STD_JAVA_TYPE /*5*/: return "INVALID_ACCOUNT"; case Std.STD_CURRENCY /*6*/: return "RESOLUTION_REQUIRED"; case Std.STD_PATTERN /*7*/: return "NETWORK_ERROR"; case Std.STD_LOCALE /*8*/: return "INTERNAL_ERROR"; case Std.STD_CHARSET /*9*/: return "SERVICE_INVALID"; case Std.STD_TIME_ZONE /*10*/: return "DEVELOPER_ERROR"; case Std.STD_INET_ADDRESS /*11*/: return "LICENSE_CHECK_FAILED"; case Std.STD_INET_SOCKET_ADDRESS /*12*/: return "DATE_INVALID"; default: return "UNKNOWN_ERROR_CODE"; } } public static String getOpenSourceSoftwareLicenseInfo(Context context) { InputStream openInputStream; try { openInputStream = context.getContentResolver().openInputStream( new Uri.Builder().scheme("android.resource").authority(GOOGLE_PLAY_SERVICES_PACKAGE) .appendPath("raw").appendPath("oss_notice").build()); String next = new Scanner(openInputStream).useDelimiter("\\A").next(); if (openInputStream == null) { return next; } openInputStream.close(); return next; } catch (NoSuchElementException e) { if (openInputStream != null) { openInputStream.close(); } return null; } catch (Exception e2) { return null; } catch (Throwable th) { if (openInputStream != null) { openInputStream.close(); } } } public static Context getRemoteContext(Context context) { try { return context.createPackageContext(GOOGLE_PLAY_SERVICES_PACKAGE, 3); } catch (NameNotFoundException e) { return null; } } public static Resources getRemoteResource(Context context) { try { return context.getPackageManager().getResourcesForApplication(GOOGLE_PLAY_SERVICES_PACKAGE); } catch (NameNotFoundException e) { return null; } } public static int isGooglePlayServicesAvailable(Context context) { PackageManager packageManager = context.getPackageManager(); try { context.getResources().getString(C0192R.string.common_google_play_services_unknown_issue); } catch (Throwable th) { Log.e("GooglePlayServicesUtil", "The Google Play services resources were not found. Check your project configuration to ensure that the resources are included."); } if (System.currentTimeMillis() < 1227312000288L) { return 12; } m118t(context); try { PackageInfo packageInfo = packageManager.getPackageInfo(GOOGLE_PLAY_SERVICES_PACKAGE, 64); if (!gk.m1034y(context)) { try { if (m107a(packageManager.getPackageInfo(GOOGLE_PLAY_STORE_PACKAGE, 64), Aj) == null) { Log.w("GooglePlayServicesUtil", "Google Play Store signature invalid."); return 9; } if (m107a(packageInfo, m107a(packageManager.getPackageInfo(GOOGLE_PLAY_STORE_PACKAGE, 64), Aj)) == null) { Log.w("GooglePlayServicesUtil", "Google Play services signature invalid."); return 9; } } catch (NameNotFoundException e) { Log.w("GooglePlayServicesUtil", "Google Play Store is missing."); return 9; } } else if (m107a(packageInfo, Aj) == null) { Log.w("GooglePlayServicesUtil", "Google Play services signature invalid."); return 9; } if (packageInfo.versionCode < GOOGLE_PLAY_SERVICES_VERSION_CODE) { Log.w("GooglePlayServicesUtil", "Google Play services out of date. Requires 4452000 but found " + packageInfo.versionCode); return 2; } try { return !packageManager.getApplicationInfo(GOOGLE_PLAY_SERVICES_PACKAGE, 0).enabled ? 3 : 0; } catch (NameNotFoundException e2) { Log.wtf("GooglePlayServicesUtil", "Google Play services missing when getting application info."); e2.printStackTrace(); return 1; } } catch (NameNotFoundException e3) { Log.w("GooglePlayServicesUtil", "Google Play services is missing."); return 1; } } public static boolean isUserRecoverableError(int errorCode) { switch (errorCode) { case Std.STD_FILE /*1*/: case Std.STD_URL /*2*/: case Std.STD_URI /*3*/: case Std.STD_CHARSET /*9*/: case Std.STD_INET_SOCKET_ADDRESS /*12*/: return true; default: return false; } } public static void m117s(Context context) throws GooglePlayServicesRepairableException, GooglePlayServicesNotAvailableException { int isGooglePlayServicesAvailable = isGooglePlayServicesAvailable(context); if (isGooglePlayServicesAvailable != 0) { Intent b = m109b(context, isGooglePlayServicesAvailable); Log.e("GooglePlayServicesUtil", "GooglePlayServices not available due to error " + isGooglePlayServicesAvailable); if (b == null) { throw new GooglePlayServicesNotAvailableException(isGooglePlayServicesAvailable); } throw new GooglePlayServicesRepairableException(isGooglePlayServicesAvailable, "Google Play Services not available", b); } } public static boolean showErrorDialogFragment(int errorCode, Activity activity, int requestCode) { return showErrorDialogFragment(errorCode, activity, requestCode, null); } public static boolean showErrorDialogFragment(int errorCode, Activity activity, int requestCode, OnCancelListener cancelListener) { boolean z = false; Dialog errorDialog = getErrorDialog(errorCode, activity, requestCode, cancelListener); if (errorDialog == null) { return z; } try { z = activity instanceof FragmentActivity; } catch (NoClassDefFoundError e) { } if (z) { SupportErrorDialogFragment.newInstance(errorDialog, cancelListener) .show(((FragmentActivity) activity).getSupportFragmentManager(), GMS_ERROR_DIALOG); } else if (gr.fu()) { ErrorDialogFragment.newInstance(errorDialog, cancelListener).show(activity.getFragmentManager(), GMS_ERROR_DIALOG); } else { throw new RuntimeException("This Activity does not support Fragments."); } return true; } public static void showErrorNotification(int errorCode, Context context) { Resources resources = context.getResources(); Notification notification = new Notification(17301642, resources.getString(C0192R.string.common_google_play_services_notification_ticker), System.currentTimeMillis()); notification.flags |= 16; CharSequence e = m116e(context, errorCode); String u = m119u(context); notification.setLatestEventInfo(context, e, resources.getString(C0192R.string.common_google_play_services_error_notification_requested_by_msg, new Object[] { u }), getErrorPendingIntent(errorCode, context, 0)); ((NotificationManager) context.getSystemService("notification")).notify(39789, notification); } private static void m118t(Context context) { ApplicationInfo applicationInfo = null; try { applicationInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), TransportMediator.FLAG_KEY_MEDIA_NEXT); } catch (Throwable e) { Log.wtf("GooglePlayServicesUtil", "This should never happen.", e); } Bundle bundle = applicationInfo.metaData; if (bundle != null) { int i = bundle.getInt("com.google.android.gms.version"); if (i != GOOGLE_PLAY_SERVICES_VERSION_CODE) { throw new IllegalStateException( "The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4452000 but found " + i + ". You must have the" + " following declaration within the <application> element: " + " <meta-data android:name=\"" + "com.google.android.gms.version" + "\" android:value=\"@integer/google_play_services_version\" />"); } return; } throw new IllegalStateException( "A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the <application> element: <meta-data android:name=\"com.google.android.gms.version\" android:value=\"@integer/google_play_services_version\" />"); } private static String m119u(Context context) { Object obj = context.getApplicationInfo().name; if (!TextUtils.isEmpty(obj)) { return obj; } ApplicationInfo applicationInfo; String packageName = context.getPackageName(); PackageManager packageManager = context.getApplicationContext().getPackageManager(); try { applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0); } catch (NameNotFoundException e) { applicationInfo = null; } return applicationInfo != null ? packageManager.getApplicationLabel(applicationInfo).toString() : packageName; } }