Java tutorial
package com.google.android.gms.common; import android.app.Activity; import android.app.AlertDialog.Builder; import android.app.Dialog; 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.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.util.Base64; import android.util.Log; import com.google.analytics.midtier.proto.containertag.MutableTypeSystem.Value; import com.google.android.gms.C0092R; import com.google.android.gms.internal.C0144i; import com.google.android.gms.internal.C0151m; import com.google.android.gms.internal.as; 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.lang3.CharEncoding; import org.joda.time.MutableDateTime; public final class GooglePlayServicesUtil { static final byte[][] f12C; static final byte[][] f13D; static final byte[][] f14E; static final byte[][] f15F; private static final byte[][] f16G; public static final String GOOGLE_PLAY_SERVICES_PACKAGE = "com.google.android.gms"; public static final int GOOGLE_PLAY_SERVICES_VERSION_CODE = 3265100; public static final String GOOGLE_PLAY_STORE_PACKAGE = "com.android.vending"; private static final byte[][] f17H; static final byte[][] f18I; public static boolean f19J; public static boolean f20K; static boolean f21L; private static int f22M; private static final Object f23N; static { f12C = new byte[][] { m25c( "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"), m25c("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") }; f13D = new byte[][] { m25c( "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"), m25c("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") }; f14E = new byte[][] { m25c( "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") }; f15F = new byte[][] { m25c( "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."), m25c("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") }; f16G = m19a(f12C, f13D, f14E, f15F); f17H = new byte[][] { f12C[0], f13D[0], f15F[0] }; f18I = new byte[][] { m25c( "0\u0082\u0002_0\u0082\u0001\u00c8\u00a0\u0003\u0002\u0001\u0002\u0002\u0004K\u0019\u00b1\u009d0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\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\u00150\u0013\u0006\u0003U\u0004\n\u0013\fGoogle, Inc.1\u00100\u000e\u0006\u0003U\u0004\u000b\u0013\u0007Unknown1\u000f0\r\u0006\u0003U\u0004\u0003\u0013\u0006Bazaar0\u001e\u0017\r091205010429Z\u0017\r370422010429Z0t1\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\u0007Unknown1\u000f0\r\u0006\u0003U\u0004\u0003\u0013\u0006Bazaar0\u0081\u009f0\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0001\u0005\u0000\u0003\u0081\u008d\u00000\u0081\u0089\u0002\u0081\u0081\u0000\u00a9\b\u0088\u00de\u0096\u00e354w\t\u00ddK%\u001ez)\u00a8G7k.\\\u00ba[[\u00d5\u0004>\u0083\u0088\u0001\u0002\u0098\u0019\u0014\u0094\u0013\u00fa3\u00aa\u00e5D;\u0003SJ\u00ceJ\u00adoP\u0097\u0012I\u00d9\u008ev\u00a3\u009a~L\u00cc\u00e1\u00d7\u001b\u00a7\u00be>ugM\u00b5\u00f1\u0007Z\u0098sp\u0001FH\u00a7\u00cep<-\u00c7\u00884\u0089\u0005\u0092\u0012\u00af\u009cl[(\u00ab\u00d5O\u0083d\u0011\u00c81\u00a2\u009fP\u000f(\u0002\u00d1l\u00e6\u00d1\u0085o\u0086p\u00aa\u00fc\u00a2eA\u0083{9\u0002\u0003\u0001\u0000\u00010\r\u0006\t*\u0086H\u0086\u00f7\r\u0001\u0001\u0005\u0005\u0000\u0003\u0081\u0081\u0000I\u0084\u00c6\u00f3AG\u0001#b:'O\u00e9\u00e17=u1\u00cc\r\u00fc\u00e9\u00a7j\u00e6\u007f\u00fbp[@L\u00bd\u001b\u00c1\u0016\u008c\u00ab\u0018\u00bb\u0011\u00c3x\u0095\u00bf\u00b4\u00f3l\u00c1L\u00ec\u001d,\u00c5Qj\u000e\u00ce\u00d4\u0007N\u00b5h\u0082\u0089Pd\u0000\u00af\u00f8\u00dc\u00c8\u00efT\u0004\u0012\u0002\u00fd\u00ef\u00f1\u00fd\u0082\u00e0\u00f3#\u0010r\u00fd\u00cc\u00deJ6\u008b\u00e0\u00c6\u00c3\u00f9\u00b8\u00b3\u00aa\rh<:\u00bf\u00da\u009a\u00b7\u00bb\u00882\u00e9\u00be^6\u0019\u00ba\u0092\u00dd:\u00cc\u0003j\u00ad\u00b5\u00a6\u0019\u00afP") }; f19J = false; f20K = false; f21L = false; f22M = -1; f23N = new Object(); } private GooglePlayServicesUtil() { } public static Dialog m14a(int i, Activity activity, int i2, OnCancelListener onCancelListener, int i3) { Builder message = new Builder(activity).setMessage(m20b(activity, i, i3)); if (onCancelListener != null) { message.setOnCancelListener(onCancelListener); } OnClickListener c0144i = new C0144i(activity, m15a(activity, i, i3), i2); CharSequence a = m16a((Context) activity, i); if (a != null) { message.setPositiveButton(a, c0144i); } switch (i) { case MutableDateTime.ROUND_NONE /*0*/: return null; case Value.TYPE_FIELD_NUMBER /*1*/: return message.setTitle(C0092R.string.common_google_play_services_install_title).create(); case Value.STRING_FIELD_NUMBER /*2*/: return message.setTitle(C0092R.string.common_google_play_services_update_title).create(); case Value.LIST_ITEM_FIELD_NUMBER /*3*/: return message.setTitle(C0092R.string.common_google_play_services_enable_title).create(); case Value.MAP_KEY_FIELD_NUMBER /*4*/: case Value.MACRO_REFERENCE_FIELD_NUMBER /*6*/: return message.setTitle(C0092R.string.common_google_play_services_unknown_issue).create(); case Value.MAP_VALUE_FIELD_NUMBER /*5*/: Log.e("GooglePlayServicesUtil", "An invalid account was specified when connecting. Please provide a valid account."); return message.setTitle(C0092R.string.common_google_play_services_invalid_account_title).create(); case Value.FUNCTION_ID_FIELD_NUMBER /*7*/: Log.e("GooglePlayServicesUtil", "Network error occurred. Please retry request later."); return message.setTitle(C0092R.string.common_google_play_services_network_error_title).create(); case Value.INTEGER_FIELD_NUMBER /*8*/: Log.e("GooglePlayServicesUtil", "Internal error occurred. Please see logs for detailed information"); return message.setTitle(C0092R.string.common_google_play_services_unknown_issue).create(); case Value.CONTAINS_REFERENCES_FIELD_NUMBER /*9*/: Log.e("GooglePlayServicesUtil", "Google Play services is invalid. Cannot recover."); return message.setTitle(C0092R.string.common_google_play_services_unsupported_title).create(); case Value.ESCAPING_FIELD_NUMBER /*10*/: Log.e("GooglePlayServicesUtil", "Developer error occurred. Please see logs for detailed information"); return message.setTitle(C0092R.string.common_google_play_services_unknown_issue).create(); case Value.TEMPLATE_TOKEN_FIELD_NUMBER /*11*/: Log.e("GooglePlayServicesUtil", "The application is not licensed to the user."); return message.setTitle(C0092R.string.common_google_play_services_unknown_issue).create(); default: Log.e("GooglePlayServicesUtil", "Unexpected error code " + i); return message.setTitle(C0092R.string.common_google_play_services_unknown_issue).create(); } } public static Intent m15a(Context context, int i, int i2) { switch (i) { case Value.TYPE_FIELD_NUMBER /*1*/: case Value.STRING_FIELD_NUMBER /*2*/: return m21b(i2) ? m24c(context) ? C0151m.m486l(GOOGLE_PLAY_SERVICES_PACKAGE) : C0151m.m485k("com.google.android.apps.bazaar") : C0151m.m485k(GOOGLE_PLAY_SERVICES_PACKAGE); case Value.LIST_ITEM_FIELD_NUMBER /*3*/: return C0151m.m483i(GOOGLE_PLAY_SERVICES_PACKAGE); default: return null; } } public static String m16a(Context context, int i) { Resources resources = context.getResources(); switch (i) { case Value.TYPE_FIELD_NUMBER /*1*/: return resources.getString(C0092R.string.common_google_play_services_install_button); case Value.STRING_FIELD_NUMBER /*2*/: return resources.getString(C0092R.string.common_google_play_services_update_button); case Value.LIST_ITEM_FIELD_NUMBER /*3*/: return resources.getString(C0092R.string.common_google_play_services_enable_button); default: return resources.getString(17039370); } } public static boolean m17a(Resources resources) { return (as.an() && ((resources.getConfiguration().screenLayout & 15) > 3)) || m22b(resources); } private static byte[] m18a(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[][] m19a(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; } public static String m20b(Context context, int i, int i2) { Resources resources = context.getResources(); String string; switch (i) { case Value.TYPE_FIELD_NUMBER /*1*/: string = m17a(context.getResources()) ? resources.getString(C0092R.string.common_google_play_services_install_text_tablet) : resources.getString(C0092R.string.common_google_play_services_install_text_phone); return m21b(i2) ? string + " (via Bazaar)" : string; case Value.STRING_FIELD_NUMBER /*2*/: string = resources.getString(C0092R.string.common_google_play_services_update_text); return m21b(i2) ? string + " (via Bazaar)" : string; case Value.LIST_ITEM_FIELD_NUMBER /*3*/: return resources.getString(C0092R.string.common_google_play_services_enable_text); case Value.MAP_VALUE_FIELD_NUMBER /*5*/: return resources.getString(C0092R.string.common_google_play_services_invalid_account_text); case Value.FUNCTION_ID_FIELD_NUMBER /*7*/: return resources.getString(C0092R.string.common_google_play_services_network_error_text); case Value.CONTAINS_REFERENCES_FIELD_NUMBER /*9*/: return resources.getString(C0092R.string.common_google_play_services_unsupported_text); default: return resources.getString(C0092R.string.common_google_play_services_unknown_issue); } } static boolean m21b(int i) { switch (m23c(i)) { case MutableDateTime.ROUND_NONE /*0*/: return !m26g(); case Value.TYPE_FIELD_NUMBER /*1*/: return true; case Value.STRING_FIELD_NUMBER /*2*/: return false; default: return false; } } private static boolean m22b(Resources resources) { Configuration configuration = resources.getConfiguration(); return as.ap() && (configuration.screenLayout & 15) <= 3 && configuration.smallestScreenWidthDp >= 600; } private static int m23c(int i) { return i == -1 ? 2 : i; } private static boolean m24c(Context context) { if (f19J) { return f21L; } try { return m18a(context.getPackageManager().getPackageInfo("com.google.android.apps.bazaar", 64), f18I) != null; } catch (NameNotFoundException e) { return false; } } private static byte[] m25c(String str) { try { return str.getBytes(CharEncoding.ISO_8859_1); } catch (UnsupportedEncodingException e) { throw new AssertionError(e); } } public static boolean m26g() { return f19J ? f20K : "user".equals(Build.TYPE); } public static Dialog getErrorDialog(int errorCode, Activity activity, int requestCode) { return m14a(errorCode, activity, requestCode, null, -1); } public static Dialog getErrorDialog(int errorCode, Activity activity, int requestCode, OnCancelListener cancelListener) { return m14a(errorCode, activity, requestCode, cancelListener, -1); } public static PendingIntent getErrorPendingIntent(int errorCode, Context context, int requestCode) { Intent a = m15a(context, errorCode, -1); return a == null ? null : PendingIntent.getActivity(context, requestCode, a, 268435456); } public static String getErrorString(int errorCode) { switch (errorCode) { case MutableDateTime.ROUND_NONE /*0*/: return "SUCCESS"; case Value.TYPE_FIELD_NUMBER /*1*/: return "SERVICE_MISSING"; case Value.STRING_FIELD_NUMBER /*2*/: return "SERVICE_VERSION_UPDATE_REQUIRED"; case Value.LIST_ITEM_FIELD_NUMBER /*3*/: return "SERVICE_DISABLED"; case Value.MAP_KEY_FIELD_NUMBER /*4*/: return "SIGN_IN_REQUIRED"; case Value.MAP_VALUE_FIELD_NUMBER /*5*/: return "INVALID_ACCOUNT"; case Value.MACRO_REFERENCE_FIELD_NUMBER /*6*/: return "RESOLUTION_REQUIRED"; case Value.FUNCTION_ID_FIELD_NUMBER /*7*/: return "NETWORK_ERROR"; case Value.INTEGER_FIELD_NUMBER /*8*/: return "INTERNAL_ERROR"; case Value.CONTAINS_REFERENCES_FIELD_NUMBER /*9*/: return "SERVICE_INVALID"; case Value.ESCAPING_FIELD_NUMBER /*10*/: return "DEVELOPER_ERROR"; case Value.TEMPLATE_TOKEN_FIELD_NUMBER /*11*/: return "LICENSE_CHECK_FAILED"; 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(C0092R.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."); } try { if (m18a(packageManager.getPackageInfo(GOOGLE_PLAY_STORE_PACKAGE, 64), f12C) == null) { Log.w("GooglePlayServicesUtil", "Google Play Store signature invalid."); return 9; } try { PackageInfo packageInfo = packageManager.getPackageInfo(GOOGLE_PLAY_SERVICES_PACKAGE, 64); if (m18a(packageInfo, r4) == null) { Log.w("GooglePlayServicesUtil", "Google Play services signature invalid."); return 9; } else if (packageInfo.versionCode < GOOGLE_PLAY_SERVICES_VERSION_CODE) { Log.w("GooglePlayServicesUtil", "Google Play services out of date. Requires 3265100 but found " + packageInfo.versionCode); return 2; } else { try { return !packageManager.getApplicationInfo(GOOGLE_PLAY_SERVICES_PACKAGE, 0).enabled ? 3 : 0; } catch (NameNotFoundException e) { Log.wtf("GooglePlayServicesUtil", "Google Play services missing when getting application info."); e.printStackTrace(); return 1; } } } catch (NameNotFoundException e2) { Log.w("GooglePlayServicesUtil", "Google Play services is missing."); return 1; } } catch (NameNotFoundException e3) { Log.w("GooglePlayServicesUtil", "Google Play Store is missing."); return 9; } } public static boolean isUserRecoverableError(int errorCode) { switch (errorCode) { case Value.TYPE_FIELD_NUMBER /*1*/: case Value.STRING_FIELD_NUMBER /*2*/: case Value.LIST_ITEM_FIELD_NUMBER /*3*/: case Value.CONTAINS_REFERENCES_FIELD_NUMBER /*9*/: return true; default: return false; } } }