Source/sources/com/google/appinventor/components/runtime/util/NanoHTTPD.java
public void run() {
            /*
                r41 = this;
                r0 = r41
                java.net.Socket r4 = r0.mySocket     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStream r28 = r4.getInputStream()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r28 != 0) goto L_0x000b
            L_0x000a:
                return
            L_0x000b:
                r20 = 8192(0x2000, float:1.14794E-41)
                r0 = r20
                byte[] r0 = new byte[r0]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r19 = r0
                r4 = 0
                r0 = r28
                r1 = r19
                r2 = r20
                int r34 = r0.read(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r34 <= 0) goto L_0x000a
                java.io.ByteArrayInputStream r25 = new java.io.ByteArrayInputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4 = 0
                r0 = r25
                r1 = r19
                r2 = r34
                r0.<init>(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.BufferedReader r26 = new java.io.BufferedReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStreamReader r4 = new java.io.InputStreamReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r25
                r4.<init>(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r26
                r0.<init>(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r31 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r31.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r8 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r8.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r13 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r13.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r9 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r9.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r1 = r26
                r2 = r31
                r0.decodeHeader(r1, r2, r8, r13)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "method"
                r0 = r31
                java.lang.String r12 = r0.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "uri"
                r0 = r31
                java.lang.String r11 = r0.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r36 = 9223372036854775807(0x7fffffffffffffff, double:NaN)
                java.lang.String r4 = "content-length"
                java.lang.String r21 = r13.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r21 == 0) goto L_0x007b
                int r4 = java.lang.Integer.parseInt(r21)     // Catch:{ NumberFormatException -> 0x0264 }
                long r0 = (long) r4
                r36 = r0
            L_0x007b:
                r38 = 0
                r35 = 0
            L_0x007f:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x00a5
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 13
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 10
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 13
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 10
                if (r4 != r10) goto L_0x0139
                r35 = 1
            L_0x00a5:
                int r38 = r38 + 1
                java.lang.String r4 = "PUT"
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x013d
                java.lang.String r4 = "upload"
                java.lang.String r10 = "bin"
                java.io.File r40 = java.io.File.createTempFile(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r40.deleteOnExit()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.FileOutputStream r24 = new java.io.FileOutputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r24
                r1 = r40
                r0.<init>(r1)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "content"
                java.lang.String r10 = r40.getAbsolutePath()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r9.put(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x00cc:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x00dd
                int r4 = r34 - r38
                r0 = r24
                r1 = r19
                r2 = r38
                r0.write(r1, r2, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x00dd:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x0143
                int r4 = r34 - r38
                int r4 = r4 + 1
                long r14 = (long) r4     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                long r36 = r36 - r14
            L_0x00ea:
                r4 = 512(0x200, float:7.175E-43)
                byte[] r0 = new byte[r4]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r19 = r0
            L_0x00f0:
                if (r34 < 0) goto L_0x0151
                r14 = 0
                int r4 = (r36 > r14 ? 1 : (r36 == r14 ? 0 : -1))
                if (r4 <= 0) goto L_0x0151
                r4 = 0
                r10 = 512(0x200, float:7.175E-43)
                r0 = r28
                r1 = r19
                int r34 = r0.read(r1, r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r34
                long r14 = (long) r0     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                long r36 = r36 - r14
                if (r34 <= 0) goto L_0x00f0
                r4 = 0
                r0 = r24
                r1 = r19
                r2 = r34
                r0.write(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x00f0
            L_0x0115:
                r27 = move-exception
                java.lang.String r4 = "500 Internal Server Error"
                java.lang.StringBuilder r10 = new java.lang.StringBuilder     // Catch:{ Throwable -> 0x0136 }
                r10.<init>()     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r14 = "SERVER INTERNAL ERROR: IOException: "
                java.lang.StringBuilder r10 = r10.append(r14)     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r14 = r27.getMessage()     // Catch:{ Throwable -> 0x0136 }
                java.lang.StringBuilder r10 = r10.append(r14)     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r10 = r10.toString()     // Catch:{ Throwable -> 0x0136 }
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ Throwable -> 0x0136 }
                goto L_0x000a
            L_0x0136:
                r4 = move-exception
                goto L_0x000a
            L_0x0139:
                int r38 = r38 + 1
                goto L_0x007f
            L_0x013d:
                java.io.ByteArrayOutputStream r24 = new java.io.ByteArrayOutputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r24.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x00cc
            L_0x0143:
                if (r35 == 0) goto L_0x014e
                r14 = 9223372036854775807(0x7fffffffffffffff, double:NaN)
                int r4 = (r36 > r14 ? 1 : (r36 == r14 ? 0 : -1))
                if (r4 != 0) goto L_0x00ea
            L_0x014e:
                r36 = 0
                goto L_0x00ea
            L_0x0151:
                java.lang.String r4 = "POST"
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x0242
                java.io.ByteArrayOutputStream r24 = (java.io.ByteArrayOutputStream) r24     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                byte[] r6 = r24.toByteArray()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.ByteArrayInputStream r17 = new java.io.ByteArrayInputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r17
                r0.<init>(r6)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.BufferedReader r7 = new java.io.BufferedReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStreamReader r4 = new java.io.InputStreamReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r17
                r4.<init>(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r7.<init>(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r22 = ""
                java.lang.String r4 = "content-type"
                java.lang.String r23 = r13.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.StringTokenizer r39 = new java.util.StringTokenizer     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "; "
                r0 = r39
                r1 = r23
                r0.<init>(r1, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                boolean r4 = r39.hasMoreTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x018f
                java.lang.String r22 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x018f:
                java.lang.String r4 = "multipart/form-data"
                r0 = r22
                boolean r4 = r0.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x01f9
                boolean r4 = r39.hasMoreTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 != 0) goto L_0x01a8
                java.lang.String r4 = "400 Bad Request"
                java.lang.String r10 = "BAD REQUEST: Content type is multipart/form-data but boundary missing. Usage: GET /example/file.html"
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01a8:
                java.lang.String r18 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.StringTokenizer r39 = new java.util.StringTokenizer     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "="
                r0 = r39
                r1 = r18
                r0.<init>(r1, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                int r4 = r39.countTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 2
                if (r4 == r10) goto L_0x01c7
                java.lang.String r4 = "400 Bad Request"
                java.lang.String r10 = "BAD REQUEST: Content type is multipart/form-data but boundary syntax error. Usage: GET /example/file.html"
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01c7:
                r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r5 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4 = r41
                r4.decodeMultipartData(r5, r6, r7, r8, r9)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01d3:
                r7.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01d6:
                r0 = r41
                com.google.appinventor.components.runtime.util.NanoHTTPD r10 = com.google.appinventor.components.runtime.util.NanoHTTPD.this     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                java.net.Socket r0 = r0.mySocket     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r16 = r0
                r14 = r8
                r15 = r9
                com.google.appinventor.components.runtime.util.NanoHTTPD$Response r32 = r10.serve(r11, r12, r13, r14, r15, r16)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r32 != 0) goto L_0x024e
                java.lang.String r4 = "500 Internal Server Error"
                java.lang.String r10 = "SERVER INTERNAL ERROR: Serve() returned a null response."
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01f1:
                r28.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x000a
            L_0x01f6:
                r4 = move-exception
                goto L_0x000a
            L_0x01f9:
                java.lang.String r30 = ""
                r4 = 512(0x200, float:7.175E-43)
                char[] r0 = new char[r4]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r29 = r0
                r0 = r29
                int r33 = r7.read(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x0207:
                if (r33 < 0) goto L_0x0236
                java.lang.String r4 = "\r\n"
                r0 = r30
                boolean r4 = r0.endsWith(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 != 0) goto L_0x0236
                java.lang.StringBuilder r4 = new java.lang.StringBuilder     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r30
                java.lang.StringBuilder r4 = r4.append(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 0
                r0 = r29
                r1 = r33
                java.lang.String r10 = java.lang.String.valueOf(r0, r10, r1)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.StringBuilder r4 = r4.append(r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r30 = r4.toString()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r29
                int r33 = r7.read(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x0207
            L_0x0236:
                java.lang.String r30 = r30.trim()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r1 = r30
                r0.decodeParms(r1, r8)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01d3
            L_0x0242:
                java.lang.String r4 = "PUT "
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x01d6
                r24.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01d6
            L_0x024e:
                r0 = r32
                java.lang.String r4 = r0.status     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.lang.String r10 = r0.mimeType     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.util.Properties r14 = r0.header     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.io.InputStream r15 = r0.data     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r0.sendResponse(r4, r10, r14, r15)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01f1
            L_0x0264:
                r4 = move-exception
                goto L_0x007b
            */
            throw new UnsupportedOperationException("Method not decompiled: com.google.appinventor.components.runtime.util.NanoHTTPD.HTTPSession.run():void");
        }
