Avios
Avios copied to clipboard
VTDecompressionSessionDecodeFrame(-12902) error: kVTParamaterErr
Hello,
I'm working on a project for IP camera using Websocket (wss protocol). I am trying to decode a h.264 raw frame using avios. In the wss receive method (binary data) I found the SPS [Unit8Array(14)] and PPS [UInt8Array(4)] so I think I was receiving the correct h.264 raw format. But after that, I was having a problem with the status returned by:
VTDecompressionSessionDecodeFrame(videoSession, sampleBuffer: sampleBuffer, flags: [._EnableAsynchronousDecompression], frameRefcon: nil, infoFlagsOut: &infoFlags)
The status always return H264Error.VTDecompressionSessionDecodeFrame(-12902). I tried changing the flags but still no working. I have been reading about NAL Unit but I don't have much experience with VTDecompressionSession. I really appreciate for your kind reply.
Here is my implementation of your library:
- I create a H264Decoder in viewDidLoad
- In the socket received method, i try to decode the h.264 raw frame received.
This is where I found the SPS UInt8 array:
[103, 77, 0, 30, 149, 168, 40, 15, 105, 184, 8, 8, 8, 16]
This is where I found the PPS UInt8 array: [104, 238, 60, 128]
This is the UInt8 array I received as a h.264 raw frame:
[101, 184, 0, 0, 13, 178, 192, 61, 255, 53, 198, 74, 15, 5, 213, 161, 21, 148, 166, 113, 183, 184, 18, 116, 53, 74, 253, 60, 89, 34, 93, 45, 215, 126, 214, 196, 74, 119, 247, 56, 117, 144, 250, 139, 209, 53, 68, 128, 53, 63, 51, 237, 11, 250, 170, 123, 44, 54, 142, 187, 156, 212, 73, 206, 11, 239, 229, 20, 250, 145, 128, 181, 249, 20, 124, 115, 22, 56, 28, 22, 118, 191, 79, 37, 167, 210, 132, 50, 86, 224, 24, 145, 192, 149, 183, 205, 230, 156, 209, 183, 178, 117, 21, 4, 222, 214, 134, 143, 126, 246, 182, 189, 233, 201, 195, 194, 219, 86, 185, 160, 168, 229, 44, 131, 228, 11, 106, 79, 224, 57, 173, 139, 235, 58, 167, 166, 186, 205, 255, 119, 86, 81, 140, 92, 250, 115, 125, 245, 168, 206, 2, 252, 61, 113, 237, 177, 43, 181, 236, 98, 167, 17, 24, 234, 47, 11, 18, 210, 229, 253, 106, 104, 96, 175, 11, 27, 76, 90, 198, 248, 240, 140, 145, 1, 9, 28, 167, 17, 13, 198, 33, 93, 7, 23, 217, 204, 98, 126, 81, 247, 73, 175, 242, 252, 127, 217, 113, 125, 102, 37, 160, 255, 163, 41, 69, 32, 58, 203, 96, 199, 89, 248, 214, 250, 130, 88, 74, 104, 117, 169, 4, 24, 76, 107, 9, 166, 16, 44, 68, 231, 181, 205, 47, 67, 103, 235, 82, 143, 144, 26, 131, 181, 224, 81, 95, 84, 3, 91, 106, 22, 14, 13, 130, 127, 8, 249, 130, 95, 143, 209, 226, 184, 111, 7, 222, 35, 84, 231, 138, 250, 28, 18, 183, 245, 230, 8, 250, 142, 146, 177, 49, 127, 197, 114, 48, 107, 248, 236, 115, 142, 193, 75, 103, 50, 154, 52, 252, 30, 75, 18, 36, 56, 110, 151, 44, 80, 49, 243, 115, 152, 154, 11, 0, 138, 34, 42, 76, 15, 210, 104, 172, 230, 82, 158, 53, 128, 142, 49, 13, 122, 234, 4, 41, 145, 39, 204, 118, 191, 53, 58, 4, 180, 102, 146, 74, 189, 102, 129, 172, 111, 211, 98, 141, 183, 201, 147, 217, 74, 29, 32, 231, 187, 43, 107, 96, 192, 130, 160, 213, 115, 2, 208, 227, 67, 72, 46, 32, 81, 98, 20, 155, 186, 207, 28, 167, 144, 110, 116, 199, 208, 128, 166, 119, 195, 40, 113, 44, 99, 2, 52, 81, 229, 162, 121, 115, 61, 122, 159, 200, 99, 1, 74, 14, 199, 99, 83, 118, 27, 144, 20, 174, 144, 199, 174, 179, 92, 69, 61, 214, 106, 4, 232, 165, 36, 208, 54, 241, 186, 132, 9, 253, 177, 101, 97, 77, 55, 84, 132, 14, 208, 91, 123, 34, 99, 115, 73, 24, 91, 149, 163, 47, 206, 140, 5, 39, 118, 53, 254, 158, 69, 68, 54, 79, 130, 183, 185, 244, 214, 5, 233, 223, 178, 229, 88, 143, 45, 71, 105, 203, 226, 207, 66, 45, 34, 79, 9, 118, 168, 70, 167, 44, 49, 35, 194, 203, 65, 87, 51, 194, 102, 112, 137, 190, 80, 118, 88, 200, 53, 65, 12, 220, 143, 243, 218, 238, 3, 126, 114, 59, 113, 124, 109, 16, 116, 213, 194, 217, 234, 127, 194, 56, 17, 45, 109, 193, 238, 164, 42, 187, 243, 50, 15, 1, 112, 80, 13, 62, 213, 204, 232, 161, 52, 255, 234, 198, 29, 82, 90, 81, 203, 71, 40, 177, 144, 69, 237, 93, 170, 157, 118, 137, 53, 187, 38, 118, 138, 72, 132, 164, 238, 202, 78, 213, 65, 190, 85, 89, 211, 153, 152, 240, 26, 218, 18, 109, 35, 201, 79, 102, 192, 55, 106, 127, 181, 132, 35, 101, 79, 23, 139, 98, 233, 246, 38, 90, 149, 79, 83, 19, 98, 0, 220, 250, 67, 58, 165, 100, 68, 222, 179, 70, 149, 248, 32, 137, 133, 119, 173, 137, 216, 224, 140, 222, 64, 177, 3, 116, 63, 83, 19, 207, 139, 223, 151, 87, 116, 121, 91, 218, 235, 173, 38, 63, 131, 78, 209, 164, 108, 103, 92, 135, 182, 80, 11, 164, 17, 41, 104, 146, 20, 193, 1, 35, 122, 23, 141, 170, 134, 110, 249, 142, 212, 144, 119, 24, 55, 44, 87, 12, 85, 193, 84, 187, 20, 30, 10, 82, 161, 11, 1, 231, 21, 125, 69, 204, 238, 174, 200, 73, 202, 176, 240, 43, 212, 45, 94, 45, 232, 97, 82, 202, 250, 217, 212, 96, 165, 12, 85, 216, 133, 9, 221, 41, 82, 219, 124, 3, 140, 238, 236, 250, 11, 177, 190, 40, 163, 77, 143, 228, 21, 191, 126, 17, 168, 67, 76, 43, 161, 181, 203, 87, 13, 42, 29, 147, 52, 135, 123, 162, 137, 109, 85, 215, 238, 242, 200, 197, 28, 216, 125, 103, 29, 107, 81, 17, 128, 139, 197, 246, 100, 36, 98, 26, 35, 7, 65, 21, 143, 147, 202, 129, 55, 108, 47, 6, 125, 138, 0, 81, 61, 28, 156, 61, 55, 167, 184, 175, 237, 235, 0, 133, 200, 22, 189, 96, 40, 241, 85, 86, 113, 24, 110, 246, 99, 219, 131, 238, 107, 41, 117, 138, 16, 209, 206, 239, 209, 135, 186, 88, 161, 39, 253, 17, 152, 231, 198, 17, 173, 37, 3, 7, 31, 83, 170, 139, 232, 132, 180, 174, 103, 26, 227, 231, 175, 20, 13, 57, 248, 18, 170, 197, 9, 78, 31, 76, 169, 24, 68, 105, 219, 180, 64, 154, 1, 200, 138, 85, 137, 182, 105, 200, 185, 233, 255, 159, 30, 91, 171, 219, 124, 41, 145, 66, 71, 25, 185, 140, 188, 2, 247, 87, 44, 113, 157, 63, 65, 190, 184, 199, 182, 252, 25, 241, 186, 105, 112, 219, 47, 35, 159, 48, 43, 127, 20, 199, 80, 121, 63, 29, 30, 45, 67, 96, 176, 195, 239, 146, 112, 27, 189, 3, 55, 44, 148, 21, 205, 115, 208, 58, 41, 216, 117, 175, 251, 88, 58, 133, 203, 74, 72, 218, 99, 57, 8, 106, 215, 124, 252, 111, 143, 63, 142, 185, 197, 50, 76, 43, 185, 106, 57, 80, 61, 122, 55, 253, 75, 166, 46, 31, 88, 108, 236, 128, 245, 14, 20, 120, 56, 64, 114, 206, 239, 218, 202, 15, 153, 43, 237, 199, 190, 231, 178, 141, 249, 0, 222, 61, 57, 139, 18, 159, 18, 44, 91, 44, 113, 236, 26, 121, 196, 10, 38, 104, 226, 231, 55, 150, 202, 47, 7, 40, 158, 160, 216, 203, 238, 201, 87, 155, 14, 107, 48, 48, 162, 136, 63, 153, 217, 161, 170, 202, 62, 3, 220, 118, 75, 78, 142, 91, 55, 93, 144, 24, 32, 84, 194, 92, 149, 51, 170, 83, 131, 118, 112, 82, 94, 98, 209, 216, 29, 0, 175, 232, 182, 254, 178, 95, 177, 145, 200, 178, 142, 8, 210, 222, 72, 224, 70, 160, 6, 167, 250, 213, 244, 194, 109, 30, 132, 42, 219, 144, 18, 213, 18, 53, 241, 12, 246, 221, 121, 95, 168, 152, 253, 58, 253, 246, 74, 29, 181, 170, 192, 210, 248, 240, 22, 79, 228, 189, 193, 43, 232, 172, 238, 233, 140, 101, 122, 145, 142, 146, 174, 135, 80, 58, 29, 207, 95, 185, 73, 2, 252, 203, 42, 200, 216, 25, 9, 7, 252, 205, 4, 0, 51, 167, 21, 27, 168, 35, 68, 96, 6, 14, 64, 221, 171, 77, 228, 234, 185, 12, 185, 126, 54, 180, 65, 10, 34, 194, 133, 197, 186, 174, 139, 129, 138, 255, 95, 173, 195, 168, 62, 191, 244, 47, 113, 237, 133, 155, 238, 218, 145, 131, 179, 0, 228, 233, 63, 13, 19, 4, 227, 40, 12, 178, 16, 78, 208, 157, 253, 73, 118, 172, 48, 237, 221, 151, 232, 175, 227, 1, 66, 161, 21, 112, 241, 43, 86, 37, 135, 126, 236, 247, 147, 22, 68, 127, 1, 192, 204, 248, 22, 108, 194, 140, 170, 88, 226, 107, 185, 247, 247, 84, 100, 44, 132, 137, 33, 153, 127, 165, 148, 118, 206, 210, 213, 229, 226, 68, 239, 2, 55, 134, 227, 229, 242, 193, 74, 178, 196, 39, 92, 84, 147, 248, 91, 32, 119, 87, 87, 32, 152, 219, 63, 19, 186, 154, 195, 208, 188, 94, 142, 144, 43, 247, 235, 26, 160, 229, 244, 85, 255, 19, 25, 43, 58, 83, 135, 89, 71, 116, 21, 113, 36, 79, 230, 130, 120, 106, 18, 208, 5, 72, 184, 23, 143, 50, 219, 228, 162, 111, 61, 215, 66, 121, 185, 136, 187, 168, 225, 166, 29, 198, 54, 106, 35, 208, 148, 232, 229, 207, 107, 244, 236, 188, 232, 235, 180, 218, 1, 127, 211, 38, 233, 110, 108, 115, 228, 78, 35, 131, 174, 2, 149, 167, 45, 184, 192, 70, 199, 37, 26, 107, 115, 210, 134, 239, 249, 197, 195, 124, 122, 3, 229, 14, 207, 28, 253, 60, 89, 103, 7, 23, 96, 114, 140, 226, 227, 79, 248, 163, 59, 118, 133, 32, 157, 65, 225, 114, 139, 190, 210, 24, 5, 58, 137, 46, 68, 52, 126, 20, 139, 237, 114, 252, 37, 9, 174, 113, 239, 193, 225, 170, 12, 216, 174, 192, 208, 233, 108, 106, 172, 198, 64, 202, 54, 246, 60, 180, 214, 4, 72, 167, 88, 139, 64, 69, 161, 16, 166, 98, 122, 106, 181, 104, 248, 152, 153, 222, 206, 223, 98, 3, 177, 164, 209, 58, 251, 241, 8, 144, 140, 164, 197, 103, 240, 4, 210, 48, 159, 87, 213, 164, 14, 127, 82, 235, 205, 248, 22, 149, 131, 95, 6, 160, 145, 119, 101, 185, 86, 69, 40, 78, 238, 91, 19, 135, 45, 228, 98, 164, 245, 61, 15, 109, 60, 142, 145, 99, 185, 24, 103, 54, 152, 1, 191, 1, 157, 139, 208, 193, 210, 223, 5, 245, 235, 201, 149, 28, 42, 224, 1, 254, 204, 94, 194, 88, 203, 90, 182, 106, 50, 132, 22, 3, 148, 94, 143, 248, 127, 35, 80, 10, 157, 66, 218, 204, 187, 73, 95, 55, 120, 114, 185, 246, 108, 107, 131, 106, 193, 5, 215, 239, 252, 182, 53, 16, 6, 165, 49, 41, 111, 53, 227, 186, 184, 208, 148, 33, 10, 178, 132, 194, 130, 108, 167, 228, 33, 144, 54, 59, 236, 104, 175, 125, 206, 89, 62, 109, 146, 173, 240, 149, 151, 59, 32, 100, 101, 145, 30, 131, 219, 150, 6, 140, 171, 75, 3, 110, 54, 246, 158, 147, 102, 135, 79, 188, 140, 223, 143, 235, 90, 255, 23, 97, 94, 154, 121, 64, 216, 9, 179, 0, 132, 151, 47, 90, 33, 175, 221, 234, 154, 215, 251, 79, 160, 94, 222, 205, 100, 85, 112, 71, 72, 100, 64, 107, 190, 100, 91, 158, 128, 252, 139, 144, 15, 17, 54, 24, 14, 63, 101, 30, 190, 18, 171, 128, 143, 177, 155, 201, 244, 63, 177, 175, 235, 188, 41, 96, 14, 41, 165, 160, 187, 245, 160, 4, 99, 254, 92, 71, 238, 132, 139, 63, 228, 73, 208, 151, 98, 205, 140, 208, 28, 3, 200, 22, 34, 237, 14, 204, 38, 40, 98, 92, 166, 254, 179, 220, 162, 4, 156, 204, 17, 120, 92, 112, 78, 184, 123, 65, 21, 238, 213, 55, 10, 222, 50, 109, 110, 191, 71, 245, 59, 179, 252, 39, 9, 244, 139, 154, 180, 183, 185, 117, 227, 231, 234, 208, 1, 114, 64, 95, 175, 181, 92, 211, 252, 250, 198, 12, 246, 129, 168, 194, 119, 135, 25, 48, 5, 45, 104, 121, 105, 185, 108, 243, 231, 117, 45, 147, 75, 198, 133, 157, 180, 97, 43, 38, 55, 20, 91, 169, 154, 53, 82, 211, 173, 91, 79, 165, 1, 109, 157, 45, 55, 209, 71, 49, 255, 71, 215, 179, 249, 255, 201, 82, 247, 129, 255, 9, 38, 50, 71, 97, 182, 80, 132, 187, 189, 1, 195, 242, 1, 132, 136, 15, 206, 202, 204, 236, 12, 182, 245, 167, 177, 166, 117, 165, 238, 210, 84, 203, 64, 250, 136, 75, 235, 78, 96, 161, 245, 74, 25, 66, 49, 21, 165, 2, 141, 99, 210, 11, 90, 90, 119, 28, 208, 69, 186, 76, 50, 221, 45, 146, 123, 147, 199, 224, 192, 94, 118, 208, 235, 111, 247, 197, 88, 48, 198, 145, 139, 56, 8, 150, 13, 70, 145, 163, 85, 73, 113, 252, 228, 40, 31, 63, 220, 141, 31, 65, 242, 170, 92, 56, 206, 213, 93, 144, 157, 125, 158, 124, 123, 101, 161, 162, 191, 215, 165, 107, 233, 145, 98, 49, 239, 102, 130, 104, 189, 22, 173, 173, 229, 49, 209, 27, 19, 65, 47, 116, 98, 109, 4, 15, 225, 48, 115, 44, 170, 47, 193, 243, 55, 23, 236, 201, 57, 206, 58, 184, 235, 12, 101, 202, 151, 1, 96, 202, 119, 255, 153, 80, 85, 221, 159, 80, 99, 200, 210, 169, 132, 200, 245, 196, 66, 73, 201, 240, 27, 12, 184, 163, 236, 132, 130, 221, 132, 104, 170, 94, 185, 28, 30, 32, 123, 167, 45, 227, 93, 117, 231, 97, 232, 165, 188, 152, 208, 42, 197, 83, 46, 1, 44, 84, 229, 116, 84, 221, 96, 4, 144, 2, 142, 87, 157, 206, 41, 143, 42, 226, 32, 143, 195, 173, 107, 27, 196, 150, 164, 238, 186, 252, 56, 208, 135, 52, 19, 151, 149, 59, 220, 99, 193, 117, 49, 234, 100, 114, 57, 88, 162, 154, 111, 238, 56, 125, 62, 94, 206, 252, 99, 41, 238, 148, 150, 119, 171, 240, 173, 93, 50, 151, 225, 165, 74, 58, 117, 244, 69, 190, 239, 212, 236, 231, 181, 164, 5, 30, 43, 16, 220, 198, 117, 91, 235, 6, 119, 133, 180, 42, 9, 142, 189, 205, 103, 208, 105, 34, 66, 17, 119, 5, 158, 125, 182, 203, 135, 83, 29, 101, 94, 79, 186, 47, 105, 229, 104, 65, 111, 180, 2, 91, 39, 37, 114, 90, 235, 84, 110, 71, 134, 44, 177, 146, 96, 255, 238, 195, 198, 81, 114, 208, 236, 32, 136, 74, 67, 138, 154, 196, 145, 97, 255, 73, 76, 171, 205, 28, 184, 245, 229, 242, 115, 109, 79, 253, 127, 228, 145, 34, 41, 211, 108, 56, 91, 199, 162, 194, 113, 235, 247, 181, 155, 65, 111, 27, 17, 40, 90, 177, 162, 156, 174, 247, 195, 85, 178, 125, 169, 249, 61, 187, 33, 79, 60, 58, 128, 59, 97, 163, 102, 67, 131, 36, 224, 147, 202, 176, 45, 59, 78, 158, 99, 0, 208, 110, 226, 218, 40, 93, 181, 34, 149, 171, 184, 125, 113, 64, 27, 14, 179, 82, 177, 181, 12, 194, 226, 20, 31, 96, 251, 30, 159, 71, 106, 232, 255, 170, 249, 247, 30, 189, 77, 95, 16, 5, 91, 75, 254, 194, 56, 1, 3, 45, 238, 19, 61, 197, 36, 219, 195, 212, 82, 151, 43, 90, 183, 240, 124, 31, 85, 226, 226, 84, 220, 79, 194, 206, 29, 128, 147, 52, 148, 130, 18, 173, 89, 19, 57, 154, 41, 223, 100, 177, 98, 87, 59, 176, 226, 93, 244, 181, 12, 152, 215, 49, 185, 65, 178, 133, 181, 113, 175, 164, 14, 8, 87, 238, 219, 221, 61, 150, 241, 226, 192, 242, 35, 208, 93, 239, 175, 195, 152, 202, 45, 185, 147, 252, 243, 205, 58, 141, 11, 127, 135, 33, 34, 11, 97, 75, 97, 28, 116, 109, 185, 242, 189, 90, 168, 152, 97, 127, 8, 137, 175, 116, 222, 172, 28, 254, 52, 0, 75, 169, 222, 9, 66, 144, 223, 124, 84, 11, 104, 39, 124, 243, 196, 67, 134, 38, 197, 82, 68, 35, 230, 147, 181, 43, 42, 110, 191, 199, 36, 24, 217, 170, 149, 173, 244, 177, 149, 149, 255, 193, 160, 51, 105, 43, 112, 173, 178, 34, 115, 146, 220, 252, 80, 168, 215, 132, 191, 185, 73, 140, 51, 105, 100, 170, 101, 110, 199, 176, 47, 231, 127, 125, 252, 169, 219, 220, 201, 154, 228, 128, 223, 77, 28, 140, 230, 95, 12, 247, 42, 143, 188, 184, 183, 103, 22, 66, 132, 94, 220, 251, 127, 212, 231, 227, 28, 213, 232, 16, 238, 33, 179, 81, 20, 217, 147, 64, 157, 122, 85, 212, 104, 204, 194, 180, 123, 160, 138, 216, 162, 63, 70, 15, 140, 120, 123, 146, 118, 85, 83, 248, 210, 11, 144, 239, 49, 240, 78, 158, 61, 214, 190, 189, 39, 179, 225, 82, 152, 218, 243, 17, 233, 225, 10, 152, 173, 62, 206, 126, 241, 55, 199, 251, 48, 252, 227, 104, 26, 102, 216, 241, 202, 248, 176, 80, 72, 16, 147, 222, 133, 190, 9, 205, 230, 84, 29, 202, 216, 152, 192, 241, 228, 248, 186, 250, 183, 96, 130, 149, 67, 122, 43, 114, 168, 223, 158, 102, 154, 61, 236, 143, 89, 26, 157, 161, 145, 44, 62, 46, 7, 240, 122, 239, 60, 178, 105, 190, 198, 59, 68, 238, 228, 66, 89, 191, 61, 48, 27, 125, 211, 232, 8, 67, 243, 30, 146, 145, 71, 136, 229, 198, 42, 21, 240, 134, 73, 71, 217, 215, 4, 23, 239, 105, 185, 156, 13, 124, 6, 154, 172, 77, 237, 56, 67, 187, 55, 84, 52, 96, 136, 77, 154, 115, 149, 252, 153, 181, 220, 224, 93, 189, 19, 104, 209, 248, 204, 41, 57, 225, 202, 130, 148, 167, 196, 118, 48, 166, 66, 95, 84, 72, 156, 103, 20, 242, 242, 136, 244, 54, 240, 136, 29, 231, 215, 240, 122, 130, 168, 211, 19, 161, 146, 82, 119, 98, 105, 141, 11, 29, 105, 248, 230, 53, 159, 254, 206, 197, 166, 169, 147, 83, 162, 32, 234, 38, 109, 180, 176, 163, 129, 51, 250, 200, 154, 196, 113, 167, 245, 245, 225, 92, 86, 122, 209, 217, 133, 30, 220, 23, 29, 107, 188, 21, 86, 33, 252, 185, 199, 237, 108, 171, 183, 88, 30, 54, 180, 62, 80, 253, 166, 190, 84, 51, 95, 133, 171, 77, 237, 150, 99, 95, 135, 20, 182, 113, 210, 169, 80, 199, 64, 217, 139, 114, 186, 124, 21, 54, 4, 182, 50, 80, 54, 190, 219, 89, 242, 41, 175, 86, 191, 136, 86, 10, 214, 21, 192, 176, 110, 23, 166, 239, 150, 134, 29, 234, 25, 116, 214, 205, 186, 166, 146, 217, 121, 167, 93, 194, 89, 113, 184, 245, 52, 157, 253, 170, 204, 73, 116, 180, 121, 30, 214, 237, 133, 135, 69, 101, 105, 13, 89, 14, 84, 202, 182, 216, 103, 133, 62, 233, 30, 194, 161, 129, 108, 211, 225, 0, 9, 179, 208, 195, 70, 166, 137, 170, 95, 8, 85, 216, 133, 208, 169, 198, 160, 181, 195, 171, 107, 161, 218, 214, 43, 54, 8, 233, 19, 130, 233, 242, 196, 227, 23, 138, 119, 233, 33, 202, 26, 217, 133, 45, 167, 47, 152, 193, 65, 210, 203, 223, 116, 237, 180, 158, 229, 70, 104, 98, 251, 64, 3, 149, 88, 25, 162, 75, 123, 153, 195, 91, 254, 18, 85, 194, 31, 132, 99, 92, 175, 1, 254, 2, 66, 179, 12, 172, 176, 77, 83, 45, 217, 58, 198, 30, 101, 175, 92, 106, 89, 145, 218, 41, 251, 123, 76, 207, 51, 34, 176, 29, 207, 198, 82, 244, 138, 3, 122, 253, 194, 145, 198, 174, 140, 3, 253, 170, 36, 11, 174, 214, 98, 48, 89, 85, 219, 103, 205, 137, 162, 78, 136, 81, 244, 133, 241, 124, 132, 94, 185, 207, 191, 50, 214, 89, 110, 161, 240, 233, 121, 176, 1, 249, 127, 153, 114, 181, 72, 238, 150, 166, 43, 110, 176, 174, 76, 4, 138, 120, 249, 25, 31, 234, 5, 58, 209, 216, 93, 108, 151, 51, 98, 136, 126, 223, 4, 99, 160, 96, 97, 140, 219, 40, 229, 41, 212, 41, 47, 44, 24, 223, 41, 70, 226, 158, 237, 49, 248, 97, 164, 190, 14, 121, 62, 221, 142, 186, 73, 159, 160, 207, 190, 226, 128, 236, 205, 46, 110, 150, 245, 213, 71, 237, 105, 186, 67, 55, 49, 124, 30, 210, 208, 104, 71, 227, 173, 223, 75, 87, 10, 17, 230, 58, 8, 191, 75, 246, 207, 229, 42, 8, 48, 59, 218, 41, 218, 147, 22, 223, 187, 119, 243, 66, 191, 153, 108, 119, 179, 105, 76, 48, 121, 71, 80, 115, 186, 165, 179, 248, 203, 32, 148, 210, 135, 60, 144, 57, 151, 169, 137, 228, 147, 70, 200, 216, 181, 37, 200, 29, 136, 152, 143, 178, 99, 160, 67, 194, 75, 130, 227, 49, 30, 108, 126, 12, 249, 79, 249, 144, 249, 251, 157, 22, 190, 208, 211, 97, 203, 181, 69, 148, 185, 20, 239, 111, 16, 57, 242, 225, 254, 19, 8, 49, 138, 250, 40, 55, 86, 169, 166, 118, 88, 126, 237, 219, 148, 174, 132, 242, 133, 235, 37, 39, 109, 251, 164, 95, 130, 80, 224, 224, 255, 147, 119, 102, 100, 227, 187, 152, 233, 176, 88, 171, 13, 118, 44, 19, 238, 192, 28, 102, 172, 143, 123, 54, 102, 187, 12, 20, 231, 182, 41, 64, 3, 149, 110, 181, 137, 68, 237, 67, 71, 219, 216, 9, 218, 147, 60, 204, 153, 12, 134, 125, 224, 235, 147, 130, 215, 50, 184, 188, 164, 91, 214, 99, 165, 114, 9, 130, 88, 102, 57, 28, 19, 224, 50, 209, 203, 32, 74, 32, 100, 148, 233, 141, 44, 98, 218, 233, 132, 125, 181, 47, 108, 32, 81, 13, 211, 191, 211, 161, 242, 247, 67, 96, 209, 19, 228, 161, 77, 70, 95, 70, 214, 181, 105, 114, 87, 192, 239, 173, 90, 46, 86, 117, 165, 202, 59, 33, 110, 65, 54, 192, 87, 81, 29, 254, 170, 247, 122, 15, 246, 117, 33, 47, 196, 198, 215, 86, 176, 88, 212, 118, 96, 89, 177, 225, 93, 132, 177, 224, 15, 99, 228, 82, 235, 184, 19, 29, 61, 230, 194, 175, 90, 73, 161, 140, 117, 71, 107, 73, 174, 113, 15, 158, 65, 254, 234, 219, 78, 158, 93, 48, 222, 24, 26, 57, 105, 129, 63, 142, 136, 41, 137, 52, 143, 237, 86, 156, 103, 26, 55, 236, 1, 208, 182, 109, 156, 245, 229, 218, 240, 101, 102, 39, 164, 103, 31, 97, 11, 35, 86, 215, 57, 123, 183, 143, 249, 55, 183, 230, 92, 171, 191, 142, 193, 89, 14, 12, 13, 130, 192, 41, 33, 75, 80, 10, 214, 161, 106, 194, 32, 132, 182, 98, 176, 101, 219, 201, 120, 216, 218, 51, 247, 236, 67, 230, 121, 181, 147, 6, 218, 127, 254, 30, 155, 173, 79, 130, 118, 184, 149, 251, 70, 161, 250, 200, 92, 1, 123, 89, 65, 241, 163, 204, 125, 65, 69, 100, 86, 168, 93, 79, 202, 75, 121, 135, 185, 48, 152, 139, 11, 139, 59, 136, 132, 241, 29, 119, 61, 167, 159, 111, 146, 14, 38, 11, 211, 108, 57, 216, 147, 77, 246, 142, 106, 14, 170, 202, 39, 250, 105, 138, 165, 191, 33, 133, 141, 102, 112, 164, 95, 22, 156, 255, 37, 143, 204, 164, 9, 132, 37, 34, 206, 69, 28, 45, 190, 90, 66, 207, 157, 100, 12, 98, 132, 1, 12, 32, 192, 82, 192, 184, 28, 91, 53, 180, 56, 67, 180, 127, 241, 193, 120, 254, 178, 143, 169, 89, 237, 45, 74, 201, 225, 255, 240, 56, 7, 30, 222, 164, 105, 55, 46, 252, 173, 254, 87, 186, 134, 139, 136, 149, 189, 113, 49, 230, 149, 19, 11, 2, 89, 211, 66, 239, 47, 11, 106, 240, 131, 160, 254, 39, 204, 12, 113, 86, 114, 122, 145, 196, 175, 24, 59, 140, 69, 22, 115, 28, 96, 140, 176, 187, 246, 251, 106, 210, 73, 252, 254, 126, 161, 29, 85, 241, 171, 0, 63, 4, 191, 103, 247, 112, 42, 158, 250, 20, 165, 109, 60, 180, 141, 173, 236, 240, 61, 249, 181, 193, 157, 230, 255, 36, 248, 220, 19, 214, 204, 167, 114, 29, 31, 249, 198, 139, 2, 201, 227, 27, 30, 14, 230, 166, 163, 228, 185, 98, 180, 244, 33, 39, 55, 21, 138, 1, 103, 249, 214, 19, 185, 228, 113, 159, 51, 95, 167, 4, 7, 37, 115, 157, 242, 53, 200, 22, 211, 116, 10, 164, 7, 107, 139, 66, 130, 4, 184, 233, 142, 190, 195, 196, 10, 59, 14, 19, 161, 142, 138, 11, 117, 26, 192, 120, 105, 120, 29, 74, 212, 59, 225, 11, 30, 18, 62, 27, 29, 27, 29, 35, 72, 68, 65, 151, 193, 222, 40, 252, 25, 50, 70, 140, 53, 116, 124, 176, 50, 13, 16, 155, 7, 5, 49, 97, 180, 33, 126, 247, 51, 143, 144, 14, 12, 242, 121, 73, 42, 116, 214, 218, 209, 234, 209, 126, 73, 191, 144, 59, 206, 160, 75, 28, 27, 75, 239, 7, 205, 49, 10, 23, 37, 222, 184, 40, 83, 1, 148, 64, 211, 66, 116, 192, 71, 15, 127, 189, 169, 134, 127, 199, 117, 67, 43, 108, 241, 209, 143, 207, 31, 157, 20, 206, 121, 178, 8, 161, 13, 147, 70, 163, 217, 210, 234, 245, 31, 21, 54, 193, 88, 107, 65, 199, 177, 114, 211, 74, 107, 107, 194, 170, 87, 169, 160, 98, 224, 253, 158, 73, 209, 144, 101, 43, 11, 223, 198, 153, 229, 230, 6, 234, 42, 6, 59, 4, 229, 194, 157, 25, 93, 69, 0, 18, 218, 36, 152, 38, 238, 235, 161, 150, 151, 155, 49, 168, 172, 157, 137, 165, 65, 4, 132, 158, 227, 104, 236, 242, 219, 30, 253, 84, 30, 130, 87, 40, 232, 230, 14, 68, 214, 75, 237, 161, 40, 61, 77, 65, 192, 11, 253, 154, 12, 63, 189, 254, 31, 153, 215, 40, 183, 17, 175, 218, 222, 118, 164, 193, 7, 223, 250, 156, 49, 183, 209, 193, 3, 112, 177, 184, 74, 140, 236, 120, 19, 89, 111, 88, 243, 211, 12, 166, 225, 219, 97, 228, 116, 192, 67, 183, 200, 104, 229, 44, 116, 208, 196, 2, 239, 98, 129, 134, 223, 19, 117, 109, 184, 22, 70, 181, 58, 152, 252, 205, 221, 120, 88, 165, 108, 222, 67, 80, 13, 96, 114, 99, 34, 166, 12, 102, 54, 93, 119, 73, 5, 51, 219, 225, 164, 3, 91, 1, 74, 217, 9, 185, 104, 109, 15, 220, 187, 140, 197, 176, 91, 147, 170, 0, 111, 232, 111, 246, 47, 229, 167, 156, 94, 144, 34, 233, 220, 21, 64, 247, 120, 39, 78, 14, 108, 118, 8, 22, 232, 70, 116, 91, 188, 139, 46, 3, 131, 208, 1, 66, 3, 205, 209, 31, 174, 6, 17, 130, 121, 205, 42, 28, 246, 181, 98, 83, 156, 226, 8, 50, 133, 184, 135, 145, 94, 132, 36, 146, 107, 84, 95, 255, 50, 240, 32, 243, 62, 239, 25, 209, 125, 159, 20, 165, 37, 14, 177, 133, 4, 54, 52, 57, 202, 83, 37, 61, 145, 6, 166, 22, 89, 123, 240, 242, 10, 163, 99, 90, 247, 218, 32, 141, 173, 138, 30, 109, 205, 123, 118, 203, 153, 95, 27, 8, 49, 15, 10, 145, 76, 200, 129, 144, 243, 247, 87, 94, 74, 244, 153, 251, 164, 214, 9, 226, 197, 247, 69, 85, 29, 241, 80, 34, 34, 114, 90, 11, 170, 214, 180, 69, 93, 116, 254, 11, 211, 153, 250, 53, 137, 246, 33, 53, 14, 117, 22, 159, 183, 85, 23, 9, 138, 83, 66, 129, 238, 110, 241, 31, 232, 93, 84, 31, 216, 114, 142, 34, 253, 193, 119, 76, 12, 37, 12, 131, 20, 3, 146, 8, 249, 222, 79, 162, 254, 45, 210, 12, 38, 83, 164, 55, 2, 8, 68, 149, 9, 81, 223, 139, 231, 175, 231, 74, 87, 31, 81, 77, 212, 107, 223, 147, 9, 222, 192, 211, 33, 226, 216, 223, 40, 131, 12, 16, 39, 0, 63, 105, 75, 63, 64, 183, 4, 31, 56, 208, 19, 174, 169, 183, 80, 57, 44, 166, 0, 120, 164, 170, 32, 185, 185, 251, 101, 252, 26, 90, 161, 243, 192, 74, 225, 152, 140, 32, 14, 185, 73, 97, 255, 148, 183, 182, 139, 34, 55, 181, 246, 207, 120, 27, 35, 240, 33, 150, 2, 230, 139, 154, 53, 93, 55, 240, 58, 88, 174, 233, 229, 176, 173, 40, 172, 206, 91, 126, 92, 127, 15, 24, 134, 203, 7, 125, 161, 169, 57, 21, 73, 231, 64, 161, 43, 76, 38, 132, 114, 249, 46, 119, 14, 110, 84, 71, 31, 215, 81, 84, 205, 15, 51, 235, 177, 113, 161, 196, 28, 131, 105, 33, 47, 211, 67, 113, 89, 136, 147, 62, 164, 125, 103, 192, 202, 108, 213, 63, 77, 164, 9, 137, 80, 15, 237, 243, 185, 63, 36, 101, 251, 132, 94, 112, 211, 119, 88, 222, 206, 129, 19, 110, 183, 190, 117, 205, 18, 237, 245, 195, 234, 5, 12, 195, 24, 190, 205, 235, 101, 95, 246, 223, 177, 84, 22, 212, 76, 25, 226, 242, 149, 37, 211, 120, 42, 18, 49, 12, 227, 167, 40, 34, 104, 142, 237, 215, 253, 72, 219, 148, 10, 156, 102, 99, 146, 244, 253, 113, 169, 47, 201, 215, 107, 140, 196, 159, 16, 110, 168, 198, 0, 1, 131, 232, 222, 248, 4, 39, 107, 19, 111, 120, 83, 205, 109, 62, 152, 114, 125, 158, 116, 233, 233, 75, 15, 110, 14, 7, 232, 135, 31, 131, 226, 160, 232, 59, 117, 200, 201, 178, 78, 5, 196, 130, 61, 58, 48, 41, 156, 208, 83, 159, 5, 184, 159, 138, 129, 72, 83, 213, 85, 39, 65, 173, 232, 162, 202, 184, 69, 9, 40, 207, 247, 77, 125, 251, 126, 188, 0, 248, 72, 19, 179, 243, 172, 107, 81, 50, 207, 215, 78, 184, 162, 210, 65, 56, 237, 75, 130, 233, 117, 215, 28, 163, 10, 131, 223, 194, 13, 77, 253, 25, 201, 172, 76, 69, 155, 93, 125, 182, 140, 127, 220, 152, 0, 245, 192, 96, 153, 202, 67, 234, 13, 246, 251, 223, 17, 219, 253, 180, 34, 42, 62, 220, 2, 16, 114, 200, 88, 149, 188, 144, 84, 27, 185, 236, 65, 45, 60, 229, 179, 48, 0, 5, 102, 106, 7, 148, 96, 57, 48, 71, 184, 58, 11, 10, 82, 6, 46, 38, 85, 142, 189, 128, 106, 119, 109, 102, 13, 112, 243, 150, 140, 153, 96, 253, 142, 196, 127, 173, 19, 77, 119, 136, 46, 154, 49, 214, 226, 70, 118, 154, 102, 182, 153, 253, 122, 101, 220, 132, 6, 168, 27, 97, 146, 65, 140, 100, 162, 166, 192, 180, 48, 200, 232, 75, 241, 162, 31, 209, 81, 162, 125, 183, 112, 224, 191, 139, 153, 172, 23, 131, 104, 108, 115, 79, 207, 56, 38, 211, 214, 20, 157, 246, 217, 11, 99, 70, 122, 5, 90, 149, 169, 239, 24, 23, 223, 196, 139, 29, 236, 40, 192, 68, 2, 152, 145, 247, 2, 137, 20, 102, 110, 154, 21, 215, 161, 132, 23, 83, 118, 216, 54, 52, 21, 106, 180, 220, 177, 134, 10, 1, 12, 77, 242, 65, 108, 87, 6, 121, 107, 71, 39, 49, 116, 96, 61, 21, 113, 233, 143, 118, 12, 144, 74, 116, 190, 3, 62, 86, 33, 151, 180, 237, 146, 28, 178, 15, 20, 66, 85, 143, 69, 32, 132, 220, 52, 125, 147, 122, 221, 139, 230, 252, 167, 75, 241, 57, 217, 211, 93, 34, 53, 124, 102, 137, 76, 170, 54, 216, 56, 195, 111, 251, 252, 201, 53, 67, 200, 4, 31, 130, 51, 111, 66, 195, 21, 119, 155, 126, 107, 140, 202, 138, 218, 254, 99, 160, 210, 196, 43, 240, 137, 179, 217, 230, 10, 244, 228, 119, 62, 206, 11, 63, 205, 167, 167, 223, 112, 231, 65, 80, 195, 180, 253, 252, 18, 146, 224, 91, 231, 94, 2, 223, 244, 123, 93, 247, 58, 167, 141, 210, 47, 84, 146, 202, 186, 221, 194, 175, 247, 102, 88, 245, 213, 127, 47, 148, 194, 62, 83, 0, 110, 46, 129, 207, 123, 9, 225, 248, 142, 157, 198, 245, 6, 37, 68, 84, 15, 180, 209, 116, 131, 184, 67, 100, 126, 174, 152, 78, 217, 75, 213, 14, 10, 37, 122, 175, 109, 177, 80, 175, 232, 23, 38, 67, 56, 229, 81, 4, 240, 225, 144, 68, 48, 216, 243, 179, 127, 107, 193, 142, 118, 2, 247, 185, 40, 65, 88, 203, 79, 86, 177, 97, 248, 9, 129, 105, 57, 50, 207, 41, 65, 48, 190, 202, 177, 8, 127, 66, 220, 235, 253, 253, 243, 128, 10, 50, 113, 184, 140, 37, 215, 36, 94, 187, 113, 45, 110, 181, 111, 106, 6, 134, 195, 253, 45, 197, 93, 16, 203, 192, 78, 140, 0, 226, 244, 99, 176, 242, 246, 108, 106, 213, 155, 209, 22, 255, 169, 143, 139, 121, 121, 26, 194, 54, 128, 140, 136, 237, 77, 59, 155, 217, 30, 210, 110, 168, 139, 49, 160, 204, 182, 115, 101, 17, 55, 48, 192, 1, 194, 218, 224, 177, 209, 146, 108, 50, 169, 46, 111, 57, 65, 242, 142, 183, 67, 20, 20, 167, 49, 147, 197, 100, 173, 183, 180, 191, 41, 214, 182, 94, 152, 39, 131, 239, 89, 68, 178, 125, 8, 20, 64, 162, 157, 126, 168, 124, 139, 63, 152, 201, 16, 45, 225, 185, 231, 176, 84, 65, 71, 24, 178, 3, 77, 178, 233, 23, 171, 44, 108, 211, 15, 87, 146, 186, 45, 32, 237, 206, 132, 239, 249, 88, 96, 159, 78, 63, 24, 246, 124, 116, 240, 217, 132, 253, 71, 65, 39, 43, 96, 208, 103, 17, 157, 245, 199, 172, 116, 172, 5, 184, 25, 223, 89, 193, 105, 248, 77, 144, 129, 97, 230, 144, 20, 104, 79, 244, 241, 208, 217, 131, 183, 240, 190, 234, 153, 55, 80, 113, 23, 255, 67, 58, 154, 125, 67, 139, 74, 51, 240, 169, 211, 199, 172, 24, 184, 248, 248, 161, 228, 78, 147, 222, 219, 133, 15, 174, 212, 205, 111, 149, 37, 24, 207, 245, 181, 187, 124, 206, 83, 3, 75, 145, 250, 176, 246, 104, 250, 137, 29, 39, 146, 189, 180, 171, 94, 76, 22, 168, 148, 142, 190, 43, 244, 98, 235, 179, 191, 134, 109, 90, 207, 110, 145, 151, 215, 152, 13, 248, 141, 134, 226, 241, 255, 233, 224, 202, 250, 72, 87, 21, 161, 170, 102, 153, 50, 87, 97, 113, 7, 152, 69, 228, 207, 62, 199, 141, 242, 196, 141, 74, 80, 105, 137, 46, 222, 74, 207, 204, 212, 138, 225, 85, 128, 253, 171, 38, 191, 113, 243, 95, 87, 152, 95, 55, 26, 246, 154, 201, 108, 26, 138, 217, 217, 32, 195, 238, 172, 97, 216, 234, 100, 246, 98, 96, 85, 121, 37, 104, 201, 217, 111, 91, 4, 23, 50, 174, 147, 166, 110, 164, 23, 100, 117, 179, 251, 193, 33, 227, 190, 93, 194, 129, 221, 115, 207, 126, 91, 196, 18, 158, 248, 69, 34, 121, 99, 225, 198, 213, 116, 53, 233, 165, 49, 60, 180, 238, 94, 143, 146, 47, 4, 191, 127, 137, 241, 54, 64, 114, 66, 196, 68, 75, 187, 225, 168, 123, 5, 231, 37, 243, 48, 241, 240, 29, 249, 19, 5, 24, 112, 51, 102, 54, 33, 85, 225, 12, 241, 2, 73, 51, 125, 240, 213, 120, 153, 197, 245, 204, 218, 59, 168, 226, 194, 54, 211, 63, 170, 66, 53, 159, 36, 226, 246, 192, 179, 26, 118, 163, 222, 99, 41, 251, 105, 49, 239, 249, 161, 204, 217, 78, 245, 53, 252, 230, 253, 44, 14, 176, 91, 245, 124, 167, 166, 178, 218, 153, 95, 29, 121, 200, 136, 81, 199, 228, 38, 70, 70, 177, 187, 34, 183, 180, 69, 40, 250, 185, 203, 232, 79, 244, 94, 190, 219, 128, 5, 101, 22, 53, 249, 94, 138, 28, 220, 154, 131, 246, 99, 252, 115, 44, 94, 101, 147, 228, 44, 179, 103, 186, 150, 238, 227, 96, 17, 180, 133, 28, 43, 161, 177, 176, 217, 31, 156, 209, 197, 82, 17, 249, 5, 73, 196, 161, 8, 231, 195, 76, 219, 79, 211, 98, 7, 215, 179, 91, 44, 12, 62, 144, 94, 76, 191, 93, 149, 216, 133, 146, 246, 150, 233, 58, 18, 18, 245, 85, 171, 112, 163, 107, 3, 89, 86, 23, 169, 190, 67, 11, 247, 99, 64, 183, 22, 25, 170, 107, 244, 193, 36, 182, 189, 50, 150, 9, 116, 107, 71, 169, 13, 70, 68, 25, 94, 213, 218, 22, 122, 142, 246, 251, 174, 209, 90, 244, 28, 4, 109, 142, 167, 26, 10, 52, 103, 36, 88, 197, 39, 108, 170, 28, 118, 55, 214, 45, 163, 152, 134, 166, 110, 157, 43, 191, 0, 109, 147, 114, 196, 227, 186, 250, 177, 114, 20, 127, 83, 55, 41, 245, 31, 87, 158, 253, 80, 104, 145, 86, 239, 42, 146, 206, 236, 48, 153, 183, 71, 39, 161, 192, 172, 213, 56, 51, 245, 11, 135, 154, 37, 97, 212, 188, 151, 191, 12, 55, 208, 159, 79, 235, 185, 53, 180, 48, 178, 0, 195, 146, 128, 74, 190, 83, 68, 109, 95, 208, 172, 116, 190, 252, 57, 197, 186, 137, 86, 225, 120, 144, 105, 168, 229, 129, 199, 239, 241, 31, 30, 60, 29, 90, 254, 244, 51, 208, 212, 66, 143, 215, 22, 125, 55, 181, 14, 86, 61, 166, 130, 194, 114, 56, 199, 211, 168, 147, 183, 71, 77, 106, 54, 233, 114, 130, 133, 42, 174, 3, 209, 111, 125, 213, 89, 115, 192, 147, 95, 131, 46, 31, 93, 25, 121, 131, 189, 130, 160, 140, 98, 170, 165, 45, 72, 242, 113, 217, 82, 9, 79, 97, 122, 99, 125, 44, 113, 142, 224, 8, 51, 161, 156, 110, 148, 143, 156, 119, 222, 95, 194, 135, 231, 125, 72, 24, 194, 2, 83, 22, 34, 121, 26, 99, 149, 102, 191, 43, 75, 156, 162, 238, 90, 101, 246, 96, 85, 15, 119, 143, 109, 27, 117, 251, 41, 223, 138, 212, 29, 89, 143, 154, 150, 199, 104, 8, 199, 3, 216, 86, 235, 107, 254, 13, 131, 178, 130, 147, 231, 165, 133, 5, 140, 225, 254, 142, 131, 19, 123, 144, 108, 4, 192, 122, 70, 112, 87, 215, 46, 149, 53, 37, 177, 106, 67, 32, 6, 15, 13, 44, 225, 11, 91, 0, 6, 93, 142, 69, 200, 70, 103, 133, 219, 81, 31, 49, 195, 131, 180, 28, 87, 213, 20, 107, 65, 49, 239, 56, 46, 28, 247, 211, 121, 105, 19, 152, 239, 226, 152, 161, 110, 178, 58, 205, 85, 15, 11, 28, 46, 19, 12, 63, 185, 151, 10, 254, 71, 240, 242, 158, 50, 103, 68, 164, 58, 208, 188, 4, 187, 124, 162, 195, 198, 25, 4, 226, 40, 69, 16, 60, 136, 65, 91, 216, 63, 63, 55, 51, 144, 96, 192, 247, 104, 161, 249, 130, 168, 195, 108, 127, 1, 70, 37, 203, 56, 9, 121, 110, 157, 11, 156, 243, 2, 85, 86, 25, 93, 104, 216, 11, 197, 126, 22, 248, 195, 173, 117, 17, 101, 37, 143, 154, 230, 55, 160, 85, 10, 219, 53, 85, 134, 189, 127, 198, 0, 4, 23, 144, 167, 48, 106, 137, 127, 1, 38, 94, 109, 241, 216, 86, 121, 196, 94, 81, 178, 15, 68, 106, 114, 2, 204, 15, 75, 135, 138, 92, 148, 142, 129, 232, 41, 11, 217, 249, 119, 168, 49, 253, 72, 100, 218, 171, 42, 11, 255, 218, 21, 72, 98, 69, 146, 122, 82, 177, 58, 216, 108, 67, 37, 52, 210, 96, 56, 98, 22, 78, 24, 118, 235, 233, 57, 99, 245, 150, 76, 116, 63, 113, 25, 26, 73, 241, 198, 25, 238, 120, 159, 163, 32, 212, 196, 173, 70, 90, 248, 40, 156, 96, 90, 159, 248, 194, 63, 34, 176, 191, 209, 110, 201, 222, 214, 61, 146, 55, 243, 199, 214, 77, 113, 117, 12, 92, 160, 98, 75, 255, 92, 17, 193, 231, 28, 244, 100, 228, 232, 79, 84, 174, 5, 23, 247, 232, 83, 76, 220, 219, 182, 57, 214, 142, 23, 99, 255, 62, 199, 149, 105, 95, 219, 172, 146, 237, 148, 164, 7, 126, 150, 156, 215, 105, 64, 172, 66, 124, 169, 57, 242, 254, 49, 63, 154, 132, 172, 155, 137, 190, 192, 216, 140, 24, 243, 17, 147, 164, 217, 79, 211, 146, 108, 19, 107, 61, 26, 233, 47, 233, 200, 110, 186, 116, 161, 226, 107, 62, 172, 76, 152, 102, 100, 185, 25, 175, 117, 201, 194, 58, 205, 195, 68, 72, 238, 103, 144, 121, 110, 235, 5, 66, 168, 84, 172, 0, 15, 192, 152, 149, 200, 176, 227, 174, 57, 82, 225, 184, 26, 132, 17, 74, 119, 217, 12, 255, 173, 233, 184, 168, 68, 49, 21, 5, 142, 169, 1, 24, 220, 221, 227, 123, 45, 215, 0, 10, 160, 233, 247, 70, 118, 39, 98, 232, 77, 211, 222, 226, 166, 174, 63, 117, 142, 214, 144, 49, 6, 47, 112, 72, 245, 9, 235, 204, 126, 5, 24, 69, 60, 116, 70, 210, 111, 182, 124, 69, 59, 29, 232, 145, 40, 197, 14, 42, 196, 165, 169, 73, 193, 14, 164, 209, 192, 95, 226, 186, 192, 86, 87, 29, 68, 159, 54, 76, 56, 146, 4, 95, 13, 83, 178, 147, 235, 102, 215, 174, 235, 106, 158, 55, 207, 0, 142, 22, 11, 210, 225, 71, 13, 95, 99, 123, 142, 108, 83, 131, 241, 133, 16, 215, 107, 38, 115, 167, 26, 239, 77, 91, 222, 174, 116, 113, 83, 66, 88, 235, 6, 103, 36, 171, 194, 6, 36, 126, 69, 36, 226, 179, 103, 180, 92, 122, 251, 170, 234, 245, 107, 43, 242, 114, 246, 67, 142, 1, 208, 198, 203, 82, 75, 220, 112, 65, 206, 141, 37, 184, 15, 141, 149, 131, 44, 6, 240, 15, 249, 155, 50, 64, 210, 191, 255, 120, 33, 74, 231, 247, 24, 167, 76, 52, 50, 167, 248, 129, 103, 234, 245, 40, 137, 189, 21, 63, 247, 167, 212, 32, 82, 199, 40, 7, 182, 236, 235, 229, 173, 101, 62, 129, 208, 223, 250, 81, 134, 240, 96, 225, 14, 176, 245, 215, 21, 184, 12, 231, 40, 173, 180, 236, 37, 252, 86, 19, 247, 91, 66, 153, 58, 14, 227, 231, 123, 132, 100, 35, 97, 59, 206, 72, 97, 95, 253, 254, 215, 227, 249, 97, 255, 82, 144, 23, 255, 254, 224, 161, 192, 75, 27, 43, 173, 223, 197, 147, 245, 41, 30, 177, 49, 178, 171, 216, 145, 108, 239, 30, 189, 25, 246, 164, 179, 51, 227, 17, 110, 119, 239, 168, 54, 154, 235, 244, 153, 238, 205, 239, 13, 87, 206, 155, 44, 87, 252, 78, 14, 165, 225, 105, 221, 94, 21, 167, 138, 75, 127, 74, 79, 59, 66, 122, 142, 194, 59, 137, 132, 236, 79, 198, 86, 111, 209, 61, 116, 90, 59, 153, 210, 53, 157, 223, 99, 163, 250, 163, 172, 42, 246, 134, 98, 162, 62, 164, 59, 183, 23, 32, 203, 98, 151, 5, 14, 174, 133, 57, 74, 39, 252, 9, 223, 109, 27, 65, 169, 180, 138, 184, 16, 245, 87, 57, 110, 202, 112, 235, 15, 172, 147, 168, 130, 124, 29, 158, 20, 243, 211, 10, 24, 238, 71, 134, 94, 242, 23, 35, 9, 255, 146, 236, 121, 9, 193, 231, 102, 238, 179, 139, 74, 230, 219, 149, 168, 207, 10, 234, 20, 185, 246, 240, 185, 22, 192, 187, 89, 70, 91, 109, 117, 43, 13, 45, 207, 101, 191, 135, 192, 172, 208, 30, 220, 108, 24, 7, 19, 202, 8, 224, 199, 3, 98, 150, 221, 255, 104, 172, 52, 76, 188, 201, 95, 134, 12, 28, 24, 46, 130, 49, 128, 236, 153, 174, 50, 149, 216, 105, 165, 221, 127, 24, 207, 165, 136, 98, 180, 250, 0, 70, 85, 155, 227, 164, 48, 145, 6, 199, 56, 228, 107, 66, 101, 247, 49, 125, 230, 206, 28, 204, 191, 33, 42, 159, 154, 62, 213, 29, 166, 236, 46, 173, 58, 101, 161, 53, 249, 61, 251, 91, 77, 90, 166, 245, 135, 179, 127, 30, 98, 144, 234, 35, 45, 75, 236, 79, 132, 238, 19, 19, 194, 121, 72, 208, 45, 252, 202, 166, 56, 165, 205, 165, 44, 212, 132, 192, 221, 126, 128, 85, 238, 243, 14, 228, 150, 66, 163, 69, 75, 190, 48, 242, 75, 113, 236, 25, 240, 4, 67, 174, 54, 43, 136, 16, 167, 104, 137, 12, 65, 166, 106, 111, 227, 254, 125, 33, 200, 205, 160, 165, 97, 185, 1, 155, 206, 38, 188, 0, 38, 230, 236, 202, 214, 175, 187, 32, 213, 75, 65, 66, 198, 25, 77, 165, 178, 108, 112, 68, 146, 192, 230, 140, 94, 221, 218, 243, 1, 214, 67, 63, 158, 217, 39, 229, 73, 95, 24, 56, 167, 65, 197, 45, 42, 14, 16, 20, 130, 109, 178, 8, 67, 51, 143, 199, 219, 23, 89, 167, 148, 59, 221, 180, 65, 89, 6, 41, 239, 155, 235, 72, 92, 89, 94, 212, 118, 71, 248, 216, 200, 233, 203, 89, 195, 130, 25, 24, 118, 171, 168, 29, 172, 19, 4, 84, 255, 68, 183, 227, 8, 71, 125, 152, 119, 69, 100, 198, 198, 79, 34, 62, 111, 133, 185, 42, 80, 1, 170, 15, 19, 142, 186, 21, 184, 68, 170, 41, 190, 173, 49, 88, 166, 39, 28, 107, 98, 224, 85, 20, 102, 156, 254, 177, 92, 201, 174, 38, 147, 150, 87, 90, 169, 137, 225, 53, 157, 76, 134, 6, 116, 221, 73, 228, 49, 18, 12, 55, 120, 132, 227, 181, 193, 14, 125, 81, 210, 118, 138, 74, 38, 61, 192, 155, 187, 57, 58, 217, 109, 198, 45, 163, 165, 193, 68, 125, 154, 173, 200, 224, 42, 69, 82, 169, 16, 163, 245, 212, 138, 155, 255, 105, 247, 131, 150, 65, 188, 19, 252, 68, 11, 181, 69, 151, 175, 123, 190, 253, 77, 88, 135, 128]
I was trying to debug but the code will always throw error in VTDecompressionSessionDecodeFrame. I check the videoSession and the sampleBuffer was not null so I don't know which parameter has fault. I am wondering if this is referring to a problem about decompressionOutputCallback because the initVideoSession() method, the line:
outputCallback.decompressionOutputCallback = callback as? VTDecompressionOutputCallback is always nil.
Maybe the reason is the callback is never called.
For more information this is my callback method.
fileprivate func callback(_ decompressionOutputRefCon: UnsafeMutableRawPointer,
sourceFrameRefCon: UnsafeMutableRawPointer,
status: OSStatus,
infoFlags: VTDecodeInfoFlags,
imageBuffer: CVImageBuffer?,
presentationTimeStamp: CMTime,
presentationDuration: CMTime){
unsafeBitCast(decompressionOutputRefCon, to: H264Decoder.self).decompressionOutputCallback(sourceFrameRefCon, status: status, infoFlags: infoFlags, imageBuffer: imageBuffer, presentationTimeStamp: presentationTimeStamp, presentationDuration: presentationDuration)
}
Hello, I'm working on a project for IP camera using Websocket (wss protocol). I am trying to decode a h.264 raw frame using avios. In the wss receive method (binary data) I found the SPS [Unit8Array(14)] and PPS [UInt8Array(4)] so I think I was receiving the correct h.264 raw format. But after that, I was having a problem with the status returned by:
VTDecompressionSessionDecodeFrame(videoSession, sampleBuffer: sampleBuffer, flags: [._EnableAsynchronousDecompression], frameRefcon: nil, infoFlagsOut: &infoFlags)The status always return H264Error.VTDecompressionSessionDecodeFrame(-12902). I tried changing the flags but still no working. I have been reading about NAL Unit but I don't have much experience with VTDecompressionSession. I really appreciate for your kind reply.
Here is my implementation of your library:
1. I create a H264Decoder in viewDidLoad 2. In the socket received method, i try to decode the h.264 raw frame received.This is where I found the SPS UInt8 array:
[103, 77, 0, 30, 149, 168, 40, 15, 105, 184, 8, 8, 8, 16]This is where I found the PPS UInt8 array: [104, 238, 60, 128]
This is the UInt8 array I received as a h.264 raw frame:
[101, 184, 0, 0, 13, 178, 192, 61, 255, 53, 198, 74, 15, 5, 213, 161, 21, 148, 166, 113, 183, 184, 18, 116, 53, 74, 253, 60, 89, 34, 93, 45, 215, 126, 214, 196, 74, 119, 247, 56, 117, 144, 250, 139, 209, 53, 68, 128, 53, 63, 51, 237, 11, 250, 170, 123, 44, 54, 142, 187, 156, 212, 73, 206, 11, 239, 229, 20, 250, 145, 128, 181, 249, 20, 124, 115, 22, 56, 28, 22, 118, 191, 79, 37, 167, 210, 132, 50, 86, 224, 24, 145, 192, 149, 183, 205, 230, 156, 209, 183, 178, 117, 21, 4, 222, 214, 134, 143, 126, 246, 182, 189, 233, 201, 195, 194, 219, 86, 185, 160, 168, 229, 44, 131, 228, 11, 106, 79, 224, 57, 173, 139, 235, 58, 167, 166, 186, 205, 255, 119, 86, 81, 140, 92, 250, 115, 125, 245, 168, 206, 2, 252, 61, 113, 237, 177, 43, 181, 236, 98, 167, 17, 24, 234, 47, 11, 18, 210, 229, 253, 106, 104, 96, 175, 11, 27, 76, 90, 198, 248, 240, 140, 145, 1, 9, 28, 167, 17, 13, 198, 33, 93, 7, 23, 217, 204, 98, 126, 81, 247, 73, 175, 242, 252, 127, 217, 113, 125, 102, 37, 160, 255, 163, 41, 69, 32, 58, 203, 96, 199, 89, 248, 214, 250, 130, 88, 74, 104, 117, 169, 4, 24, 76, 107, 9, 166, 16, 44, 68, 231, 181, 205, 47, 67, 103, 235, 82, 143, 144, 26, 131, 181, 224, 81, 95, 84, 3, 91, 106, 22, 14, 13, 130, 127, 8, 249, 130, 95, 143, 209, 226, 184, 111, 7, 222, 35, 84, 231, 138, 250, 28, 18, 183, 245, 230, 8, 250, 142, 146, 177, 49, 127, 197, 114, 48, 107, 248, 236, 115, 142, 193, 75, 103, 50, 154, 52, 252, 30, 75, 18, 36, 56, 110, 151, 44, 80, 49, 243, 115, 152, 154, 11, 0, 138, 34, 42, 76, 15, 210, 104, 172, 230, 82, 158, 53, 128, 142, 49, 13, 122, 234, 4, 41, 145, 39, 204, 118, 191, 53, 58, 4, 180, 102, 146, 74, 189, 102, 129, 172, 111, 211, 98, 141, 183, 201, 147, 217, 74, 29, 32, 231, 187, 43, 107, 96, 192, 130, 160, 213, 115, 2, 208, 227, 67, 72, 46, 32, 81, 98, 20, 155, 186, 207, 28, 167, 144, 110, 116, 199, 208, 128, 166, 119, 195, 40, 113, 44, 99, 2, 52, 81, 229, 162, 121, 115, 61, 122, 159, 200, 99, 1, 74, 14, 199, 99, 83, 118, 27, 144, 20, 174, 144, 199, 174, 179, 92, 69, 61, 214, 106, 4, 232, 165, 36, 208, 54, 241, 186, 132, 9, 253, 177, 101, 97, 77, 55, 84, 132, 14, 208, 91, 123, 34, 99, 115, 73, 24, 91, 149, 163, 47, 206, 140, 5, 39, 118, 53, 254, 158, 69, 68, 54, 79, 130, 183, 185, 244, 214, 5, 233, 223, 178, 229, 88, 143, 45, 71, 105, 203, 226, 207, 66, 45, 34, 79, 9, 118, 168, 70, 167, 44, 49, 35, 194, 203, 65, 87, 51, 194, 102, 112, 137, 190, 80, 118, 88, 200, 53, 65, 12, 220, 143, 243, 218, 238, 3, 126, 114, 59, 113, 124, 109, 16, 116, 213, 194, 217, 234, 127, 194, 56, 17, 45, 109, 193, 238, 164, 42, 187, 243, 50, 15, 1, 112, 80, 13, 62, 213, 204, 232, 161, 52, 255, 234, 198, 29, 82, 90, 81, 203, 71, 40, 177, 144, 69, 237, 93, 170, 157, 118, 137, 53, 187, 38, 118, 138, 72, 132, 164, 238, 202, 78, 213, 65, 190, 85, 89, 211, 153, 152, 240, 26, 218, 18, 109, 35, 201, 79, 102, 192, 55, 106, 127, 181, 132, 35, 101, 79, 23, 139, 98, 233, 246, 38, 90, 149, 79, 83, 19, 98, 0, 220, 250, 67, 58, 165, 100, 68, 222, 179, 70, 149, 248, 32, 137, 133, 119, 173, 137, 216, 224, 140, 222, 64, 177, 3, 116, 63, 83, 19, 207, 139, 223, 151, 87, 116, 121, 91, 218, 235, 173, 38, 63, 131, 78, 209, 164, 108, 103, 92, 135, 182, 80, 11, 164, 17, 41, 104, 146, 20, 193, 1, 35, 122, 23, 141, 170, 134, 110, 249, 142, 212, 144, 119, 24, 55, 44, 87, 12, 85, 193, 84, 187, 20, 30, 10, 82, 161, 11, 1, 231, 21, 125, 69, 204, 238, 174, 200, 73, 202, 176, 240, 43, 212, 45, 94, 45, 232, 97, 82, 202, 250, 217, 212, 96, 165, 12, 85, 216, 133, 9, 221, 41, 82, 219, 124, 3, 140, 238, 236, 250, 11, 177, 190, 40, 163, 77, 143, 228, 21, 191, 126, 17, 168, 67, 76, 43, 161, 181, 203, 87, 13, 42, 29, 147, 52, 135, 123, 162, 137, 109, 85, 215, 238, 242, 200, 197, 28, 216, 125, 103, 29, 107, 81, 17, 128, 139, 197, 246, 100, 36, 98, 26, 35, 7, 65, 21, 143, 147, 202, 129, 55, 108, 47, 6, 125, 138, 0, 81, 61, 28, 156, 61, 55, 167, 184, 175, 237, 235, 0, 133, 200, 22, 189, 96, 40, 241, 85, 86, 113, 24, 110, 246, 99, 219, 131, 238, 107, 41, 117, 138, 16, 209, 206, 239, 209, 135, 186, 88, 161, 39, 253, 17, 152, 231, 198, 17, 173, 37, 3, 7, 31, 83, 170, 139, 232, 132, 180, 174, 103, 26, 227, 231, 175, 20, 13, 57, 248, 18, 170, 197, 9, 78, 31, 76, 169, 24, 68, 105, 219, 180, 64, 154, 1, 200, 138, 85, 137, 182, 105, 200, 185, 233, 255, 159, 30, 91, 171, 219, 124, 41, 145, 66, 71, 25, 185, 140, 188, 2, 247, 87, 44, 113, 157, 63, 65, 190, 184, 199, 182, 252, 25, 241, 186, 105, 112, 219, 47, 35, 159, 48, 43, 127, 20, 199, 80, 121, 63, 29, 30, 45, 67, 96, 176, 195, 239, 146, 112, 27, 189, 3, 55, 44, 148, 21, 205, 115, 208, 58, 41, 216, 117, 175, 251, 88, 58, 133, 203, 74, 72, 218, 99, 57, 8, 106, 215, 124, 252, 111, 143, 63, 142, 185, 197, 50, 76, 43, 185, 106, 57, 80, 61, 122, 55, 253, 75, 166, 46, 31, 88, 108, 236, 128, 245, 14, 20, 120, 56, 64, 114, 206, 239, 218, 202, 15, 153, 43, 237, 199, 190, 231, 178, 141, 249, 0, 222, 61, 57, 139, 18, 159, 18, 44, 91, 44, 113, 236, 26, 121, 196, 10, 38, 104, 226, 231, 55, 150, 202, 47, 7, 40, 158, 160, 216, 203, 238, 201, 87, 155, 14, 107, 48, 48, 162, 136, 63, 153, 217, 161, 170, 202, 62, 3, 220, 118, 75, 78, 142, 91, 55, 93, 144, 24, 32, 84, 194, 92, 149, 51, 170, 83, 131, 118, 112, 82, 94, 98, 209, 216, 29, 0, 175, 232, 182, 254, 178, 95, 177, 145, 200, 178, 142, 8, 210, 222, 72, 224, 70, 160, 6, 167, 250, 213, 244, 194, 109, 30, 132, 42, 219, 144, 18, 213, 18, 53, 241, 12, 246, 221, 121, 95, 168, 152, 253, 58, 253, 246, 74, 29, 181, 170, 192, 210, 248, 240, 22, 79, 228, 189, 193, 43, 232, 172, 238, 233, 140, 101, 122, 145, 142, 146, 174, 135, 80, 58, 29, 207, 95, 185, 73, 2, 252, 203, 42, 200, 216, 25, 9, 7, 252, 205, 4, 0, 51, 167, 21, 27, 168, 35, 68, 96, 6, 14, 64, 221, 171, 77, 228, 234, 185, 12, 185, 126, 54, 180, 65, 10, 34, 194, 133, 197, 186, 174, 139, 129, 138, 255, 95, 173, 195, 168, 62, 191, 244, 47, 113, 237, 133, 155, 238, 218, 145, 131, 179, 0, 228, 233, 63, 13, 19, 4, 227, 40, 12, 178, 16, 78, 208, 157, 253, 73, 118, 172, 48, 237, 221, 151, 232, 175, 227, 1, 66, 161, 21, 112, 241, 43, 86, 37, 135, 126, 236, 247, 147, 22, 68, 127, 1, 192, 204, 248, 22, 108, 194, 140, 170, 88, 226, 107, 185, 247, 247, 84, 100, 44, 132, 137, 33, 153, 127, 165, 148, 118, 206, 210, 213, 229, 226, 68, 239, 2, 55, 134, 227, 229, 242, 193, 74, 178, 196, 39, 92, 84, 147, 248, 91, 32, 119, 87, 87, 32, 152, 219, 63, 19, 186, 154, 195, 208, 188, 94, 142, 144, 43, 247, 235, 26, 160, 229, 244, 85, 255, 19, 25, 43, 58, 83, 135, 89, 71, 116, 21, 113, 36, 79, 230, 130, 120, 106, 18, 208, 5, 72, 184, 23, 143, 50, 219, 228, 162, 111, 61, 215, 66, 121, 185, 136, 187, 168, 225, 166, 29, 198, 54, 106, 35, 208, 148, 232, 229, 207, 107, 244, 236, 188, 232, 235, 180, 218, 1, 127, 211, 38, 233, 110, 108, 115, 228, 78, 35, 131, 174, 2, 149, 167, 45, 184, 192, 70, 199, 37, 26, 107, 115, 210, 134, 239, 249, 197, 195, 124, 122, 3, 229, 14, 207, 28, 253, 60, 89, 103, 7, 23, 96, 114, 140, 226, 227, 79, 248, 163, 59, 118, 133, 32, 157, 65, 225, 114, 139, 190, 210, 24, 5, 58, 137, 46, 68, 52, 126, 20, 139, 237, 114, 252, 37, 9, 174, 113, 239, 193, 225, 170, 12, 216, 174, 192, 208, 233, 108, 106, 172, 198, 64, 202, 54, 246, 60, 180, 214, 4, 72, 167, 88, 139, 64, 69, 161, 16, 166, 98, 122, 106, 181, 104, 248, 152, 153, 222, 206, 223, 98, 3, 177, 164, 209, 58, 251, 241, 8, 144, 140, 164, 197, 103, 240, 4, 210, 48, 159, 87, 213, 164, 14, 127, 82, 235, 205, 248, 22, 149, 131, 95, 6, 160, 145, 119, 101, 185, 86, 69, 40, 78, 238, 91, 19, 135, 45, 228, 98, 164, 245, 61, 15, 109, 60, 142, 145, 99, 185, 24, 103, 54, 152, 1, 191, 1, 157, 139, 208, 193, 210, 223, 5, 245, 235, 201, 149, 28, 42, 224, 1, 254, 204, 94, 194, 88, 203, 90, 182, 106, 50, 132, 22, 3, 148, 94, 143, 248, 127, 35, 80, 10, 157, 66, 218, 204, 187, 73, 95, 55, 120, 114, 185, 246, 108, 107, 131, 106, 193, 5, 215, 239, 252, 182, 53, 16, 6, 165, 49, 41, 111, 53, 227, 186, 184, 208, 148, 33, 10, 178, 132, 194, 130, 108, 167, 228, 33, 144, 54, 59, 236, 104, 175, 125, 206, 89, 62, 109, 146, 173, 240, 149, 151, 59, 32, 100, 101, 145, 30, 131, 219, 150, 6, 140, 171, 75, 3, 110, 54, 246, 158, 147, 102, 135, 79, 188, 140, 223, 143, 235, 90, 255, 23, 97, 94, 154, 121, 64, 216, 9, 179, 0, 132, 151, 47, 90, 33, 175, 221, 234, 154, 215, 251, 79, 160, 94, 222, 205, 100, 85, 112, 71, 72, 100, 64, 107, 190, 100, 91, 158, 128, 252, 139, 144, 15, 17, 54, 24, 14, 63, 101, 30, 190, 18, 171, 128, 143, 177, 155, 201, 244, 63, 177, 175, 235, 188, 41, 96, 14, 41, 165, 160, 187, 245, 160, 4, 99, 254, 92, 71, 238, 132, 139, 63, 228, 73, 208, 151, 98, 205, 140, 208, 28, 3, 200, 22, 34, 237, 14, 204, 38, 40, 98, 92, 166, 254, 179, 220, 162, 4, 156, 204, 17, 120, 92, 112, 78, 184, 123, 65, 21, 238, 213, 55, 10, 222, 50, 109, 110, 191, 71, 245, 59, 179, 252, 39, 9, 244, 139, 154, 180, 183, 185, 117, 227, 231, 234, 208, 1, 114, 64, 95, 175, 181, 92, 211, 252, 250, 198, 12, 246, 129, 168, 194, 119, 135, 25, 48, 5, 45, 104, 121, 105, 185, 108, 243, 231, 117, 45, 147, 75, 198, 133, 157, 180, 97, 43, 38, 55, 20, 91, 169, 154, 53, 82, 211, 173, 91, 79, 165, 1, 109, 157, 45, 55, 209, 71, 49, 255, 71, 215, 179, 249, 255, 201, 82, 247, 129, 255, 9, 38, 50, 71, 97, 182, 80, 132, 187, 189, 1, 195, 242, 1, 132, 136, 15, 206, 202, 204, 236, 12, 182, 245, 167, 177, 166, 117, 165, 238, 210, 84, 203, 64, 250, 136, 75, 235, 78, 96, 161, 245, 74, 25, 66, 49, 21, 165, 2, 141, 99, 210, 11, 90, 90, 119, 28, 208, 69, 186, 76, 50, 221, 45, 146, 123, 147, 199, 224, 192, 94, 118, 208, 235, 111, 247, 197, 88, 48, 198, 145, 139, 56, 8, 150, 13, 70, 145, 163, 85, 73, 113, 252, 228, 40, 31, 63, 220, 141, 31, 65, 242, 170, 92, 56, 206, 213, 93, 144, 157, 125, 158, 124, 123, 101, 161, 162, 191, 215, 165, 107, 233, 145, 98, 49, 239, 102, 130, 104, 189, 22, 173, 173, 229, 49, 209, 27, 19, 65, 47, 116, 98, 109, 4, 15, 225, 48, 115, 44, 170, 47, 193, 243, 55, 23, 236, 201, 57, 206, 58, 184, 235, 12, 101, 202, 151, 1, 96, 202, 119, 255, 153, 80, 85, 221, 159, 80, 99, 200, 210, 169, 132, 200, 245, 196, 66, 73, 201, 240, 27, 12, 184, 163, 236, 132, 130, 221, 132, 104, 170, 94, 185, 28, 30, 32, 123, 167, 45, 227, 93, 117, 231, 97, 232, 165, 188, 152, 208, 42, 197, 83, 46, 1, 44, 84, 229, 116, 84, 221, 96, 4, 144, 2, 142, 87, 157, 206, 41, 143, 42, 226, 32, 143, 195, 173, 107, 27, 196, 150, 164, 238, 186, 252, 56, 208, 135, 52, 19, 151, 149, 59, 220, 99, 193, 117, 49, 234, 100, 114, 57, 88, 162, 154, 111, 238, 56, 125, 62, 94, 206, 252, 99, 41, 238, 148, 150, 119, 171, 240, 173, 93, 50, 151, 225, 165, 74, 58, 117, 244, 69, 190, 239, 212, 236, 231, 181, 164, 5, 30, 43, 16, 220, 198, 117, 91, 235, 6, 119, 133, 180, 42, 9, 142, 189, 205, 103, 208, 105, 34, 66, 17, 119, 5, 158, 125, 182, 203, 135, 83, 29, 101, 94, 79, 186, 47, 105, 229, 104, 65, 111, 180, 2, 91, 39, 37, 114, 90, 235, 84, 110, 71, 134, 44, 177, 146, 96, 255, 238, 195, 198, 81, 114, 208, 236, 32, 136, 74, 67, 138, 154, 196, 145, 97, 255, 73, 76, 171, 205, 28, 184, 245, 229, 242, 115, 109, 79, 253, 127, 228, 145, 34, 41, 211, 108, 56, 91, 199, 162, 194, 113, 235, 247, 181, 155, 65, 111, 27, 17, 40, 90, 177, 162, 156, 174, 247, 195, 85, 178, 125, 169, 249, 61, 187, 33, 79, 60, 58, 128, 59, 97, 163, 102, 67, 131, 36, 224, 147, 202, 176, 45, 59, 78, 158, 99, 0, 208, 110, 226, 218, 40, 93, 181, 34, 149, 171, 184, 125, 113, 64, 27, 14, 179, 82, 177, 181, 12, 194, 226, 20, 31, 96, 251, 30, 159, 71, 106, 232, 255, 170, 249, 247, 30, 189, 77, 95, 16, 5, 91, 75, 254, 194, 56, 1, 3, 45, 238, 19, 61, 197, 36, 219, 195, 212, 82, 151, 43, 90, 183, 240, 124, 31, 85, 226, 226, 84, 220, 79, 194, 206, 29, 128, 147, 52, 148, 130, 18, 173, 89, 19, 57, 154, 41, 223, 100, 177, 98, 87, 59, 176, 226, 93, 244, 181, 12, 152, 215, 49, 185, 65, 178, 133, 181, 113, 175, 164, 14, 8, 87, 238, 219, 221, 61, 150, 241, 226, 192, 242, 35, 208, 93, 239, 175, 195, 152, 202, 45, 185, 147, 252, 243, 205, 58, 141, 11, 127, 135, 33, 34, 11, 97, 75, 97, 28, 116, 109, 185, 242, 189, 90, 168, 152, 97, 127, 8, 137, 175, 116, 222, 172, 28, 254, 52, 0, 75, 169, 222, 9, 66, 144, 223, 124, 84, 11, 104, 39, 124, 243, 196, 67, 134, 38, 197, 82, 68, 35, 230, 147, 181, 43, 42, 110, 191, 199, 36, 24, 217, 170, 149, 173, 244, 177, 149, 149, 255, 193, 160, 51, 105, 43, 112, 173, 178, 34, 115, 146, 220, 252, 80, 168, 215, 132, 191, 185, 73, 140, 51, 105, 100, 170, 101, 110, 199, 176, 47, 231, 127, 125, 252, 169, 219, 220, 201, 154, 228, 128, 223, 77, 28, 140, 230, 95, 12, 247, 42, 143, 188, 184, 183, 103, 22, 66, 132, 94, 220, 251, 127, 212, 231, 227, 28, 213, 232, 16, 238, 33, 179, 81, 20, 217, 147, 64, 157, 122, 85, 212, 104, 204, 194, 180, 123, 160, 138, 216, 162, 63, 70, 15, 140, 120, 123, 146, 118, 85, 83, 248, 210, 11, 144, 239, 49, 240, 78, 158, 61, 214, 190, 189, 39, 179, 225, 82, 152, 218, 243, 17, 233, 225, 10, 152, 173, 62, 206, 126, 241, 55, 199, 251, 48, 252, 227, 104, 26, 102, 216, 241, 202, 248, 176, 80, 72, 16, 147, 222, 133, 190, 9, 205, 230, 84, 29, 202, 216, 152, 192, 241, 228, 248, 186, 250, 183, 96, 130, 149, 67, 122, 43, 114, 168, 223, 158, 102, 154, 61, 236, 143, 89, 26, 157, 161, 145, 44, 62, 46, 7, 240, 122, 239, 60, 178, 105, 190, 198, 59, 68, 238, 228, 66, 89, 191, 61, 48, 27, 125, 211, 232, 8, 67, 243, 30, 146, 145, 71, 136, 229, 198, 42, 21, 240, 134, 73, 71, 217, 215, 4, 23, 239, 105, 185, 156, 13, 124, 6, 154, 172, 77, 237, 56, 67, 187, 55, 84, 52, 96, 136, 77, 154, 115, 149, 252, 153, 181, 220, 224, 93, 189, 19, 104, 209, 248, 204, 41, 57, 225, 202, 130, 148, 167, 196, 118, 48, 166, 66, 95, 84, 72, 156, 103, 20, 242, 242, 136, 244, 54, 240, 136, 29, 231, 215, 240, 122, 130, 168, 211, 19, 161, 146, 82, 119, 98, 105, 141, 11, 29, 105, 248, 230, 53, 159, 254, 206, 197, 166, 169, 147, 83, 162, 32, 234, 38, 109, 180, 176, 163, 129, 51, 250, 200, 154, 196, 113, 167, 245, 245, 225, 92, 86, 122, 209, 217, 133, 30, 220, 23, 29, 107, 188, 21, 86, 33, 252, 185, 199, 237, 108, 171, 183, 88, 30, 54, 180, 62, 80, 253, 166, 190, 84, 51, 95, 133, 171, 77, 237, 150, 99, 95, 135, 20, 182, 113, 210, 169, 80, 199, 64, 217, 139, 114, 186, 124, 21, 54, 4, 182, 50, 80, 54, 190, 219, 89, 242, 41, 175, 86, 191, 136, 86, 10, 214, 21, 192, 176, 110, 23, 166, 239, 150, 134, 29, 234, 25, 116, 214, 205, 186, 166, 146, 217, 121, 167, 93, 194, 89, 113, 184, 245, 52, 157, 253, 170, 204, 73, 116, 180, 121, 30, 214, 237, 133, 135, 69, 101, 105, 13, 89, 14, 84, 202, 182, 216, 103, 133, 62, 233, 30, 194, 161, 129, 108, 211, 225, 0, 9, 179, 208, 195, 70, 166, 137, 170, 95, 8, 85, 216, 133, 208, 169, 198, 160, 181, 195, 171, 107, 161, 218, 214, 43, 54, 8, 233, 19, 130, 233, 242, 196, 227, 23, 138, 119, 233, 33, 202, 26, 217, 133, 45, 167, 47, 152, 193, 65, 210, 203, 223, 116, 237, 180, 158, 229, 70, 104, 98, 251, 64, 3, 149, 88, 25, 162, 75, 123, 153, 195, 91, 254, 18, 85, 194, 31, 132, 99, 92, 175, 1, 254, 2, 66, 179, 12, 172, 176, 77, 83, 45, 217, 58, 198, 30, 101, 175, 92, 106, 89, 145, 218, 41, 251, 123, 76, 207, 51, 34, 176, 29, 207, 198, 82, 244, 138, 3, 122, 253, 194, 145, 198, 174, 140, 3, 253, 170, 36, 11, 174, 214, 98, 48, 89, 85, 219, 103, 205, 137, 162, 78, 136, 81, 244, 133, 241, 124, 132, 94, 185, 207, 191, 50, 214, 89, 110, 161, 240, 233, 121, 176, 1, 249, 127, 153, 114, 181, 72, 238, 150, 166, 43, 110, 176, 174, 76, 4, 138, 120, 249, 25, 31, 234, 5, 58, 209, 216, 93, 108, 151, 51, 98, 136, 126, 223, 4, 99, 160, 96, 97, 140, 219, 40, 229, 41, 212, 41, 47, 44, 24, 223, 41, 70, 226, 158, 237, 49, 248, 97, 164, 190, 14, 121, 62, 221, 142, 186, 73, 159, 160, 207, 190, 226, 128, 236, 205, 46, 110, 150, 245, 213, 71, 237, 105, 186, 67, 55, 49, 124, 30, 210, 208, 104, 71, 227, 173, 223, 75, 87, 10, 17, 230, 58, 8, 191, 75, 246, 207, 229, 42, 8, 48, 59, 218, 41, 218, 147, 22, 223, 187, 119, 243, 66, 191, 153, 108, 119, 179, 105, 76, 48, 121, 71, 80, 115, 186, 165, 179, 248, 203, 32, 148, 210, 135, 60, 144, 57, 151, 169, 137, 228, 147, 70, 200, 216, 181, 37, 200, 29, 136, 152, 143, 178, 99, 160, 67, 194, 75, 130, 227, 49, 30, 108, 126, 12, 249, 79, 249, 144, 249, 251, 157, 22, 190, 208, 211, 97, 203, 181, 69, 148, 185, 20, 239, 111, 16, 57, 242, 225, 254, 19, 8, 49, 138, 250, 40, 55, 86, 169, 166, 118, 88, 126, 237, 219, 148, 174, 132, 242, 133, 235, 37, 39, 109, 251, 164, 95, 130, 80, 224, 224, 255, 147, 119, 102, 100, 227, 187, 152, 233, 176, 88, 171, 13, 118, 44, 19, 238, 192, 28, 102, 172, 143, 123, 54, 102, 187, 12, 20, 231, 182, 41, 64, 3, 149, 110, 181, 137, 68, 237, 67, 71, 219, 216, 9, 218, 147, 60, 204, 153, 12, 134, 125, 224, 235, 147, 130, 215, 50, 184, 188, 164, 91, 214, 99, 165, 114, 9, 130, 88, 102, 57, 28, 19, 224, 50, 209, 203, 32, 74, 32, 100, 148, 233, 141, 44, 98, 218, 233, 132, 125, 181, 47, 108, 32, 81, 13, 211, 191, 211, 161, 242, 247, 67, 96, 209, 19, 228, 161, 77, 70, 95, 70, 214, 181, 105, 114, 87, 192, 239, 173, 90, 46, 86, 117, 165, 202, 59, 33, 110, 65, 54, 192, 87, 81, 29, 254, 170, 247, 122, 15, 246, 117, 33, 47, 196, 198, 215, 86, 176, 88, 212, 118, 96, 89, 177, 225, 93, 132, 177, 224, 15, 99, 228, 82, 235, 184, 19, 29, 61, 230, 194, 175, 90, 73, 161, 140, 117, 71, 107, 73, 174, 113, 15, 158, 65, 254, 234, 219, 78, 158, 93, 48, 222, 24, 26, 57, 105, 129, 63, 142, 136, 41, 137, 52, 143, 237, 86, 156, 103, 26, 55, 236, 1, 208, 182, 109, 156, 245, 229, 218, 240, 101, 102, 39, 164, 103, 31, 97, 11, 35, 86, 215, 57, 123, 183, 143, 249, 55, 183, 230, 92, 171, 191, 142, 193, 89, 14, 12, 13, 130, 192, 41, 33, 75, 80, 10, 214, 161, 106, 194, 32, 132, 182, 98, 176, 101, 219, 201, 120, 216, 218, 51, 247, 236, 67, 230, 121, 181, 147, 6, 218, 127, 254, 30, 155, 173, 79, 130, 118, 184, 149, 251, 70, 161, 250, 200, 92, 1, 123, 89, 65, 241, 163, 204, 125, 65, 69, 100, 86, 168, 93, 79, 202, 75, 121, 135, 185, 48, 152, 139, 11, 139, 59, 136, 132, 241, 29, 119, 61, 167, 159, 111, 146, 14, 38, 11, 211, 108, 57, 216, 147, 77, 246, 142, 106, 14, 170, 202, 39, 250, 105, 138, 165, 191, 33, 133, 141, 102, 112, 164, 95, 22, 156, 255, 37, 143, 204, 164, 9, 132, 37, 34, 206, 69, 28, 45, 190, 90, 66, 207, 157, 100, 12, 98, 132, 1, 12, 32, 192, 82, 192, 184, 28, 91, 53, 180, 56, 67, 180, 127, 241, 193, 120, 254, 178, 143, 169, 89, 237, 45, 74, 201, 225, 255, 240, 56, 7, 30, 222, 164, 105, 55, 46, 252, 173, 254, 87, 186, 134, 139, 136, 149, 189, 113, 49, 230, 149, 19, 11, 2, 89, 211, 66, 239, 47, 11, 106, 240, 131, 160, 254, 39, 204, 12, 113, 86, 114, 122, 145, 196, 175, 24, 59, 140, 69, 22, 115, 28, 96, 140, 176, 187, 246, 251, 106, 210, 73, 252, 254, 126, 161, 29, 85, 241, 171, 0, 63, 4, 191, 103, 247, 112, 42, 158, 250, 20, 165, 109, 60, 180, 141, 173, 236, 240, 61, 249, 181, 193, 157, 230, 255, 36, 248, 220, 19, 214, 204, 167, 114, 29, 31, 249, 198, 139, 2, 201, 227, 27, 30, 14, 230, 166, 163, 228, 185, 98, 180, 244, 33, 39, 55, 21, 138, 1, 103, 249, 214, 19, 185, 228, 113, 159, 51, 95, 167, 4, 7, 37, 115, 157, 242, 53, 200, 22, 211, 116, 10, 164, 7, 107, 139, 66, 130, 4, 184, 233, 142, 190, 195, 196, 10, 59, 14, 19, 161, 142, 138, 11, 117, 26, 192, 120, 105, 120, 29, 74, 212, 59, 225, 11, 30, 18, 62, 27, 29, 27, 29, 35, 72, 68, 65, 151, 193, 222, 40, 252, 25, 50, 70, 140, 53, 116, 124, 176, 50, 13, 16, 155, 7, 5, 49, 97, 180, 33, 126, 247, 51, 143, 144, 14, 12, 242, 121, 73, 42, 116, 214, 218, 209, 234, 209, 126, 73, 191, 144, 59, 206, 160, 75, 28, 27, 75, 239, 7, 205, 49, 10, 23, 37, 222, 184, 40, 83, 1, 148, 64, 211, 66, 116, 192, 71, 15, 127, 189, 169, 134, 127, 199, 117, 67, 43, 108, 241, 209, 143, 207, 31, 157, 20, 206, 121, 178, 8, 161, 13, 147, 70, 163, 217, 210, 234, 245, 31, 21, 54, 193, 88, 107, 65, 199, 177, 114, 211, 74, 107, 107, 194, 170, 87, 169, 160, 98, 224, 253, 158, 73, 209, 144, 101, 43, 11, 223, 198, 153, 229, 230, 6, 234, 42, 6, 59, 4, 229, 194, 157, 25, 93, 69, 0, 18, 218, 36, 152, 38, 238, 235, 161, 150, 151, 155, 49, 168, 172, 157, 137, 165, 65, 4, 132, 158, 227, 104, 236, 242, 219, 30, 253, 84, 30, 130, 87, 40, 232, 230, 14, 68, 214, 75, 237, 161, 40, 61, 77, 65, 192, 11, 253, 154, 12, 63, 189, 254, 31, 153, 215, 40, 183, 17, 175, 218, 222, 118, 164, 193, 7, 223, 250, 156, 49, 183, 209, 193, 3, 112, 177, 184, 74, 140, 236, 120, 19, 89, 111, 88, 243, 211, 12, 166, 225, 219, 97, 228, 116, 192, 67, 183, 200, 104, 229, 44, 116, 208, 196, 2, 239, 98, 129, 134, 223, 19, 117, 109, 184, 22, 70, 181, 58, 152, 252, 205, 221, 120, 88, 165, 108, 222, 67, 80, 13, 96, 114, 99, 34, 166, 12, 102, 54, 93, 119, 73, 5, 51, 219, 225, 164, 3, 91, 1, 74, 217, 9, 185, 104, 109, 15, 220, 187, 140, 197, 176, 91, 147, 170, 0, 111, 232, 111, 246, 47, 229, 167, 156, 94, 144, 34, 233, 220, 21, 64, 247, 120, 39, 78, 14, 108, 118, 8, 22, 232, 70, 116, 91, 188, 139, 46, 3, 131, 208, 1, 66, 3, 205, 209, 31, 174, 6, 17, 130, 121, 205, 42, 28, 246, 181, 98, 83, 156, 226, 8, 50, 133, 184, 135, 145, 94, 132, 36, 146, 107, 84, 95, 255, 50, 240, 32, 243, 62, 239, 25, 209, 125, 159, 20, 165, 37, 14, 177, 133, 4, 54, 52, 57, 202, 83, 37, 61, 145, 6, 166, 22, 89, 123, 240, 242, 10, 163, 99, 90, 247, 218, 32, 141, 173, 138, 30, 109, 205, 123, 118, 203, 153, 95, 27, 8, 49, 15, 10, 145, 76, 200, 129, 144, 243, 247, 87, 94, 74, 244, 153, 251, 164, 214, 9, 226, 197, 247, 69, 85, 29, 241, 80, 34, 34, 114, 90, 11, 170, 214, 180, 69, 93, 116, 254, 11, 211, 153, 250, 53, 137, 246, 33, 53, 14, 117, 22, 159, 183, 85, 23, 9, 138, 83, 66, 129, 238, 110, 241, 31, 232, 93, 84, 31, 216, 114, 142, 34, 253, 193, 119, 76, 12, 37, 12, 131, 20, 3, 146, 8, 249, 222, 79, 162, 254, 45, 210, 12, 38, 83, 164, 55, 2, 8, 68, 149, 9, 81, 223, 139, 231, 175, 231, 74, 87, 31, 81, 77, 212, 107, 223, 147, 9, 222, 192, 211, 33, 226, 216, 223, 40, 131, 12, 16, 39, 0, 63, 105, 75, 63, 64, 183, 4, 31, 56, 208, 19, 174, 169, 183, 80, 57, 44, 166, 0, 120, 164, 170, 32, 185, 185, 251, 101, 252, 26, 90, 161, 243, 192, 74, 225, 152, 140, 32, 14, 185, 73, 97, 255, 148, 183, 182, 139, 34, 55, 181, 246, 207, 120, 27, 35, 240, 33, 150, 2, 230, 139, 154, 53, 93, 55, 240, 58, 88, 174, 233, 229, 176, 173, 40, 172, 206, 91, 126, 92, 127, 15, 24, 134, 203, 7, 125, 161, 169, 57, 21, 73, 231, 64, 161, 43, 76, 38, 132, 114, 249, 46, 119, 14, 110, 84, 71, 31, 215, 81, 84, 205, 15, 51, 235, 177, 113, 161, 196, 28, 131, 105, 33, 47, 211, 67, 113, 89, 136, 147, 62, 164, 125, 103, 192, 202, 108, 213, 63, 77, 164, 9, 137, 80, 15, 237, 243, 185, 63, 36, 101, 251, 132, 94, 112, 211, 119, 88, 222, 206, 129, 19, 110, 183, 190, 117, 205, 18, 237, 245, 195, 234, 5, 12, 195, 24, 190, 205, 235, 101, 95, 246, 223, 177, 84, 22, 212, 76, 25, 226, 242, 149, 37, 211, 120, 42, 18, 49, 12, 227, 167, 40, 34, 104, 142, 237, 215, 253, 72, 219, 148, 10, 156, 102, 99, 146, 244, 253, 113, 169, 47, 201, 215, 107, 140, 196, 159, 16, 110, 168, 198, 0, 1, 131, 232, 222, 248, 4, 39, 107, 19, 111, 120, 83, 205, 109, 62, 152, 114, 125, 158, 116, 233, 233, 75, 15, 110, 14, 7, 232, 135, 31, 131, 226, 160, 232, 59, 117, 200, 201, 178, 78, 5, 196, 130, 61, 58, 48, 41, 156, 208, 83, 159, 5, 184, 159, 138, 129, 72, 83, 213, 85, 39, 65, 173, 232, 162, 202, 184, 69, 9, 40, 207, 247, 77, 125, 251, 126, 188, 0, 248, 72, 19, 179, 243, 172, 107, 81, 50, 207, 215, 78, 184, 162, 210, 65, 56, 237, 75, 130, 233, 117, 215, 28, 163, 10, 131, 223, 194, 13, 77, 253, 25, 201, 172, 76, 69, 155, 93, 125, 182, 140, 127, 220, 152, 0, 245, 192, 96, 153, 202, 67, 234, 13, 246, 251, 223, 17, 219, 253, 180, 34, 42, 62, 220, 2, 16, 114, 200, 88, 149, 188, 144, 84, 27, 185, 236, 65, 45, 60, 229, 179, 48, 0, 5, 102, 106, 7, 148, 96, 57, 48, 71, 184, 58, 11, 10, 82, 6, 46, 38, 85, 142, 189, 128, 106, 119, 109, 102, 13, 112, 243, 150, 140, 153, 96, 253, 142, 196, 127, 173, 19, 77, 119, 136, 46, 154, 49, 214, 226, 70, 118, 154, 102, 182, 153, 253, 122, 101, 220, 132, 6, 168, 27, 97, 146, 65, 140, 100, 162, 166, 192, 180, 48, 200, 232, 75, 241, 162, 31, 209, 81, 162, 125, 183, 112, 224, 191, 139, 153, 172, 23, 131, 104, 108, 115, 79, 207, 56, 38, 211, 214, 20, 157, 246, 217, 11, 99, 70, 122, 5, 90, 149, 169, 239, 24, 23, 223, 196, 139, 29, 236, 40, 192, 68, 2, 152, 145, 247, 2, 137, 20, 102, 110, 154, 21, 215, 161, 132, 23, 83, 118, 216, 54, 52, 21, 106, 180, 220, 177, 134, 10, 1, 12, 77, 242, 65, 108, 87, 6, 121, 107, 71, 39, 49, 116, 96, 61, 21, 113, 233, 143, 118, 12, 144, 74, 116, 190, 3, 62, 86, 33, 151, 180, 237, 146, 28, 178, 15, 20, 66, 85, 143, 69, 32, 132, 220, 52, 125, 147, 122, 221, 139, 230, 252, 167, 75, 241, 57, 217, 211, 93, 34, 53, 124, 102, 137, 76, 170, 54, 216, 56, 195, 111, 251, 252, 201, 53, 67, 200, 4, 31, 130, 51, 111, 66, 195, 21, 119, 155, 126, 107, 140, 202, 138, 218, 254, 99, 160, 210, 196, 43, 240, 137, 179, 217, 230, 10, 244, 228, 119, 62, 206, 11, 63, 205, 167, 167, 223, 112, 231, 65, 80, 195, 180, 253, 252, 18, 146, 224, 91, 231, 94, 2, 223, 244, 123, 93, 247, 58, 167, 141, 210, 47, 84, 146, 202, 186, 221, 194, 175, 247, 102, 88, 245, 213, 127, 47, 148, 194, 62, 83, 0, 110, 46, 129, 207, 123, 9, 225, 248, 142, 157, 198, 245, 6, 37, 68, 84, 15, 180, 209, 116, 131, 184, 67, 100, 126, 174, 152, 78, 217, 75, 213, 14, 10, 37, 122, 175, 109, 177, 80, 175, 232, 23, 38, 67, 56, 229, 81, 4, 240, 225, 144, 68, 48, 216, 243, 179, 127, 107, 193, 142, 118, 2, 247, 185, 40, 65, 88, 203, 79, 86, 177, 97, 248, 9, 129, 105, 57, 50, 207, 41, 65, 48, 190, 202, 177, 8, 127, 66, 220, 235, 253, 253, 243, 128, 10, 50, 113, 184, 140, 37, 215, 36, 94, 187, 113, 45, 110, 181, 111, 106, 6, 134, 195, 253, 45, 197, 93, 16, 203, 192, 78, 140, 0, 226, 244, 99, 176, 242, 246, 108, 106, 213, 155, 209, 22, 255, 169, 143, 139, 121, 121, 26, 194, 54, 128, 140, 136, 237, 77, 59, 155, 217, 30, 210, 110, 168, 139, 49, 160, 204, 182, 115, 101, 17, 55, 48, 192, 1, 194, 218, 224, 177, 209, 146, 108, 50, 169, 46, 111, 57, 65, 242, 142, 183, 67, 20, 20, 167, 49, 147, 197, 100, 173, 183, 180, 191, 41, 214, 182, 94, 152, 39, 131, 239, 89, 68, 178, 125, 8, 20, 64, 162, 157, 126, 168, 124, 139, 63, 152, 201, 16, 45, 225, 185, 231, 176, 84, 65, 71, 24, 178, 3, 77, 178, 233, 23, 171, 44, 108, 211, 15, 87, 146, 186, 45, 32, 237, 206, 132, 239, 249, 88, 96, 159, 78, 63, 24, 246, 124, 116, 240, 217, 132, 253, 71, 65, 39, 43, 96, 208, 103, 17, 157, 245, 199, 172, 116, 172, 5, 184, 25, 223, 89, 193, 105, 248, 77, 144, 129, 97, 230, 144, 20, 104, 79, 244, 241, 208, 217, 131, 183, 240, 190, 234, 153, 55, 80, 113, 23, 255, 67, 58, 154, 125, 67, 139, 74, 51, 240, 169, 211, 199, 172, 24, 184, 248, 248, 161, 228, 78, 147, 222, 219, 133, 15, 174, 212, 205, 111, 149, 37, 24, 207, 245, 181, 187, 124, 206, 83, 3, 75, 145, 250, 176, 246, 104, 250, 137, 29, 39, 146, 189, 180, 171, 94, 76, 22, 168, 148, 142, 190, 43, 244, 98, 235, 179, 191, 134, 109, 90, 207, 110, 145, 151, 215, 152, 13, 248, 141, 134, 226, 241, 255, 233, 224, 202, 250, 72, 87, 21, 161, 170, 102, 153, 50, 87, 97, 113, 7, 152, 69, 228, 207, 62, 199, 141, 242, 196, 141, 74, 80, 105, 137, 46, 222, 74, 207, 204, 212, 138, 225, 85, 128, 253, 171, 38, 191, 113, 243, 95, 87, 152, 95, 55, 26, 246, 154, 201, 108, 26, 138, 217, 217, 32, 195, 238, 172, 97, 216, 234, 100, 246, 98, 96, 85, 121, 37, 104, 201, 217, 111, 91, 4, 23, 50, 174, 147, 166, 110, 164, 23, 100, 117, 179, 251, 193, 33, 227, 190, 93, 194, 129, 221, 115, 207, 126, 91, 196, 18, 158, 248, 69, 34, 121, 99, 225, 198, 213, 116, 53, 233, 165, 49, 60, 180, 238, 94, 143, 146, 47, 4, 191, 127, 137, 241, 54, 64, 114, 66, 196, 68, 75, 187, 225, 168, 123, 5, 231, 37, 243, 48, 241, 240, 29, 249, 19, 5, 24, 112, 51, 102, 54, 33, 85, 225, 12, 241, 2, 73, 51, 125, 240, 213, 120, 153, 197, 245, 204, 218, 59, 168, 226, 194, 54, 211, 63, 170, 66, 53, 159, 36, 226, 246, 192, 179, 26, 118, 163, 222, 99, 41, 251, 105, 49, 239, 249, 161, 204, 217, 78, 245, 53, 252, 230, 253, 44, 14, 176, 91, 245, 124, 167, 166, 178, 218, 153, 95, 29, 121, 200, 136, 81, 199, 228, 38, 70, 70, 177, 187, 34, 183, 180, 69, 40, 250, 185, 203, 232, 79, 244, 94, 190, 219, 128, 5, 101, 22, 53, 249, 94, 138, 28, 220, 154, 131, 246, 99, 252, 115, 44, 94, 101, 147, 228, 44, 179, 103, 186, 150, 238, 227, 96, 17, 180, 133, 28, 43, 161, 177, 176, 217, 31, 156, 209, 197, 82, 17, 249, 5, 73, 196, 161, 8, 231, 195, 76, 219, 79, 211, 98, 7, 215, 179, 91, 44, 12, 62, 144, 94, 76, 191, 93, 149, 216, 133, 146, 246, 150, 233, 58, 18, 18, 245, 85, 171, 112, 163, 107, 3, 89, 86, 23, 169, 190, 67, 11, 247, 99, 64, 183, 22, 25, 170, 107, 244, 193, 36, 182, 189, 50, 150, 9, 116, 107, 71, 169, 13, 70, 68, 25, 94, 213, 218, 22, 122, 142, 246, 251, 174, 209, 90, 244, 28, 4, 109, 142, 167, 26, 10, 52, 103, 36, 88, 197, 39, 108, 170, 28, 118, 55, 214, 45, 163, 152, 134, 166, 110, 157, 43, 191, 0, 109, 147, 114, 196, 227, 186, 250, 177, 114, 20, 127, 83, 55, 41, 245, 31, 87, 158, 253, 80, 104, 145, 86, 239, 42, 146, 206, 236, 48, 153, 183, 71, 39, 161, 192, 172, 213, 56, 51, 245, 11, 135, 154, 37, 97, 212, 188, 151, 191, 12, 55, 208, 159, 79, 235, 185, 53, 180, 48, 178, 0, 195, 146, 128, 74, 190, 83, 68, 109, 95, 208, 172, 116, 190, 252, 57, 197, 186, 137, 86, 225, 120, 144, 105, 168, 229, 129, 199, 239, 241, 31, 30, 60, 29, 90, 254, 244, 51, 208, 212, 66, 143, 215, 22, 125, 55, 181, 14, 86, 61, 166, 130, 194, 114, 56, 199, 211, 168, 147, 183, 71, 77, 106, 54, 233, 114, 130, 133, 42, 174, 3, 209, 111, 125, 213, 89, 115, 192, 147, 95, 131, 46, 31, 93, 25, 121, 131, 189, 130, 160, 140, 98, 170, 165, 45, 72, 242, 113, 217, 82, 9, 79, 97, 122, 99, 125, 44, 113, 142, 224, 8, 51, 161, 156, 110, 148, 143, 156, 119, 222, 95, 194, 135, 231, 125, 72, 24, 194, 2, 83, 22, 34, 121, 26, 99, 149, 102, 191, 43, 75, 156, 162, 238, 90, 101, 246, 96, 85, 15, 119, 143, 109, 27, 117, 251, 41, 223, 138, 212, 29, 89, 143, 154, 150, 199, 104, 8, 199, 3, 216, 86, 235, 107, 254, 13, 131, 178, 130, 147, 231, 165, 133, 5, 140, 225, 254, 142, 131, 19, 123, 144, 108, 4, 192, 122, 70, 112, 87, 215, 46, 149, 53, 37, 177, 106, 67, 32, 6, 15, 13, 44, 225, 11, 91, 0, 6, 93, 142, 69, 200, 70, 103, 133, 219, 81, 31, 49, 195, 131, 180, 28, 87, 213, 20, 107, 65, 49, 239, 56, 46, 28, 247, 211, 121, 105, 19, 152, 239, 226, 152, 161, 110, 178, 58, 205, 85, 15, 11, 28, 46, 19, 12, 63, 185, 151, 10, 254, 71, 240, 242, 158, 50, 103, 68, 164, 58, 208, 188, 4, 187, 124, 162, 195, 198, 25, 4, 226, 40, 69, 16, 60, 136, 65, 91, 216, 63, 63, 55, 51, 144, 96, 192, 247, 104, 161, 249, 130, 168, 195, 108, 127, 1, 70, 37, 203, 56, 9, 121, 110, 157, 11, 156, 243, 2, 85, 86, 25, 93, 104, 216, 11, 197, 126, 22, 248, 195, 173, 117, 17, 101, 37, 143, 154, 230, 55, 160, 85, 10, 219, 53, 85, 134, 189, 127, 198, 0, 4, 23, 144, 167, 48, 106, 137, 127, 1, 38, 94, 109, 241, 216, 86, 121, 196, 94, 81, 178, 15, 68, 106, 114, 2, 204, 15, 75, 135, 138, 92, 148, 142, 129, 232, 41, 11, 217, 249, 119, 168, 49, 253, 72, 100, 218, 171, 42, 11, 255, 218, 21, 72, 98, 69, 146, 122, 82, 177, 58, 216, 108, 67, 37, 52, 210, 96, 56, 98, 22, 78, 24, 118, 235, 233, 57, 99, 245, 150, 76, 116, 63, 113, 25, 26, 73, 241, 198, 25, 238, 120, 159, 163, 32, 212, 196, 173, 70, 90, 248, 40, 156, 96, 90, 159, 248, 194, 63, 34, 176, 191, 209, 110, 201, 222, 214, 61, 146, 55, 243, 199, 214, 77, 113, 117, 12, 92, 160, 98, 75, 255, 92, 17, 193, 231, 28, 244, 100, 228, 232, 79, 84, 174, 5, 23, 247, 232, 83, 76, 220, 219, 182, 57, 214, 142, 23, 99, 255, 62, 199, 149, 105, 95, 219, 172, 146, 237, 148, 164, 7, 126, 150, 156, 215, 105, 64, 172, 66, 124, 169, 57, 242, 254, 49, 63, 154, 132, 172, 155, 137, 190, 192, 216, 140, 24, 243, 17, 147, 164, 217, 79, 211, 146, 108, 19, 107, 61, 26, 233, 47, 233, 200, 110, 186, 116, 161, 226, 107, 62, 172, 76, 152, 102, 100, 185, 25, 175, 117, 201, 194, 58, 205, 195, 68, 72, 238, 103, 144, 121, 110, 235, 5, 66, 168, 84, 172, 0, 15, 192, 152, 149, 200, 176, 227, 174, 57, 82, 225, 184, 26, 132, 17, 74, 119, 217, 12, 255, 173, 233, 184, 168, 68, 49, 21, 5, 142, 169, 1, 24, 220, 221, 227, 123, 45, 215, 0, 10, 160, 233, 247, 70, 118, 39, 98, 232, 77, 211, 222, 226, 166, 174, 63, 117, 142, 214, 144, 49, 6, 47, 112, 72, 245, 9, 235, 204, 126, 5, 24, 69, 60, 116, 70, 210, 111, 182, 124, 69, 59, 29, 232, 145, 40, 197, 14, 42, 196, 165, 169, 73, 193, 14, 164, 209, 192, 95, 226, 186, 192, 86, 87, 29, 68, 159, 54, 76, 56, 146, 4, 95, 13, 83, 178, 147, 235, 102, 215, 174, 235, 106, 158, 55, 207, 0, 142, 22, 11, 210, 225, 71, 13, 95, 99, 123, 142, 108, 83, 131, 241, 133, 16, 215, 107, 38, 115, 167, 26, 239, 77, 91, 222, 174, 116, 113, 83, 66, 88, 235, 6, 103, 36, 171, 194, 6, 36, 126, 69, 36, 226, 179, 103, 180, 92, 122, 251, 170, 234, 245, 107, 43, 242, 114, 246, 67, 142, 1, 208, 198, 203, 82, 75, 220, 112, 65, 206, 141, 37, 184, 15, 141, 149, 131, 44, 6, 240, 15, 249, 155, 50, 64, 210, 191, 255, 120, 33, 74, 231, 247, 24, 167, 76, 52, 50, 167, 248, 129, 103, 234, 245, 40, 137, 189, 21, 63, 247, 167, 212, 32, 82, 199, 40, 7, 182, 236, 235, 229, 173, 101, 62, 129, 208, 223, 250, 81, 134, 240, 96, 225, 14, 176, 245, 215, 21, 184, 12, 231, 40, 173, 180, 236, 37, 252, 86, 19, 247, 91, 66, 153, 58, 14, 227, 231, 123, 132, 100, 35, 97, 59, 206, 72, 97, 95, 253, 254, 215, 227, 249, 97, 255, 82, 144, 23, 255, 254, 224, 161, 192, 75, 27, 43, 173, 223, 197, 147, 245, 41, 30, 177, 49, 178, 171, 216, 145, 108, 239, 30, 189, 25, 246, 164, 179, 51, 227, 17, 110, 119, 239, 168, 54, 154, 235, 244, 153, 238, 205, 239, 13, 87, 206, 155, 44, 87, 252, 78, 14, 165, 225, 105, 221, 94, 21, 167, 138, 75, 127, 74, 79, 59, 66, 122, 142, 194, 59, 137, 132, 236, 79, 198, 86, 111, 209, 61, 116, 90, 59, 153, 210, 53, 157, 223, 99, 163, 250, 163, 172, 42, 246, 134, 98, 162, 62, 164, 59, 183, 23, 32, 203, 98, 151, 5, 14, 174, 133, 57, 74, 39, 252, 9, 223, 109, 27, 65, 169, 180, 138, 184, 16, 245, 87, 57, 110, 202, 112, 235, 15, 172, 147, 168, 130, 124, 29, 158, 20, 243, 211, 10, 24, 238, 71, 134, 94, 242, 23, 35, 9, 255, 146, 236, 121, 9, 193, 231, 102, 238, 179, 139, 74, 230, 219, 149, 168, 207, 10, 234, 20, 185, 246, 240, 185, 22, 192, 187, 89, 70, 91, 109, 117, 43, 13, 45, 207, 101, 191, 135, 192, 172, 208, 30, 220, 108, 24, 7, 19, 202, 8, 224, 199, 3, 98, 150, 221, 255, 104, 172, 52, 76, 188, 201, 95, 134, 12, 28, 24, 46, 130, 49, 128, 236, 153, 174, 50, 149, 216, 105, 165, 221, 127, 24, 207, 165, 136, 98, 180, 250, 0, 70, 85, 155, 227, 164, 48, 145, 6, 199, 56, 228, 107, 66, 101, 247, 49, 125, 230, 206, 28, 204, 191, 33, 42, 159, 154, 62, 213, 29, 166, 236, 46, 173, 58, 101, 161, 53, 249, 61, 251, 91, 77, 90, 166, 245, 135, 179, 127, 30, 98, 144, 234, 35, 45, 75, 236, 79, 132, 238, 19, 19, 194, 121, 72, 208, 45, 252, 202, 166, 56, 165, 205, 165, 44, 212, 132, 192, 221, 126, 128, 85, 238, 243, 14, 228, 150, 66, 163, 69, 75, 190, 48, 242, 75, 113, 236, 25, 240, 4, 67, 174, 54, 43, 136, 16, 167, 104, 137, 12, 65, 166, 106, 111, 227, 254, 125, 33, 200, 205, 160, 165, 97, 185, 1, 155, 206, 38, 188, 0, 38, 230, 236, 202, 214, 175, 187, 32, 213, 75, 65, 66, 198, 25, 77, 165, 178, 108, 112, 68, 146, 192, 230, 140, 94, 221, 218, 243, 1, 214, 67, 63, 158, 217, 39, 229, 73, 95, 24, 56, 167, 65, 197, 45, 42, 14, 16, 20, 130, 109, 178, 8, 67, 51, 143, 199, 219, 23, 89, 167, 148, 59, 221, 180, 65, 89, 6, 41, 239, 155, 235, 72, 92, 89, 94, 212, 118, 71, 248, 216, 200, 233, 203, 89, 195, 130, 25, 24, 118, 171, 168, 29, 172, 19, 4, 84, 255, 68, 183, 227, 8, 71, 125, 152, 119, 69, 100, 198, 198, 79, 34, 62, 111, 133, 185, 42, 80, 1, 170, 15, 19, 142, 186, 21, 184, 68, 170, 41, 190, 173, 49, 88, 166, 39, 28, 107, 98, 224, 85, 20, 102, 156, 254, 177, 92, 201, 174, 38, 147, 150, 87, 90, 169, 137, 225, 53, 157, 76, 134, 6, 116, 221, 73, 228, 49, 18, 12, 55, 120, 132, 227, 181, 193, 14, 125, 81, 210, 118, 138, 74, 38, 61, 192, 155, 187, 57, 58, 217, 109, 198, 45, 163, 165, 193, 68, 125, 154, 173, 200, 224, 42, 69, 82, 169, 16, 163, 245, 212, 138, 155, 255, 105, 247, 131, 150, 65, 188, 19, 252, 68, 11, 181, 69, 151, 175, 123, 190, 253, 77, 88, 135, 128]I was trying to debug but the code will always throw error in VTDecompressionSessionDecodeFrame. I check the videoSession and the sampleBuffer was not null so I don't know which parameter has fault. I am wondering if this is referring to a problem about decompressionOutputCallback because the initVideoSession() method, the line:
outputCallback.decompressionOutputCallback = callback as? VTDecompressionOutputCallbackis always nil. Maybe the reason is the callback is never called.For more information this is my callback method.
fileprivate func callback(_ decompressionOutputRefCon: UnsafeMutableRawPointer, sourceFrameRefCon: UnsafeMutableRawPointer, status: OSStatus, infoFlags: VTDecodeInfoFlags, imageBuffer: CVImageBuffer?, presentationTimeStamp: CMTime, presentationDuration: CMTime){ unsafeBitCast(decompressionOutputRefCon, to: H264Decoder.self).decompressionOutputCallback(sourceFrameRefCon, status: status, infoFlags: infoFlags, imageBuffer: imageBuffer, presentationTimeStamp: presentationTimeStamp, presentationDuration: presentationDuration) }
Raw frame you are provided seems not to be AnnexB. The Annex B specification solves this by requiring ‘Start Codes’ to precede each NALU. A start code is 2 or 3 0x00 bytes followed with a 0x01 byte. e.g. 0x000001 or 0x00000001