camunda Cannot find task with id task is null - bpmn

I'm beginner in Camunda. I would like to complete a task.
So I start an instance by calling :
http://localhost:8080/engine-rest/process-definition/key/approve-loan/submit-form
via Postman and POST request with following data :
{
"variables": {
"customerId": {"value":"Niall","type":"String"},
"amount":{"value":"100","type":"String"}
}
}
and Content-Type : application/json
I have the following output :
{
"links": [
{
"method": "GET",
"href": "http://localhost:8080/engine-rest/process-instance/3f219a2a-138e-11e7-b49e-104a7ddf1366",
"rel": "self"
}
],
"id": "3f219a2a-138e-11e7-b49e-104a7ddf1366",
"definitionId": "approve-loan:2:8cd1ab3c-1303-11e7-b49e-104a7ddf1366",
"businessKey": null,
"caseInstanceId": null,
"ended": false,
"suspended": false,
"tenantId": null
}
I looked in the camunda blog and I found I can complete the task instance by calling (POST request):
http://localhost:8080/engine-rest/task/3f219a2a-138e-11e7-b49e-104a7ddf1366/complete
The problem is that's not working since I have the following response :
{
"type": "RestException",
"message": "Cannot complete task 3f219a2a-138e-11e7-b49e-104a7ddf1366: Cannot find task with id 3f219a2a-138e-11e7-b49e-104a7ddf1366: task is null"
}
and this exception in tomcat console :
Caused by: org.camunda.bpm.engine.exception.NullValueException: Cannot find task with id 3f219a2a-138e-11e7-b49e-104a7ddf1366: task is null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.camunda.bpm.engine.impl.util.EnsureUtil.generateException(EnsureUtil.java:334)
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:49)
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:44)
at org.camunda.bpm.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:47)
at org.camunda.bpm.engine.impl.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:30)
at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:104)
at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:66)
at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
at org.camunda.bpm.engine.impl.TaskServiceImpl.complete(TaskServiceImpl.java:170)
at org.camunda.bpm.engine.rest.sub.task.impl.TaskResourceImpl.complete(TaskResourceImpl.java:95)
... 37 more
I have called http://localhost:8080/engine-rest/task/?processInstanceId=3f219a2a-138e-11e7-b49e-104a7ddf1366
to get properties and the response is
[
{
"id": "3f220f63-138e-11e7-b49e-104a7ddf1366",
"name": "Approve Loan",
"assignee": "john",
"created": "2017-03-28T10:12:12",
"due": null,
"followUp": null,
"delegationState": null,
"description": null,
"executionId": "3f219a2a-138e-11e7-b49e-104a7ddf1366",
"owner": null,
"parentTaskId": null,
"priority": 50,
"processDefinitionId": "approve-loan:2:8cd1ab3c-1303-11e7-b49e-104a7ddf1366",
"processInstanceId": "3f219a2a-138e-11e7-b49e-104a7ddf1366",
"taskDefinitionKey": "UserTask_11fud4o",
"caseExecutionId": null,
"caseInstanceId": null,
"caseDefinitionId": null,
"suspended": false,
"formKey": "embedded:app:forms/approve-loan.html",
"tenantId": null
}
]
I have used id and executionId but I still get the error.
Any help please ?

Thanks to #Zelldon :
The working URL is http://localhost:8080/engine-rest/task/3f220f63-138e-11e7-b49e-104a7ddf1366/complete
I just have to take the id from the response got after the call of http://localhost:8080/engine-rest/task/?processInstanceId=3f219a2a-138e-11e7-b49e-104a7ddf1366
Please mark it as resolved since I can't.

Related

POST request failed from Postman to Jdoodle API

I have created an account on jdoodle and buy a free plan in which we can make 200 requests per days and from there I got credentials (clientId and clientSecret) for making request to their api .
I am making post request from postman to Jdoodle api. It is giving me response as unauthorized request with status code 401 in spite of valid credentials.
Giving me unauthorised request error also when i make request for checking credits used or (how many calls I have made to their api).
POST- https://api.jdoodle.com/v1/execute/
{
"clientID" : "83xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"clientSecret" : "30xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"script" : "console.log('hello')",
"language" : "nodejs",
"versionIndex" : "0"
}
Response I am getting is -
{
"error": "Unauthorized Request",
"statusCode": 401
}
POST- https://api.jdoodle.com/v1/credit-spent
{
"clientID" : "83xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"clientSecret" : "30xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
}
Response I am getting is -
{
"error": "Unauthorized Request",
"statusCode": 401
}
I don't know why I am getting such response inspite of all valid credentials and parameters.
Use this postman collection. Mostly it looks like your issue is with auth. make sure if client_id and secret are safely substituted.
{
"auth": null,
"event": null,
"info": {
"_postman_id": null,
"description": null,
"name": "JDoodle Compiler API.http",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"version": null
},
"item": [
{
"description": null,
"event": null,
"id": null,
"name": "Execute Program",
"protocolProfileBehavior": null,
"request": {
"auth": null,
"body": {
"disabled": null,
"file": null,
"formdata": null,
"graphql": null,
"mode": "raw",
"options": {
"language": "json"
},
"raw": "{\"clientId\": \"{{clientId}}\", \"clientSecret\": \"{{clientSecret}}\", \"script\": \"print 'hello'\", \"language\": \"python2\", \"versionIndex\": \"0\"}",
"urlencoded": null
},
"certificate": null,
"description": "Execute Program",
"header": [
{
"description": null,
"disabled": false,
"key": "content-type",
"value": "application/json"
}
],
"method": "POST",
"proxy": null,
"url": "https://api.jdoodle.com/v1/execute/"
},
"response": null,
"variable": null,
"auth": null,
"item": null
}
],
"protocolProfileBehavior": null,
"variable": [
{
"description": null,
"disabled": false,
"id": null,
"key": "baseUrl",
"name": null,
"system": null,
"type": null,
"value": "httpsDefaultParameterValue:DefaultParameterValue#DefaultParameterValue.myshopify.com/"
},
{
"description": null,
"disabled": false,
"id": null,
"key": "id",
"name": null,
"system": null,
"type": null,
"value": "<post>"
},
{
"description": null,
"disabled": false,
"id": null,
"key": "event_id",
"name": null,
"system": null,
"type": null,
"value": "<>"
}
]
}
With dothttp request is far simple and easily sharable
#name("Execute Program")
POST "https://api.jdoodle.com/v1/execute/"
json({
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}",
// "script": '<?php echo "hello"; ?>',
// "language": "php",
"script" :"print 'hello'",
"language": "python2",
// "stdin": "",
"versionIndex": "0"
})

Camunda Rest - fetch variables of a completed process instance