/* Code decompiled incorrectly, please refer to instructions dump. */
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .
public void run() {
            /*
                r41 = this;
                r0 = r41
                java.net.Socket r4 = r0.mySocket     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStream r28 = r4.getInputStream()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r28 != 0) goto L_0x000b
            L_0x000a:
                return
            L_0x000b:
                r20 = 8192(0x2000, float:1.14794E-41)
                r0 = r20
                byte[] r0 = new byte[r0]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r19 = r0
                r4 = 0
                r0 = r28
                r1 = r19
                r2 = r20
                int r34 = r0.read(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r34 <= 0) goto L_0x000a
                java.io.ByteArrayInputStream r25 = new java.io.ByteArrayInputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4 = 0
                r0 = r25
                r1 = r19
                r2 = r34
                r0.<init>(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.BufferedReader r26 = new java.io.BufferedReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStreamReader r4 = new java.io.InputStreamReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r25
                r4.<init>(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r26
                r0.<init>(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r31 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r31.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r8 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r8.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r13 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r13.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r9 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r9.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r1 = r26
                r2 = r31
                r0.decodeHeader(r1, r2, r8, r13)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "method"
                r0 = r31
                java.lang.String r12 = r0.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "uri"
                r0 = r31
                java.lang.String r11 = r0.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r36 = 9223372036854775807(0x7fffffffffffffff, double:NaN)
                java.lang.String r4 = "content-length"
                java.lang.String r21 = r13.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r21 == 0) goto L_0x007b
                int r4 = java.lang.Integer.parseInt(r21)     // Catch:{ NumberFormatException -> 0x0264 }
                long r0 = (long) r4
                r36 = r0
            L_0x007b:
                r38 = 0
                r35 = 0
            L_0x007f:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x00a5
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 13
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 10
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 13
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 10
                if (r4 != r10) goto L_0x0139
                r35 = 1
            L_0x00a5:
                int r38 = r38 + 1
                java.lang.String r4 = "PUT"
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x013d
                java.lang.String r4 = "upload"
                java.lang.String r10 = "bin"
                java.io.File r40 = java.io.File.createTempFile(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r40.deleteOnExit()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.FileOutputStream r24 = new java.io.FileOutputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r24
                r1 = r40
                r0.<init>(r1)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "content"
                java.lang.String r10 = r40.getAbsolutePath()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r9.put(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x00cc:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x00dd
                int r4 = r34 - r38
                r0 = r24
                r1 = r19
                r2 = r38
                r0.write(r1, r2, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x00dd:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x0143
                int r4 = r34 - r38
                int r4 = r4 + 1
                long r14 = (long) r4     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                long r36 = r36 - r14
            L_0x00ea:
                r4 = 512(0x200, float:7.175E-43)
                byte[] r0 = new byte[r4]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r19 = r0
            L_0x00f0:
                if (r34 < 0) goto L_0x0151
                r14 = 0
                int r4 = (r36 > r14 ? 1 : (r36 == r14 ? 0 : -1))
                if (r4 <= 0) goto L_0x0151
                r4 = 0
                r10 = 512(0x200, float:7.175E-43)
                r0 = r28
                r1 = r19
                int r34 = r0.read(r1, r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r34
                long r14 = (long) r0     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                long r36 = r36 - r14
                if (r34 <= 0) goto L_0x00f0
                r4 = 0
                r0 = r24
                r1 = r19
                r2 = r34
                r0.write(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x00f0
            L_0x0115:
                r27 = move-exception
                java.lang.String r4 = "500 Internal Server Error"
                java.lang.StringBuilder r10 = new java.lang.StringBuilder     // Catch:{ Throwable -> 0x0136 }
                r10.<init>()     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r14 = "SERVER INTERNAL ERROR: IOException: "
                java.lang.StringBuilder r10 = r10.append(r14)     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r14 = r27.getMessage()     // Catch:{ Throwable -> 0x0136 }
                java.lang.StringBuilder r10 = r10.append(r14)     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r10 = r10.toString()     // Catch:{ Throwable -> 0x0136 }
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ Throwable -> 0x0136 }
                goto L_0x000a
            L_0x0136:
                r4 = move-exception
                goto L_0x000a
            L_0x0139:
                int r38 = r38 + 1
                goto L_0x007f
            L_0x013d:
                java.io.ByteArrayOutputStream r24 = new java.io.ByteArrayOutputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r24.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x00cc
            L_0x0143:
                if (r35 == 0) goto L_0x014e
                r14 = 9223372036854775807(0x7fffffffffffffff, double:NaN)
                int r4 = (r36 > r14 ? 1 : (r36 == r14 ? 0 : -1))
                if (r4 != 0) goto L_0x00ea
            L_0x014e:
                r36 = 0
                goto L_0x00ea
            L_0x0151:
                java.lang.String r4 = "POST"
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x0242
                java.io.ByteArrayOutputStream r24 = (java.io.ByteArrayOutputStream) r24     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                byte[] r6 = r24.toByteArray()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.ByteArrayInputStream r17 = new java.io.ByteArrayInputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r17
                r0.<init>(r6)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.BufferedReader r7 = new java.io.BufferedReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStreamReader r4 = new java.io.InputStreamReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r17
                r4.<init>(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r7.<init>(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r22 = ""
                java.lang.String r4 = "content-type"
                java.lang.String r23 = r13.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.StringTokenizer r39 = new java.util.StringTokenizer     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "; "
                r0 = r39
                r1 = r23
                r0.<init>(r1, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                boolean r4 = r39.hasMoreTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x018f
                java.lang.String r22 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x018f:
                java.lang.String r4 = "multipart/form-data"
                r0 = r22
                boolean r4 = r0.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x01f9
                boolean r4 = r39.hasMoreTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 != 0) goto L_0x01a8
                java.lang.String r4 = "400 Bad Request"
                java.lang.String r10 = "BAD REQUEST: Content type is multipart/form-data but boundary missing. Usage: GET /example/file.html"
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01a8:
                java.lang.String r18 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.StringTokenizer r39 = new java.util.StringTokenizer     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "="
                r0 = r39
                r1 = r18
                r0.<init>(r1, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                int r4 = r39.countTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 2
                if (r4 == r10) goto L_0x01c7
                java.lang.String r4 = "400 Bad Request"
                java.lang.String r10 = "BAD REQUEST: Content type is multipart/form-data but boundary syntax error. Usage: GET /example/file.html"
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01c7:
                r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r5 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4 = r41
                r4.decodeMultipartData(r5, r6, r7, r8, r9)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01d3:
                r7.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01d6:
                r0 = r41
                com.google.appinventor.components.runtime.util.NanoHTTPD r10 = com.google.appinventor.components.runtime.util.NanoHTTPD.this     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                java.net.Socket r0 = r0.mySocket     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r16 = r0
                r14 = r8
                r15 = r9
                com.google.appinventor.components.runtime.util.NanoHTTPD$Response r32 = r10.serve(r11, r12, r13, r14, r15, r16)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r32 != 0) goto L_0x024e
                java.lang.String r4 = "500 Internal Server Error"
                java.lang.String r10 = "SERVER INTERNAL ERROR: Serve() returned a null response."
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01f1:
                r28.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x000a
            L_0x01f6:
                r4 = move-exception
                goto L_0x000a
            L_0x01f9:
                java.lang.String r30 = ""
                r4 = 512(0x200, float:7.175E-43)
                char[] r0 = new char[r4]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r29 = r0
                r0 = r29
                int r33 = r7.read(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x0207:
                if (r33 < 0) goto L_0x0236
                java.lang.String r4 = "\r\n"
                r0 = r30
                boolean r4 = r0.endsWith(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 != 0) goto L_0x0236
                java.lang.StringBuilder r4 = new java.lang.StringBuilder     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r30
                java.lang.StringBuilder r4 = r4.append(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 0
                r0 = r29
                r1 = r33
                java.lang.String r10 = java.lang.String.valueOf(r0, r10, r1)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.StringBuilder r4 = r4.append(r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r30 = r4.toString()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r29
                int r33 = r7.read(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x0207
            L_0x0236:
                java.lang.String r30 = r30.trim()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r1 = r30
                r0.decodeParms(r1, r8)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01d3
            L_0x0242:
                java.lang.String r4 = "PUT "
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x01d6
                r24.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01d6
            L_0x024e:
                r0 = r32
                java.lang.String r4 = r0.status     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.lang.String r10 = r0.mimeType     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.util.Properties r14 = r0.header     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.io.InputStream r15 = r0.data     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r0.sendResponse(r4, r10, r14, r15)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01f1
            L_0x0264:
                r4 = move-exception
                goto L_0x007b
            */
            throw new UnsupportedOperationException("Method not decompiled: com.google.appinventor.components.runtime.util.NanoHTTPD.HTTPSession.run():void");
        }
