Skip to content

I keep get request_body as bytearray on sagemaker #1839

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
LiJell opened this issue Sep 1, 2022 · 6 comments
Closed

I keep get request_body as bytearray on sagemaker #1839

LiJell opened this issue Sep 1, 2022 · 6 comments
Assignees
Labels
invalid This doesn't seem right sagemaker support triaged_wait Waiting for the Reporter's resp

Comments

@LiJell
Copy link

LiJell commented Sep 1, 2022

🐛 Describe the bug

HI, I am not sure it is right place to ask, but need a help.
I am a beginner of this field and I am struggling with inference.py

I am trying to input image on my model.
But, I keep get request_body as bytearray somehow.

I thought this is due to content_type, so I convert image to json which is common content_type of sagemaker.
However, I still get byearray.

Need a help.. thank you.

Error logs

timestamp,message,logStreamName
1662017756865,Requirement already satisfied: torch>=1.7.1 in /opt/conda/lib/python3.8/site-packages (from -r /opt/ml/model/code/requirements.txt (line 1)) (1.9.0),AllTraffic/i-0449a88a39a7e898c
1662017756865,Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from -r /opt/ml/model/code/requirements.txt (line 2)) (0.10.0),AllTraffic/i-0449a88a39a7e898c
1662017756865,Requirement already satisfied: typing-extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.7.1->-r /opt/ml/model/code/requirements.txt (line 1)) (3.10.0.2),AllTraffic/i-0449a88a39a7e898c
1662017756865,Requirement already satisfied: pillow>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->-r /opt/ml/model/code/requirements.txt (line 2)) (8.3.2),AllTraffic/i-0449a88a39a7e898c
1662017756865,Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->-r /opt/ml/model/code/requirements.txt (line 2)) (1.20.3),AllTraffic/i-0449a88a39a7e898c
1662017757607,WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv,AllTraffic/i-0449a88a39a7e898c
1662017757607,"2022-09-01 07:35:57,366 [INFO ] main org.pytorch.serve.servingsdk.impl.PluginsManager - Initializing plugins manager...",AllTraffic/i-0449a88a39a7e898c
1662017757607,"2022-09-01 07:35:57,520 [INFO ] main org.pytorch.serve.ModelServer - ",AllTraffic/i-0449a88a39a7e898c
1662017757607,Torchserve version: 0.4.2,AllTraffic/i-0449a88a39a7e898c
1662017757607,TS Home: /opt/conda/lib/python3.8/site-packages,AllTraffic/i-0449a88a39a7e898c
1662017757607,Current directory: /,AllTraffic/i-0449a88a39a7e898c
1662017757607,Temp directory: /home/model-server/tmp,AllTraffic/i-0449a88a39a7e898c
1662017757607,Number of GPUs: 1,AllTraffic/i-0449a88a39a7e898c
1662017757607,Number of CPUs: 1,AllTraffic/i-0449a88a39a7e898c
1662017757607,Max heap size: 3234 M,AllTraffic/i-0449a88a39a7e898c
1662017757607,Python executable: /opt/conda/bin/python3.8,AllTraffic/i-0449a88a39a7e898c
1662017757607,Config file: /etc/sagemaker-ts.properties,AllTraffic/i-0449a88a39a7e898c
1662017757607,Inference address: http://0.0.0.0:8080,AllTraffic/i-0449a88a39a7e898c
1662017757607,Management address: http://0.0.0.0:8080,AllTraffic/i-0449a88a39a7e898c
1662017757607,Metrics address: http://127.0.0.1:8082,AllTraffic/i-0449a88a39a7e898c
1662017757607,Model Store: /.sagemaker/ts/models,AllTraffic/i-0449a88a39a7e898c
1662017757607,Initial Models: model.mar,AllTraffic/i-0449a88a39a7e898c
1662017757607,Log dir: /logs,AllTraffic/i-0449a88a39a7e898c
1662017757607,Metrics dir: /logs,AllTraffic/i-0449a88a39a7e898c
1662017757607,Netty threads: 0,AllTraffic/i-0449a88a39a7e898c
1662017757607,Netty client threads: 0,AllTraffic/i-0449a88a39a7e898c
1662017757607,Default workers per model: 1,AllTraffic/i-0449a88a39a7e898c
1662017757607,Blacklist Regex: N/A,AllTraffic/i-0449a88a39a7e898c
1662017757607,Maximum Response Size: 6553500,AllTraffic/i-0449a88a39a7e898c
1662017757607,Maximum Request Size: 6553500,AllTraffic/i-0449a88a39a7e898c
1662017757607,Prefer direct buffer: false,AllTraffic/i-0449a88a39a7e898c
1662017757607,Allowed Urls: [file://.|http(s)?://.],AllTraffic/i-0449a88a39a7e898c
1662017757607,Custom python dependency for model allowed: false,AllTraffic/i-0449a88a39a7e898c
1662017757607,Metrics report format: prometheus,AllTraffic/i-0449a88a39a7e898c
1662017757607,Enable metrics API: true,AllTraffic/i-0449a88a39a7e898c
1662017757607,Workflow Store: /.sagemaker/ts/models,AllTraffic/i-0449a88a39a7e898c
1662017757607,Model config: N/A,AllTraffic/i-0449a88a39a7e898c
1662017757607,"2022-09-01 07:35:57,527 [INFO ] main org.pytorch.serve.servingsdk.impl.PluginsManager - Loading snapshot serializer plugin...",AllTraffic/i-0449a88a39a7e898c
1662017757858,"2022-09-01 07:35:57,558 [INFO ] main org.pytorch.serve.ModelServer - Loading initial models: model.mar",AllTraffic/i-0449a88a39a7e898c
1662017757858,"2022-09-01 07:35:57,767 [INFO ] main org.pytorch.serve.wlm.ModelManager - Model model loaded.",AllTraffic/i-0449a88a39a7e898c
1662017758109,"2022-09-01 07:35:57,779 [INFO ] main org.pytorch.serve.ModelServer - Initialize Inference server with: EpollServerSocketChannel.",AllTraffic/i-0449a88a39a7e898c
1662017758109,"2022-09-01 07:35:57,878 [INFO ] main org.pytorch.serve.ModelServer - Inference API bind to: http://0.0.0.0:8080",AllTraffic/i-0449a88a39a7e898c
1662017758109,"2022-09-01 07:35:57,879 [INFO ] main org.pytorch.serve.ModelServer - Initialize Metrics server with: EpollServerSocketChannel.",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:57,886 [INFO ] main org.pytorch.serve.ModelServer - Metrics API bind to: http://127.0.0.1:8082",AllTraffic/i-0449a88a39a7e898c
1662017758360,Model server started.,AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,124 [WARN ] pool-2-thread-1 org.pytorch.serve.metrics.MetricCollector - worker pid is not available yet.",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,180 [INFO ] pool-2-thread-1 TS_METRICS - CPUUtilization.Percent:0.0|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,180 [INFO ] pool-2-thread-1 TS_METRICS - DiskAvailable.Gigabytes:24.4129638671875|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,181 [INFO ] pool-2-thread-1 TS_METRICS - DiskUsage.Gigabytes:27.575298309326172|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,181 [INFO ] pool-2-thread-1 TS_METRICS - DiskUtilization.Percent:53.0|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,181 [INFO ] pool-2-thread-1 TS_METRICS - MemoryAvailable.Megabytes:14138.97265625|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,182 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUsed.Megabytes:1275.46875|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,182 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUtilization.Percent:10.2|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,354 [INFO ] W-9000-model_1-stdout MODEL_LOG - Listening on port: /home/model-server/tmp/.ts.sock.9000",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,355 [INFO ] W-9000-model_1-stdout MODEL_LOG - [PID]37",AllTraffic/i-0449a88a39a7e898c
1662017758360,"2022-09-01 07:35:58,355 [INFO ] W-9000-model_1-stdout MODEL_LOG - Torch worker started.",AllTraffic/i-0449a88a39a7e898c
1662017758610,"2022-09-01 07:35:58,355 [INFO ] W-9000-model_1-stdout MODEL_LOG - Python runtime: 3.8.10",AllTraffic/i-0449a88a39a7e898c
1662017758610,"2022-09-01 07:35:58,360 [INFO ] W-9000-model_1 org.pytorch.serve.wlm.WorkerThread - Connecting to: /home/model-server/tmp/.ts.sock.9000",AllTraffic/i-0449a88a39a7e898c
1662017758610,"2022-09-01 07:35:58,370 [INFO ] W-9000-model_1-stdout MODEL_LOG - Connection accepted: /home/model-server/tmp/.ts.sock.9000.",AllTraffic/i-0449a88a39a7e898c
1662017761368,"2022-09-01 07:35:58,420 [INFO ] W-9000-model_1-stdout MODEL_LOG - model_name: model, batchSize: 1",AllTraffic/i-0449a88a39a7e898c
1662017761368,"2022-09-01 07:36:01,140 [INFO ] W-9000-model_1 org.pytorch.serve.wlm.WorkerThread - Backend response time: 2719",AllTraffic/i-0449a88a39a7e898c
1662017761368,"2022-09-01 07:36:01,140 [INFO ] W-9000-model_1 TS_METRICS - W-9000-model_1.ms:3367|#Level:Host|#hostname:container-0.local,timestamp:1662017761",AllTraffic/i-0449a88a39a7e898c
1662017762222,"2022-09-01 07:36:01,141 [INFO ] W-9000-model_1 TS_METRICS - WorkerThreadTime.ms:49|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017762222,"2022-09-01 07:36:01,694 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 12",AllTraffic/i-0449a88a39a7e898c
1662017766865,"2022-09-01 07:36:01,694 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017766883,"2022-09-01 07:36:06,635 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 1",AllTraffic/i-0449a88a39a7e898c
1662017771647,"2022-09-01 07:36:06,635 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017771647,"2022-09-01 07:36:11,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017775865,"2022-09-01 07:36:11,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017776701,"2022-09-01 07:36:16,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017780865,"2022-09-01 07:36:16,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017781673,"2022-09-01 07:36:21,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017785865,"2022-09-01 07:36:21,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017786687,"2022-09-01 07:36:26,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017790906,"2022-09-01 07:36:26,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017791702,"2022-09-01 07:36:31,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017795865,"2022-09-01 07:36:31,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017796715,"2022-09-01 07:36:36,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017800865,"2022-09-01 07:36:36,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017801741,"2022-09-01 07:36:41,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017805865,"2022-09-01 07:36:41,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017806741,"2022-09-01 07:36:46,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017810865,"2022-09-01 07:36:46,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017811752,"2022-09-01 07:36:51,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017815912,"2022-09-01 07:36:51,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017816764,"2022-09-01 07:36:56,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:56,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - CPUUtilization.Percent:0.0|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - DiskAvailable.Gigabytes:24.413227081298828|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - DiskUsage.Gigabytes:27.575035095214844|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - DiskUtilization.Percent:53.0|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - MemoryAvailable.Megabytes:12699.796875|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017818268,"2022-09-01 07:36:58,171 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUsed.Megabytes:2702.546875|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017821777,"2022-09-01 07:36:58,171 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUtilization.Percent:19.3|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c
1662017821777,"2022-09-01 07:37:01,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017825865,"2022-09-01 07:37:01,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017826808,"2022-09-01 07:37:06,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017830866,"2022-09-01 07:37:06,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017831805,"2022-09-01 07:37:11,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017835866,"2022-09-01 07:37:11,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017836817,"2022-09-01 07:37:16,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017840865,"2022-09-01 07:37:16,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017841830,"2022-09-01 07:37:21,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017845865,"2022-09-01 07:37:21,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017846855,"2022-09-01 07:37:26,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017850865,"2022-09-01 07:37:26,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017851878,"2022-09-01 07:37:31,634 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:31,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:35,547 [INFO ] W-9000-model_1 org.pytorch.serve.wlm.WorkerThread - Backend response time: 80",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:35,547 [INFO ] W-9000-model_1 ACCESS_LOG - /169.254.178.2:51552 ""POST /invocations HTTP/1.1"" 500 88",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:35,548 [INFO ] W-9000-model_1 TS_METRICS - Requests5XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:35,548 [INFO ] W-9000-model_1 TS_METRICS - QueueTime.ms:0|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:35,548 [INFO ] W-9000-model_1 TS_METRICS - WorkerThreadTime.ms:2|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c
1662017855617,"2022-09-01 07:37:35,588 [INFO ] W-9000-model_1-stdout MODEL_LOG - request_body bytearray(b'\x93NUMPY\x01\x00v\x00{'descr': '<U40511', 'fortran_order': False, 'shape': (), }
{\x00\x00\x00""\x00\x00\x00i\x00\x00\x00m\x00\x00\x00g\x00\x00\x00""\x00\x00\x00:\x00\x00\x00 \x00\x00\x00""\x00\x00\x00/\x00\x00\x009\x00\x00\x00j\x00\x00\x00/\x00\x00\x004\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00S\x00\x00\x00k\x00\x00\x00Z\x00\x00\x00J\x00\x00\x00R\x00\x00\x00g\x00\x00\x00A\x00\x00\x00B\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00B\x00\x00\x00L\x00\x00\x00A\x00\x00\x00E\x00\x00\x00s\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00/\x00\x00\x004\x00\x00\x00g\x00\x00\x00x\x00\x00\x00Y\x00\x00\x00S\x00\x00\x00U\x00\x00\x00N\x00\x00\x00D\x00\x00\x00X\x00\x00\x001\x00\x00\x00B\x00\x00\x00S\x00\x00\x00T\x00\x00\x000\x00\x00\x00Z\x00\x00\x00J\x00\x00\x00T\x00\x00\x00E\x00\x00\x00U\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00x\x00\x00\x00I\x00\x00\x00T\x00\x00\x00G\x00\x00\x00l\x00\x00\x00u\x00\x00\x00b\x00\x00\x00w\x00\x00\x00I\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00t\x00\x00\x00b\x00\x00\x00n\x00\x00\x00R\x00\x00\x00y\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00F\x00\x00\x00h\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00i\x00\x00\x00A\x00\x00\x00H\x00\x00\x00z\x00\x00\x00g\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00A\x00\x00\x00k\x00\x00\x00A\x00\x00\x00B\x00\x00\x00g\x00\x00\x00A\x00\x00\x00x\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00h\x00\x00\x00Y\x00\x00\x003\x00\x00\x00N\x00\x00\x00w\x00\x00\x00T\x00\x00\x00V\x00\x00\x00N\x00\x00\x00G\x00\x00\x00V\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x00g\x00\x00\x00c\x00\x00\x001\x00\x00\x00J\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x009\x00\x00\x00t\x00\x00\x00Y\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00T\x00\x00\x00L\x00\x00\x00U\x00\x00\x00h\x00\x00\x00Q\x00\x00\x00I\x00\x00\x00C\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00F\x00\x00\x00j\x00\x00\x00c\x00\x00\x00H\x00\x00\x00J\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00U\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00N\x00\x00\x00k\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00N\x00\x00\x00j\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00h\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00G\x00\x00\x00x\x00\x00\x003\x00\x00\x00d\x00\x00\x00H\x00\x00\x00B\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x008\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00i\x00\x00\x00a\x00\x00\x003\x00\x00\x00B\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00B\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00y\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00G\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00n\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00L\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00i\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00k\x00\x00\x00b\x00\x00\x00W\x00\x00\x005\x00\x00\x00k\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00V\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00H\x00\x00\x00B\x00\x00\x00k\x00\x00\x00b\x00\x00\x00W\x00\x00\x00R\x00\x00\x00k\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00x\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00I\x00\x00\x00h\x00\x00\x002\x00\x00\x00d\x00\x00\x00W\x00\x00\x00V\x00\x00\x00k\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00T\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00I\x00\x00\x00Z\x00\x00\x002\x00\x00\x00a\x00\x00\x00W\x00\x00\x00V\x00\x00\x003\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x001\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00R\x00\x00\x00s\x00\x00\x00d\x00\x00\x00W\x00\x00\x001\x00\x00\x00p\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00+\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00t\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00F\x00\x00\x00z\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00R\x00\x00\x000\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00N\x00\x00\x00o\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00M\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00x\x00\x00\x00y\x00\x00\x00V\x00\x00\x00F\x00\x00\x00J\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00P\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00x\x00\x00\x00n\x00\x00\x00V\x00\x00\x00F\x00\x00\x00J\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00P\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00x\x00\x00\x00i\x00\x00\x00V\x00\x00\x00F\x00\x00\x00J\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00P\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00x\x00\x00\x000\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00h\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00N\x00\x00\x00v\x00\x00\x00c\x00\x00\x00H\x00\x00\x00l\x00\x00\x00y\x00\x00\x00a\x00\x00\x00W\x00\x00\x00d\x00\x00\x00o\x00\x00\x00d\x00\x00\x00C\x00\x00\x00A\x00\x00\x00o\x00\x00\x00Y\x00\x00\x00y\x00\x00\x00k\x00\x00\x00g\x00\x00\x00M\x00\x00\x00T\x00\x00\x00k\x00\x00\x005\x00\x00\x00O\x00\x00\x00C\x00\x00\x00B\x00\x00\x00I\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00d\x00\x00\x00s\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00R\x00\x00\x000\x00\x00\x00L\x00\x00\x00V\x00\x00\x00B\x00\x00\x00h\x00\x00\x00Y\x00\x00\x002\x00\x00\x00t\x00\x00\x00h\x00\x00\x00c\x00\x00\x00m\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00Q\x00\x00\x002\x00\x00\x009\x00\x00\x00t\x00\x00\x00c\x00\x00\x00G\x00\x00\x00F\x00\x00\x00u\x00\x00\x00e\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Z\x00\x00\x00G\x00\x00\x00V\x00\x00\x00z\x00\x00\x00Y\x00\x00\x00w\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00S\x00\x00\x00c\x00\x00\x001\x00\x00\x00J\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00i\x00\x00\x00B\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x002\x00\x00\x00M\x00\x00\x00T\x00\x00\x00k\x00\x00\x002\x00\x00\x00N\x00\x00\x00i\x00\x00\x000\x00\x00\x00y\x00\x00\x00L\x00\x00\x00j\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00J\x00\x00\x00z\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00E\x00\x00\x00l\x00\x00\x00F\x00\x00\x00Q\x00\x00\x00z\x00\x00\x00Y\x00\x00\x00x\x00\x00\x00O\x00\x00\x00T\x00\x00\x00Y\x00\x00\x002\x00\x00\x00L\x00\x00\x00T\x00\x00\x00I\x00\x00\x00u\x00\x00\x00M\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00P\x00\x00\x00N\x00\x00\x00R\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00F\x00\x00\x00s\x00\x00\x00x\x00\x00\x00Y\x00\x00\x00W\x00\x00\x00V\x00\x00\x00o\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00F\x00\x00\x00h\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00i\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00v\x00\x00\x00o\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00O\x00\x00\x00P\x00\x00\x00U\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00O\x00\x00\x00Q\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00G\x00\x00\x00K\x00\x00\x00Z\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x003\x00\x00\x00h\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00G\x00\x00\x00N\x00\x00\x00p\x00\x00\x00Y\x00\x00\x00W\x00\x00\x00V\x00\x00\x00o\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00J\x00\x00\x00K\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00+\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x002\x00\x00\x00z\x00\x00\x002\x00\x00\x00R\x00\x00\x00l\x00\x00\x00c\x00\x00\x002\x00\x00\x00M\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00F\x00\x00\x00k\x00\x00\x00l\x00\x00\x00F\x00\x00\x00Q\x00\x00\x00y\x00\x00\x00B\x00\x00\x00o\x00\x00\x00d\x00\x00\x00H\x00\x00\x00R\x00\x00\x00w\x00\x00\x00O\x00\x00\x00i\x00\x00\x008\x00\x00\x00v\x00\x00\x00d\x00\x00\x003\x00\x00\x00d\x00\x00\x003\x00\x00\x00L\x00\x00\x00m\x00\x00\x00l\x00\x00\x00l\x00\x00\x00Y\x00\x00\x00y\x00\x00\x005\x00\x00\x00j\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00F\x00\x00\x00k\x00\x00\x00l\x00\x00\x00F\x00\x00\x00Q\x00\x00\x00y\x00\x00\x00B\x00\x00\x00o\x00\x00\x00d\x00\x00\x00H\x00\x00\x00R\x00\x00\x00w\x00\x00\x00O\x00\x00\x00i\x00\x00\x008\x00\x00\x00v\x00\x00\x00d\x00\x00\x003\x00\x00\x00d\x00\x00\x003\x00\x00\x00L\x00\x00\x00m\x00\x00\x00l\x00\x00\x00l\x00\x00\x00Y\x00\x00\x00y\x00\x00\x005\x00\x00\x00j\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00k\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00N\x00\x00\x00j\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x005\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x00g\x00\x00\x00N\x00\x00\x00j\x00\x00\x00E\x00\x00\x005\x00\x00\x00N\x00\x00\x00j\x00\x00\x00Y\x00\x00\x00t\x00\x00\x00M\x00\x00\x00i\x00\x00\x004\x00\x00\x00x\x00\x00\x00I\x00\x00\x00E\x00\x00\x00R\x00\x00\x00l\x00\x00\x00Z\x00\x00\x00m\x00\x00\x00F\x00\x00\x001\x00\x00\x00b\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00G\x00\x00\x00N\x00\x00\x00v\x00\x00\x00b\x00\x00\x00G\x00\x00\x009\x00\x00\x001\x00\x00\x00c\x00\x00\x00i\x00\x00\x00B\x00\x00\x00z\x00\x00\x00c\x00\x00\x00G\x00\x00\x00F\x00\x00\x00j\x00\x00\x00Z\x00\x00\x00S\x00\x00\x00A\x00\x00\x00t\x00\x00\x00I\x00\x00\x00H\x00\x00\x00N\x00\x00\x00S\x00\x00\x00R\x00\x00\x000\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x005\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x00g\x00\x00\x00N\x00\x00\x00j\x00\x00\x00E\x00\x00\x005\x00\x00\x00N\x00\x00\x00j\x00\x00\x00Y\x00\x00\x00t\x00\x00\x00M\x00\x00\x00i\x00\x00\x004\x00\x00\x00x\x00\x00\x00I\x00\x00\x00E\x00\x00\x00R\x00\x00\x00l\x00\x00\x00Z\x00\x00\x00m\x00\x00\x00F\x00\x00\x001\x00\x00\x00b\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00G\x00\x00\x00N\x00\x00\x00v\x00\x00\x00b\x00\x00\x00G\x00\x00\x009\x00\x00\x001\x00\x00\x00c\x00\x00\x00i\x00\x00\x00B\x00\x00\x00z\x00\x00\x00c\x00\x00\x00G\x00\x00\x00F\x00\x00\x00j\x00\x00\x00Z\x00\x00\x00S\x00\x00\x00A\x00\x00\x00t\x00\x00\x00I\x00\x00\x00H\x00\x00\x00N\x00\x00\x00S\x00\x00\x00R\x00\x00\x000\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Z\x00\x00\x00G\x00\x00\x00V\x00\x00\x00z\x00\x00\x00Y\x00\x00\x00w\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00s\x00\x00\x00U\x00\x00\x00m\x00\x00\x00V\x00\x00\x00m\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00J\x00\x00\x00l\x00\x00\x00b\x00\x00\x00m\x00\x00\x00N\x00\x00\x00l\x00\x00\x00I\x00\x00\x00F\x00\x00\x00Z\x00\x00\x00p\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00d\x00\x00\x00p\x00\x00\x00b\x00\x00\x00m\x00\x00\x00c\x00\x00\x00g\x00\x00\x00Q\x00\x00\x002\x00\x00\x009\x00\x00\x00u\x00\x00\x00Z\x00\x00\x00G\x00\x00\x00l\x00\x00\x000\x00\x00\x00a\x00\x00\x00W\x00\x00\x009\x00\x00\x00u\x00\x00\x00I\x00\x00\x00G\x00\x00\x00l\x00\x00\x00u\x00\x00\x00I\x00\x00\x",

Installation instructions

I am using Sagemaker notebook

model was already trained from local desktop, and I am trying to make an endpoint by sagemaker

Model Packaing

model.tar.gz

model.pt
code/
code/inference.py
code/.ipynb_checkpoints/
code/requirements.txt

=========================

from sagemaker.pytorch import PyTorchModel

model_path = 's3://{}/model.tar.gz'.format(bucket)

pytorch_model = PyTorchModel(model_data=model_path,
role=role,
entry_point='inference.py',
framework_version="1.9.0",
py_version="py38")

config.properties

No response

Versions

framework_version="1.9.0"
py_version = py38

Repro instructions

I am trying to get a result just like below

import json
import base64

data = {}
with open('./IU.jpg', mode='rb') as file:
img = file.read()
data['img'] = base64.b64encode(img).decode('utf-8')

input_data = json.dumps(data)

json.loads(input_data)

print(input_data)

result = predictor.predict(input_data)

converted_image = json.loads(result)
b64img = converted_image['img'].encode('utf-8')
print('b64img', b64img)
image_data = Image.open(BytesIO(base64.b64decode(b64img)))
image_data.show()

and I got an error

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte

When I checked the CloudWatch
it was saying I got bytearray
even if I input json file.

Possible Solution

maybe it is due to content_type

since I test it on sagemaker notebook w/o content_type

it worked properly.

I think it is due to default serializer IdentitySerializer present.
But, I am wondering since I used own inference.py. it should be not happened.

I am pretty sure I was misunderstood a lot of things but I cannot catch the reasons.
I am lost..

need a help.
If here is not appropriate place to ask this question, I am sorry.

Thank you for your help again !!! :)

@LiJell
Copy link
Author

LiJell commented Sep 1, 2022

had a problem with #1813 (comment) but improved now!!

@msaroufim
Copy link
Member

msaroufim commented Sep 1, 2022

Typically you need to decode your own responses back

As an example from our transformers docs

for i, x in enumerate(outputs):
    inferences.append(
        self.tokenizer.decode(outputs[i], skip_special_tokens=True)
    )

You should double check which string you're getting the decoding error with so in your handler add something like

try:
  decode(example)
except:
  print(example)

My suspicion looking at UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte is you have some some none utf-8 characters causing issues which is fairly common if you have symbols that don't show up on the typical keyboard or are using non latin languages

@msaroufim msaroufim added support triaged_wait Waiting for the Reporter's resp labels Sep 1, 2022
@LiJell
Copy link
Author

LiJell commented Sep 2, 2022

Typically you need to decode your own responses back

As an example from our transformers docs

for i, x in enumerate(outputs):
    inferences.append(
        self.tokenizer.decode(outputs[i], skip_special_tokens=True)
    )

You should double check which string you're getting the decoding error with so in your handler add something like

try:
  decode(example)
except:
  print(example)

My suspicion looking at UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte is you have some some none utf-8 characters causing issues which is fairly common if you have symbols that don't show up on the typical keyboard or are using non latin languages

Thank you for your reply!!

I am sorry I dont understand fully of your comment.
My english is short, so I will figure out what you mean :)

btw, the point is I input JSON that is converted from image, so my expectation was that request_body had to be JSON not bytearray.

I think UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte is due to bytearray.

When I run model in jupyter notebook with using same handler without using endpoint, it worked well since request_body come with JSON, not bytearray. So, I thought it can be possible due to default serializer IdentitySerializer.

If I missed something again, please let me know!!
I will look up more

Thank you again! :)

@LiJell
Copy link
Author

LiJell commented Sep 2, 2022

I am reading this.
This is right one that I need to read?

Behavior for serialization of input data and deserialization of
result data can be configured through initializer arguments. If not
specified, a sequence of bytes is expected and the API sends it in the
request body without modifications. In response, the API returns the
sequence of bytes from the prediction result without any modifications.
Args:
endpoint_name (str): Name of the Amazon SageMaker endpoint to which
requests are sent.
sagemaker_session (sagemaker.session.Session): A SageMaker Session
object, used for SageMaker interactions (default: None). If not
specified, one is created using the default AWS configuration
chain.
serializer (:class:~sagemaker.serializers.BaseSerializer): A
serializer object, used to encode data for an inference endpoint
(default: :class:~sagemaker.serializers.IdentitySerializer).
deserializer (:class:~sagemaker.deserializers.BaseDeserializer): A
deserializer object, used to decode data from an inference
endpoint (default: :class:~sagemaker.deserializers.BytesDeserializer).

@lxning
Copy link
Collaborator

lxning commented Sep 7, 2022

@LiJell please file a ticket to AWS SageMaker.

@lxning lxning self-assigned this Sep 7, 2022
@lxning lxning added the invalid This doesn't seem right label Sep 7, 2022
@LiJell
Copy link
Author

LiJell commented Sep 14, 2022

@LiJell please file a ticket to AWS SageMaker.

Thank you for letting me know!

Have a good one :)

@LiJell LiJell closed this as completed Sep 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invalid This doesn't seem right sagemaker support triaged_wait Waiting for the Reporter's resp
Projects
None yet
Development

No branches or pull requests

3 participants