I am trying to build an audit trail and print information of the users path to the task completion + some data are written in variables.
There are some history endpoints from camunda Rest that can provide every “node” which the task went through.
But there are some extra information in process instance variables that I need but when I try to fetch variables from a process instance that is already completed the API answers with “no process instance with id:xxxx found”
Is there a way to read information in the variables of a completed task so ?
Thank you in advance
When a process instance is completed, its data is removed from the runtime tables, which are accessed by the endpoint you are using for the running instance. All information regarding completed process instances needs to be fetched using the history endpoint (the underlying API accesses the history tables).
https://docs.camunda.org/manual/7.16/reference/rest/history/
This endpoint using the query parameter processInstanceId will return the data of a completed instance:
https://docs.camunda.org/manual/7.16/reference/rest/history/variable-instance/get-variable-instance-query/
Example request:
curl -X GET "http://localhost:8080/engine-rest/history/variable-instance?processInstanceId=5487fe88-72d2-11ec-b607-0242ac110002" -H "accept: application/json"
Example response:
[
{
"type": "String",
"value": "GPFE-23232323",
"valueInfo": {},
"id": "54890ff9-72d2-11ec-b607-0242ac110002",
"name": "invoiceNumber",
"processDefinitionKey": "invoice",
"processDefinitionId": "invoice:1:53c23d7a-72d2-11ec-b607-0242ac110002",
"processInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002",
"executionId": "5487fe88-72d2-11ec-b607-0242ac110002",
"activityInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002",
"caseDefinitionKey": null,
"caseDefinitionId": null,
"caseInstanceId": null,
"caseExecutionId": null,
"taskId": null,
"errorMessage": null,
"tenantId": null,
"state": "CREATED",
"createTime": "2022-01-11T11:33:42.862+0000",
"removalTime": null,
"rootProcessInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002"
},
{
"type": "String",
"value": "Travel Expenses",
"valueInfo": {},
"id": "5489ac44-72d2-11ec-b607-0242ac110002",
"name": "invoiceCategory",
"processDefinitionKey": "invoice",
"processDefinitionId": "invoice:1:53c23d7a-72d2-11ec-b607-0242ac110002",
"processInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002",
"executionId": "5487fe88-72d2-11ec-b607-0242ac110002",
"activityInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002",
"caseDefinitionKey": null,
"caseDefinitionId": null,
"caseInstanceId": null,
"caseExecutionId": null,
"taskId": null,
"errorMessage": null,
"tenantId": null,
"state": "CREATED",
"createTime": "2022-01-11T11:33:42.865+0000",
"removalTime": null,
"rootProcessInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002"
},
{
"type": "Object",
"value": [
"accounting",
"sales"
],
"valueInfo": {
"objectTypeName": "java.util.ArrayList",
"serializationDataFormat": "application/x-java-serialized-object"
},
"id": "54a6aa32-72d2-11ec-b607-0242ac110002",
"name": "approverGroups",
"processDefinitionKey": "invoice",
"processDefinitionId": "invoice:1:53c23d7a-72d2-11ec-b607-0242ac110002",
"processInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002",
"executionId": "5487fe88-72d2-11ec-b607-0242ac110002",
"activityInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002",
"caseDefinitionKey": null,
"caseDefinitionId": null,
"caseInstanceId": null,
"caseExecutionId": null,
"taskId": null,
"errorMessage": null,
"tenantId": null,
"state": "CREATED",
"createTime": "2022-01-11T11:33:43.055+0000",
"removalTime": null,
"rootProcessInstanceId": "5487fe88-72d2-11ec-b607-0242ac110002"
}
]

Camera Remote API for Sony Ilce-7 Cannot change to "Contents Transfer" mode

I have been able to get my a-7 camera to take pictures by using the api. However I am stuck trying to transfer those images. By following the documentation I called the setCameraFunction to change it to contents transfer mode using the json below:
{"method":"setCameraFunction","params":["Contents Transfer"],"id":1,"version":"1.0"}
However the camera always returns with:
{"id":1,"error":[1,"Not Available Now"]}
Below is the output of the sequence I use to take the image (5 sec pause between each call):
Request: {"method":"startRecMode","params":[],"id":1,"version":"1.0"}
Response: {"result":[0],"id":1}
Request: {"method":"getAvailableShootMode","params":[],"id":1,"version":"1.0"}
Response: {"result":["still",["still"]],"id":1}
Request: {"method":"actTakePicture","params":[],"id":1,"version":"1.0"}
Response: {"result":[["http:\/\/192.168.122.1:8080\/postview\/pict20170707_003048_0.JPG"]],"id":1}
Request: {"method":"stopRecMode","params":[],"id":1,"version":"1.0"}
Response: {"result":[0],"id":1}
Request: {"method":"getStorageInformation","params":[],"id":1,"version":"1.0"}
Response: {"id":1,"error":[1,"Not Available Now"]}
Request: {"method":"setCameraFunction","params":["Contents Transfer"],"id":1,"version":"1.0"}
Response: {"id":1,"error":[1,"Not Available Now"]}
Sometimes the getStorageInformation returns with:
{
"result": [
[
{
"storageDescription": "Storage Media",
"numberOfRecordableImages": 3275,
"storageID": "Memory Card 1",
"recordTarget": true,
"recordableTime": -1
}
]
],
"id": 1
}
However trying to change to content mode always yields a "Not Available Now".
I have been able to access the preview image using the url generated by the actTakePicture function however this is a low resolution image and it won't work for our application.
I have also tried not calling the "stopRecMode" function before trying to enter "Contents Transfer" mode but it made no difference.
Output of the "getEvent" function before trying to enter Contents Transfer mode:
{
"result": [
{
"type": "availableApiList",
"names": [
"getVersions",
"getMethodTypes",
"getApplicationInfo",
"getAvailableApiList",
"getEvent",
"startRecMode",
"stopRecMode"
]
},
{
"cameraStatus": "NotReady",
"type": "cameraStatus"
},
null,
{
"type": "liveviewStatus",
"liveviewStatus": false
},
null,
[],
[],
null,
null,
null,
[],
null,
{
"cameraFunctionCandidates": [
"Contents Transfer",
"Remote Shooting"
],
"type": "cameraFunction",
"currentCameraFunction": "Remote Shooting"
},
null,
null,
null,
null,
null,
null,
{
"postviewImageSizeCandidates": [
"2M"
],
"type": "postviewImageSize",
"currentPostviewImageSize": "2M"
},
null,
{
"shootModeCandidates": [
"still"
],
"type": "shootMode",
"currentShootMode": "still"
},
null,
null,
null,
null,
null,
{
"fNumberCandidates": [],
"type": "fNumber",
"currentFNumber": "--"
},
null,
null,
null,
null,
{
"type": "shutterSpeed",
"shutterSpeedCandidates": [],
"currentShutterSpeed": "1/60"
},
{
"type": "whiteBalance",
"currentColorTemperature": -1,
"checkAvailability": true,
"currentWhiteBalanceMode": "Auto WB"
},
null
],
"id": 1
}
Other information:
Upgraded the camera to the latest firmware (version 3.20), installed the latest Smart Remote Control App (version 4.30).
I'm totally stuck here, any advice would be awesome.
Thanks
I was able to resolve the issue and thought I'd post it here in case it helps someone else.
Instead of using the "Contents Transfer" mode, what I had to do is use the "setPostviewImageSize" and set the preview image to original. With that changed the url returned by "actTakePicture" will be to the image just taken and the size of the image will be the full resolution, 6000x4000 in this case.
Here is the json for the setPostviewImageSize request:
{
"method": "setPostviewImageSize",
"params": [
"Original"
],
"id": 1,
"version": "1.0"
}

Intune azure graph api to Create deviceCompliancePolicyState Returns 400 Bad Request

Call
GET https://graph.microsoft.com/beta/managedDevices/dd9615c4-9d3b-4ece-9272-34a10e8fe908/
RESPONSE
{
"#odata.context": "https://graph.microsoft.com/beta/$metadata#managedDevices/$entity",
"id": "dd9615c4-9d3b-4ece-9272-34a10e8fe908",
"userId": null,
"deviceName": "iPad Feb23",
"hardwareInformation": {
"serialNumber": null,
"totalStorageSpace": 0,
"freeStorageSpace": 0,
"imei": "",
"meid": null,
"manufacturer": null,
"model": null,
"phoneNumber": null,
"subscriberCarrier": null,
"cellularTechnology": null,
"wifiMac": null,
"operatingSystemLanguage": null,
"isSupervised": false,
"isEncrypted": false,
"isSharedDevice": false,
"sharedDeviceCachedUsers": []
},
"ownerType": "personal",
"deviceActionResults": [],
"managementState": "managed",
"enrolledDateTime": "2017-05-24T13:10:20.8964572Z",
"lastSyncDateTime": "2017-05-24T15:16:02.6465376Z",
"chassisType": "tablet",
"operatingSystem": "iOS",
"deviceType": "iPad",
"complianceState": "compliant",
"jailBroken": "False",
"managementAgents": 2,
"managementAgent": "mdm",
"osVersion": "9.3.5",
"easActivated": false,
"easDeviceId": null,
"easActivationDateTime": "0001-01-01T00:00:00Z",
"aadRegistered": null,
"enrollmentType": "userEnrollmentWithServiceAccount",
"lostModeState": "disabled",
"activationLockBypassCode": null,
"emailAddress": null,
"azureActiveDirectoryDeviceId": "00000000-0000-0000-0000-000000000000",
"deviceRegistrationState": "registered",
"deviceCategoryDisplayName": null,
"isSupervised": false,
"exchangeLastSuccessfulSyncDateTime": "0001-01-01T00:00:00Z",
"exchangeAccessState": "none",
"exchangeAccessStateReason": "none",
"remoteAssistanceSessionUrl": "",
"isEncrypted": false,
"model": null,
"manufacturer": null
}
But when i try to do post nothing seems to work ... according to the doc here https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/intune_mam_mobileappidentifierdeployment_create
it should work just fine what is the problem with this call ...?
Call
POST https://graph.microsoft.com/beta/managedDevices/dd9615c4-9d3b-4ece-9272-34a10e8fe908/deviceCompliancePolicyStates/
{
"#odata.type": "#microsoft.graph.deviceCompliancePolicyState",
"settingStates": [
{
"#odata.type": "microsoft.graph.deviceCompliancePolicySettingState",
"setting": "Setting value",
"instanceDisplayName": "Instance Display Name value",
"state": "notApplicable",
"errorCode": 9,
"errorDescription": "Error Description value",
"userPrincipalName": "User Principal Name value",
"sources": [
{
"#odata.type": "microsoft.graph.settingSource",
"id": "Id value",
"displayName": "Display Name value"
}
]
}
],
"displayName": "Display Name value",
"version": 7,
"platformType": "androidForWork",
"state": "notApplicable",
"settingCount": 12
}
RESPONSE
{
"error": {
"code": "No method match route template",
"message": "No OData route exists that match template ~/entityset/key/navigation with http verb POST for request /StatelessDeviceConfigurationFEService/managedDevices('dd9615c4-9d3b-4ece-9272-34a10e8fe908')/deviceCompliancePolicyStates.",
"innerError": {
"request-id": "544c4ee2-a6de-4203-9c30-c3e589b77713",
"date": "2017-05-24T15:48:30"
}
}
}
I'm an engineer on the Microsoft Intune team specifically working on the integration between Microsoft Graph and Microsoft Intune.
In this case it looks like there is an issue with the documentation as deviceCompliancePolicyState entity can not be created, it is read-only entity that shows the state of a device compliance policy. I will work to get the documentation corrected. If you can let me know what scenario you were trying to accomplish by creating a deviceCompliancePolicyState entity I may be able to point you in the right direction.
Hope that helps
Peter

How can I add multiple image answers to a survey using base64 data?

Using the answer to this SO question What is the correct format for the API SurveyQuestionImage.Data field?, I have successfully created questions using the API for questions containing a single image.
I am now trying to create a question with multiple image answers, specifically a side-by-side images question. I am using the NuGet package Google.Apis.ConsumerSurveys.v2 version 1.15.0.564 on the .Net platform.The result is this error return:
Google.Apis.Requests.RequestError Server encountered an error processing the request.
Request Id: 57ae035f00ff0af4b07e61a17d0001737e3430322d747269616c320001707573682d30382d31312d7230360001012f [500]
Errors [ Message[Server encountered an error processing the request.
Request Id: 57ae035f00ff0af4b07e61a17d0001737e3430322d747269616c320001707573682d30382d31312d7230360001012f]
Location[ - ] Reason[INTERNAL_ERROR] Domain[global] ]
Here is the body of the POST to the Surveys resource:
{
"audience": {
"ages": null,
"country": "US",
"countrySubdivision": null,
"gender": null,
"languages": [
"en-US"
],
"mobileAppPanelId": null,
"populationSource": "general",
"ETag": null
},
"cost": null,
"customerData": null,
"description": "",
"owners": null,
"questions": [
{
"answerOrder": "randomize",
"answers": null,
"hasOther": null,
"highValueLabel": null,
"images": [
{
"altText": "White",
"data": "iVBORw0KGgoAAAANSUhEUgAAAH0AAAB9CAYAAACPgGwlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACDcSURBVHhe7Z0J2JdFtcDFuFwCQSFEUhAB2QQFZAcRBVFSVBQhl6sgKgoIfCyCgIr7dVfcEnPPFZfKJc0l9620LM2ysnK3Mr1dTdNueX-_cd7_8_9e_t_HIt8-53nOM-8678ycmTPnnDlz3g0SJEiQIEGCBAkSJEiQIEGCBAlqABotW7ZsQ7BxhhMnTvyK1-L9BPUNZs2a9Z9z5szZZMGCBe0ynDdvXhuI3ozbjb54KkG9gmOOOaYFRO6wcOHCbTPkWtdjjz32a2m011NYvHjxpvPnz-8PofcqwpFLly7tJJuPjyWoTwDBO0lo2PqxIseLuHYoI73_tGnT_iM-lqA-AQTuDUufDsGvEzm_FsKfDNF3cb6PjyWoB9DIUcyc3RRCD5fIpI9HfIzzq8FvKuCtWLHC59LcXtdBIp577rlfPeOMMzaGuLtD6G-Db0Z8g2sPgDNmzpy5OSO_eWLz9QAkotK5whpEnQyBvwexP4v4Kec_J102e_bs7RD0NovqW4K6DHPnzv0qhO3uvA3Rj4PAD4P_J3Ld9Dekl5JOWLRoUT_m9k3jqwnqKkDElghvwyDqkeAK8KcQ-d8Zcv4mneEO0mNJ9wA7xlcT1FFoJGuHoHuDZ4E_AF-F2J9nyPl74JPgVeARZWVlvT7__HOtc8lCV9dAwinELVmy5OsQ93DwDvBF8M8SO0MI_RGj-3ccP0F6IjhYQ00kfIK6BCtXrvyKujdE7cJcrTHmeQjrqP4kR3QFuv8B3543b94KpoIxqndRik-Er0sA4VoikW_JyN0J4p4LURXYPgI_ywgucl2B7mMJT7qS9BCmhK3jQkzjmF2CugCydQg-EDwYQmqBe1sCg__KEV2BTsI74h8ENc9qj-_iiI_ZJagLwGjtBvHGM2KXQfh7IeYHEnk1-Bx4Mc9Ogc0P4rhFzC5BXQBHOUSbQ_odiPgTjj8ESxG6gDz3W9I7SU-D6Hsw0lvH7BLUBYBwGmOcy5-BkH8E_5ERtxL8E_gCuBLhb4oWuphdgtoK0fWpGay9FQTfH4JfD74KKrX_s4i4JZFn_hd8A3Qh5hiI3oP8NgKbxE8kqG2gigaB2kD0zhBuJni_hIR-_yAtJ8BVgEr2Sviv8PxZCHPDFAhnzJixUfxEgtoGEkd1C4INB0-CeApmBaJyrSCpZ8i1f4L5DvFnrl0Fi5_AaO-d7PG1GNStIdQOEO1wiHYl6a-KCClKaAW6v2bIcxpmPgHtENlz73N-l0YdBbq5c-duHT-RoLaBTo8QbKICHOl94OuRiAElLqlm2D9kyLW3Sf9GWjza7RjPQPAryWsG2D9-IkFtAebx4MsO0XtAqKMhkmvmL4DvFRFSor9P-hL4EMc_ivgTUOFNtl_oHKAWPJ87nXS0Ztlkk689kLlDNYPYAyHSKRBJxwgtcH_PCCly_gad4occa4C5hONLOF4J_gIsmGe55zz_F45_R6ov3X5g8ygoJneqWgASXTXtaxBpNMS5HEJ9AH4KFrNs186d46-SG3A8i3Q26Vmkj3C9oMdzzWcV8j4mP92ppuk-TdpCjhK_m6CmQJYLMTYHt0fwmkp6K_ghBNPOnglnHjt6fwyexjSwm8jxWHAm93WiKLwT0WMJ_zSdYhmoI4b2-KS-1TQ48hiN20CQfSCMatpDoHp5IHhMZd0KcQ_RMWbyfKeysjJ1-S5cG0d6BdeU2D8lDdzB98B_gS-BetwcAg6Vo8RPJ6gpWLlyZRNGrWraXIh-HelPIU7B-saxI9ZlU71fb-aZSRy3yBAiD-b6GaAGmVXW28E_cu0u0lPB8bzfPn46QQ1AIyVp3Zsh-l4Q70KI8xionb1YEneu_j34FKgtflcFsgwhYi-uz-W6Kt4vSZXwi4n-F67pgHEbeBTYNblT1RwEojvHQvQp4N0Q_g1QnbtgaOHYufp58CZwHkQeFN8PwPMdee4g8FLwYc7fyt6NqAbwDqir1Ym8v22U4BPRqxt0bY4Se3eIuRBiPUHqvFzOuhav3QeewjP70Tl6xCwCcK0tz40G50BQF2heyd6N7-sbb0dyY4Sq3q5gu6lTp7ZIOns1w_Tp01tBBAm-C3gOqNFFAa7A2iO6XOqa-iEQeKA7WWIWARi1ukj34v5YnjuTVBfpYqIrzKn-aa5VJpiMMNgHQfDraadr5RA8U-PSZ-NoTGkSjR1NHbWkGleak25EY6sPt6RxNybdhBHdimdaO7IZqW3UmTNCgW5IvJF3yplcQQU4R-kfePY80pG824FvtoxlCuD3ea4d97uDc8GHQTuPwmAxx1ADeIi8VN_2BfWs2dyyWCbLFsvYyn1xlt1v8UwLF4Ksm_aEWNemYJO4d66xTpykG9YXzhHm3cwz1YrbGDaQDU3Dted8K8635rgnuC3n_TgfyPEwjncER3G8G-_uwTv6r0_g2LVyVS8l6qtJn-K8nMkVdInUufhpcIl5S4zJkyeX83uz0bmvFN-Wb_0Xx7eQl5K-I7t4Dd5O9EtSdfrzwIXgIZx_k7z3JXWvu3vldiXdGRzB9SGkA7jWl2MFRjlTF76lHOHeubZ2FI5bKJBmGyjruqAYRriVicueRnzYnLQzjdAzNsYQGnsnjseS7k1DqFIdzPUjwKO5Np90Kfc1r54NKqWvINVz9RFQiVuTa17VUup-mXe_x_E0GneLbETFsmXQSA4k96Fcsnjnbe32El5OkeUnm3-P8mma1chzD9fc6nwZxxeQOjWcxKhfQjqP8xmUXWPRQbyzH-k47o2BM9gZBvHMdnyvmx2Aa-6h20QuELlhzQuKFoJCt6Cg7ShkJwrfgwr1AftxfYCVAIdwfRiozjwS3Jnnd-E8jFLO1XEn8Y6jycY4inPNoAs4tqE0rJxOeg7pheBloCbT60Ht4xLvXtBFED1bfkaqKiZxldDznjHee4B3L-DePszlqzWq8NxQUB_574La4-UWWX6yel2lNfHaIX4FPgtalgdI7wF97xbqqwzh0q575OwQdla50gnU3-VatYijOZ_G_SnggZzbMQyY4JQlt9CkvBO4I-f6BwzleDDXB4Dbcx64Bx1Fd-0Ocgy5aazKlwdHAYXdio_IcmWxeouWkS6kAG4KPAk8nUKdTbqcQnyLVCvXtRzfROqovJ1nXf3S0PED0IUPG8s59FFQ6ftp8Mcc6_zwM9CGdyT_GnTVyy1JGkuUpN8l1egiITSX5h0hHK1XgjPtiPm5vBQw4rTsHQi6BepB8ijnQcs1TbnO93YyDTkuyypLuESrW5ZltDMoVP4c1FD0HPgsx05B7onXzq_VUK8etQo5xp2053dJb-Pc6eV6jq8mlaNdzD1lEjmJ3O4EUjum3GQabTuJ-2PcjuX0Favy5cEexEe24wP78QFH5vngLRxLQEeee8Ge4_5LoOzPTYGywg_Bz0BZY0EoqmIMtnPSRynfMo7HQvQeClGxOhWCI4ZOvQPvHMH7N4FK_tVVbjvVv2NbZZsv7NivUY9fc2wnlrPYaeR4DiIXl5aRum1rhNNErMqXB9h7YxpjS1jIED4ie_5vCvJ9UkeoPVpCv0aB3yLV1UgW-BEYVCgwI0TJyq4v5BuOdi1wH1E-R44joXdUr1br3CiLhPDOs98gr4tAR696_2qdKtcH8p1ssUdN4WNQ-4AePhJf7uaUJSd5BryPcipPzCIdxSjvCY02jlX58uCcboY0yhZ8VEPGCaDsWXdhWZwE_juoMCWhC75nYHWOFL-pR6veMVeB4xCWWjnKo3BUKcjReHZjOwrvykZf4Fgpfk3cp9cb8j07r4PF-ihM2q52Atv5fcr0CvgYeCmdVEFROcttWOt1R44SbhMyVZe2QabyceebH5JqwXLukyXl59VKkeezlazMWdHGNR9Nn7os2dNtdK1qqmQSU5b7DudylTc5dk51nndelQ06h8raj6eTDqpAYi8JPqf0LGcgn6nUdSUoS3WlTfcq7fqvc6wgZ2dXJbQ8CpPO8ZZTtvw30Hm_MBBA6ychbaO1Hgi8p4HIDv0WZXoKvAFCu6d-FPdbqIpa11iV9QM2hqoXH23H6FGPVjc9EVT4cL7RZm3FShY6jzwvwYMBBbRxbCy9VWzM10C3D8vKfgG64OGmBQWhH5HKZe7mWBauZH8Dx9eQaj8_k7ItVeCknJ0jwddU_fG5wNVApeZZNKwaxUU0ruqZ37nV74JK6wpjlucJUJar4GZ5LbdCpx3SjmG9rJ-dOSP-WhGe510IciXQ9YELKdfhdGo1pC5yKOpp2NM16txrDXHkaFHaiA-qWpxIeiepUnZeV64QeVaiZwRXBpDYzlkvg5pCn4R4D1LBe8DbOFaivQK8iGOlayXZoBNzfwbHqoETuTfGTmmMGcq4Wom9FMjVnMrIuy95axzal_QwvwPO5_pSklNJVS_V66-0fBDidq7bGZTOXdVTA9FWYL0kvvW0jUppG5Ui-erHp10iW9vv4rSlZkWRq1an11rkqLdnUZBtKNB4CuBOT0eC6pYsUPZWsvAR7eWycVmmI9hRew35nc8IO5PzoNPSWItJuTx_NulRpIeRHgxmVjANHruR7ky6A_f7c12BZksIryFoneY466f6E2WY7uTXz_zjd7Q77On3Sffn2sGxXJbPcpLMX0x91BzcE3cW184n_Tap1rxHQTu2AprtUOGI5zmnBaeyl0EF5zPJ-1DyGqbdwXJWm-nWD9GgGyokUQiFCNUc3Y4uo0Cyu7wdvBgzCdX573HeVwJ1lWwS6XDeHwJq1x5gY4N9aHzjuPZCJenBN7txvrXfBTvybQ0Tjsp23N_UMsmFJPi6znGxfk3Iv7nE5xttnOf9jt_zu5x3thyWh7JpQtZQohm5D2Xf3vJbD8qlwcf4dbuDR3GsPUNDkxpPpYIu95wSlFFuBo_neC--34Pjds7hNWqutWEo0AgaQCvbtzhWb3cOUtrMqztBeCNV-NE4oYuxEmh_GkwNIZgiY9Z1Huw8dkLq14m6ajOYQ32v5djRngl2-fZRTVSA1Sh1C9eW8N5etG_nmG3Ng4SyQBTQkXoohdQyJ8vWouY8lu_RHmvi1DtVq9wlNIrzpZKoq13uC6-ZHrz-IHBD2qM99VLwlZNpudRxU9v9u6TF7D0MBtBBon1AI8wVpJpsnVJ608a1xz_PyoFNKaSrVcZf3ZfCLiVVula9CTo7xxnRRdU0dU87hdL5NaQL6NFjZs-erWWpzhN95MiRbsBwfcIFJIVPXbJcHFIdzWs6Ej9oM6RqA8oBh3I-3GmL9tXWUDvdr6mk-8n6UFht9PZsTbW6GimQBKkVLB71opLtk-B3wPkSnrSreTkv1-jctXYQRjdlb2G8G6Y9pf_J1FcnD6V67QjliB3bw9GtrcOgCLpcX0wbTiUdhhbSsdYSOwN7pCOVwiv1KuXOo1LGY32aBtBgYU_Oe7c492tocWeKCw6uuB1A2pf8gkBWbVLqukMguASingqYu1F3VxFdfFK4VXDTgFPgeBzL0l2bcA5XB7-dd06CjSvjDF6yZMkWyjnmG79Ru8HKU3H_oqAk7i7S66mIVjTVOU21xfNZhp_xvCtVLomqA493HiOv6tFH1x0CwaORRL8BAxzpkq3hSOlb9ay4nqIEl53b4RVqDV-6DFY-kve7kc862RhqFGwECt-KnroVDaCThAsDjnhX5bRWWVlHfTHh5QCaNdVLZYdncHwQ6XA7kGoK-crqag3x1TS0VEa9XtVS3wENOFoIXSLWblG8Lu8IV8bRTiGxFerkbsENS4K7WqZwHD9Rp6Cg61KZ9qA66z6ca2DQP93VOAlfLODZATRIyA1-zz0tUNfx7tE0wiDXxCPhaw27kwNRnmZ2Sso6gbK6N05DiqZpbRFaHMuprZx_QhuEhRPOdfeaxuDYiTyMiKV_YNM6r7bK9pRAqWwXKubIVUXTMPMbjjVAhCXYrFFEzm0sJX_Vvst5VlVwACNqKxplo9jYNUL8aLzR1t3EUUnZtqFeqlX6xbsI5RSV3yZt51aIc4S_zrPP8c7tHM-jQ-tL5368-hPCzAaiknq66gQ4gOP9QZcuXbxwccJRr_pW3EhK-o54JXvjtupJ4qrSnmAn2amdKX6iWkHBkjKE-sCOh1K-wyHgeVy7C6IrobvAUm6bNCjBVU-1obumcAHoev8osKNcrKbqU2UQR0dQZ_Q9p-L6fB0HGhjgVVJHfHEjKegEgwXHhgnRYPEgjboYHGQeZ599dvOYfbWCI1yCSyzKJue6imO9hhRUlcQtc15ItVMHDYXyy-nc896RUd7a_OqQWrr2YAWjH7g2-_E0giPenSUuvKjLu4aeN93KEiW8o0ifu0Uc7wPqURqcJKpjDnQk8v0WCqekujm7srec8iijvEtqJKviaUrCK7foB6D79J08o6vZ1LKyMtcWgtnZwRA_UT_BCsb52I0AXen1WQD-Kzg2sqPSbp7VK-0q4El4HRpkj8aVmcix68mbVjVrjJyqZdSdXWDSV9BNja6j61ihDOKUVBjhHoOaW1-kvC6y6EQ6lnpuqy3DAQA2rgM2iPUDVlRVx55Ogxg2pIxGuQF0sUaHDAm_ivXK6zzvYsT9pEJ_sKOjPWZdJRCJ7u4a49rsx_ddKpXYerPkTaqO9qCFUDYNTt8HT-N8nEuiErs-LSqtMdiICkQSnpGTheiWXTqCDeCrri5bzI8cR5PsXpbqJojhdByXWqt0fre8BhKkrP0guj8AsoOqZzuH5zUP2byOE3IB5_v5HI_jvV6W09EN1m-WXgmEbU_q3pkhh8bR-0XHA3-9oR6bb9BMuNNhQ--VXZDke3JcpeqORLJzMtJdG59BGV1M0qxcSmgLGgf3dAxx9XAg8ksbCR5HeMNg56uBQHxZPY2pzqqzgY6XEjYv1AXk_rM8ezzpUB0abNCYV5WAROe7IbYNKEdyiTSvlmWoYUkdXLeqPZA32ls_sknEzkHwuHXOtKEiQQ26nye6o8rR7naiOXAIWXvbatBx_QlQxo10ETPUiUuk-VEuKqlfSrn2pyMPcpT7_hfZJCgHsj4aK4sU5SKNLDQvJLkUKUt9gGemMAI3AZutq2vUWoCCXFONQnx3R77vXjuNR5aluHxyIf0DTobYISJVCihcCdCojR25NNQujHT3yel0UCC6xAaD9yznd_DIJLf48p6qT1ULRiFIYZG2cQ7f1xewlEPEi9y_QDsEaV8DKMQ8EuQhSvI6FurtasQnJfQCe_cY_CuN_hqpq1jjHOGR4FXOPv2O3Ijvu-FDn383KroqWM6uACqAuuP2CJ7dEWwbs0iQB-dliKl5dgapy7DGbS0Qnev6yRtMyG3Ky7k2Or66xqBAlUcur1WH4btd-b6gXOEycTmXb66728YNhscx2seRlgt5kqAIGElNIagLEFqulH4ViAoqG-dKyy7QuLPEAAA7xFfXCCSwnEE2nWERp1hjoHx6th5JWdzd464W7QkFooOuDrrV2X32B_B8-pVnRaBVzZFBI51Po-lJoupTEJQ41uihJ8qNsE4teAPiq2sEEtcpxM5VhE3WVgikjK6dH0g5DTpgOV1IKSa6q4aalHWOOFI5Jb6aIA80YnPQ8CP6hbsj1gWYYqJrftU1eDlEn4x61zu-WiFEjUBHxc0gVg_eGcG5Cz0ByWcMefZFQNtiTZdred6IHHvyvr_pNNBC_v-tljPsOwMX8I2e8dUEOWhkbDbaaAoNdzeoXdvl1mI9WF8z7x0HGtina3y3QnAk0-jtIXg_CGRQBfV_f86nnm3nUgo_DAzqFdxmtXu8yUvrmmZj99Dpul3uDxKcayZ2T7n7-_QI3i6-miAD51p9xBltOlnYkI-DLrG6aFFMdOdOd3y4b2xH2WzMIoOwZi-7VrXiuKUjmHwUDuUgJ4N2GnfFim5xNuSJ69uHkd9oRnt33tuEc0OAFUd7KoAcgfvumzNOzHLelysViM49tQyjcLxDnjpXDJTjmFfMIoGWONhqSxrH_WmulRvWM4sAUUx02b1xZCaA28Gqy_1Qx4ZVLpAoEMToVQY6MpCP-8AuB13IcWlW3zW3XblUq6StFO42ZNVE9-TJRQzmIxsPxI-fCADxDE3aLRpp7EiaiwtE5z29XHUB-4DnVpDHKJ7VldkNlckyJ0goNwjSSH3BU0BX2EptilBgUlWrKBBgE02l3uMZNwwuocElpvq-O2SdHnRqcCRmGPaNcf1PpHY2rYBGgzqIMvUirzaWL34iwPLly1Ut23HPzYQG_JEzFZczWxTSAdJIU3vLcSLh02gXHJkQS09QQ5ucT0MZkKC4EVXbtHq5YeA0UMGrdWThxsMJoVF4rzfpzqTuG3OrsOG9JKTxWpwqivMshfq2aXDREngu78ry3QqtWbiw_dnOZZljRzUokSqkNgTLWdxRXQZW9Zxi2Ujbra2mUG9ByZpG8d-oB4Bu2nNUFojBeRZ6Q8_YJRB2axq-mSNOwkOY0GEkEuifG4z4rO-dfmvBBYv75ZZoK0DtAMoNdq4nefcOUAfG2eAeEL6PhJfd-11t6jxrmfWKUQbJ_ONCfhw7PblELDdwE0Pn_FTRYAEidQDHMA-7DUjd1pFZihiG_JyjM4ONp91dInBtJO_6XxbnT-OxuM4d9s1xrzgf0ZGYx3LP8F7BWYO8nGpuJjVAgsH9ukhw5RBZNed7c90pRGm9nI8c504fj_DuqZTPIAa95RKx2g0bHLk0iN6hOkUYWFAnhGJC6EOuPdv4aW5w7Mdzbg78Bo15GMfKAYYneZRres0WQplxrTgfCZkF_stQndqQIIVnOZfovu_zhkVxF4qhRfxJgHFoxnM8GOwIGqfW6JAusrgjtRBalGPzMHCgRpwjqKcbNuqXm_O6Ag3nZgGXUo2nYjChfHBfBTh_jncjzyrdG8PVTX5GUbwLVO1yx6fCmKtepQguEVwYkd3_NkPOXSkLe-iz50TOM2FMndvO4SKPARLvBSXidMpsSBIdKi4GNcSYX2HxhXOFUQMPySkWgTspE8RqN2xw5NIg7v8yapPbgfI-8IHo4K08pguxz57DsQENdKJ0qTW_vJkRzevO6bJf7fbGfFG4ytBoGEHYA1XjJPIqmoPnfC8L6fUsaLRG1TtX2zTQKEO4s6XgTcO5-di5FPTOYqTvntcEGizQgAa6PZmGcY-6knu5DX-g-rSjSDbriHLPu8RzW1QQoDjPC2qey2rtEAqA6ui6YBmRyuhMAfm2QprOmLo_2bHsYE4Pzsd5wnvd72ktlPCaYJX0LXdg76TFWoIdz07peoG_8Aw_9YvVbtiAVKyRw5DegUWD5dQrGkqpWIOK7FtW7LxcCM0FrsLKvQfKaiWioVBCbJtsk0GGXM9-06WNXNOsYU_tdBI4LwgG7gEqlXtfh46g44OrCHKgz39AvnrG2kGMD19_9qutA2gybRzX0J2jDespUWWhhTV0kfMgSYNhezNYisg-5z1ZtPO0segMMng1qJFmEpL-YL7XXqk7w2hSVYd2E4IagKG6VcH0v8_khIocIEU7l-WS4PmOItF9V1dp2b9ygMaeGtt8WaNgpVV9osnUmHBu4HfkSLi8UBVGF2gDO5IqIroN7-qWK3GXk6_6sS5Lw_mOf1VoF_3VMseJRnY61T4I35G0P8-M5di4cFrlDIqojOEulVW-J3IvyA2kWYSN_JRgB7bDyuKNqdOButfe-DFVCS6wyF4hvAsizq_GPS_XoJUhz9u4NrINnrHZIDRBNJ0WXZQZHAma-ZtXChAiOD6qQvL-RNApQWFPRwmnFzUDpx61gzzrrxR5XiFyGUTvwXfctNjwpHhHmPvCaAj_UKBRxtCaJRusFPK8HCFsZSZ1FBkIwJCdBiLcnw61A2gUDHeUrJHjZGZpo2yb8q6BC_ckv5mgCzE3gtrwtQOEAMhgSY5TCnnHDmlIlRFfJoRpnQZVF3s9BNeJYRmNYRitkg1WCnnH0f02RNXUalQq_7SkP9r22sQdsY6mtVnSdAnVZyU--bRw_qV8Pcl_FN-SGznfqzWU1O0rQ57VtGxEzX3tUPkVwgYBNIAx5_qTarvWPcr4LCUbDMx0bgUlDTeugzu6lcq11ZfZeSBSNwm1pkReE-BbltOwoIb9dA-bgRF1etSIpF6u9bBCg1CG3NO07P43p52d5HLxEw0HIIyhRUfS6_2PuRK2seZKNhhogyoo6f5sZGWla1fjnBZcthzC3N3Z-TsaP9bbmjXlbEIZN-Z7BlJw6dfI18a7D6ZfUOLrkGGHXEW3L0KnIf_VoudOCEseP9FwQALREK5564SgDuuoyTeUI1yU4I4mR7hWO5dNJ7gFCqJkO0Cr3DnB7_g9yuEunNGUYRaoU4c7WrJVNqX1UoTPwob5m5BDLHvMtuEAo7Qtvd51b4PrqWLlI0c7cmwoQ5MYO12WqgHHv0T5_7b-zt0SYl1819cFsjk_qpnulB1N6oKPa_yOet2es__E2UmL66MM4JRkROdZcI8-MduGAxKMhpBNak93437ed9yRo5qjVC-xjVah-5N2ekNnBicKsqpyYudAwgeWT3l0pzLmvT_Ym8SxXMuY7hqGyq0Uck0rojYEjTThVyMxvwYBYVeJsVNppNkQUZanf7srWZpWdWnSdGrD3cF9HQtDODGFNI5VwWqNNUvV071qqGFdKP8-lNOfGukipd-d05GdWYJnNntX3YLqVl0cqsZBgoF6vmoA0TzqH5EUcrRduzih-dPNDMFJkXuGEDN0tiG0g85NNrWmoWJdgjMH5dOc61-egzMmaIiS-0FHuOZcVUy3ZWktHOO7tkckfv0FK6qbExX3b4f-5cB1aue7ECgQVDCajqBj9KYQ-5139EurNoFtLSFwrmgP0AhkQOQtqcNQOkIWVcO_TIZRD35EnV1f39N2sF71nuiOCiramjl9eyq-GDQUqKg_uzHO3SO2Mw2mH1zrutggMWSaMeZ0o_Y3nka19h83OmA8D-p04T_jgom43jtLKgAZw5z5OYQSswFIjbzkf9D0D-_DvQ6ZRY1X6hzRM4se9Wmrakb9_OOFEan8wZHOF6a7Q_TOyik-H1-tn8BIdxeLW339U7CCz1Gg-8q6u7nQXl-f2B0dN5h1qas_5vc_av7k382P7s7dJqqd9dtZkoq6SbEtle3sqKYhRtAI7lbZTILbSPWJ6Nl8j5TfkpGtq_YI6j_QYzuC16lz_V5mzQQe53YaQCFNc6xprZLK1zMEhxGwGcT2F2ISupnqnte9_8VjCRIkSJAgQYIECRIkSJAgQYIECRIkSJAgQYIECRIkSJCg1sAGG_w_9uugSP5CnHgAAAAASUVORK5CYII",
"url": null,
"ETag": null
},
{
"altText": "Black",
"data": "iVBORw0KGgoAAAANSUhEUgAAAH0AAAB9CAYAAACPgGwlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABGxSURBVHhe7d0DkG1JEgbgt7bNWdu2OWvbtu2dtW2bs7Zn1rZt2_6_2K6IE72nX-v07XPOzYz4YyZevNd9q7JSf2bV3VNSUlJSUlJSUlJSUlJSUlKyC3KQ4KDBwTs42MqflcxUDhUcOTh2B0cPDhs4ECUzlCMEJwhO38HJg6MFZe0zlWMEZw0u38EFgxMH3HzJDIVyKfqeK7hHcKPAQThEUDJDOV1wq-BFK3hh8ODgYoF4XzITkaCx4kMH5w0o-cAVHBA8P7hGIMHz9yq2z0Ao8TDBkYJ9g2cHP1zBD4J3BbcOjhMcLig3PwOhRNm5eH6D4PXB31fwt-BzwQMCmfyxAuVbycSFlZ8yELfvG7wv-GcHXw-eFlwlOHMgwy-ZuBwxOE9wi-CZwaeDf3fAze8fyOYvE-wTlExYJHFc-xWCRwVvDb4V_KeDXwYfCp4X3Cw4beDfFUM3QaE0SZwE7aYBa_5C8POgq_Q_Bt8MPhg8MDhH4N-V0icoGDa190kDrvtTAav-S9BVuoTut8GPA-6_1ewSwFL8xEQsP2FwoeCxgYSNVVNyV-mSuT8HFP-q4HqBg6IRowtXMiHh1s8eUCL2jSVT8L-CrtIlc_7cYXh3gJq9QEDxCJ2SCckpgisGavC3Bb8JusruwyeDJwfqebFdV65kQsLK7xC8OPhE8IegT9FdCAFvCB4SKN-OGpRMSCRkYvlHg-8Gfw36FN3FT4PPBK8Mbhhg6EpGLjJ2NOpRgmsGLwnU5bL2fwR9iu7id8H3gw8EdwtOFRw-OGRQMlJRasm6TxLcJnhn8PuAla9O4PogmZPhfy1A5mDyJIQUXzJSoZyTBVqoDwokZn3KXQ8IHAwdPl4Pvvj4EQsrP1-AgXtu8JWgT6nr4dfBmwLlm4TOQSoZqRh6vFoggXt7ID73KXU9yPQ_EjwnMGlzlqBkZIIrx55JvG4b6Jl_NpDA9Sl1PaBqxXVkzUODiwRoWYliUbMjEEqgEFm72ny_wGAEBu5PQZ9S14NM_xfBNwJzdGK7qRpZfI1TjUAoncK1UC8aPCvAvpmK2UjG3gfUrEweJ68C0HKVzEkUi48fgXC5xw3E3RsHrw7EZHw65fUpdT00Pt7BEdvvH5w7UApW-TYCYXmnCa4UKNPeE6jLt6rwBv-ep_hi8PTgusG5Ah6lZJdFnFWm3SnQTTMOtRH2baNA4eLj5QomcI4flOySiOVg8NGtlScF5tgpiWvuU-BWIKFD8ui1m7NTs1cGv0vSlC7Gao68OTDHjj_frmvvQgWgEvh8oE2LoSul75KwcPHVePPdAzNumDQ19pBKl8yZqkH06LVfPDhm4LCV8hcsOmltnv0xgYRLAjekawfJXFP8y4PrBy5GuNteN133IiwCqWGTZNvIFAmYrpiRJFar1kaAsCATK2bcXEVyx4yCDTSwbPy6mtmo8qUCNOnLgq1SrhtFG6dSvknoEEFKRZ_FZ_LZfEaf1Wf22a3DeqzL-qzTeq3b-u2D_bAvs5nAtQiwKAu1eJthg1iKTPhEgeTo1AELcsvEhmprmlVDgV4y0Piw2dgxvXKtUxMuLiB-ONgq5bpR8CC8yWuCRwd3DZRxuH5jWZcNHEKex513nb5zBq5BnzFQVhrhUusb2NSydWAcEgfDYWgTuJNWvg_vBFuMhVE267BwSj5ToPY1sWrDKPXqgWFGLBge_S7BfQIlk82WpRtVlk2_P_hSINFaPdo8NLh5B8tIFcJGF0779SmB8IKj5wV05oxp3TKQYF4rwCFcOnCAHYazBRJCr2A4AJTPs1H8aCzeB-GqWKeLgBobTi-rtABDhJTHOtXMTvqFA6e-WSlroFDWgTmzKbcPWMy9A8TKwwIbSLHPCGyq6RcK1kQx4Ih8UZoZa_p2oKTCwA1Zm_dBcoiWlSwKJayeh3E3TkfvjcFrA3H_BYHbsQ7E44JHBK5Iu0sn6cQpuCmrBWwIk-e6cnC5wOGXLDogjIG3c1AwgjyH_cY-MhghjpfUXRRaeNPBhKVyw5TKGp3gOwYWYCFNYSzxiQEGS1tSs8ImUJoNoTgW4nrROwLXhG2a8STZNwv6eKAuplRlEkv-asDCjD6pw5Vm5tkkVxQh3m6VZ98MHCwexTSOw-Ye3PcCh09zRmfuy4GbNLp8LlgYyjSn5-qUw8o7Obg4fYdYqYn8eV0gdJjPM8zpwPNoKgatYgeHt-NNXN64c3DzgCE5JA6AXGIwcYLOEFw1YJmPD3w4CrQAC6Iop98VIZvBFbLAppAhy6i5olG_uAFNo58EDrlhEEbg8Dg0Dgsj0lzCHfAY5w8GHeSUYYo9XDj3_PDA6WSh2pgU7cT_KDBq5AObNWsllMWU0tdH2yclIsUjmhgP5QspPIoDQPlCihB4u0AokCNJkgcTMd0PPF6gfcnFcM9cmCSKgn1Iro-iWTdXWBa-Ndg3xmIfHQD7KozZZzmFMCJUuFd_nUCepWwc9EaObFJdqdaUdUrExBuK9wFYtg-1iLi6rKB8uQRvKoF8aSC2s3JJNoUPThb5gRI6Gbw6Wrbpaq_kg8X7ME5m3wcubB_Nwt8bSJZvEqiQ3LmTcwnBPPKOCOU7VeruSwQUr1yRZe90rbzMENNVOuI4HgPXgeFrhM6Oil9A8W14Qf3NzSjPlFuyTQlI3wcvbA7yIzkTg5I4K9uUy2p2dTk9LIzI8Yu4EhSiJAIhgxZ1CrmfnebBlwV4CKXwKwJ8iLkBTSalGZdODwtT-mpBCqgTsWyIGXW7GCTb3GmmbG5Q7QiTFI6UovB7BRTOpY9GxBYfCF3orVXMHKYJoyazr9Jtfdgf-8RIMI_iNyoXZSt3UjXpXYxGuHrJndLBh5PZa5KgFrFzrWbvW2zhf6B0tbnSDCWNsxe_Ud8aMspledQoBUmgGYOjx8mjanHRWKWiZP8fzbqFQ_y9GlyjhseUsHnXbrTKbuJESjQkHLpGGgPclGYKLt5JHnq6Zapw-BkCYkv8xnkogbFsOpcYUEzojtXfQ4vTqeXnw2sIaJEicJRzbS59mS2-uXOGoF-h6kFva6XqswuVk5NW0mnJ6gtrDLB4XTmJisye1S-j4rlz1k3ZHwtk6LplciEK5ykH5dEXJepHfL0RKWNRLN4EySMDzQILpvhlTPCUZL8KuPT2PCnDME61Yzz6ogWRIAPFE4tXTw0ODAxGqEd3Yop1bHC4eTYWjrwyXOHenZLMRIwxskm69LVEfGfxqEPjPsaDxC-L1h9m9Tajb7PmAgmbDL19sYCSTK6jaWJWwYzcoONOY5BG3TrNTrVyBLUogRHjWXzfZs0FDjWF60gqycRvia68RxjcVUp1p8UCdehw9po1LF5mbxpELS-7nwt1K0mVt_BkRsk0TVi4GtxwY3cCdtZigdqBFixTxTi5GGiQUpzTpZuLq6d0A5zoaOwkltJ0MNZShs4AFtop222xUMrH2xvKMF1rGkSzRj1P8VMdypCUytB5Le6cwrtPjzZlL51QuoVTfHui2xiWcV_TnkaJucUp1vGULU9BqfJgMnQ3YIwpNw599i59LWnJi7jWiBzXhNpXbxgPmmIpZ_ABF0Hh2s2uNulJqGAoe2nc-d6kKZ-rN2ZtowxemsSZYlLHyl3wcMXJdSYceltjSUdsiFjnypTYd7_ALdEpKl2m7maKyyGsXBwvha8hYrwaXjmDuJAATTGZM-KES0c9C1nceskaIsFxIc_FR_fk3OKYotKVaOpxyZvrYIPeMZubyOQNYPjCW5OfkqEpuneNFA8Sq0YMjeo7lKwhuGf0rGu82rDImikq3Z0zAxEGGiVyQlbJGqJ0c00HJ-9WpnnvKZZsOHZXkd3u5bXqqzz3IogLcdBmmQZlMVPst_8s0EvAMEpItZRL1hBZrkv2bsugLzVgpqh0Y99axlqoZgSVoSU9oo7Vdm0PARo00G6dIg3r2rb-QXtw0ANKJauEwpVrSAxJnKma7gBl38aOGcpM14rN_HtDx-AIDmJp-fY-wcRpteqxoy691aJLJXOfotJbl82kjGtepmOMMktUi5lbEQmcd9W8mOQxHR02sXyKCgef2-eneC9Tu4embHOwy9pXBGNlEtTTJjJ3b9j0bebUwM2r1z0t6lq3wYml7KP3ic0wSOGhPe3I7wR9mzg1CE9vCfTT3eoVvrCOJREDgt5C85igp8qQG32bOAS43tXo-3tDgNLxDUKWeUBDFPKXkogmizakkSLDE-rzvk3cLrhb14g809WgLBR7d0L5EjokjTl_b8TwZrMbc96qiHeYK4MTyjXK6NvE7cLcnQPldmgDPqDdoe_7N9uBn-mdPa9U6xp6PlUGXxLxxqyHf_XPMXFDzMCzXJvOutX8plKxZB48xOs3aN8qEYUUJZaDMVTl4Oe4xeN3uM6l-aJSKYm41uPBXJOwMnez4n2buBlwra4RsWLMmGFLnsTjw7LpBnmEYUy3bbhihApSaAiOwL_384x96Rq2L_Uribie6-Vn7lazwqb3beJmwMJZrU1H63qw2D067BiipEEzRJPHm7dqau7YofMZtuvyKZ33cJD3DzwFNqv7apuVRr1KbDx37fYmhaMvt9pDZ9k2WZz2VV1etPQlAKxbI4dHcYMWQdKAI3D5wGfwvvwTAq9V8zrtEOLS-37feqD0dsPFFW3fQmEqdmlHoC3a9KtNd6_L9KjNpbitWpgDY2zaS8leSNbhUip5AMnLGF67dKXKgWtw6Dzgo-dtiJHyZdoeS_IoohxDPtD3-zaC5nEMhPAmDp11U_zSiUVzr8aDxVYkRt-mrQVWJG7bVIdF8scyDS94z84YNcumUHF0I0yYzNohVEKavxcSJHu8Bg-i3GvXqjd7MCWROm4Onxn_pcziWRiF49slU9xf32atBR5BVq4EM33qcqDboEojV6HNprVJVITIRtxpu2Zlpk1F4c0cjyKa11N2HRCYaW8PIG8m0XMgddza58LDL50oXQwXYOJYgGe0-jZrLbBuN0nMmPsmhHZ1yPi05g2LZU2baWly9_4u5Uu4xF_vqBvh4o3EeyXfVmp71DIP5DUOB30phyVtqhiKb9dkYa19mwUsygZzrYgbN1v9fVk5rt7lR4dH04aihkySfE7xXtbv-1bEei4fiaQG52m4fS5_b5bvoBifckMXScPLLZ2wRIv3AJEM21tzfZsFreb2TouvtZBdOyjCgvfqXIXyYqX4zYOw2KFEaJB7aI2yUK83Gm3Gp7tXT_m-1WK92p5Xkhi2N15H9eTnooSC9g2QMpTIalZvlA0ECmdNLBxrJxwgOoSHVv4Mqei1xO_x-xwAbWAH1nw7Rk9-sbfBD2Wb5gs-QqhYyrk531eqdjZZosTi_rqbxHJ8I1K78sul2jCunHULDWJ3U_gilN5iPi8l1lO88s53srF6d-_a98Q5pN31yP6Vbb69ymFxqWPphMK4SfQnFowldDeJ5ShzZPWULRa67iSrFmPN08m0F6Hsrvh9zeWr-zWL9ModYF4L86bEW90pdAjcfLEeLl7HbWmkWaWHCMTkNt8uQeMexW3UqY2zge2NFolU9473WETpqe5G58rMvaGjmlDeCUcOM4U7xGK_Ay4ZdFDaXsxeWlxEgKBH23w71svYMPpTTaw2ViOrlVkFJqvV3GPaKGvhceQo6FzeyBi3q9aaLMgiLCE6l9sXxjR-VBuLzEd2VSyUdXCLGC-nX83LunXDJEY4ahOk2Cslk3p7rBvUrBUf4ECqHngxd_Laqxq8WbN6XLxnQR1m-2Bds1c6qxCPkSgu-EniwJiUMkzspnCeYKqX-fH78g5rvHbgCXS3drR3ZfqYQ0TSZijiSYsEyIa0p8RsgOxXUof5ktWamWuM2hSV3hg9FYrSTMPHOJgvONII8l_lqlpdnjL7YUnW6_04GyHx0RjRCePKLd6pn5O7E5KsS6bPgwldrN8BF-JUMcLCrIU7YwFOOauWxXqtoc2Ezy2xsRbr0mBBE1uvxNT_Owj-XFyftbSER2znArlx_x1bVj6kWBfFSvKUdxTt_5cmkSspKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSmZnOzZ818DW5ag0lSSzAAAAABJRU5ErkJggg",
"url": null,
"ETag": null
}
],
"lastAnswerPositionPinned": null,
"lowValueLabel": null,
"mustPickSuggestion": null,
"numStars": null,
"openTextPlaceholder": null,
"openTextSuggestions": null,
"question": "Which star?",
"sentimentText": null,
"singleLineResponse": null,
"thresholdAnswers": null,
"type": "sideBySideImages",
"unitOfMeasurementLabel": null,
"videoId": null,
"ETag": null
}
],
"state": null,
"surveyUrlId": null,
"title": "Stars",
"wantedResponseCount": 100,
"ETag": null
}
Question: does anyone know how to create a question with multiple image answers using the GCS API? More specifically when sending WebSafe base64 encoded PNG image data?
The "owners" field must be filled in correctly; otherwise, your request should work as expected.
(There was a bug in the API related to multi-choice images that is now fixed.)