public void run ( ) { /*
                r41 = this;
                r0 = r41
                java.net.Socket r4 = r0.mySocket     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStream r28 = r4.getInputStream()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r28 != 0) goto L_0x000b
            L_0x000a:
                return
            L_0x000b:
                r20 = 8192(0x2000, float:1.14794E-41)
                r0 = r20
                byte[] r0 = new byte[r0]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r19 = r0
                r4 = 0
                r0 = r28
                r1 = r19
                r2 = r20
                int r34 = r0.read(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r34 <= 0) goto L_0x000a
                java.io.ByteArrayInputStream r25 = new java.io.ByteArrayInputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4 = 0
                r0 = r25
                r1 = r19
                r2 = r34
                r0.<init>(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.BufferedReader r26 = new java.io.BufferedReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStreamReader r4 = new java.io.InputStreamReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r25
                r4.<init>(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r26
                r0.<init>(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r31 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r31.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r8 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r8.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r13 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r13.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.Properties r9 = new java.util.Properties     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r9.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r1 = r26
                r2 = r31
                r0.decodeHeader(r1, r2, r8, r13)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "method"
                r0 = r31
                java.lang.String r12 = r0.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "uri"
                r0 = r31
                java.lang.String r11 = r0.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r36 = 9223372036854775807(0x7fffffffffffffff, double:NaN)
                java.lang.String r4 = "content-length"
                java.lang.String r21 = r13.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r21 == 0) goto L_0x007b
                int r4 = java.lang.Integer.parseInt(r21)     // Catch:{ NumberFormatException -> 0x0264 }
                long r0 = (long) r4
                r36 = r0
            L_0x007b:
                r38 = 0
                r35 = 0
            L_0x007f:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x00a5
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 13
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 10
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 13
                if (r4 != r10) goto L_0x0139
                int r38 = r38 + 1
                byte r4 = r19[r38]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 10
                if (r4 != r10) goto L_0x0139
                r35 = 1
            L_0x00a5:
                int r38 = r38 + 1
                java.lang.String r4 = "PUT"
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x013d
                java.lang.String r4 = "upload"
                java.lang.String r10 = "bin"
                java.io.File r40 = java.io.File.createTempFile(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r40.deleteOnExit()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.FileOutputStream r24 = new java.io.FileOutputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r24
                r1 = r40
                r0.<init>(r1)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "content"
                java.lang.String r10 = r40.getAbsolutePath()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r9.put(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x00cc:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x00dd
                int r4 = r34 - r38
                r0 = r24
                r1 = r19
                r2 = r38
                r0.write(r1, r2, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x00dd:
                r0 = r38
                r1 = r34
                if (r0 >= r1) goto L_0x0143
                int r4 = r34 - r38
                int r4 = r4 + 1
                long r14 = (long) r4     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                long r36 = r36 - r14
            L_0x00ea:
                r4 = 512(0x200, float:7.175E-43)
                byte[] r0 = new byte[r4]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r19 = r0
            L_0x00f0:
                if (r34 < 0) goto L_0x0151
                r14 = 0
                int r4 = (r36 > r14 ? 1 : (r36 == r14 ? 0 : -1))
                if (r4 <= 0) goto L_0x0151
                r4 = 0
                r10 = 512(0x200, float:7.175E-43)
                r0 = r28
                r1 = r19
                int r34 = r0.read(r1, r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r34
                long r14 = (long) r0     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                long r36 = r36 - r14
                if (r34 <= 0) goto L_0x00f0
                r4 = 0
                r0 = r24
                r1 = r19
                r2 = r34
                r0.write(r1, r4, r2)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x00f0
            L_0x0115:
                r27 = move-exception
                java.lang.String r4 = "500 Internal Server Error"
                java.lang.StringBuilder r10 = new java.lang.StringBuilder     // Catch:{ Throwable -> 0x0136 }
                r10.<init>()     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r14 = "SERVER INTERNAL ERROR: IOException: "
                java.lang.StringBuilder r10 = r10.append(r14)     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r14 = r27.getMessage()     // Catch:{ Throwable -> 0x0136 }
                java.lang.StringBuilder r10 = r10.append(r14)     // Catch:{ Throwable -> 0x0136 }
                java.lang.String r10 = r10.toString()     // Catch:{ Throwable -> 0x0136 }
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ Throwable -> 0x0136 }
                goto L_0x000a
            L_0x0136:
                r4 = move-exception
                goto L_0x000a
            L_0x0139:
                int r38 = r38 + 1
                goto L_0x007f
            L_0x013d:
                java.io.ByteArrayOutputStream r24 = new java.io.ByteArrayOutputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r24.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x00cc
            L_0x0143:
                if (r35 == 0) goto L_0x014e
                r14 = 9223372036854775807(0x7fffffffffffffff, double:NaN)
                int r4 = (r36 > r14 ? 1 : (r36 == r14 ? 0 : -1))
                if (r4 != 0) goto L_0x00ea
            L_0x014e:
                r36 = 0
                goto L_0x00ea
            L_0x0151:
                java.lang.String r4 = "POST"
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x0242
                java.io.ByteArrayOutputStream r24 = (java.io.ByteArrayOutputStream) r24     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                byte[] r6 = r24.toByteArray()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.ByteArrayInputStream r17 = new java.io.ByteArrayInputStream     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r17
                r0.<init>(r6)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.BufferedReader r7 = new java.io.BufferedReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.io.InputStreamReader r4 = new java.io.InputStreamReader     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r17
                r4.<init>(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r7.<init>(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r22 = ""
                java.lang.String r4 = "content-type"
                java.lang.String r23 = r13.getProperty(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.StringTokenizer r39 = new java.util.StringTokenizer     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "; "
                r0 = r39
                r1 = r23
                r0.<init>(r1, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                boolean r4 = r39.hasMoreTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x018f
                java.lang.String r22 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x018f:
                java.lang.String r4 = "multipart/form-data"
                r0 = r22
                boolean r4 = r0.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x01f9
                boolean r4 = r39.hasMoreTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 != 0) goto L_0x01a8
                java.lang.String r4 = "400 Bad Request"
                java.lang.String r10 = "BAD REQUEST: Content type is multipart/form-data but boundary missing. Usage: GET /example/file.html"
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01a8:
                java.lang.String r18 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.util.StringTokenizer r39 = new java.util.StringTokenizer     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r4 = "="
                r0 = r39
                r1 = r18
                r0.<init>(r1, r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                int r4 = r39.countTokens()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 2
                if (r4 == r10) goto L_0x01c7
                java.lang.String r4 = "400 Bad Request"
                java.lang.String r10 = "BAD REQUEST: Content type is multipart/form-data but boundary syntax error. Usage: GET /example/file.html"
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01c7:
                r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r5 = r39.nextToken()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4 = r41
                r4.decodeMultipartData(r5, r6, r7, r8, r9)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01d3:
                r7.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01d6:
                r0 = r41
                com.google.appinventor.components.runtime.util.NanoHTTPD r10 = com.google.appinventor.components.runtime.util.NanoHTTPD.this     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                java.net.Socket r0 = r0.mySocket     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r16 = r0
                r14 = r8
                r15 = r9
                com.google.appinventor.components.runtime.util.NanoHTTPD$Response r32 = r10.serve(r11, r12, r13, r14, r15, r16)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r32 != 0) goto L_0x024e
                java.lang.String r4 = "500 Internal Server Error"
                java.lang.String r10 = "SERVER INTERNAL ERROR: Serve() returned a null response."
                r0 = r41
                r0.sendError(r4, r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x01f1:
                r28.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x000a
            L_0x01f6:
                r4 = move-exception
                goto L_0x000a
            L_0x01f9:
                java.lang.String r30 = ""
                r4 = 512(0x200, float:7.175E-43)
                char[] r0 = new char[r4]     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r29 = r0
                r0 = r29
                int r33 = r7.read(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
            L_0x0207:
                if (r33 < 0) goto L_0x0236
                java.lang.String r4 = "\r\n"
                r0 = r30
                boolean r4 = r0.endsWith(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 != 0) goto L_0x0236
                java.lang.StringBuilder r4 = new java.lang.StringBuilder     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r4.<init>()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r30
                java.lang.StringBuilder r4 = r4.append(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r10 = 0
                r0 = r29
                r1 = r33
                java.lang.String r10 = java.lang.String.valueOf(r0, r10, r1)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.StringBuilder r4 = r4.append(r10)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                java.lang.String r30 = r4.toString()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r29
                int r33 = r7.read(r0)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x0207
            L_0x0236:
                java.lang.String r30 = r30.trim()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r1 = r30
                r0.decodeParms(r1, r8)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01d3
            L_0x0242:
                java.lang.String r4 = "PUT "
                boolean r4 = r12.equalsIgnoreCase(r4)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                if (r4 == 0) goto L_0x01d6
                r24.close()     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01d6
            L_0x024e:
                r0 = r32
                java.lang.String r4 = r0.status     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.lang.String r10 = r0.mimeType     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.util.Properties r14 = r0.header     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r32
                java.io.InputStream r15 = r0.data     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                r0 = r41
                r0.sendResponse(r4, r10, r14, r15)     // Catch:{ IOException -> 0x0115, InterruptedException -> 0x01f6 }
                goto L_0x01f1
            L_0x0264:
                r4 = move-exception
                goto L_0x007b
            */ throw new UnsupportedOperationException ( "Method not decompiled: com.google.appinventor.components.runtime.util.NanoHTTPD.HTTPSession.run():void" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .